全志A20配置使用spi 功能

全志A20配置使用spi。

Yao.GUET 2014-07-17,转载请注明出处:http://blog.csdn.net/Yao_GUET

A20上带有4个spi接口,由于Humming Bird A20只引出了SPI2,所以这里就以spi2为例,看一下fex文件是怎么设置的。

由于我拿到的linux内核上是已经有spi-sun7i的驱动代码文件,的民民主的所以没有代码的同鞋自己去下载patch包吧。

根据linux-sunxi中spi使用的文档,需要修改kernel的编译配置:

CONFIG_SPI_SUN4I=y
CONFIG_SPI=y
CONFIG_SPI_MASTER=y
CONFIG_EXPERIMENTAL=y
CONFIG_SPI_SPIDEV=y


做完这一步之后,还需要修改fex文件,由于我用的是android的系统,所以,配置文件位置如下:

a20_hummingbird_v3.0_v4/lichee/tools/pack/chips/sun7i/configs/android/wing-k70/sys_config.fex

"spi2_para"的配置:

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. [spi2_para]  
  2. spi_used            = 1  
  3. spi_cs_bitmap       = 1  
  4. spi_cs0             = port:PB14<2><default><default><default>  
  5. spi_sclk            = port:PB15<2><default><default><default>  
  6. spi_mosi            = port:PB16<2><default><default><default>  
  7. spi_miso            = port:PB17<2><default><default><default>  
其中:

spi_used: =1 表示使用,=0则表示不使用;

spi_cs_bitmap:=1表示片选使用spi2_cs0,=2表示片选使用spi2_cs1,=3表示片选使用spi2_cs0和spi2_cs1;

我这里使用的是PB14-PB17这一组spi2接口,尖括号里面的2代表的是复用功能的选择(SPI)。


spi_devices设备数量设置

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. [spi_devices]  
  2. spi_dev_num = 1  
spi_dev_num:代表使用的spi的总数量,这里我只用了一个所以写1,这个需要跟后面“spi_board”这个一起使用。例如我这里数量是1,那么我后面就要用到"spi_board0"。num=3,那么后面需要有3个spi的配置“spi_board0”,“spi_board1”,“spi_board2”,每一个对应一个spi接口。

spi_board设置

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. [spi_board0]  
  2. modalias = "spidev"  
  3. max_speed_hz = 12000000  
  4. bus_num = 2  
  5. chip_select = 0  
  6. mode = 0  
  7. full_duplex = 0  
  8. manual_cs = 0  
modalias:spi设备的名称

max_speed_hz:最大传输速度

bus_num:这个比较的重要,是这个spi_board所对应的spi的总线号,这里我使用的是spi2,所以“bus_num=2”
mode:这个主要是设置同步时间的极性与相位

SPI MODECPOLCPHA采样边缘
000上升沿
101下降沿
210下降沿
311上升沿
full_duplex和manual_cs这两个参数,在我手上的这一份spi-sun7i代码里面是没有读的,应该还没有支持,,,

有兴趣的同鞋也可以自己看一下spi-sun7i的代码,就在/linux/drivers/spi/spi-sun7i.c


编译好内核,再打包生成img文件,烧写启动系统,你会在/dev目录发现spidev2.0这个设备,那说明,spi2应该可以正常使用了,,



====================以下转载:http://blog.csdn.net/jiangdou88/article/details/21288781==================

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. ;spi configuration  
  2. ;-------------------------------------------------------------------------------  
  3. [spi0_para]  
  4. spi_used            = 1  
  5. spi_cs_bitmap       = 1  
  6. spi_cs0             = port:PI10<2><default><default><default>  
  7. spi_cs1             = port:PI14<2><default><default><default>  
  8. spi_sclk            = port:PI11<2><default><default><default>  
  9. spi_mosi            = port:PI12<2><default><default><default>  
  10. spi_miso            = port:PI13<2><default><default><default>  
  11.   
  12. ;mcp2515_int ->PH19 -> = port:PH19<2><0><default><default>  
  13. ;MCP2515_RESET ->PI9 -> = port:PI09<2><1><2><default>  
  14. ;MCP2515_CS ->PI10  
  15. ;MCP2515_SCK ->PI11  
  16. ;MCP2515_SI ->PI12  
  17. ;MCP2515_SO ->PI13  

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. [spi_devices]  
  2. spi_dev_num = 1  
  3. [spi_board0]  
  4. modalias = "spidev"  
  5. max_speed_hz = 12000000  
  6. bus_num = 0  
  7. chip_select = 0  
  8. mode = 3  
  9. full_duplex = 0  
  10. manual_cs = 0  

配置

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. private static final String mPathstr ="/sys/class/gpio_sw/P";  
  2. private static final String mDataName = "/data";  
  3. private static final String mPullName = "/pull";  
  4. private static final String mDrvLevelName = "/drv_level";  
  5. private static final String mMulSelName ="/mul_sel";  


修改Kconfig


[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. comment "SPI Protocol Masters"  
  2.   
  3. config SPI_SPIDEV  
  4.     tristate "User mode SPI device driver support"  
  5.     #depends on EXPERIMENTAL  
  6.     default y  
  7.     help  
  8.       This supports user mode SPI protocol drivers.  
  9.   
  10.       Note that this application programming interface is EXPERIMENTAL  
  11.       and hence SUBJECT TO CHANGE WITHOUT NOTICE while it stabilizes.  



配置menuconfig




adb shell

#cd dev   

# ls   ->如下:



3,编译Linux/\\192.168.94.129\jiang_dou\a20\A20-420-V12\lichee\linux-3.3\Documentation\spi/spidev-test.c


#adb push D:\spidev-test  /

#adb shell

#chmod 777 spidev-test

#  ./spidev-test -D  /dev/spidev0.0

如下图:




  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值