首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >spidev无法控制芯片选择信号。

spidev无法控制芯片选择信号。
EN

Stack Overflow用户
提问于 2013-10-17 02:43:56
回答 1查看 10.4K关注 0票数 9

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

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

代码语言:javascript
复制
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:具有以下配置

代码语言:javascript
复制
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>;
};

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

有什么方法可以确定为什么在传输过程中spidev不能设置为低逻辑?似乎需要在内核上传递更多的东西,或者spidev上存在无法控制芯片选择的问题。我想知道是否需要更改内核的驱动程序/spi目录中的spidev.h或spidev.c上的任何内容?或者我该怎么解决呢?

处理器的The reference manual

EN

回答 1

Stack Overflow用户

发布于 2013-10-23 18:51:45

我从来没有用过设备树,但无论如何我都想帮你。

内核创建设备/dev/spidev1.1,因此spidev连接到SPI总线1,芯片选择1。芯片选择计数从0开始,并且没有任何其他设备与SPI总线1相关联。

据我所知,reg = <1>告诉SPI核心,spidev连接到芯片选择1,但是您的设备可能连接到芯片选择0。所以,reg = <0>

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19417378

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档