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.

[参考译文] ADS7953:如何在 Auto-2模式中配置 ADS7953并对 CH0~CH2的信号值进行采样?

Guru**** 2442090 points
Other Parts Discussed in Thread: ADS7953

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1113978/ads7953-how-to-config-ads7953-in-auto-2-mode-and-sample-the-signal-values-of-ch0-ch2

器件型号:ADS7953

尊敬的支持者:

现在 、这是我第一次使用 ADS7953对3个通道的信号进行采样。 那么、我想问您一些有关如何在我的项目中使用该器件的问题。

我只想在 Auto-2模式中采样 CH0~CH2。  下面是我的尝试代码。 请帮助确认。 谢谢!

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

uint16_t CHL_Val[3]={0};


int ads7953_readVal ()

uint8_t buff[2]、TempBuff[2];
uint8_t ret1、ret2、ret3、ret4;
uint16_t pbuff [3];

ret1=0;
ret2=0;
ret3=0;
ret4=0;

//重置命令0x4000

缓冲器[0]= 0x40;
缓冲区[1]= 0x00;
ADS7593_SpiCSControl (ADS7593_CS_LEVEL_L);
ret1= HAL_SPI_Transmit (&hspi1、buff、0x02、10);
ADS7593_SpiCSControl (ADS7593_CS_LEVEL_H);

//自动2模式 编程寄存器0x9080

缓冲器[0]= 0x90;
缓冲区[1]= 0x80;
ADS7593_SpiCSControl (ADS7593_CS_LEVEL_L);
ret2= HAL_SPI_transmit (&hspi1、buff、0x02、10);  
ADS7593_SpiCSControl (ADS7593_CS_LEVEL_H);

// 自动2 模式0x3C00

缓冲器[0]= 0x3C;
缓冲区[1]= 0x00;
ADS7593_SpiCSControl (ADS7593_CS_LEVEL_L);
ret3= HAL_SPI_transmit (&hspi1、buff、0x02、10);  
ADS7593_SpiCSControl (ADS7593_CS_LEVEL_H);

// 继续选择模式0x0000

缓冲器[0]= 0x00;
缓冲区[1]= 0x00;
ADS7593_SpiCSControl (ADS7593_CS_LEVEL_L);
ret4= HAL_SPI_transmit (&hspi1、buff、0x02、10);  
ADS7593_SpiCSControl (ADS7593_CS_LEVEL_H);

buff[0]= 0xFF;//虚拟内容字节0
buff[1]= 0xFF;//虚拟内容字节1
ADS7593_SpiCSControl (ADS7593_CS_LEVEL_L);
ret4= HAL_SPI_TransmitReceive (&hspi1、buff、TempBuff、2、10);// 在这里,我认为第一个应该被忽略????
ADS7593_SpiCSControl (ADS7593_CS_LEVEL_H);

//读取 CH0~CH2信号值

ADS7593_SpiCSControl (ADS7593_CS_LEVEL_L);
for (int i=0;i<3;i++)

ret4= HAL_SPI_TransmitReceive (&hspi1、buff、pbuff、2、10);  
CHL_Val[i]=(*pbuff)&0x0fff;

ADS7593_SpiCSControl (ADS7593_CS_LEVEL_H);

返回0;

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

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

    雨天好、

    您发送的命令对我来说看起来很好。 您似乎正在正确地对两个 Auto-2模式寄存器进行编程。 但是、我要指出的唯一一点是、您说正在发送复位命令、但看起来不是。 要进行重置、您需要发送0x4200。 希望这对您有所帮助。  

    此致、
    Aaron Estrada