This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] ADS8684:无法对寄存器进行编程

Guru**** 2362840 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1307172/ads8684-could-not-programm-register

器件型号:ADS8684

SDI 在15MHz 上运行。 我从器件获得 AD 值、但无法更改增益。

复位(硬件)后、我尝试通过为通道0...3发送增益(+/- 0.6125Vref)来初始化器件

然后、我要将 AUTO_Chan 设置为通道0、1、2

    for(i=0;i<CHAN;i++)                                                         // set gain for all 3 channels                                                      // configure chan0...2 GAIN to 0.625*Vref => +/-2.56V
    {    
        SS2_Clear();       
        SPI2BUF =  (uint8_t)(wrCH0gain[0])+(i*2);   // starting from 0x0B,0x0D,0x0E
        SPI2BUF =  (uint8_t)wrCH0gain[1];           // 0x02
        SPI2BUF =  (uint8_t)wrCH0gain[2];           // 0x00
        IFS1bits.SPI2TXIF = 0;        
        while(IFS1bits.SPI2TXIF == 0);
        SS2_Set();
        Nop();
        Nop();
        Nop();        
    }
    SS2_Clear();                                                                // configute auto chan sequencing 0,1,2
    SPI2BUF =  (uint8_t)wrCHANen[0];                // 0x03
    SPI2BUF =  (uint8_t)wrCHANen[1];                // 0x03
    SPI2BUF =  (uint8_t)wrCHANen[2];                // 0x00
    IFS1bits.SPI2TXIF = 0;    
    while(IFS1bits.SPI2TXIF == 0);
    SS2_Set();   

当在上述代码之前添加"Standby"时、即使我每隔三个采样请求发送一个 AUTO_RESTART (0xA0000000)、也没有输出更多。

SPI2CONBITS.STXISEL = 0;
SS2_CLEAR ();//设置待机
SPI2BUF = 0x82;
SPI2BUF = 0;
SPI2BUF = 0;
SPI2BUF = 0;
IFS1bits.SPI2TXIF = 0;
while (IFS1bits.SPI2TXIF == 0);
SS2_SET ();

请给我一个逐步计划的建议

我必须要发送什么... 从重置到样片请求、、、

谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我发现了问题;在尝试配置之前未释放重置。 不管怎样、数据表对我来说有点不清楚。 使用能够传输32位的 SPI 接口时、对于我来说是不透明的、如果我可以使用该接口以32位格式传输16位和24位帧以及32位格式(在正确的位置填充0)

    因此我更改为非中断8位传输。 如果 在 c 或伪 c 中添加一些行解释如何配置,这将是一个很好的做法。

    当告知寄存器地址时被 aslo。。。 例如5它在写入模式中为 B!! 让阅读和添加一些示例变得更简单!! 以帮助用户更快地了解示例、示例和示例

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Rupert:

    感谢您的反馈、并很高兴听到问题已得到解决。