完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
官网上的例程,ExampleCode_RDC_AD2S1210中,下面函数
void ReadFromAD2S1210(unsigned char mode, unsigned char address, unsigned char * buf) { if (mode==CONFIG) { //write control register address buf[0] = address; SET_SCLK(); delay(1); SET_CS(); delay(1); CLR_CS(); delay(1); SET_WR(); delay(1); CLR_WR(); delay(1); SPIWrite(1,buf); SET_WR(); delay(1); SET_CS(); //write control register address //read 1-byte register SET_SCLK(); SET_CS(); SET_WR(); delay(1); CLR_CS(); delay(1); CLR_SCLK(); delay(1); CLR_WR(); delay(1); SPIRead(1,buf); SET_WR(); delay(1); SET_CS(); //read 1-byte register } else if (mode==POSItiON||mode==VELOCITY) { SET_SPL(); delay(1); CLR_SPL(); delay(5); //read 3-byte register SET_SCLK(); SET_CS(); SET_WR(); delay(1); CLR_CS(); delay(1); CLR_SCLK(); delay(1); CLR_WR(); delay(1); SPIRead(3,buf); //read data register SET_WR(); delay(1); SET_CS(); //read 3-byte register } } 两种模式下有个明显的区别,普通模式下增加了一段 SET_SPL(); delay(1); CLR_SPL(); delay(5); 明显这段代码是对sample信号的控制,但是配置模式下读取位置信息却没有对sample信号控制。似乎和手册上的说法是不一致的,各位大神这怎么理解? |
|
相关推荐
7个回答
|
|
手册上p28提到的是:若想在配置模式读到位置信息,则需要在sample输入一个下降沿,更新位置信息
|
|
|
|
你好,请问这个问题解决了么? |
|
|
|
请仔细查看手册,在配置模式下面不需要sample,只需要进入配置模式进行读写寄存器就可以。
|
|
|
|
您好,手册上确实是说配置模式操作寄存器不需要sample。但是如果是对位置和速度寄存器的操作呢,手册上好像有提到位置环输出的位置和速度信息是需要sample的下降沿才会锁存到最新的位置寄存器和速度寄存器的。配置模式下如果不对sample先操作下,如何保证读到的位置是最新的呢?一直不理解这点。 ps:因为手册中多处提到sample的含义:P9,sample定义中说明,sample由高变低后,位置,速度和故障寄存器会更新;P21的位置寄存器说明中也提到,sample下降后,位置寄存器更新;手册上p28更是提到的是:若想在配置模式读到位置信息,则需要在sample输入一个下降沿,更新位置。 |
|
|
|
t4935359 发表于 2018-9-20 10:22 上面的示例代码在配置模式下,没有进行寄存器的更新,读取出来的信息为上次的信息。如果需要用这种方式进行位置、速度信息的读取,需要进行sample操作,更新寄存器的值。 |
|
|
|
宋小辉1 发表于 2018-9-20 10:30 3ks |
|
|
|
宋小辉1 发表于 2018-9-20 10:30 @专家你好,我也是和楼主遇到同样的问题,我选用的也是并行配置模式读取电机的位置信息,时序参照芯片手册,但是每次只能读取一次电机的位置信息,当位置更新后必须在对软件复位或是初始化后才能继续获得一次位置信息,对此我阅读手册也感觉是sample没有更新的问题,为此我在读取寄存器地址前给予sample电平由高到低再到高的操作,但是实际调试中还是无法获得新的数据信息,请问这是什么原因造成的?另,我也选用了并行普通位置读取,这种位置读取方式是每次运行都会发生跳动,比配置模式下的结果更糟,请专家给予解答。操作的步骤均是参照AD2S1210芯片手册的时序予以编排 |
|
|
|
只有小组成员才能发言,加入小组>>
400 浏览 0 评论
给ADUM4223 增加信号驱动15V电压就不正常, 波动很大会被烧是什么情况?
1299 浏览 2 评论
ADP5092 SYS端口为2.09V,但是REG_OUT为0是什么原因?
1897 浏览 1 评论
ad7193差分输入ain1与ain2差是正值时,读到电压与实际值误差小,但为负值值,误差就变的很大
4237 浏览 2 评论
8997 浏览 1 评论
ADC3442采集,分析数据出现有规则毛刺,请问是哪方面的问题啊?
1424浏览 3评论
AD7190状态寄存器一直是0x80,连续转换模式下RDY不拉低
1646浏览 2评论
1617浏览 2评论
给ADUM4223 增加信号驱动15V电压就不正常, 波动很大会被烧是什么情况?
1300浏览 2评论
214浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 02:13 , Processed in 1.484302 second(s), Total 91, Slave 74 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号