完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
参照ADI网站上提供的ADAS1000评估板与RX62N微处理器尝试用STM32通过SPI接口控制ADAS1000。所使用硬件为STM32开发板和ADAS1000SDZ评估板。管脚连接方式:
SDI_0 ---> MOSI PB15 SDO_0 ---> MISO PB14 CSB_0 ---> CS PB12 SCLK ---> SCK PB13 STM32的SPI2配置为:2线全双工主模式,8位数据,64分频,MSB优先。问题如下: 1. 当CPOL = 1, CPHA = 0(时钟空闲高电平,下降沿读取)时 在读取寄存器数据时出现错误:读出的数据整体向右移动一位。例如05E00000 ---> 02F00000。 2. 当CPOL = 1, CPHA = 1(时钟空闲高电平,上升沿读取)时 读出寄存器数据全部为0。 根据ADAS1000评估板手册,评估板上有一个ADAS1000作为MASTER,另外一个ADAS1000-2作为SLAVE。那么我在直接用微处理器与该评估板接口的时候,是否需要将作为MASTER的ADAS1000设置为SLAVE? |
|
相关推荐
8个回答
|
|
您好。手册中的读写时序都只有CPHA 和 CPOL同为0或者同为1的状态,因此情况1的设置是不正确的。情况2下,请您回读写入的值看看写入的是否正确。关于主从的设置,您可以参考手册的Example 6。
|
|
|
|
luoyakeji 发表于 2018-11-6 20:00 您好。
写入值为1000 0101 1110 0000 0000 0000 0000 1011 在情况1下: 读出值为0000 0010 1111 0000 0000 0000 0000 0101 1000 在情况2下: 读初值为0 |
||
|
||
我在阅读数据手册是发现:P10页的图2显示的时序图中。SDO线在数据前面有一位DRDV,请问这是不是意味着输出数据首先输出一个DRDV位吗? |
|
|
|
iuwwufjsd 发表于 2018-11-6 20:31 您好,您的问题已经提交给ADI相关专家,请等待专家为您解答,谢谢! |
|
|
|
iuwwufjsd 发表于 2018-11-6 20:31 您好,图2中应该是DRDY(DRDV是笔误),是data ready 信号。这一位是要首先输出的。 This indicates that conversion data is ready to be read back when low, busy when high. |
|
|
|
luoyakeji 发表于 2018-11-6 20:42 您好,不知我理解是否正确。但是如果按照您所说,DRDY必须输出的话,那么实际上在读取ADAS1000的时候SDO线上输出了33位。本来读取一次用4个WORD(32位)正好,但是这个DRDY位将最后一位数据挤到了第5个WORD中,不知这是不是造成数据右移的原因? 另外,我反复按照手册上所说的时序进行了存储器和数据的写入读取。还是无法弄清楚手册上所说的CPOL = 1, CPHA = 1到底是什么意思?我使用的是STM32微处理器,参考了ADI网站上给出的RX62N处理器参考程序(不知该实例是否经过验证)。在微处理器端,时钟极性设置为空闲时为高电平。如果我在微处理器端将设置为下降沿读取(CPHA = 0),数据能够取出,但是发生右移。如果我将设置为上升沿读取(CPHA = 1),读出来的全部为零(即使我向寄存器中写入了数据,或者读取ADAS1000内置的150Hz正弦信号)。另外,请问关于ADAS1000除了ADI网站上所给出的以外,是否有更多资源可供参考。谢谢。 补充一个问题:手册上给出的ECG数据在计算时的LSB = (2 × VREF/GAIN)/(2N– 1) ,前面的因子2是什么意思?关于读出的150Hz正弦信号,有没有参考数据?谢谢 |
|
|
|
iuwwufjsd 发表于 2018-11-6 21:00 您好,关于串行接口总线的定义,您可以参见以下链接:http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus 不知道可否发来您的时序图帮您查看?或者您可以回读寄存器的值看回读结果是否正确。 我们相关的资料都会放在官网上,相关的软件是经过验证的。 关于因子2请参考:Lead/Vector format ha s a 2× range compared to electrode format because it can swing from + VREF to –VREF; therefore , the LSB size is doubled. |
|
|
|
luoyakeji 发表于 2018-11-6 20:00 tDO是SDO因电容导致的输出延迟,手册上最小8.5ns,tCL是低电平时间,8ns左右。tDO>tCL,所以图中上升沿接收到的是DO_25的数据。首位DRDY会被接收,而DO_0不会被接收,所以最终位数一定是32位,只不过右移了一位,首位补了个DRDY位。 |
|
|
|
只有小组成员才能发言,加入小组>>
2281个成员聚集在这个小组
加入小组1002 浏览 2 评论
给ADUM4223 增加信号驱动15V电压就不正常, 波动很大会被烧是什么情况?
1393 浏览 2 评论
ADP5092 SYS端口为2.09V,但是REG_OUT为0是什么原因?
1941 浏览 1 评论
ad7193差分输入ain1与ain2差是正值时,读到电压与实际值误差小,但为负值值,误差就变的很大
4275 浏览 2 评论
9068 浏览 1 评论
ADC3442采集,分析数据出现有规则毛刺,请问是哪方面的问题啊?
1543浏览 3评论
AD7190状态寄存器一直是0x80,连续转换模式下RDY不拉低
1700浏览 2评论
1002浏览 2评论
1679浏览 2评论
给ADUM4223 增加信号驱动15V电压就不正常, 波动很大会被烧是什么情况?
1393浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 17:15 , Processed in 2.118870 second(s), Total 61, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号