ADI 技术
直播中

柳杨

7年用户 216经验值
私信 关注
[问答]

请问ad2s1210的使用例程中配置模式下回读位置信息为什么不用控制sample

官网上的例程,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)

柳杨

2018-9-20 14:47:35
手册上p28提到的是:若想在配置模式读到位置信息,则需要在sample输入一个下降沿,更新位置信息
举报

乔银栓

2018-9-20 14:56:21
引用: t4935359 发表于 2018-9-20 09:53
手册上p28提到的是:若想在配置模式读到位置信息,则需要在sample输入一个下降沿,更新位置信息

你好,请问这个问题解决了么?
举报

黄鸿江

2018-9-20 15:08:44
请仔细查看手册,在配置模式下面不需要sample,只需要进入配置模式进行读写寄存器就可以。
举报

柳杨

2018-9-20 15:16:33
引用: 宋小辉1 发表于 2018-9-20 10:14
请仔细查看手册,在配置模式下面不需要sample,只需要进入配置模式进行读写寄存器就可以。

您好,手册上确实是说配置模式操作寄存器不需要sample。但是如果是对位置和速度寄存器的操作呢,手册上好像有提到位置环输出的位置和速度信息是需要sample的下降沿才会锁存到最新的位置寄存器和速度寄存器的。配置模式下如果不对sample先操作下,如何保证读到的位置是最新的呢?一直不理解这点。
ps:因为手册中多处提到sample的含义:P9,sample定义中说明,sample由高变低后,位置,速度和故障寄存器会更新;P21的位置寄存器说明中也提到,sample下降后,位置寄存器更新;手册上p28更是提到的是:若想在配置模式读到位置信息,则需要在sample输入一个下降沿,更新位置。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分