[ZLG-ARM] AD芯片一次送出5BYTE,2103通过SPI只收到1个字节,怎么办?

[复制链接]
3576|6
 楼主| yyf196 发表于 2007-1-17 10:01 | 显示全部楼层 |阅读模式
2103通过SPI从AD芯片指定的地址读数据,2103发送地址,AD芯片返回40位共5个字节,2103连读5次,但只同是最高字节,后面的4个字节丢了,
 楼主| yyf196 发表于 2007-1-17 10:08 | 显示全部楼层

在用SPI0之前,用I/O扣模拟SPI能把5个字节一次全读上来,为什么SPI数据寄存器不行呢?
lcyong 发表于 2007-1-17 11:11 | 显示全部楼层

应该是时序问题

不知道你AD的读写时序是什么样的,但估计问题是出在AD读写时序和SPI读写时序不批配上.比如,AD需要连续读5个字节,AD时序要求是CS使能端一直为低,还是读一个字节,CS都要有变化?SPI读的时候,CPU要注意控制AD的使能端时序.
 楼主| yyf196 发表于 2007-1-17 11:51 | 显示全部楼层

tanks lcyong

Data&nbsp;is&nbsp;shifted&nbsp;into&nbsp;the&nbsp;ADE7759&nbsp;at&nbsp;the<br />DIN&nbsp;logic&nbsp;input&nbsp;on&nbsp;the&nbsp;falling&nbsp;edge&nbsp;of&nbsp;SCLK.&nbsp;Data&nbsp;is&nbsp;shifted&nbsp;out<br />of&nbsp;the&nbsp;ADE7759&nbsp;at&nbsp;the&nbsp;DOUT&nbsp;logic&nbsp;output&nbsp;on&nbsp;a&nbsp;rising&nbsp;edge&nbsp;of<br />SCLK.The&nbsp;CS&nbsp;input&nbsp;should&nbsp;be&nbsp;driven&nbsp;low&nbsp;for<br />the&nbsp;entire&nbsp;data&nbsp;transfer&nbsp;operation.
 楼主| yyf196 发表于 2007-1-17 11:56 | 显示全部楼层

tanks lcyong

AD的使能端时序:a&nbsp;falling&nbsp;edge&nbsp;on&nbsp;CS,&nbsp;the<br />ADE7759&nbsp;is&nbsp;placed&nbsp;in&nbsp;communications&nbsp;mode
william47 发表于 2007-1-17 19:32 | 显示全部楼层

SPI不停地发0xff就能收到所有的数据

  
 楼主| yyf196 发表于 2007-1-18 09:06 | 显示全部楼层

re: thanks william47

如您所述,确可收到数据,但不正确,。。。<br /><br />您说的方法是在应和2103SPI上说的:“During&nbsp;a&nbsp;data&nbsp;transfer&nbsp;the&nbsp;master&nbsp;always&nbsp;sends&nbsp;8&nbsp;to&nbsp;16&nbsp;bit&nbsp;of&nbsp;data&nbsp;to&nbsp;the&nbsp;slave,&nbsp;and&nbsp;the&nbsp;slave&nbsp;always&nbsp;sends&nbsp;a&nbsp;byte&nbsp;of&nbsp;data&nbsp;to&nbsp;the&nbsp;master.”<br /><br />&nbsp;&nbsp;但ADE775X在上传数据时是一次把5BYTE的数据全部转移到SPI口,而不是一BTYE一BYTE传的原文:“When&nbsp;an&nbsp;ADE7759&nbsp;register&nbsp;is&nbsp;addressed&nbsp;for&nbsp;a&nbsp;read&nbsp;operation,the&nbsp;entire&nbsp;contents&nbsp;of&nbsp;that&nbsp;register&nbsp;are&nbsp;transferred&nbsp;to&nbsp;the&nbsp;serial&nbsp;port.”&nbsp;
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

6

帖子

0

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