Other Parts Discussed in Thread: ADS124S08
Hi Team,
Posting this inquiry on the customer's behalf:
They plan to connect some STM32 machines to a ADS1x4S08 Evaluation and use SPI by communication through via J3 on board.
As they want to measure voltage signals between 0 and 5V, they used a voltage divider to get our signals to 0-2.5V.
For the Software, they am using an adapted Version of the ADS124S08.cpp/ADS124S08.h by Jens Chr Brynildsen
But when read register and data just all 0xFF.
int32_t InitDevice_ADC()
{
if( MX_SPI_Init() != 1)
return -1;
/* Default register settings */
registers[ID_ADDR_MASK] = 0x08;
registers[STATUS_ADDR_MASK] = 0x00;
registers[INPMUX_ADDR_MASK] = 0x89;
registers[PGA_ADDR_MASK] = 0x00;
registers[DATARATE_ADDR_MASK] = 0x14;
registers[REF_ADDR_MASK] = 0x1A;
registers[IDACMAG_ADDR_MASK] = 0x00;
registers[IDACMUX_ADDR_MASK] = 0xFF;
registers[VBIAS_ADDR_MASK] = 0x00;
registers[SYS_ADDR_MASK] = 0x01;
registers[OFCAL0_ADDR_MASK] = 0x00;
registers[OFCAL1_ADDR_MASK] = 0x00;
registers[OFCAL2_ADDR_MASK] = 0x00;
registers[FSCAL0_ADDR_MASK] = 0x00;
registers[FSCAL1_ADDR_MASK] = 0x00;
registers[FSCAL2_ADDR_MASK] = 0x40;
registers[GPIODAT_ADDR_MASK] = 0x00;
registers[GPIOCON_ADDR_MASK] = 0x00;
sendCommand(RESET_OPCODE_MASK);
HAL_Delay(100); // ms
sendCommand(WAKE_OPCODE_MASK);
HAL_Delay(100); // ms
sendCommand(START_OPCODE_MASK);
if( regRead(ID_ADDR_MASK) == 0x01 ) // check device ads124s08
return -1;
HAL_Delay(10); // ms
for( int i = 0; i < NUM_REGISTERS ; i++)
{
regWrite(i, registers[i]);
}
HAL_Delay(10); // ms
data2 = regRead(DATARATE_ADDR_MASK);
readRegs(0,NUM_REGISTERS);
return 1;
}
main()
{
if(InitDevice_ADC() < 0)
while(1);
uint8_t dStatus = 0;
uint8_t dCRC = 0;
HAL_Delay(100);
/* Read out the results */
data = dataRead(&dStatus, &dCRC);
}
Please let me know if you have any questions with the customer.
Thanks,
Jonathan