05/06 Actualización del velocímetro ZX636 ZX6R
Hola a todos.
Hace un tiempo hubo una gran discusión sobre cómo instalar un velocímetro ZX6 estilo P7 en una moto de modelo anterior (típicamente el modelo 05/06 C1H).
La razón principal para hacer esto era tener los bonitos diales blancos fácilmente legibles en lugar del tipo LCD, que es bastante ingenioso pero menos claro.
Bueno, en resumen, se podía reemplazar el velocímetro (de hecho, los pernos de montaje son exactamente iguales para ambos modelos) siempre que se hiciera un adaptador (porque el velocímetro usaba un conector diferente en el nuevo modelo). Sin embargo, había que soportar una molesta luz de advertencia intermitente causada por la falta de comunicación de la ECU con los relojes. La única solución en ese momento era cubrir la luz con cinta adhesiva, pero entonces no se tendría el beneficio de ninguna advertencia real.
Por fin me he dedicado a la ingeniería inversa de la señal de comunicación entre una ECU P7 y un velocímetro P7. La idea es instalar un pequeño circuito de microchip para engañar al nuevo velocímetro y hacer que todo funcione perfectamente en un ZX636 del 05. De hecho, no solo se comporta la luz de advertencia, sino que también podemos hacer que el indicador de marcha funcione correctamente (es decir, hacer un gadget tipo TRE) también.
No espero que esto sea de mucha utilidad para la mayoría de la gente, pero quería poner la información en el dominio público, ya que aparentemente no se conoce. Se necesitaría ser ingeniero electrónico para hacer uso de esto.
OK, aquí vamos con la parte 1. Las señales:
La línea de comunicación de la ECU del velocímetro tiene una resistencia de pull-up incorporada a 10v, por lo que para inyectar una señal necesitamos un accionamiento de colector abierto.
La línea de comunicación es normalmente HI (9,8v más o menos)
Los datos se envían en tres paquetes con un período de 10 ms entre el inicio de cada byte de datos.
La señal de datos se repite con un período de 80 ms (o aproximadamente 60 ms desde el final de un paquete hasta el inicio del siguiente).
Si los datos se interrumpen, después de unos segundos el velocímetro informará un error FI y hará la cosa de la luz roja (LED) parpadeante, por lo que necesitamos mantener los paquetes de datos continuamente.
Los datos comienzan solo cuando se enciende el encendido.
Los tres paquetes de datos son todos serie de 8 bits más un bit de inicio (lo). El período de cada bit es de 64us.
(Los siguientes datos se escriben como si fueran un diagrama de temporización)
1ª marcha ...10100000001..(10ms)..10000000001..(10ms)..10100000001..(60ms)..
2ª marcha ...10010000001..(10ms)..10000000001..(10ms)..10010000001..(60ms)..
3ª marcha ...10110000001..(10ms)..10000000001..(10ms)..10110000001..(60ms)..
4ª marcha ...10001000001..(10ms)..10000000001..(10ms)..10001000001..(60ms)..
5ª marcha ...10101000001..(10ms)..10000000001..(10ms)..10101000001..(60ms)..
6ª marcha ...10011000001..(10ms)..10000000001..(10ms)..10011000001..(60ms)..
Así que para la 1ª marcha, si monitoreamos la línea de señal del velocímetro a la ECU (en un velocímetro P7 a la ECU P7, por supuesto), entonces vemos que la señal va a 0v durante 64us, luego 9,8v durante 64us, luego 0v durante 448us, luego de vuelta a 9,8v
Luego hay un intervalo de 10 ms (menos 576 us) al paquete medio, que es un marco nulo: 0v durante 576 us
Después de otro intervalo de 10 ms (menos 576 us) se repite el primer byte de datos.
La línea de datos está entonces inactiva (todavía a 9,8v) durante unos 60 ms hasta que se repite todo.
(En la secuencia de datos mostrada, los puntos representan dónde está la línea de datos a un nivel constante de 9,8v)
El velocímetro utiliza estos paquetes de datos para verificar continuamente las comunicaciones con la ECU, pero, por supuesto, estos también representan en qué marcha estamos.
Siempre que se envíe alguno de estos paquetes de datos de 3 bytes, el FI/LED rojo no se activará debido a una falla de comunicación.
Si la moto está en punto muerto, no se muestra ninguna marcha en la parte LCD del velocímetro.
Si la moto está en marcha, el segmento LCD muestra la marcha 1-6 dependiendo de qué paquetes de datos se estén enviando en la línea de comunicación de la ECU.
Ahora estamos en condiciones de hacer nuestro propio indicador de marcha automático utilizando la señal de RPM del motor y del tacómetro de la rueda. Esto se hace dividiendo el conteo de RPM del motor por el conteo del tacómetro de la rueda. Ambas señales ya van al velocímetro para mostrar la velocidad y las revoluciones.
OK, así que seguiré esto con una parte 2: hardware barato para hacer todos los controles de señal.
Finalmente, la parte 3: este será el software para programar en un micro PIC.
Saludos
Extr400
Hola a todos.
Hace un tiempo hubo una gran discusión sobre cómo instalar un velocímetro ZX6 estilo P7 en una moto de modelo anterior (típicamente el modelo 05/06 C1H).
La razón principal para hacer esto era tener los bonitos diales blancos fácilmente legibles en lugar del tipo LCD, que es bastante ingenioso pero menos claro.
Bueno, en resumen, se podía reemplazar el velocímetro (de hecho, los pernos de montaje son exactamente iguales para ambos modelos) siempre que se hiciera un adaptador (porque el velocímetro usaba un conector diferente en el nuevo modelo). Sin embargo, había que soportar una molesta luz de advertencia intermitente causada por la falta de comunicación de la ECU con los relojes. La única solución en ese momento era cubrir la luz con cinta adhesiva, pero entonces no se tendría el beneficio de ninguna advertencia real.
Por fin me he dedicado a la ingeniería inversa de la señal de comunicación entre una ECU P7 y un velocímetro P7. La idea es instalar un pequeño circuito de microchip para engañar al nuevo velocímetro y hacer que todo funcione perfectamente en un ZX636 del 05. De hecho, no solo se comporta la luz de advertencia, sino que también podemos hacer que el indicador de marcha funcione correctamente (es decir, hacer un gadget tipo TRE) también.
No espero que esto sea de mucha utilidad para la mayoría de la gente, pero quería poner la información en el dominio público, ya que aparentemente no se conoce. Se necesitaría ser ingeniero electrónico para hacer uso de esto.
OK, aquí vamos con la parte 1. Las señales:
La línea de comunicación de la ECU del velocímetro tiene una resistencia de pull-up incorporada a 10v, por lo que para inyectar una señal necesitamos un accionamiento de colector abierto.
La línea de comunicación es normalmente HI (9,8v más o menos)
Los datos se envían en tres paquetes con un período de 10 ms entre el inicio de cada byte de datos.
La señal de datos se repite con un período de 80 ms (o aproximadamente 60 ms desde el final de un paquete hasta el inicio del siguiente).
Si los datos se interrumpen, después de unos segundos el velocímetro informará un error FI y hará la cosa de la luz roja (LED) parpadeante, por lo que necesitamos mantener los paquetes de datos continuamente.
Los datos comienzan solo cuando se enciende el encendido.
Los tres paquetes de datos son todos serie de 8 bits más un bit de inicio (lo). El período de cada bit es de 64us.
(Los siguientes datos se escriben como si fueran un diagrama de temporización)
1ª marcha ...10100000001..(10ms)..10000000001..(10ms)..10100000001..(60ms)..
2ª marcha ...10010000001..(10ms)..10000000001..(10ms)..10010000001..(60ms)..
3ª marcha ...10110000001..(10ms)..10000000001..(10ms)..10110000001..(60ms)..
4ª marcha ...10001000001..(10ms)..10000000001..(10ms)..10001000001..(60ms)..
5ª marcha ...10101000001..(10ms)..10000000001..(10ms)..10101000001..(60ms)..
6ª marcha ...10011000001..(10ms)..10000000001..(10ms)..10011000001..(60ms)..
Así que para la 1ª marcha, si monitoreamos la línea de señal del velocímetro a la ECU (en un velocímetro P7 a la ECU P7, por supuesto), entonces vemos que la señal va a 0v durante 64us, luego 9,8v durante 64us, luego 0v durante 448us, luego de vuelta a 9,8v
Luego hay un intervalo de 10 ms (menos 576 us) al paquete medio, que es un marco nulo: 0v durante 576 us
Después de otro intervalo de 10 ms (menos 576 us) se repite el primer byte de datos.
La línea de datos está entonces inactiva (todavía a 9,8v) durante unos 60 ms hasta que se repite todo.
(En la secuencia de datos mostrada, los puntos representan dónde está la línea de datos a un nivel constante de 9,8v)
El velocímetro utiliza estos paquetes de datos para verificar continuamente las comunicaciones con la ECU, pero, por supuesto, estos también representan en qué marcha estamos.
Siempre que se envíe alguno de estos paquetes de datos de 3 bytes, el FI/LED rojo no se activará debido a una falla de comunicación.
Si la moto está en punto muerto, no se muestra ninguna marcha en la parte LCD del velocímetro.
Si la moto está en marcha, el segmento LCD muestra la marcha 1-6 dependiendo de qué paquetes de datos se estén enviando en la línea de comunicación de la ECU.
Ahora estamos en condiciones de hacer nuestro propio indicador de marcha automático utilizando la señal de RPM del motor y del tacómetro de la rueda. Esto se hace dividiendo el conteo de RPM del motor por el conteo del tacómetro de la rueda. Ambas señales ya van al velocímetro para mostrar la velocidad y las revoluciones.
OK, así que seguiré esto con una parte 2: hardware barato para hacer todos los controles de señal.
Finalmente, la parte 3: este será el software para programar en un micro PIC.
Saludos
Extr400