| 
   
    |  |  
    |  |  
   
    | The NEC UPD7004C is an ADC chip found in OBD0 MPFI ECUs.
Documentation on it was very hard to find.  :)  We looked and googled for months, and then finally I emailed NEC and they got back to me within 10 hours!!! Talk about customer service!  Download the uPD7004C.PDF datasheet
l3st4rd says:
i got a description of the uPD7002.  it has 3 internal registers(here 4000, 4001, 4002): 
a measure is started by sending one byte to the control register. it can operate in 8 and 12 bit mode. the control bits are: 4000h is the control register
 4001 and 4002 are the data registers.
 
*note by 1net: Please take the above description with a grain of salt as it is NOT for 7004.
In upd7004, we have only 2 registers: 4000 and 4001. The upd7004 has only 10bit mode, but since the code only reads 4001, the resolution is effectively 8bit... the 2lsb are discarded and not read.
In practice, use of the chip is somewhat like what follows: bit 0: } control bits for channel multiplexer
 bit 1: } 00 = channel 0, 01 = channel 1, 10 = channel 3...
 bit 2: no function (or possilby 3rd channel ctrl bit for 7004?)
 bit 3: 1 = 12bit mode, 0 = 8bit mode
 bit 4 to 7: no function
 
Now that we have the datasheet, this can more definitively be settled.
Note to self:  chip is used exclusively in parallel mode.  Make appropriate changes to the following table.
Further note: Channel 7 is multiplexed using a Toshiba 8 channel analog MUX.  15 channels total A/D capability in ECU. the external interrupt 1 routine jumpes to 0064h, where it reads the value from 4001h (A/D HIGH byte).
 then it resets the A/D low byte by writing 0 to 4001h
 then it starts the next 8bit measure by sending 0 - 7 to 4000h(control register).
 the first seven times it takes the values from channel 0 to 6 and stores them at external ram 0000h - 0006h. *the next 8 times, it's called, it takes the value from channel 7 and stores it at external ram 0007h - 000Eh (this all assuming that internal mem 07Dh is a counter from 0 to 0Eh)
  | function | short | pin | uPD7004C | pin | short | function |  | Channel 4 | CH4 | 1 | uPD7004C | 28 | CH3 | Channel 3 |  | Channel 5 | CH5 | 2 | uPD7004C | 27 | CH2 | Channel 2 |  | Channel 6 | CH6 | 3 | uPD7004C | 26 | CH1 | Channel 1 |  | Channel 7 | CH7 | 4 | uPD7004C | 25 | CH0 | Channel 0 |  | Reference Voltage | VREF | 5 | uPD7004C | 24 | GND | Analog Ground |  | Digital GND | GND | 6 | uPD7004C | 23 | VDD | Analog supply |  |  | DB7/SO | 7 | uPD7004C | 22 | _CS | Chip select |  |  | DB6/SI | 8 | uPD7004C | 21 | _RD/SCI |  |  |  | BD5/_SHIFT | 9 | uPD7004C | 20 | A0 | control address input |  |  | DB4/SCKO | 10 | uPD7004C | 19 | _WR/_STB |  |  |  | DB3/SOEN | 11 | uPD7004C | 18 | MC | Mode select (high=parallel) |  |  | DB2/CODE | 12 | uPD7004C | 17 | CLK | Clock |   channel mapping (including MUX):|  | DB1/DEV1 | 13 | uPD7004C | 16 | EOC | End Of Converstion (Active low) |  |  | DB0/DEV0 | 14 | uPD7004C | 15 | VDD | Digital Power suppply |   | ADC-channel | MUX-channel | sensor |  | 0 | - | MAP sensor |  | 1 | - | TP sensor |  | 2 | - | Alternator (voltage regulator) |  | 3 | - | PA sensor |  | 4 | - | ECT sensor |  | 5 | - | IAT sensor |  | 6 | - | '89-91 JDM Si R? : secondary O2; '88-91 US Si / HF, '88-89 US teg: EGR |  | 7 | 0 | O2 sensor |  | 7 | 1 | voltage reference for ADC ? |  | 7 | 2 | ? |  | 7 | 3 | ? |  | 7 | 4 | ? |  | 7 | 5 | ? |  | 7 | 6 | ELD |  | 7 | 7 | Connector B18 (unused ???) |   | Attachment?: | Modify: | Size: | Date: | Who: | Comment: | 
|---|
 |  uPD7004C.PDF | mod | 556339 | 05 Mar 2004 - 18:37 | blundar | Datasheet for UPD 7004C |  |  
      
       | Copyright © 2002-present by the contributing authors. All material on this collaboration platform is the property of the contributing authors, and is covered by the Non-Commercial Share-Alike License unless explicitly stated otherwise.
 |  |