reading the ADC0804

D

Thread Starter

dotnetasp

Hi,

If you have worked with the ADC0804, I would like to know how do you make sure you always read the LATEST measurement out of the 8 pins. I notice a few people have tried to use the ADC0804 or similar in order to take digital readings off an analog temperature sensor (such as the LM35). I have had trouble reading the measurements off the ADC0804, even when my sensor is surrounded by ice-cubes (to drop the temperature) the ADC output pins hardly ever change state. Once I manage to get a sensible reading off the ADC, it stays there regardless of tempereture changes, until I reboot the chip. Could this be a timing/clocking issue? I am controlling the ADC0804 directly from my PC's parallel port - I manually enable the chip, then take the WR pin from high to low and back to high, then drive the RD pin low and measure the voltages at the 8 output pins - I don't bother with the INT. Any advice would be welcomed.

thanks.
 
M
Try checking the ADC circuit input thru a potentiometer in a single ended configuration. This would enable u to decide whether the problem lies with the ADC or the sensor circuitry.

And how exactly are u manually changing the control inputs?? Make sure CS is low at all times
 
I measure the input voltage from the sensor to the adc (V+ pin) and it is always what it should be. I am positive this has to do with the ADC, not the sensor.

The control inputs are directly tied to pins on the PC's parallel port. I have created a little program that drives individual pins of the parallel port High or Low so I use that program to control CS, WR & RD. I have used the program in other applications and also I have measured the voltages at the ADC's control pins to make sure it works and it does work. Does RD have do be set low after a specific number of clock cycles past the beginning of the conversion?
 
ADC0804 requires proper reference voltage for conversion of analog to digital. It also need clock source. For reading ADC0804, you need to write to ADC something and then read from same address. I have a test board for ADC0804 that fits into PC parallel port. Output from ADC is a binary byte.

If your oscillator is not working - then ADC will not convert.

If you do not give write pulse, then ADC will give old data. Write pulse need to be 200ns or more low active.

If output is not enabled then you will not read data but will read something else.

If your reference voltage is 2.5V then 5V signal = 255 number. If your reference is 1V then 2V signal = 255 number.

If you need any other help then write to me.

Shyam

www.sensorstechnology.com
 
Hi, would someone be able to show me how the chip is connected to the parallel port socket. I only wish to send data to the pc. I wish to just to send 8 bits to the pc (a 0-255 integer). My software will do record it.

Thanks
 
sir how can i calibrate the ADC0804 to properly get the exact output then convert the binary output of ADC0804 to display it in a seven segment display???
 
Hello,

Thx for the very intersting info, but I am having similar work to do and I need a piece of code that reads the data the ADC sends to the parallel port. Can you halp me with that PLC?
 
Here is the process to get almost accurate data from ADC0804.

1. Connect CS pin, V(-ve) pin, AGND and DGND to ground.

2. Give a 0 to WR pin, and then a 1. The low-to-high edge will start data conversion. The high-to-low will eventually set the INTR pin to high.

3. Check when the INTR pin goes low. If INTR pin is 0, we're sure that the data is converted.

4. Give a 0 to RD pin. Data will be present at the data port of ADC. Read it, and then set RD to 1.

You can use any programming language, but the processes from (1) to (4) must be sequencially oriented.

If you want the code, mail me!
 
is it possible to connect LM 35 to ADC0804 and as an output i will connect 8 LEDs to see my parallel output? without use of any processor or controller.
 
Greetings,

I'm using the ADC0804, and while running some tests, I've seen that the output is inverted. see, when the input is 0 V the digital output is at its max which is 255, and when the input voltage matches the Reference, the output is 0... Anyone know why this happens?
 
Top