Post Go back to editing

AD7793 output clamped to all zeros

Hey guys. 

I'm trying to include analog devices CN0326  pH-measuring circuit in an already existing measuring circuit controlled by an MSP430. 
For now, I have removed the isolator (ADum5401) because it rendered my LED display in an unpowered state. But this shouldnt affect any signals, since it only isolates between two digital areas. 

Anyhow, the problem at hand is, that the adc only outputs zeroes. 
I have solid SPI communication with the chip, and I can update and read from registers without any issues. I'm running on a very low bus-speed just to make sure my problems aren't SPI related (allthough I haven't ruled that out 100% yet). 

I start my software like so: 

Read ID register (I get the correct value) 

Internal fullscale calibration 

Internal zeroscale calibration

Set the mode register (Idle mode, 64kHz internal clk and 4.17Hz update rate). 

Set the config register (bipolar, Gain 1, buffered mode, ch1)   

I read both mode and config register back, and the correct values are stored. 

Then a lot of other stuff happens (regarding the other circuit) and when its time to convert, I change the mode reg to a single conversion, the config register to the fitting channel (Ch1 for pH, Ch2 for temperature). 

I'm supposed to measure ph in a -420 mV to 420mV span, but right now, I have tried every kind of voltage and configuration and I still can't get a conversion. 

I might not have configured it correctly even once. At this point I kinda blinded myself by trying so many different things. 

So for a +-420 mV range, how should i configure the adc with bias voltages, references etc etc. 

If you need any more info, please let me know. 

Parents
  • Hi,

    For the first two set of pictures, the DRDY pin looks like pulsing at the correct output data rate. However, there are spaces shows that it doesn't pulse for a few times. If DRDY stops pulsing at any time, this indicates that the serial interface becomes asynchronous or it indicates that incorrect data has been written to the device (incorrect number of SCLK pulses, glitches on the SCLK line) or the device may be seeing noise in the SPI lines. For the second picture, you mentioned that you have used single conversion mode, in singe conversion mode the ADC performs single conversion, DRDY goes low and the ADC returns to power down mode. The on-chip oscillator requires 1 ms to power up. You are timing out the reading of the conversion, it is best to use the DRDY pin to monitor the conversions and then you can read the conversion once it goes low. For the scope shot reading the status register, May I know the label of the signals? The status register is only an 8 bit register, your clock cycles looks like too many for an 8 bit data. For the last set of pictures, I don't get the values written on the DIN as well as the number of SCLK pulses. To read a conversion, you should write 0x58 and then apply 24 clock cycles.

    Thanks,

    Jellenie

Reply
  • Hi,

    For the first two set of pictures, the DRDY pin looks like pulsing at the correct output data rate. However, there are spaces shows that it doesn't pulse for a few times. If DRDY stops pulsing at any time, this indicates that the serial interface becomes asynchronous or it indicates that incorrect data has been written to the device (incorrect number of SCLK pulses, glitches on the SCLK line) or the device may be seeing noise in the SPI lines. For the second picture, you mentioned that you have used single conversion mode, in singe conversion mode the ADC performs single conversion, DRDY goes low and the ADC returns to power down mode. The on-chip oscillator requires 1 ms to power up. You are timing out the reading of the conversion, it is best to use the DRDY pin to monitor the conversions and then you can read the conversion once it goes low. For the scope shot reading the status register, May I know the label of the signals? The status register is only an 8 bit register, your clock cycles looks like too many for an 8 bit data. For the last set of pictures, I don't get the values written on the DIN as well as the number of SCLK pulses. To read a conversion, you should write 0x58 and then apply 24 clock cycles.

    Thanks,

    Jellenie

Children
No Data