Beaglebone black开发板使用SPI1
写在前头*.版权声明:本篇文章为原创,可随意转载,转载请注明出处,谢谢!另我创建一个QQ群82642304,欢迎加入!开发环境Beaglebone black可使用的开发环境有两个,一个是TI官方提供的SDK,另外一个是由Beaglebone提供的SDK。我使用的是TI官方提供的SDK(ti-processor-sdk-linux-am335x-evm-02.00.00.00)该SDK已支持Be
·
写在前头
*.版权声明:本篇文章为原创,可随意转载,转载请注明出处,谢谢!另我创建一个QQ群82642304,欢迎加入!
开发环境
- Beaglebone black可使用的开发环境有两个,一个是TI官方提供的SDK,另外一个是由Beaglebone提供的SDK。
- 我使用的是TI官方提供的SDK(ti-processor-sdk-linux-am335x-evm-02.00.00.00)该SDK已支持Beaglebone black开发板,编译工具也是才用TI官方提供的(gcc-linaro-4.9-2015.05-x86_64_arm-linux-gnueabihf),文件系统是自己用busybox做的。
- 可能是由于PROCESSOR SDK比较新吧,网上许多资料都是基于TI的Sitara SDK。
SPI接口
- PROCESSOR SDK使用的内核是4.x,支持设备树,所以我们不需要修改任何内核代码,即可使能SP1管脚。
- 先使用官方提供的管脚配置工具pin mux配置SP1管脚
功能 | 管脚 |
---|---|
SPI1_SCK | A13 |
SPI1_D0 | B13 |
SPI1_D1 | D12 |
SPI1_CS0 | C12 |
这里需要注意的是要将SPI1_SCK和SPI1_D0配置成输入,SPI1_SCK配置成输入的原因参见TRM中Table 24-4的note1,如果没有配置成输入将会导致读取出来的数据全部为0.
3. 配置完管脚,生成设备树文件如下
mcspi1_pins: mcspi1_pins {
pinctrl-single,pins = <
0x190 ( PIN_INPUT | MUX_MODE3 ) /* (A13) mcasp0_aclkx.spi1_sclk */
0x194 ( PIN_INPUT | MUX_MODE3 ) /* (B13) mcasp0_fsx.spi1_d0 */
0x198 ( PIN_OUTPUT | MUX_MODE3 ) /* (D12) mcasp0_axr0.spi1_d1 */
0x19c ( PIN_OUTPUT | MUX_MODE3 ) /* (C12) mcasp0_ahclkr.spi1_cs0 */
>;
}
- 打开Beaglebone black的设备树文件arch/arm/boot/dts/am335x-boneblack.dts,将上面一段话复制到&am33xx_pinmux中,即完成了对SPI管脚的配置。
- 在该设备树文件中,写入SPI1的配置
&spi1 {
status = "okay";//使能SPI1
pinctrl-names = "default";
pinctrl-0 = <&mcspi1_pins>;//设置SPI1的管脚
spidev@0 {//创建SPI设备/dev/spidev1.0
compatible = "rohm,dh2228fv";
spi-max-frequency=<24000000>;
reg = <0>;
};
};
- 使能spidev驱动make menuconfig
Device Drivers —>
SPI support —>
User mode SPI device driver support
- 最后编译内核及设备树
make am335x-boneblack.dtb
make zImage
并将zImage和am335x-boneblack.dtb拷贝到开发板的/boot文件夹内,重启设备
8. 重启过后,即可在/dev下识别出设备/dev/spidev1.0。
9. 交叉编译内核目录下Documentation/spi/spidev_test.c的spi测试工具,生成bin文件拷贝到开发板上运行
10. 短接B12和D12管脚,运行结果如下即表示正常
/ # ./spidev_test -D /dev/spidev1.0
spi mode: 0x0
bits per word: 8
max speed: 500000 Hz (500 KHz)
RX | FF FF FF FF FF FF 40 00 00 00 00 95 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 0D | ......@....�..................�.
更多推荐
已为社区贡献1条内容
所有评论(0)