Velocímetro / odômetro no IN14


Bom dia
Mais uma vez, a criatividade atacou. Decidi atualizar o velocímetro antigo no tanque de batalha VAZ 2121. Depois de fazer uma auditoria nas caixas, encontrei 3 peças IN14. Não é suficiente para um relógio, muito para um termômetro. Não existe - não aqui. No velocímetro - é isso.
Para começar, o velocímetro padrão foi removido e destruído. A milhagem atual é salva em um pedaço de papel, para ser honesto. Foi adquirido um sensor de velocidade de 10 pulsos por rotação (DSA-3). Como indicadores de velocidade - o mencionado IN14, para exibir quilometragem, horas e outras coisas - amplamente conhecidos em círculos estreitos de designers da AON no z80 - ALS318.

Inicialmente, o núcleo do dispositivo era PIC18F452 para a abundância de GPIO. Então me deparei com o expansor de porta i2c mcp23017, que eu desejava acessar há muito tempo. Com ele, a necessidade de muitos GPIOs desapareceu e o msp430g2452, que estava perto de mim nos últimos designs, foi escolhido. Também encontrado RTC - i2c assistir ds1307.
O IN14 requer 170 volts para operação normal. O DC-DC de intensificação foi montado de acordo com um circuito testado no MC34063 + IRF740. Vou descrever algumas das nuances que apareceram durante o processo de criação.
1. A caixa redonda . Não é uma forma conveniente para a colocação dentro de eletrônicos e monitores. Eu tive que fazer a estrutura interna modular com vários conectores. A tarefa também era tornar a caixa hermética (bem, ou quase hermética), já que a linha de água é mais alta que o teto devido às condições de operação do carro. Isso foi decidido preenchendo os orifícios em excesso com cola epóxi e instalando um único conector para comunicação com o mundo exterior. Na verdade, design:

e conector:

2. Indicação dinâmica. Para não notar a troca de descargas durante uma exibição dinâmica, tão irritante para certas pessoas, a taxa de atualização de cada descarga deve ser de pelo menos 100 Hz. É verdade que existem quem vê 100 Hz, mas eu não os monto neste carro. Dos dois indicadores, o mais "difícil" deste ponto de vista é o ALS318 de 9 bits. Acontece que a taxa de atualização deve ser de pelo menos 9 * 100 Hz. Para simplificar o cálculo dos intervalos - foi escolhida uma taxa de atualização de 1 kHz. O circuito ALS318 está conectado ao expansor de portas mcp23017. Porta A - segmentos, porta B - bits. O nono bit é controlado diretamente a partir do GPIO do microcontrolador. Acontece que a cada milissegundo é necessário atualizar o estado das portas A e B do expansor via i2c. A próxima nuance saiu daqui.
3. Troca lenta de i2c com ds1307. No nosso caso, dois escravos estão pendurados no barramento i2c. Expansor de porta e relógio. Estes últimos não acompanham a frequência do SCL acima de 100 kHz, enquanto o expansor pode funcionar em frequências de até 1,7 MHz. Para atualizar as portas do expansor, é necessário escrever 4 palavras de 8 bits no i2c a cada 1 ms (endereço do expansor, endereço da porta A, dados da porta A, dados da porta B). Durante a inicialização, o expansor é programado para incrementar automaticamente os endereços dos registros internos ao ler / gravar. E o endereço da porta B segue imediatamente o endereço da porta A, que economiza na transferência de um endereço adicional da porta B. Para garantir um tempo de processamento curto do procedimento de atualização, foi escolhida a frequência de clock do SCL de 500 kHz. Além disso, é realizada uma pesquisa do estado do relógio uma vez a cada 100 ciclos de atualização da tela, ou seja, a cada 100ms.O procedimento de polling do relógio define a frequência do SCL para 100kHz aceitável para ds1307. Ao depurar a troca pelo i2c, o analisador lógico SaleaeLogic USB (8 canais, amostragem de até 24 MHz) ajudou bastante. Suave é capaz de decodificar vários protocolos, incluindo o i2c.

