Hi,
I've recently started to interact between a LMP90100 and a MSP430F249, using the library and demos provided in the file snac006.zip. I'm using a custom board in which the communication port with the AFE is the UCB1 module.
The configuration stage is done without problem, and the readout of the config register is also OK. The values and configuration procedure is as follow:
1. TI_LMP90100_RESETCN_REG = 0xC3 (fixed value)
2. TI_LMP90100_SPI_HANDSHAKECN_REG = 0x00 ()
3. TI_LMP90100_SPI_DRDYBCN_REG = 0x83 (D6 = drdyb signal)
4. TI_LMP90100_ADC_RESTART_REG = 0x01 (just in case)
5. TI_LMP90100_SPI_CRC_CN_REG = 0x14 (enable CRC, Bit 3 must be 0, DRDYB is deasserted after CRC is read)
6. TI_LMP90100_ADC_DONE_REG = 0xFF (set ADC not done)
7. while(TI_LMP90100_SPIReadReg((TI_LMP90100_CH_STS_REG & TI_LMP90100_CH_SCAN_NRDY), prevURA)); // wait if CH_SCAN_NRDY
8. TI_LMP90100_CH_SCAN_REG = 0x1B (ScanMode0: Single-Channel Continuous Conversion, firt and last ch = CH3 for vin6 and vin7)
9. TI_LMP90100_CH3_CONFIG_REG = 0x20 (6.71 SPS and buffer included in the signal path)
10. TI_LMP90100_CH3_INPUTCN_REG = 0x37 (VINP: 0x6, VIN7: 0x7)
You can see in the figure that the config verification in done correctly:
The thing is that during the ADC_OUT readings, the behaviour is completly unexpected to me. Basically, the reading sequence is as follow:
1. Check TI_LMP90100_ADC_DONE_REG != 0xFF
2. if TRUE, read ADC_OUT + CRC_DATA with:
TI_LMP90100_SPINormalStreamReadADC(TI_LMP90100_ADC_DONE_REG, (uint8_t *)dataADC, 4, &prevURA);
3. back to 1
What I see is that whenever I try to read the ADC_OUT register I get 3 different voltage levels at the SDO/DRDYB pin, as you can see below:
My question is if this behaviour is due to a configuration issue that I might be missing, since I could't find any reference in the documentatin nor in the forum that addresses this issue.
I appreciate wny suggestion or information regarding this problem.
Thanks in advance,
Elias