模拟SPI问题

[复制链接]
7891|49
dqyubsh 发表于 2012-11-24 23:07 | 显示全部楼层
模拟SPI一般都是用来操作带SPI接口的外围芯片,而不是双向通讯。这种用法,模拟三个以上的SPI也没问题,因为从机无需等待,直接发过去就完事了,读的时候也无需等待,因为外围芯片的响应远比软件模拟快得多。

我的原则是:单片机能闲着,就别忙着。器件本身能解决的,就别在软件上耽误功夫。能省事千万别费事,倒出时间可以去睡觉、喝茶、泡妞……
 楼主| chenyu988 发表于 2012-11-24 23:08 | 显示全部楼层
39# NE5532
实际工作中并没有那么多项目给我练习,那我只能自学了。
现在我在自学430单片机,硬件SPI自发自收是调通了的。所以想试试模拟的。
现在我把51单片机当主机 430当从机,从机直接用的硬件SPI。我主机发送0xAA,发现从机接收到是0x05,0x01,0xA0,0xAA,0x0A,0x50这类数据,可能是你说的主机端发送太快了,我再试试。
NE5532 发表于 2012-11-25 10:03 | 显示全部楼层
你真想学SPI,买片SPI接口的E2去操作去,比你搞这个有用得多哈。
 楼主| chenyu988 发表于 2012-11-25 10:20 | 显示全部楼层
43# NE5532
哈哈E2,我有个24C02,用I2C读写已经练习过了,不过什么块读之类的还没试过
我在主机发送的时候加了延时,从机接收到的数据还是移位了。发送不加延时,错误的概率大点,加了延时,概率小点。
我主机先上电初始化,然后从机再上电初始化,按道理说第一个数据可能错的,但后面的数据应该是对的呀?
NE5532 发表于 2012-11-25 10:28 | 显示全部楼层
我是说你找个SPI接口的E2,到Microchip网站去找。初学者先在硬件上弄最好,软件模拟需要一定技巧,目前能告诉你的就是时钟跟踪,必须不掉时钟,不要小看轮询速度,很费CPU的。
 楼主| chenyu988 发表于 2012-11-25 10:38 | 显示全部楼层
45# NE5532
谢谢,目前在家里没有示波器,看不了时钟的波形。只能百度了。
dqyubsh 发表于 2012-11-25 11:04 | 显示全部楼层
你别拿51去模拟,找两个都带硬件SPI的,最好是两片同一厂家同一款单片机,这样最省事。实际应用时也不可能一个设计用两种CPU,写程序要两个开发软件,采购麻烦,烧写程序也费事。
 楼主| chenyu988 发表于 2012-11-25 11:51 | 显示全部楼层
47# dqyubsh
这只是自己练习用的。
ohy3686 发表于 2012-11-26 09:52 | 显示全部楼层
控制CS和CLK的为主机。
 楼主| chenyu988 发表于 2012-11-26 10:51 | 显示全部楼层
用51模拟主机,430当从机(硬件SPI),主机发送数据,从机接收正常了。
要注意主机每个字节的发送速度。不然接收会出现数据移位的现象。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部