Hello everyone,
I face a quite strange behaviour of the ADS1248 and don't know where to look anymore... My board has several ADS1248 devices and used up to 5 MUX configurations per device. But for simplicity and debuging I currently use only on config and on device. The ADC scan is working fine if I power-cylce the board. The SPI readout works and all is fine:
Yellow: Chip select / red: MOSI / blue: SCK / green: MISO
But when I launch the same application with the debugger and do not power-reset the ADC, there is nothing coming back anymore. However the DRDY signal triggers my readout:
Yellow: Chip select / red: MOSI / blue: SCK / green: MISO
Here the DRDY signal in red:
Yellow: Chip select / red: DRDY / blue: SCK / green: MISO
The CPU inits the device everytime with the following code:
// wakeup device from reset ADS1248_disable_CS(adc); GPIO_clearPin(adc->gpio[ADS1248_GPIO_nReset]); GPIO_clearPin(adc->gpio[ADS1248_GPIO_ConversionStart]); HAL_Delay(1); // 1ms GPIO_setPin(adc->gpio[ADS1248_GPIO_nReset]); GPIO_setPin(adc->gpio[ADS1248_GPIO_ConversionStart]); HAL_Delay(1); // 1ms ADS1248_enable_CS(adc); // stop continuous data conversion adc->txBuffer[0] = SDATAC; HAL_SPI_Transmit(adc->spiHandle, adc->txBuffer, 1, 100); HAL_Delay(1); // 1ms ADS1248_disable_CS(adc);
1. CS high / reset low / start low
2. 1ms delay
3. reset always high / start always high (never touched after this point)
4. 1ms delay (minimum 0.6ms)
5. Deactivate continous conversion
6. Setup registers
I verified all power sources, timings and signals above. everything looks fine (Can measure it again if this helps). Without a power-reset, the ADC response always with a zero. If I readout the config registers (RREG), the ADC response with my uploaded confguration.
Thanks and best regards
Daniel