在使用官方sdk在BBB上运行,在内核中配置了spi,包含了一个spi0的设备树文件:am335x-boneblack-spi0.dtsi
如下:
&am33xx_pinmux {
bb_spi0_pins: pinmux_bb_spi0_pins {
pinctrl-single,pins = <
0x150 0x30 /* spi0_sclk.spi0_sclk, INPUT_PULLUP | MODE0 */
0x154 0x30 /* spi0_d0.spi0_d0, INPUT_PULLUP | MODE0 */
0x158 0x10 /* spi0_d1.spi0_d1, OUTPUT_PULLUP | MODE0 */
0x15c 0x10 /* spi0_cs0.spi0_cs0, OUTPUT_PULLUP | MODE0 */
>;
};
};
&spi0 {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&bb_spi0_pins>;
channel@0 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "spidev";
reg = <0>;
spi-max-frequency = <16000000>;
spi-cpha;
};
channel@1 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "spidev";
reg = <1>;
spi-max-frequency = <16000000>;
};
};
然后重新编译内核和设备树,并启动BBB,在dev目录下有/dev/spidev0.0 /dev/spidev0.1设备,但是并不知道spi引脚是分布在什么地方,按照原理图上面连接设备,但是不能通信:

,这和uart2冲突吗?
Shine:
试试把所有的SPI管脚都设成PIN_INPUT模式。0x158 0x10/* spi0_d1.spi0_d1, OUTPUT_PULLUP | MODE0 */0x15c 0x10/* spi0_cs0.spi0_cs0, OUTPUT_PULLUP | MODE0 */
yongqing wang:
完整的spi 操作参考这个:elinux.org/BeagleBone_Black_Enable_SPIDEV
user4132396:
回复 Shine:
昨天测试了一下,应用程序操作的时候spi设备已经打开,但是cs引脚确实没有拉低,应该是引脚的问题
TI中文支持网