9.DB410c开发板SPI驱动加载测试与nfc设备(PN532)-spi方式测试(failed)
时间:10-02
整理:3721RD
点击:
linux kernel3.2版本以后推荐使用dts来描述设备信息,spi驱动框架按照这个规定做了一些修改。SPI子系统core部分首先被加载,具体这里就是spi.c中的spi_init函数被加载,总线注册,spi_master类
注册,提供一下设备和驱动match等相关函数。第二步,SPI子系统dev部分被加载,register_chrdev,class_create和spi_register_driver,是初始化中的主要功能,dts中的相关部分与spidev_probe函数
呼应。第三步,spi-qup.c中的IC驱动被调用,dts中spi的设置信息被加载,至此spi驱动启动完成。iic子系统框架与spi很类似。
SPI驱动使能dts设置:
修改.config中的CONFIG_SPI_SPIDEV=M为CONFIG_SPI_SPIDEV=y,编译kernel,并更新。可以在db410c系统中找到/dev/spidev0.0的设备节点。
spi驱动mosi和miso功能测试:
源代码:kernel/Documentation/spi/spidev_test.c
硬件连接:将spi0或者spi1对应的的pin脚对接。
gcc -o spidev_test spidev_test.c
./spidev_test -D /dev/spidev0.0
spi mode: 0
bits per word: 8
max speed: 500000 Hz (500 KHz)
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
DE AD BE EF BA AD
F0 0D
```
将PN532模块按照SPI方式接线,测试结果如下:
根据iic的实际经验和下面的文档说明,猜测spi必须使用电平转换功能才能完全正常使用,我这里就暂时放弃。
注册,提供一下设备和驱动match等相关函数。第二步,SPI子系统dev部分被加载,register_chrdev,class_create和spi_register_driver,是初始化中的主要功能,dts中的相关部分与spidev_probe函数
呼应。第三步,spi-qup.c中的IC驱动被调用,dts中spi的设置信息被加载,至此spi驱动启动完成。iic子系统框架与spi很类似。
SPI驱动使能dts设置:
修改.config中的CONFIG_SPI_SPIDEV=M为CONFIG_SPI_SPIDEV=y,编译kernel,并更新。可以在db410c系统中找到/dev/spidev0.0的设备节点。
spi驱动mosi和miso功能测试:
源代码:kernel/Documentation/spi/spidev_test.c
硬件连接:将spi0或者spi1对应的的pin脚对接。
gcc -o spidev_test spidev_test.c
./spidev_test -D /dev/spidev0.0
spi mode: 0
bits per word: 8
max speed: 500000 Hz (500 KHz)
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
DE AD BE EF BA AD
F0 0D
```
将PN532模块按照SPI方式接线,测试结果如下:
根据iic的实际经验和下面的文档说明,猜测spi必须使用电平转换功能才能完全正常使用,我这里就暂时放弃。