电路设计论坛
直播中

李波

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

关于AD2S1210 Fault读取的问题求解

请教5个问题:
1.  数据更新到SPI寄存器的时间,是否是ns级别?(时钟是8M)如果Sample保持低电平或高电平,是不是不会更新数据到SPI寄存器中?
2 2, 2, 2, 2使用12位情况下,角度阶跃改变10°/179° 时,芯片跟踪角度的延时是多少?分别是2.2ms/4.75ms吗?这是不是从信号输入到旋变到角度输出的延时?

3. 配置模式下,写入寄存器后,第一次读取到的数据tempBuf1是0x7E,紧接着再读取后tempBuf2就不是0x7E了,试了其它寄存器也一样,只能读取一次,第二次就返回默认值了?
ad2s1210SPIConfigWrite(AD2S1210_DOSRSTMITHRES, 0x7E) ;
ad2s1210SPIConfigRead(AD2S1210_DOSRSTMITHRES,临时布夫1);/*阅读登记册*/
ad2s1210SPIConfigRead(AD2S1210_DOSRSTMITHRES,临时布弗2);/*阅读登记册*/
4. datasheet30页串口时序图,*注是什么意思?,如下图中读取position后是不是要设为Velocity(A0=0,A1=1)模式才读取到速度信息,中间需不需有时间间隔?  t34的时间间隔是不是必须要的?

5. 请问如下代码有没有时序上的问题,不知道为啥我读取到的fault总是和Velocity一个值?
ENCSPI_ISR( 省略) 无效
{
EncposVolBuf[EncposVolBufindex] = getReg( QSPI0_ SPDRR) = getReg( QSPI0_ SPDRR);
cposvolubufindex ; (c) 环境指数;
    if (EncPosVolBufIndex > 4)
{ { {
EncposVolBufindex = 0;
ad2s1210_position_mode; ad2s1210_position_mode; 等离子体
qspi_sspin_pull_high; 密钥
       f16PositionEl = ((Frac16)((((unsigned int)EncPosVolBuf[0])<<8)|(unsigned int)(EncPosVolBuf[1]))) + f16PosAdd ;
       f16Speed = (Frac16)((((unsigned int)EncPosVolBuf[2])<<8)|(unsigned int)EncPosVolBuf[3]);
U16Fault = EncPosVolBuf[4];
返回;
时 时
    else if (EncPosVolBufIndex > 1)
{ { {
ad2s1210_速度_模式;
qspi_sspin_pull_high; 密钥
qspi_ spin_ pull_ low; qspi_ spin_ pull_ low; 等离子体
时 时
设置区域( QSPI0_ SPDTR, AD2S1210_ POS_ VEL);
}
多谢!

                                                               

更多回帖

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