I built a small data acquisition system around the 8 channel I2C ADC AD7998.
In my application I need to read a sequence of selected channels in an efficient way. Therefore I chose the "sequence of channels" capability in mode 2 (command mode) according to page 29 of the AD7998's data sheet.
I'm using the following sequence:
- Write access: Initialization of the ADC by selecting the channels in the configuration register: I only want to get results from the even channels (20W 02 0A A8).
- Read access: Verify content of configuration register in order to see that initialization was successful (20R 0A A8).
- Write access: Set command bits in address pointer register to sequence mode. Set address pointer to conversion result register (20W 70).
- Read access: Read 8 bytes (4 even channels) from conversion result register (20R 15 7A 15 7A 15 7A 15 7A).
- Repeat steps 3 and 4 after a pause of approx. 100 ms (master controlled continuous conversion).
The problem is, that I always only get the result from the lowest of the selected channels, i.e. channel 2
(see attached oscilloscope screen shot).
How do I need to configure the ADC in order to get the desired sequence within only one read access?
I thought that I strictly followed the recommendations in the data sheet, but I must have missed something!