Velocímetro / cuentakilómetros en IN14


Buen dia
Una vez más, la creatividad atacó. Decidí actualizar el viejo velocímetro en el tanque de batalla VAZ 2121. Después de hacer una auditoría de los contenedores, encontré 3 piezas IN14. No es suficiente para un reloj, mucho para un termómetro. No allí, no aquí. En el velocímetro, eso es todo.
Para empezar, se quitó el velocímetro estándar y se destripó. El kilometraje actual se guarda en una hoja de papel, para ser honesto. Se compró un sensor de velocidad de 10 pulsos por revolución (DSA-3). Como indicadores de velocidad, el IN14 antes mencionado, para mostrar el kilometraje, las horas y otras cosas, ampliamente conocido en los círculos estrechos de diseñadores de AON en el z80 - ALS318.

Inicialmente, el núcleo del dispositivo era PIC18F452 por la abundancia de GPIO. Luego me encontré con el expansor de puerto i2c mcp23017, al que siempre había querido llegar. Con él, desapareció la necesidad de muchos GPIO, y se eligió msp430g2452, que estaba cerca de mí en los últimos diseños. También se encontró RTC - reloj i2c ds1307.
IN14 requiere 170 voltios para su funcionamiento normal. Step-up DC-DC se ensambló de acuerdo con un circuito probado en el MC34063 + IRF740. Describiré algunos de los matices que aparecieron durante el proceso de creación.
1. El caso redondo . No es una forma conveniente de colocar dentro de dispositivos electrónicos y pantallas. Tuve que hacer la estructura interna modular con varios conectores. La tarea también era hacer que la carcasa fuera hermética (bien, o casi hermética), ya que la línea de flotación en relación con las condiciones de funcionamiento del automóvil es más alta que el techo. Esto se decidió llenando los agujeros sobrantes con pegamento epoxi e instalando un solo conector para la comunicación con el mundo exterior. Diseño real:

y conector:

2. Indicación dinámica. Para no notar el cambio de descargas durante una visualización dinámica, tan irritante para ciertas personas, la frecuencia de actualización de cada descarga debe ser de al menos 100 Hz. Es cierto, hay quienes ven 100 Hz, pero no los uso en este automóvil. De los dos indicadores, el más "difícil" desde este punto de vista es el ALS318 de 9 bits. Resulta que la frecuencia de actualización debe ser de al menos 9 * 100 Hz. Para simplificar el cálculo de los intervalos, se eligió una frecuencia de actualización de 1 kHz. El circuito ALS318 está conectado al expansor de puerto mcp23017. Puerto A - segmentos, puerto B - bits. El noveno bit se controla directamente desde el GPIO del microcontrolador. Resulta que una vez cada milisegundo es necesario actualizar el estado de los puertos A y B del expansor a través de i2c. El siguiente matiz salió de aquí.
3. Intercambio lento de i2c con ds1307. En nuestro caso, dos esclavos cuelgan del bus i2c. Expansor de puerto y reloj. Estos últimos no se mantienen al día con la frecuencia SCL por encima de 100 kHz, mientras que el expansor puede funcionar a frecuencias de hasta 1.7 MHz. Para actualizar los puertos del expansor, es necesario escribir 4 palabras de 8 bits en i2c cada 1 ms (dirección del expansor, dirección del puerto A, datos para el puerto A, datos para el puerto B). Durante la inicialización, el expansor está programado para incrementar automáticamente las direcciones de los registros internos al leer / escribir. Y la dirección del puerto B sigue inmediatamente a la dirección del puerto A, que ahorra en la transferencia de una dirección adicional del puerto B. Para garantizar un corto tiempo de procesamiento del procedimiento de actualización, se eligió la frecuencia de reloj SCL de 500 kHz. Además, se realiza una encuesta del estado del reloj una vez cada 100 ciclos de actualización de la pantalla, es decir, cada 100ms.El procedimiento de sondeo del reloj establece la frecuencia SCL en 100kHz aceptable para ds1307. Al depurar el intercambio a través de i2c, el analizador lógico USB SaleaeLogic (8 canales, muestreo de hasta 24 MHz) fue de gran ayuda. Soft to it es capaz de decodificar varios protocolos, incluido i2c.

