Home

cubie.cc CubieBoard中文论坛

 找回密码
 立即注册
搜索
热搜: unable
查看: 15175|回复: 36

cubieboard 之SPI的使用

[复制链接]

6

主题

2

好友

1368

积分

金牌会员

Rank: 6Rank: 6

贡献
218
金钱
743
威望
198
买家信用
卖家信用
积分
1368
发表于 2013-4-28 17:09:24 |显示全部楼层
    折腾了将近一个月的SPI通信(如果是大神的话估计早搞出来了,但是收获还是蛮大,至少差不多搞懂了SPI子系统),总算小出成效了,Cubieboard上的SPI口,也算是打通了,在此要感谢hipboi等等网络上的大神对我的帮助,感谢CCTV。

    首先,跟SPI通信相关的,主要有三个代码文件,spi_sunxi.c,spi.c,spidev.c。
spi_sunxi.c主要是全志A10的spi驱动,spi.c是整个spi子系统的中心,给spi_sunxi.c和spidev.c提供了接口,也起到了桥梁的作用
spidev.c主要是用来为用户空间读写spi提供接口,也就是在/dev/下面生成spi0.0等等这些读写文件。

要使全志的SPI能够通信,底层代码都已经写好了,我们只需要对配置文件(script.fex)进行相应的的更改就可以了。
spi_used = 1
spi_cs_bitmap = 1
spi_cs0 = port:PI10<3><default><default><default>
spi_sclk = port:PI11<3><default><default><default>
spi_mosi = port:PI12<3><default><default><default>
spi_miso = port:PI13<3><default><default><default>

其中,需要特别主要的是,理解spi_cs0 = port:PI10<3><default><default><default>
port:PI10就是说使用PI10这个引脚,<3>这个括号里面,值可以为0~7,如果配置为0,这个引脚代表GPIO输入,1代表GPIO
输出,至于2~7的值,根据引脚的不同,不同的值有不同的功能但是2~7主要是代表端口的复用,至于复用成什么端口,请参考
[url]http://linux-sunxi.org/A10/PIO[/url]

从图中可以看到,如果要用SPI,应该要使用MUX2,而我的fex文件,默认的是<3>,端口复用成了UART,所以这个地方一定要改,我就是因为这个地方没改,所以整了很久。

[spi_devices]
spi_dev_num = 1
[spi_board0]
modalias = "spidev"
max_speed_hz = 12000000
bus_num = 0
chip_select = 0
mode = 3
full_duplex = 0
manual_cs = 0
这需要注意的是modalias,这个名字要跟spidev.c中的相同.name =  "spidev"。具体懂点驱动的应该知道为什么,还有就是全志的SPI不支持全双工。

以上配置完成以后,自己随便写个应用程序,或者往/dev/spidev0.0里面写点值,应该就有反应了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册


  • data/attachment/forum/201304/28/170018z9m5y5lttnuitlu6.png
  • data/attachment/forum/201304/28/170907chsphwmwb4ubymcm.png

已有 1 人评分威望 金钱 贡献 收起 理由
matson + 20 + 20 + 40

总评分: 威望 + 20  金钱 + 20  贡献 + 40   查看全部评分

回复

使用道具 举报

42

主题

21

好友

1万

积分

超级版主

Rank: 8Rank: 8

贡献
3313
金钱
6872
威望
3323
买家信用
卖家信用
积分
17871
发表于 2013-4-28 20:48:54 |显示全部楼层
我估计很多人想用用楼主这个研究成果。
回复

使用道具 举报

6

主题

2

好友

1368

积分

金牌会员

Rank: 6Rank: 6

贡献
218
金钱
743
威望
198
买家信用
卖家信用
积分
1368
发表于 2013-4-28 23:04:53 |显示全部楼层
ahha007 发表于 2013-4-28 20:48
我估计很多人想用用楼主这个研究成果。

希望我的东西能帮助大家吧,呵呵
回复

使用道具 举报

38

主题

2

好友

7707

积分

版主

Rank: 7Rank: 7Rank: 7

贡献
1398
金钱
3266
威望
1398
买家信用
卖家信用
积分
7707
发表于 2013-4-29 18:05:48 |显示全部楼层
很好,感谢
俺的小站:点击--》http://www.heartiot.com/
欢迎来访!
不要一味的索取,饮水要思源,回报社区
回复

使用道具 举报

6

主题

2

好友

1368

积分

金牌会员

Rank: 6Rank: 6

贡献
218
金钱
743
威望
198
买家信用
卖家信用
积分
1368
发表于 2013-4-29 19:03:53 |显示全部楼层
SUNROC1 发表于 2013-4-29 18:05
很好,感谢

不客气,互助互学,呵呵
回复

使用道具 举报

29

主题

6

好友

1万

积分

版主

Rank: 7Rank: 7Rank: 7

贡献
1672
金钱
5101
威望
1672
买家信用
卖家信用
积分
10504
发表于 2013-4-30 18:32:13 |显示全部楼层
感谢楼主! 先顶再看
回复

使用道具 举报

0

主题

0

好友

283

积分

中级会员

Rank: 3Rank: 3

贡献
58
金钱
106
威望
58
买家信用
卖家信用
积分
283
发表于 2013-5-25 18:51:58 |显示全部楼层
请问,SPI的驱动文件在哪里下载?我用ubuntu系统上没有带这个驱动
回复

使用道具 举报

6

主题

2

好友

1368

积分

金牌会员

Rank: 6Rank: 6

贡献
218
金钱
743
威望
198
买家信用
卖家信用
积分
1368
发表于 2013-5-28 10:32:23 |显示全部楼层
ocpy 发表于 2013-5-25 18:51
请问,SPI的驱动文件在哪里下载?我用ubuntu系统上没有带这个驱动

这个驱动需要你自己编译的,我用的是这个内核源码:https://github.com/linux-sunxi/linux-sunxi
回复

使用道具 举报

24

主题

10

好友

1万

积分

版主

Rank: 7Rank: 7Rank: 7

贡献
1919
金钱
3689
威望
1927
买家信用
卖家信用
积分
10013
发表于 2013-5-28 12:10:16 |显示全部楼层
好东西,不懂帮顶
回复

使用道具 举报

2

主题

0

好友

808

积分

高级会员

Rank: 4

贡献
155
金钱
333
威望
155
买家信用
卖家信用
积分
808
发表于 2013-6-10 10:07:54 |显示全部楼层
请问有用过Android做spi驱动的吗?楼主测试的截图那是什么工具?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

Archiver|手机版|邮件群发|www.cubie.cc---深刻的嵌入式技术和应用讨论中文社区 ( 粤ICP备13051116号-1  

GMT+8, 2017-5-26 17:23 , Processed in 0.039508 second(s), 10 queries , Apc On.

Powered by Discuz! X2.5 Licensed

© 2001-2012 Comsenz Inc. | Style by Coxxs

回顶部