with dot matrix LCD Display
Overview
Specifications
Recommendations
Project Resources
Available Microchip PIC Assembler Source Code
Schematics & Data Sheets
The analog-to-digital converter (ADC) output data format can be
chosen from 8 different configurations. To get rid of crosstalk in the
prototyping setup, separate every interface data wire from each other
with an extra ground wire between them (ADC to PIC interface). In the
beginning I got really confusing results because of crosstalk due to
the high frequency parts of the very short clock pulses. I use now
flat band wire, with each data (and clock) connection guarded by a
ground connection. The acquisition data from the ADC seems now to be
pretty clean and consistent.
| National Semiconductors ADC12130 A/D Converter | |
| Resolution: | 12 bit + sign |
| Max. conversion clock frequency: | 5 MHz |
| Max. serial clock frequency: | 5 MHz |
| Min. conversion time: | 8.8 us |
| Min. throughput time: | 14 us |
| Integral linearity error: | ± 2 LSB max |
| Single supply: | 3.3 - 5.0 V ± 10 % |
Do not try to connect the NSC ADC12130 to the PIC SSP interface of
some more sophisticated PICs, eg. PIC 16C74. I've spent a complete
weekend trying to do that until I finally found out that the PIC SSP
is somehow not compatible with the one of the NSC ADC12130. The clock
and the data specifications of the PIC does (in my opinion) not match
with the ones of the ADC, there's an incompatible "skew"
between them. All my attempts to configure the PIC according to the
SSP specification of the NSC ADC12130 failed...
I finally managed to get some status data out of the ADC device. I had so much trouble, because the data sheet is not very convenient to read and so I made a few mistakes. Well, the NSC ADC12130/ADC12132/ADC12138 data sheet is a perfect example of an over-engineered data sheet: In order to save documentation efforts (or maybe paper?), they managed to generate a compact configuration table (tbl. 4, p. 26), which is - although perfectly correct - quite difficult to correctly understand for all kind of ADC devices. The special representation of the data in the table is confusing and you have to be very careful to get the appropriate commands for the NSC12130 device.
|
Hello, I'm Matias and I would like to ask you some questions. constant autocal = b'00100000' constant autozero = b'00100100' But regarding the ADC12130/2/8 data sheet, autocal is 00001000 and
autozero is 00001001 and so... best wishes, I agree. Although the contents of the data sheet is absolutely correct, the way to describe for instance the configuration commands is quite special. I also needed some hours and several attempts until I finally figured out the correct configuration commands out of the data sheet for the NSC ADC12130. It is so easy to overlook some peculiarities in this data sheet. Well, they have a special notion of concise documentation - they somehow managed to sacrifice clarity for compactness. Serial Data Format Regarding the NSC ADC12138: ADC12130/ADC12132 Configuration Commands table 4, page 26 in the ADC1213x data sheet: DI0:DI5 (DI6:DI7) L L H L L L (L L) Auto Cal L L H L L H (L L) Auto Zero Existing code: ;*** CONFIGURATION COMMANDS of NSC ADC12130 *** CONSTANT AutoCal = b'00100000' CONSTANT AutoZero = b'00100100' ADC12138 Configuration Commands table 4, page 26 in the ADC1213x data sheet: DI0:DI7 L L L L H L L L Auto Cal L L L L H L L H Auto Zero New code: ;*** CONFIGURATION COMMANDS of NSC ADC12138 *** CONSTANT AutoCal = b'00001000' CONSTANT AutoZero = b'00001001' |
| Main File | HEX Files |
|
Download assembler source code: nsc12130.asm |
Download Hex File: nsc12130.hex |
| The above program needs additional include files (modules) to get successfully assembled: m_bank.asm, m_wait.asm, m_lcd.asm | |
Last updated: 2010/04/10