专家您好!
我们的客户 通过设置数据速率= 4000SPS 来使用它、当 drdy 就绪时、它会再次发送 START 以检查重复采样周期。
它被确认为450us、而不是理论上的250us。 请检查问题是什么。
下面是客户设置、请参阅、并请按顺序指导必要的项目 或与数据速率设置相关的寄存器设置的源代码。
为供您参考、
*寄存器设置
#define CH1_ACT (((MUX_AIN0 <<4)& 0xf0)| MUX_AIN5
#define ADS124S08_CMD_RREG 0x20
#define ADS124S08_CMD_WREG 0x40
#define ADS124S08_CMD_START 0x08
#define ADS124S08_CMD_STOP 0x0a
#define ADS124S08_CMD_RDATA 0x12
WR_DATA[0]= ADS124S08_CMD_WREG +INPMUX_reg;
WR_DATA[1]=0x02;//number of registers to read or write?(要读取或写入的寄存器数量?) -1.
WR_DATA[2]=CH1_ACT;
WR_DATA[3]=0xe0; //1110 0000 -> 111:1·tMOD
WR_DATA[4]=0x3E; //0011 1110 ->1:单次转换模式, 1:低延迟滤波器(默认),
/// 1110:4000 SPS
HAL_SPI_transmit (&hspi3、(uint8_t*) wr_data、5、100);
*检查采样率
if (adc_drdy = 1) //下降沿 ex 中断
{
adc_drdy = 0;
ADC_CS_LOW;
u8a_Flash_TX_DATA[0]= ADS124S08_CMD_START;
HAL_SPI_TransmitReceive (&hspi3、(uint8_t*) u8a_Flash_TX_data、(uint8_t*) u8a_Flash_Rx_data、1、100);
ADC_CS_HIGH;
}
此致、
Michael