gpt4 book ai didi

linux - spidev 无法控制片选信号

转载 作者:IT王子 更新时间:2023-10-29 00:14:13 24 4
gpt4 key购买 nike

我在嵌入式 Linux 设备 (olimex imx233 micro) 上使用内核 3.12.rc4。我的目标是使用 /dev/spidev 能够与另一个 spi 设备通信。

我将 arch/arm/boot/dts/imx23-olinuxino.dts 编辑为:

ssp1: ssp@80034000 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "fsl,imx23-spi";
pinctrl-names = "default";
pinctrl-0 = <&spi2_pins_a>;
clock-frequency = <1000000>;
status = "okay";

spidev: spidev@0 {
compatible = "spidev";
spi-max-frequency = <1000000>;
reg = <1>;
};
};

arch/arm/boot/dts/imx23.dtsi: 有这个配置

spi2_pins_a: spi2@0 {
reg = <0>;
fsl,pinmux-ids = <
0x0182 /* MX23_PAD_GPMI_WRN__SSP2_SCK */
0x0142 /* MX23_PAD_GPMI_RDY1__SSP2_CMD */
0x0002 /* MX23_PAD_GPMI_D00__SSP2_DATA0 */
0x0032 /* MX23_PAD_GPMI_D03__SSP2_DATA3 */
>;
fsl,drive-strength = <1>;
fsl,voltage = <1>;
fsl,pull-up = <1>;
};

设备绑定(bind)看起来正确。当我编译内核时,我得到了 /dev/spidev1.1。之后我使用 spidev_test.c并通过示波器监控引脚。 SCK 和 MOSI 输出信号正确,但是,片选即使在数据传输期间也设置为逻辑高电平。

有什么办法可以确定为什么spidev在传输过程中不能设置为logic low?似乎需要在内核上传递额外的东西,或者 spidev 上存在无法控制芯片选择的问题。我想知道我是否需要更改内核的 driver/spi 目录下的 spidev.h 或 spidev.c 中的任何内容?或者我该如何解决?

The reference manual对于处理器

最佳答案

我从未使用过设备树,但无论如何我都会尽力帮助您。

内核创 build 备/dev/spidev1.1 ,所以 spidev 连接到 SPI 总线 1片选 1。片选计数从0开始,并且您没有任何其他设备关联到 SPI 总线 1

据我所知reg = <1>告诉 SPI 内核 spidev 连接到片选 1。但也许你的设备连接到片选 0。所以,reg = <0>

关于linux - spidev 无法控制片选信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19417378/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com