4. Nutrição . O velocímetro para armazenar o tempo é constantemente alimentado pela bateria e para operação - a tensão fornecida quando a ignição é ligada. O último é alimentado por um conversor e decodificador DC-DC para o IN14, um expansor de portas. Na ausência de tensão de ignição - o dispositivo é colocado no modo de armazenamento. Se a chave de ignição estiver ligada, a indicação inicia, são permitidas interrupções no sensor de velocidade. Quando a ignição é desligada, as leituras do odômetro são registradas na memória não volátil do microcontrolador.
5. Gerenciamento Para acertar o relógio, redefina os odômetros (existem dois deles, exceto o contador principal de milhas), foi usado um codificador com um botão (honestamente roubei a imagem na rede. Meu codificador já está cheio de adesivo hot-melt para impermeabilização):

6. Níveis lógicos de escravos i2c. Como o relógio ds1307 é alimentado por 5V e o microcontrolador e o expansor de porta de 3,3V - os resistores pull-up do barramento i2c estão conectados a 3,3V. De acordo com a folha de dados do ds1307, a tensão da unidade lógica é de 2,2V, e 3,3V estará totalmente operacional.
7. Cão de guardaO sistema usa uma interface i2c de hardware, enquanto o processador "dorme" enquanto aguarda o envio / recebimento de um byte. No caso de falha / desligamento da ignição neste momento, o microcontrolador pode não esperar o escravo responder e permanecer no modo "inativo". Para eliminar essas interrupções, é usado o watchdog de hardware do microcontrolador. No loop principal, o watchdog é redefinido constantemente. No caso de um desligamento, o loop principal para e o cão de guarda transborda, enviando uma redefinição para o microcontrolador. Para determinar a natureza da redefinição (ativação ou monitoramento), uma variável é introduzida no programa que não é inicializada durante a redefinição (#pragma NOINIT). Se for igual ao valor conhecido, houve uma redefinição pelo watchdog.
8. CalibraçãoEm princípio, a calibração já pode ser feita em batalha, por exemplo, para viajar a uma certa velocidade em gps. Depois de digitar, por exemplo, 30 km / h - clique na tampa e o velocímetro lembrará a freqüência de pulso medida correspondente a 30 km / h. Mas na parede traseira havia uma inscrição interessante:

assim, 10 pulsos do sensor de velocidade corresponderão a um metro percorrido pelo carro. Se houver diferenças significativas, farei os ajustes necessários.
9. resistência à vibração.O dispositivo foi projetado para operação difícil do ponto de vista das condições de vibração. Não encontrei informações sobre a resistência à vibração do IN14 na Internet. O tempo, como se costuma dizer, dirá. As conexões elétricas são feitas pelo bom e velho MGTF. Após a verificação dos módulos, eles foram preenchidos com cola epóxi. A propósito, no preço fixo, achei bastante cola para mim no fator de forma das seringas duplas.
Aqui estão os elementos de design:





10. Diversos. A milhagem existente salva anteriormente dos pedaços de papel mencionados acima na memória não volátil. Falando dela. A memória não volátil é organizada página por página no msp430. Os três primeiros estão disponíveis para o usuário. O quarto armazena os dados de calibração do relógio. As leituras do contador principal de milhagem e dois odômetros adicionais redefiníveis são salvos em sequência, preenchendo as três primeiras páginas do flash por vez. Ao chegar ao final da terceira página - as três primeiras são apagadas e a gravação começa novamente a partir do início da primeira. Assim, o recurso flash é aumentado, embora o recurso do interruptor de ignição (o salvamento ocorra quando a ignição é desligada) é, obviamente, menor que o recurso de apagar o registro flash.
No painel:

Em princípio, tudo. À espera de comentários e comentários. Arquive com as fontes e o esquema no diptrace de acordo com a tradição da figura :
Infelizmente, o habrastorage atualizado reconhece o arquivo da figura e não permite que ele seja salvo. Aqui estão as fontes e o esquema:
dl.dropboxusercontent.com/u/974924/nivaCon2.rar
PS E sim, Essas lâmpadas IN14 têm realmente 44 anos.
Não foi possível remover o vídeo PPS em movimento. Mãos insuficientes. Determinação da velocidade verificada pelo GPS. Desvios de ± 4 km / h a uma velocidade de 40 km / h. Precisão bastante suficiente.

Aqui está o vídeo:

Eu atirei assim:

Source: https://habr.com/ru/post/pt396433/


All Articles