4376|3

82

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

2812手册上SPI的范例问题 [复制链接]

2812CPU与外设手册中文版(张卫宁编译)514页上有一个SPI数据传输范例,设定的是每字符5个位。原文如下:
A.        从设备向SPIDAT写入0D0H,等待主设备移出数据。
B.        主设备将从设备的~SPISTE信号置低(有效)。
C.        主设备向SPIDAT写入058H,以启动发送程序。
D.        第一个字节完成,设置中断标志。
E.        从设备从SPIRXBUF(右对齐)读0BH。
F.        从设备向SPIDAT写入04CH,等待主设备移出数据。
G.        主设备向SPIDAT写入06CH,以启动发送程序。
H.        主设备从SPIRXBUF(右对齐)读01AH。
I.        第二个字节完成,设置中断标志。
J.        主设备从SPIRXBUF读89H,从设备从SPIRXBUF读8DH,用户的软件将不用的位屏蔽以后,主设备接收09H,从设备接收0DH。
K.        主设备清除从设备的~SPISTE信号,使之变高(无效)。

刚学SPI,有几个问题不明白,请教各位:
1.        看情况应该是主、从设备之间互相传输数据,那为什么两个设备互相发送的数据没有一个一样的,如C中主设备发出058H,从设备所有收到的根本就没有这个数?
2.        设定的是每字符5个位,就是说发送缓冲中只要满5个字符就会放到SPIDAT中,而SPIDAT收到的数据满5个字符就会放到接收缓冲中,那么写入的8位数据其它位怎么处理了?如何保证这8位都能正常发出去?分两次吗?如何实现?
3.        A中0D0H是1101 0000,E中0BH是0000 1011,正好是把0D0H从右往左重新写了一遍,C和H的情况也一样。难道E和H中所谓的右对齐就是把最高有效位放到右边的意思?但是照这样后边的几个数又不对,是巧合还是怎么回事?

这里看了好几遍没明白怎么回事,希望各位指点一二,大家知道什么就说什么,一起讨论。十分感谢!

最新回复

非常感谢楼上,看了你的解释我才明白。希望以后有什么问题能再得到你的指点,谢谢  详情 回复 发表于 2008-6-28 03:22
 
点赞 关注

回复
举报

73

帖子

0

TA的资源

一粒金砂(初级)

沙发
 

忘记SPI外设吧,使用IO来模拟

第一:这个论坛上的帖子基本没人回,不指望别人能为你解决问题;
第二:SPI外设的控制很麻烦,我所读过的所有的书中都写不清楚,别希望能在书中找到你要的方法;
第三:访问SPI接口的外设,比如Flash,请使用IO口模拟时序,觉得没问题的,我的问题就是这样解决的。。。。
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
谢谢楼上的,你说的情况很实际。但是现在我的问题是只能用SPI,所以没办法,还得用它,只希望能有高人出来不吝赐教啊!
 
 
 

回复

90

帖子

0

TA的资源

一粒金砂(初级)

4
 
非常感谢楼上,看了你的解释我才明白。希望以后有什么问题能再得到你的指点,谢谢
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表