发新帖我要提问
123
返回列表
打印

模拟SPI问题

[复制链接]
楼主: chenyu988
手机看帖
扫描二维码
随时随地手机跟帖
41
dqyubsh| | 2012-11-24 23:07 | 只看该作者 回帖奖励 |倒序浏览
模拟SPI一般都是用来操作带SPI接口的外围芯片,而不是双向通讯。这种用法,模拟三个以上的SPI也没问题,因为从机无需等待,直接发过去就完事了,读的时候也无需等待,因为外围芯片的响应远比软件模拟快得多。

我的原则是:单片机能闲着,就别忙着。器件本身能解决的,就别在软件上耽误功夫。能省事千万别费事,倒出时间可以去睡觉、喝茶、泡妞……

使用特权

评论回复
42
chenyu988|  楼主 | 2012-11-24 23:08 | 只看该作者
39# NE5532
实际工作中并没有那么多项目给我练习,那我只能自学了。
现在我在自学430单片机,硬件SPI自发自收是调通了的。所以想试试模拟的。
现在我把51单片机当主机 430当从机,从机直接用的硬件SPI。我主机发送0xAA,发现从机接收到是0x05,0x01,0xA0,0xAA,0x0A,0x50这类数据,可能是你说的主机端发送太快了,我再试试。

使用特权

评论回复
43
NE5532| | 2012-11-25 10:03 | 只看该作者
你真想学SPI,买片SPI接口的E2去操作去,比你搞这个有用得多哈。

使用特权

评论回复
44
chenyu988|  楼主 | 2012-11-25 10:20 | 只看该作者
43# NE5532
哈哈E2,我有个24C02,用I2C读写已经练习过了,不过什么块读之类的还没试过
我在主机发送的时候加了延时,从机接收到的数据还是移位了。发送不加延时,错误的概率大点,加了延时,概率小点。
我主机先上电初始化,然后从机再上电初始化,按道理说第一个数据可能错的,但后面的数据应该是对的呀?

使用特权

评论回复
45
NE5532| | 2012-11-25 10:28 | 只看该作者
我是说你找个SPI接口的E2,到Microchip网站去找。初学者先在硬件上弄最好,软件模拟需要一定技巧,目前能告诉你的就是时钟跟踪,必须不掉时钟,不要小看轮询速度,很费CPU的。

使用特权

评论回复
46
chenyu988|  楼主 | 2012-11-25 10:38 | 只看该作者
45# NE5532
谢谢,目前在家里没有示波器,看不了时钟的波形。只能百度了。

使用特权

评论回复
47
dqyubsh| | 2012-11-25 11:04 | 只看该作者
你别拿51去模拟,找两个都带硬件SPI的,最好是两片同一厂家同一款单片机,这样最省事。实际应用时也不可能一个设计用两种CPU,写程序要两个开发软件,采购麻烦,烧写程序也费事。

使用特权

评论回复
48
chenyu988|  楼主 | 2012-11-25 11:51 | 只看该作者
47# dqyubsh
这只是自己练习用的。

使用特权

评论回复
49
ohy3686| | 2012-11-26 09:52 | 只看该作者
控制CS和CLK的为主机。

使用特权

评论回复
50
chenyu988|  楼主 | 2012-11-26 10:51 | 只看该作者
用51模拟主机,430当从机(硬件SPI),主机发送数据,从机接收正常了。
要注意主机每个字节的发送速度。不然接收会出现数据移位的现象。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则