Tuesday, June 9, 2015

ADC Converter Objectves



A project using the Maxim Integrated 11205 ADC.

1. Connect a function generator output to one of the channels of an oscilloscope and produce a signal of 2V (1 volt peaks) at an arbitrary frequency.  Make sure you choose the sine wave as the signal type.

2. Connect the TTL/CMOS port of the function generator to the voltage and ground pins of the the Maxim Integrated 11205 ADC.

3. The output of the Converter will connect to the input of the zedboard on the pin we choose to make an input (pin 3 (JA3) matches up with the output pin of the ADC so that would be a good choice).

4.The output of the Zedboard (pin 4 - JA4) will connect to the input of the ADC chip (pin 4 called SCLK). SCLK stands for Serial Clock Input. Any externally created clock can be read through this port.


MAX11205PMB1 Board Photo
MAX11205 ADC:

Pin 3 : MISO: Data-ready output/serial-data output. This output serves a dual function. In addition to the serial-data output function, the MISO pin also indicates that the data is ready when it is pulled logic-low by the IC. Output data changes on the falling edge of SCLK.

Pin 4: SCK: 2-wire serial clock. The host must apply an external clock signal to shift data out from the IC.



What is bit-banging?

Bit-banging is a process used for serial communications; in our case from a peripheral module to a micro-controller (Zedboard). Reading the first value, a hi or lo state (a 1 or 0), on the input pin of the Zedboard gives us the value we want to store in the memory. The value on pin 3 is shifted two values down to pin 1 where it can be read and stored in the memory. This means that any other information sent over the 8 bits of the PMOD from the ADC will also be shifted.

The value, initially which will look something like 00000100 will be shifted down two bits to become 00000001. Of course if there were other hi states coming from the ADC that made the signal look like 00001111, the value would be shifted down two bits to become 00000011. The first 4 bits will always read 0 because the ADC converter only connects to the top 6 pins of the PMOD. Each PMOd has 12 pins (6 on top 6 on the bottom) that exchange serial information. The top two on the far left and the bottom two on the far left are simply power and ground ports. So each channel on the PMOD or the 8 pins leftover correspond to 8 bits of information that can communicate between the ZedBoard and the ADC.

As stated earlier, the ADC only sends 4 bit information in the top 4 bits of the Zedboard. So our "shifted value" will look something like 0001. But to keep things standard, I will write the value with the "empty" lo state first 4 pins (pins 5-8) and we get 00000001.

This value gets operated on by an AND operator with the value of 00000001 and if the values are the same, a 1 will be stored in the 16th bit of the registry. If they do not match up, a 0 will be placed in the 16th bit. After one clock cycle, (clock sent to ADC, ADC sends value to Zedboard, gets shifted down two bits, gets "AND operated", stored in the 16th bit) and the process starts again bit banging to the 15th bit and getting a new value from the ADC. The clock cycles 25 times until the 16-bit registry is filled up with some arbitrary value. Converting this number from binary will give us the value of some voltage being fed into the ADC.

The next step would be to save these values by allocating memory on the ZedBoard. I may have some code we can work with to do so.

No comments:

Post a Comment