主题中讨论的其他器件:ADS124S08
大家好、
代表客户发布此查询:
他们计划将一些 STM32机器连接到 ADS1x4S08评估模块、并通过板载 J3进行通信来使用 SPI。
由于他们想要测量0到5V 之间的电压信号、因此使用分压器将信号调节至0-2.5V。
对于本软件、他们使用的是 Jens Chr Brynildsen 修改的 ADS124S08.CPP/ADS124S08.h 版本
但当读取寄存器和数据时、只需0xFF。
int32_t InitDevice_adc ()
{
if (MX_SPI_Init()!= 1)
返回-1;
/*默认寄存器设置*/
寄存器[ID_ADDR_MASK]= 0x08;
寄存器[STATUS_ADDR_MASK]= 0x00;
寄存器[INPMUX_ADDR_MASK]= 0x89;
寄存器[PGA_ADDR_MASK]= 0x00;
寄存器[datarate_ADDR_MASK]= 0x14;
寄存器[REF_ADDR_MASK]= 0x1A;
寄存器[IDACMAG_ADDR_MASK]= 0x00;
寄存器[IDACMUX_ADDR_MASK]= 0xFF;
寄存器[VBIAS_ADDR_MASK]= 0x00;
寄存器[SYS_ADDR_MASK]= 0x01;
寄存器[OFCAL0_ADDR_MASK]= 0x00;
寄存器[OFCAL1_ADDR_MASK]= 0x00;
寄存器[OFCAL2_ADDR_MASK]= 0x00;
寄存器[FSCAL0_ADDR_MASK]= 0x00;
寄存器[FSCAL1_ADDR_MASK]= 0x00;
寄存器[FSCAL2_ADDR_MASK]= 0x40;
寄存器[GPIODAT_ADDR_MASK]= 0x00;
寄存器[GPIOCON_ADDR_MASK]= 0x00;
sendCommand (reset_opcode_mask);
HAL_DELAY (100);// ms
sendCommand (WAKE_OCODE_MASK);
HAL_DELAY (100);// ms
sendCommand (start_opcode_mask);
if (regRead (ID_ADDR_MASK)== 0x01)//检查器件 ads124s08
返回-1;
HAL_DELAY (10);// ms
for (int i = 0;i < NUM_REGISTERS;i++)
{
regWrite (i、register[i]);
}
HAL_DELAY (10);// ms
Data2 = regRead (datarate_ADDR_MASK);
readRegs (0、NUM_REGISTERS);
返回1;
}
MAIN ()
{
if (InitDevice_adc ()< 0)
while (1);
uint8_t dstatus = 0;
uint8_t dCRC = 0;
HAL_DELAY (100);
/*读出结果*/
数据= dataRead (&dstatus、&dCRC);
}
如果您对客户有任何疑问、请告诉我。
谢谢、
Jonathan