TI中文支持网
TI专业的中文技术问题搜集分享网站

ADS132A02-读取ADC转换数据失败

代码:ADC转换数据读取函数

void Read_ADC_Data(uint8_t *pBuffer, uint8_t Num_Byte)

{

uint8_t channel_1,channel_2;

uint32_t receive_status;

ADS_DRDY_LOW();

SPI2_CS_LOW();

receive_status =  (uint32_t) ADS131A02_Write_CMD(ADS_CMD_NULL);

pBuffer[0] = (uint8_t ) (receive_status>>24);// 4字节状态响应

pBuffer[1] = (uint8_t ) (receive_status>>16);

pBuffer[2] = (uint8_t ) (receive_status>>8);

pBuffer[3] = (uint8_t ) (receive_status&0X0000FFFF);

for(channel_1=4; channel_1<(Num_Byte-4); channel_1++)  pBuffer[channel_1] = SPI2_Write_Read(0X00);

for(channel_2=8; channel_2<Num_Byte; channel_2++)  pBuffer[channel_2] = SPI2_Write_Read(0X00);

delay_ms(1);

SPI2_CS_HIGH();

ADS_DRDY_HIGH();

}

问题:我采用32位数据格式,禁用CRC和Hamming。初始化完成后,读取通道转换数据,总共12个字节(4字节状态响应,4字节通道1转换数据,4字节通道2转换数据)。为何读取的4字节状态为0X2274是正常的,而其余8字节通道数据为0呢?

user6058605:

还有,ADS131A02采用外部16.384MHz晶振提供时钟信号,fdata经分频后为1KHz,M0悬空。STM32F030CCT6为主机,SPI的SCLK信号输出频率为187.5KHz。这样做是不是SCLK的时钟信号频率不匹配啊?

user151383853:

通道数据为0 , 还没有进行 AD 转换吧

Annie Liu:

我需要更多信息来帮助调试这个。请您列出用于初始化芯片的命令。最重要的是,您可能希望使用逻辑分析器来查看最终的通信。这包括SCLK,DIN和DOUT。 每个响应都有助于显示芯片响应的内容。

该芯片使用起来有点复杂,通信必须精确。需要注意的是,要操作ADS131A04,它需要一些初始化才能启动转换。如果您查看ADS131A04EVM(ADS131A02没有特定的EVM),则有一个基本的启动脚本。 它从以下命令开始:

UNLOCK
WAKEUP
WREG 0F0F (这是为了启用器件中的所有ADC).

ADS131A02将具有类似的启动过程。

赞(0)
未经允许不得转载:TI中文支持网 » ADS132A02-读取ADC转换数据失败
分享到: 更多 (0)