Conversor Analógico-Digital NEC uPD7004C
Especificações técnicas, mapeamento de pinagem e encaminhamento de canais para o chip Conversor Analógico-Digital (ADC) NEC uPD7004C em ECUs Honda OBD0 MPFI.
Adaptado de pgmfi.org wiki
O NEC uPD7004C é um circuito integrado conversor analógico-digital (ADC) de 10 bits usado em Unidades de Controlo do Motor (ECUs) Honda OBD0 Multi-Point Fuel Injection (MPFI) como a PM6 e PR3. O seu papel é converter leituras de tensão analógica dos sensores do motor (por exemplo, MAP, TPS, temperatura do líquido de refrigeração) em dados digitais que o processador principal da ECU possa interpretar.
Arquitetura e Programação
Embora o uPD7004C suporte fisicamente uma resolução de 10 bits, o código OBD0 da Honda opera o chip num equivalente a modo de 8 bits descartando os 2 bits menos significativos (LSB). O MCU lê apenas o registo de dados superior (high data register), poupando espaço de RAM e ciclos de processamento.
Mapeamento de Registos
Na arquitetura OBD0 da Honda, a interface ADC utiliza dois registos mapeados em memória:
0x4000(Registo de Controlo): Escrito para iniciar uma conversão. Enviar um valor de canal (0 a 7) para este endereço inicia uma medição nesse canal.0x4001(Registo de Dados): Lê o byte mais significativo (high byte) do valor analógico convertido.
Fluxo de Trabalho do Ciclo de Conversão
Na prática, a sequência de conversão é gerida periodicamente por uma interrupção de temporizador controlada por hardware:
- A rotina da interrupção externa 1 salta para o endereço de vetor
0x0064h. - A rotina lê o valor analógico atual do registo de dados do byte mais significativo em
0x4001h. - O registo do byte menos significativo (low byte) é reposto escrevendo
0em0x4001h. - A rotina inicia a medição seguinte escrevendo o ID do canal pretendido (
0a0x7) no registo de controlo em0x4000h. - O MCU armazena os resultados nas posições de RAM externa
0x0000ha0x0006hpara os canais 0 a 6. O canal 7 utiliza um multiplexador secundário para expandir as entradas disponíveis.
Configuração da Pinagem
O uPD7004C é apresentado num invólucro DIP de 28 pinos (Dual In-line Package). Abaixo está a configuração completa de pinagem quando operado em modo paralelo (pino de Seleção de Modo MC ligado ao nível lógico alto):
| Pino | Símbolo | Função | Pino | Símbolo | Função |
|---|---|---|---|---|---|
| 1 | CH4 | Canal 4 de Entrada Analógica | 28 | CH3 | Canal 3 de Entrada Analógica |
| 2 | CH5 | Canal 5 de Entrada Analógica | 27 | CH2 | Canal 2 de Entrada Analógica |
| 3 | CH6 | Canal 6 de Entrada Analógica | 26 | CH1 | Canal 1 de Entrada Analógica |
| 4 | CH7 | Canal 7 de Entrada Analógica | 25 | CH0 | Canal 0 de Entrada Analógica |
| 5 | VREF | Entrada de Tensão de Referência | 24 | AGND | Massa Analógica |
| 6 | DGND | Massa Digital (Terra) | 23 | AVDD | Tensão de Alimentação Analógica |
| 7 | DB7/SO | Bit de Dados 7 / Saída Série | 22 | /CS |
Seleção de Chip (Ativo em Baixo) |
| 8 | DB6/SI | Bit de Dados 6 / Entrada Série | 21 | /RD/SCI |
Habilitação de Leitura / Entrada de Relógio Série |
| 9 | DB5/SHIFT | Bit de Dados 5 / Entrada Shift | 20 | A0 | Entrada de Endereço de Controlo |
| 10 | DB4/SCKO | Bit de Dados 4 / Saída de Relógio Série | 19 | /WR/STB |
Habilitação de Escrita / Entrada Strobe |
| 11 | DB3/SOEN | Bit de Dados 3 / Habilitação de Saída Série | 18 | MC | Seleção de Modo (Alto = Modo Paralelo) |
| 12 | DB2/CODE | Bit de Dados 2 / Saída de Código | 17 | CLK | Entrada de Relógio |
| 13 | DB1/DEV1 | Bit de Dados 1 / Seleção de Dispositivo 1 | 16 | EOC | Fim de Conversão (Ativo em Baixo) |
| 14 | DB0/DEV0 | Bit de Dados 0 / Seleção de Dispositivo 0 | 15 | DVDD | Alimentação Digital (+5V) |
Mapeamento de Canais de Entrada Analógica
Como a ECU requer mais entradas analógicas do que os 8 canais nativos do uPD7004C, o Canal 7 está ligado a um multiplexador analógico (MUX) externo Toshiba de 8 canais. Isto expande eficazmente a capacidade A/D da ECU para 15 canais.
| Canal ADC | Canal MUX | Sensor Alvo / Entrada | Notas |
|---|---|---|---|
| 0 | - | Sensor MAP (Pressão Absoluta do Coletor) | Cálculo primário da carga do motor |
| 1 | - | Sensor TPS (Posição da Borboleta) | Feedback do ângulo da borboleta |
| 2 | - | Feedback da Tensão do Alternador | Monitorizado para ajustes de ralenti e carga elétrica |
| 3 | - | Sensor PA (Pressão Atmosférica) | Compensação barométrica (sensor integrado na ECU) |
| 4 | - | Sensor ECT (Temperatura do Líquido de Refrigeração do Motor) | Compensação de combustível por temperatura do líquido de refrigeração |
| 5 | - | Sensor IAT (Temperatura do Ar de Admissão) | Compensação de densidade de combustível por temperatura do ar |
| 6 | - | EGR / Sensor de O2 Secundário | JDM SiR '89-91: O2 Secundário; US Si/HF '88-91 & Teg '88-89: Sensor de elevação da EGR |
| 7 | 0 | Sensor de O2 Primário (Sonda Lambda) | Feedback de combustível em closed-loop |
| 7 | 1 | Referência interna do ADC | Verificação de tensão para diagnóstico |
| 7 | 2 | Não utilizado / Desconhecido | - |
| 7 | 3 | Não utilizado / Desconhecido | - |
| 7 | 4 | Não utilizado / Desconhecido | - |
| 7 | 5 | Não utilizado / Desconhecido | - |
| 7 | 6 | ELD (Detetor de Carga Elétrica) | Sinal de carga elétrica da caixa de fusíveis |
| 7 | 7 | Pino B18 do Conector da ECU | Feedback não utilizado ou de acessório opcional |
Fichas Técnicas (Datasheets)
Créditos e fonte
Fonte Adaptado de UPD7004C em pgmfi.org wiki. Licenciado sob CC BY-NC-SA 1.0.