4. Nutrición . El velocímetro para almacenar el tiempo es alimentado constantemente por la batería y para la operación: el voltaje suministrado cuando se activa el encendido. El último está alimentado por un convertidor y decodificador DC-DC para IN14, un expansor de puerto. En ausencia de voltaje de ignición, el dispositivo se pone en modo de almacenamiento. Si se enciende la llave de encendido, comienza la indicación, se permiten interrupciones del sensor de velocidad. Cuando se apaga el encendido, las lecturas del odómetro se registran en la memoria no volátil del microcontrolador.
5. Administración Para configurar el reloj, reinicie los odómetros (hay dos de ellos, excepto el contador de kilometraje principal), se utilizó un codificador con un botón (honestamente robé la imagen en la red. Mi codificador ya está lleno de adhesivo termofusible para impermeabilización):

6. Niveles lógicos de esclavos i2c. Dado que el reloj ds1307 funciona con 5V y el microcontrolador y el expansor de puerto de 3.3V, las resistencias pull-up del bus i2c están conectadas a 3.3V. De acuerdo con la hoja de datos para ds1307, el voltaje de la unidad lógica es de 2.2V, luego 3.3V estará completamente operativo.
7. WatchdogEl sistema utiliza una interfaz de hardware i2c, mientras que el procesador "duerme" mientras espera que se envíe / reciba un byte. En el caso de una falla de encendido / apagado en este momento, el microcontrolador puede no esperar a que el esclavo responda y permanecer en modo de "suspensión". Para eliminar tales bloqueos, se utiliza el watchdog de hardware del microcontrolador. En el bucle principal, watchdog se reinicia constantemente. En el caso de un bloqueo, el bucle principal se detiene y el perro guardián se desborda, enviando un reinicio al microcontrolador. Para determinar la naturaleza del reinicio (encendido o watchdog), se introduce una variable en el programa que no se inicializa durante el reinicio (#pragma NOINIT). Si es igual al valor conocido, hubo un reinicio por parte de watchdog.
8. CalibraciónEn principio, la calibración se puede hacer ya en batalla, por ejemplo, para viajar a cierta velocidad en gps. Después de escribir, por ejemplo, 30 km / h, haga clic en la tapa y el velocímetro recordará la frecuencia de pulso medida correspondiente a 30 km / h. Pero en la pared posterior había una inscripción interesante: por lo

tanto, 10 pulsos del sensor de velocidad corresponderán a un metro recorrido por el automóvil. Si hay diferencias significativas de hecho, haré los ajustes necesarios.
9. Resistencia a la vibración.El dispositivo está diseñado para funcionar en condiciones difíciles desde el punto de vista de las vibraciones. No encontré información sobre la resistencia a la vibración IN14 en Internet. El tiempo, como dicen, lo dirá. Las conexiones eléctricas están hechas por el viejo MGTF. Después de verificar los módulos, se llenaron con pegamento epoxi. Por cierto, en el precio fijo encontré bastante pegamento para mí en el factor de forma de las jeringas dobles.
Aquí están los elementos de diseño:





10. Varios. Kilometraje existente guardado previamente de los trozos de papel mencionados anteriormente en la memoria no volátil. Hablando de ella. La memoria no volátil se organiza página por página en msp430. Los tres primeros están disponibles para el usuario. El cuarto almacena los datos de calibración del reloj. Las lecturas del contador de kilometraje principal y dos odómetros reiniciables adicionales se guardan secuencialmente, completando las primeras tres páginas de flash a su vez. Al llegar al final de la tercera página, las primeras tres páginas se borran y la grabación comienza nuevamente desde el principio de la primera. Por lo tanto, el recurso flash aumenta, aunque el recurso del interruptor de encendido (el ahorro se produce cuando se apaga el encendido) es, por supuesto, menor que el recurso de borrar el registro flash.
En el tablero de instrumentos:

En principio, todo. Esperando comentarios y comentarios. Archivo con fuentes y esquema en diptrace de acuerdo con la tradición en la imagen :
Desafortunadamente, el almacenamiento actualizado reconoce el archivo en la imagen y no permite que se guarde, así que aquí están las fuentes y el esquema:
dl.dropboxusercontent.com/u/974924/nivaCon2.rar
PS Y sí, Estas lámparas IN14 tienen de hecho 44 años.
El video PPS sobre la marcha no se pudo eliminar. No hay suficientes manos. Determinación de la velocidad verificada por GPS. Desviaciones de ± 4 km / h a una velocidad de 40 km / h. Precisión bastante suficiente.

Aquí está el video:

Lo filmé así:

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


All Articles