04-09-2020, 20:45
Hola,
Durante la pandemia, compré un curioso controlador de trenes japonés. ¿Que tiene de particular?. Pues que es una reproducción a escala 1:3 de una cabina típica de tren japonés. A parte de tener aceleración y deceleración controladas de manera bastante realista, pues tiene dos indicadores funcionales (velocidad y presión del freno) y sonido.
Aquí tenéis el vídeo presentación de TOMYTEC:
Cuando lo compré sabía que estaba dañado de alguna forma, aunque no sabía exactamente cómo. Cuando lo recibí tuve la peor de las decepciones. Funcionaba todo menos el control de los trenes (la salida de potencia).
Me resistí a que se convirtiera en un “pongo” y decidí intentar hacer ingeniería inversa. Abrí el “asunto” y me encontré con una agradable sorpresa. El microcontrolador es un PIC de MICROCHIP. Hace años había trabajado con los PIC en bastante profundidad, por lo que en lo que al microcontrolador se refiere, no tenía que haber problema.
Analisis de la placa
Aquí tenéis una foto de la placa (@iruchan)
Lo primero que tuve que hacer fue entender un poco el funcionamiento del sistema. Por tanto el paso 1 era la detección de los componentes clave del sistema:
• Microcontrolador PIC16F886
• Driver de motor LB1948MC
• Chip de sonido aP89341 (en la cajita blanca de la derecha)
El resto son componentes discretos (Resistencias, condensadores, transistores…).
Una vez identificados esos componentes clave, lo siguiente fue trazar las conexiones entre el microcontrolador y los distintos periféricos y conectores. Hay 4 conectores:
1. Tarjeta de Sonido
2. Módulo de Sonido e indicadores
3. Módulo de Freno
4. Módulo de Apertura y Cierre de puertas
Con un multímetro y una lupa digital (cámara con pantalla para poder ver de cerca), pude sacar el pistado del circuito
1. Tarjeta de Sonido
2. Módulo de Sonido e indicadores
3. Módulo de Freno
4. Módulo de Apertura y Cierre de puertas
A parte de los conectores, hay algunos componentes internos que también se conectan al Microcontrolador:
Con todo el conexionado del microcontrolador trazado, el siguiente paso es ver cómo tienen que salir y entrar las señales al microcontrolador, para que luego el programa pueda interpretarlas.
Vayamos por partes:
MASCON: Master controller o regulador de velocidad.
Es un potenciómetro que manda una señal de 0 a 5 V al pin del microcontrolador.
Aunque un potenciómetro ofrece una curva contínua de 0 a 5V, mecánicamente hay 5 posiciones:
1. Stop
2. Velocidad 1
3. Velocidad 2
4. Velocidad 3
5. Velocidad 4
Por tanto lo que hice fue mirar que voltaje llega al pin del microcontrolador en cada posición. Luego con un convertidor Analógico - Digital del Micro, puedo leer la tensión y determinar la posición y por tanto la velocidad.
Accionador de Freno:
Al igual que el MASCON, es un potenciómetro, que en este caso no tiene posiciones fijadas mecánicamente. Por tanto llega una tensión de 0 a 5V al pin del Microcontrolador y de nuevo uso un conversor Analógico - Digital para saber su posición.
En este caso, no entendí el motivo por que hay 2 pins del microcontrolador conectados al potenciómetro, si solo hace falta uno para la actuación del freno. Es posible que en el funcionamiento del equipo de origen, en algún momento (supongo que cuando acelera) se “desconecte” el potenciómetro para ahorrar energía, y que eso se haga a través del pin del microcontrolador.
Interruptor de Apertura y Cierre de Puertas
Es una lectura digital, de 5V o 0V. El circuito es un interruptor que tiene un pin conectado a masa, y el otro a la pata del microcontrolador con una resistencia de Pull-up a positivo.
Me ha resultado curioso que hayan utilizado el pin de RESET del microcontrolador para esta entrada. Realmente es una simple entrada digital por lo que no requiere de mucha depuración. Pero hasta donde he llegado, el pin de al lado no se utiliza. Hubiera sido más fácil dejar el pin de RESET con esa función, y utilizar el de su lado como entrada digital.
Salidas PWM 1 y 2
Son salidas directas de una señal cuadrada con modulación de ancho de pulso para controlar la velocidad del tren. Los dos pines están conectados a las entradas del Circuito Integrado Driver de Potencia. No hace falta poner esquema.
https://es.wikipedia.org/wiki/Modulaci%C..._de_pulsos
Como información sobre la señal PWM, se trata de una señal con una frecuencia de aproximadamente 19.6KHz. Esta frecuencia es generada por el propio microcontrolador.
Lectura Velocidad
Me resultó muy curioso que se midiera la velocidad pinchando en la salida de potencia, y en un principio no veía su utilidad. Como he dicho justo arriba, la salida es una modulación por ancho de pulso, y si se quiere utilizar para algo esa información, hay que procesar esa señal.
¿Por qué lo hacen de esta manera? Pues porque la indicación de velocidad se hace directamente en base a la lectura de la salida de potencia, en lugar de mirar el valor del ancho de pulso que le aplicas al PWM. Digamos que muestra la velocidad real del tren, no la que estás aplicando por Software.
Para hacerlo, hay que convertir el PWM en una señal contínua y adaptarla de los 9V de salida a un máximo de 5V que admite el Microcontrolador. Para ello se utiliza el siguiente circuito:
Las dos resistencias actúan de divisor de tensión:
Vout = PWM*R1 / (R2+R1)
Por tanto, si aplicamos la fórmula a los 9V de entrada, tenemos que la Vout es de 2,87V.
El condensador actúa de filtro. Es decir, convierte la señal cuadrada de entrada en una señal contínua con el valor promedio de tensión correspondiente al Duty Cycle aplicado. Es decir, si tenemos un DC del 50%, significa que durante el 50% del tiempo la señal de salida es 9V y el otro 50% es 0, por lo que su promedio es de 4,5V en un periodo (1,435V después del divisor de tensión). El condensador es el encargado de hacer ese “promedio” ya que su tiempo de carga y descarga es mucho más lento. Tendría que meterme en teoría electrónica, pero tampoco es el propósito de este artículo.
Posición Agujas Velocidad y Presión Freno
Fue el que más quebraderos de cabeza me dió, ya que en el Módulo de Sonido e indicadores hay un circuito auxiliar que ayuda a manejar los indicadores.
Los indicadores son un módulo compacto y no se puede desmontar fácilmente, por lo que tuve que descubrir a base de prueba y error como funciona.
Cada indicador cuenta con 2 elementos electrónicos:
1. Motor que mueve una rueda dentada.
2. Potenciómetro en el eje de la aguja
El motor puede moverse en ambas direcciones, por lo que se necesitan 2 señales que nos permitan tener 3 estados del motor:
1. Parado
2. Giro Horario (CW)
3. Giro Antihorario (ACW)
Para controlar un motor con estas características, se utiliza un Puente en H https://es.wikipedia.org/wiki/Puente_H_(...C3%B3nica)
De nuevo, no es la intención de este artículo explicar detalladamente como funciona un puente en H. Pero básicamente se basa en la activación de los transistores de una manera u otra para que el motor gire en un sentido u otro. Creo que esta imagen es bastante ilustrativa:
Concretamente el circuito utilizado es idèntico a este, hecho con transistores bipolares (aunque a este le falten las resistencias ya que es un esquema conceptual):
Por tanto, tenemos la siguiente tabla de combinación de las salidas
Por tanto ya podemos manejar el motor hacia ambos sentidos.
Lecturas Indicador Velocidad y Presión
Como he comentado, en el eje de la aguja hay un potenciómetro de 360º. Es decir, no tiene final de recorrido. Cuando ha dado la vuelta entera, vuelve al valor inicial. El funcionamiento es como la lectura del MASCON. Solo hay que identificar los valores correspondientes al valor 0 de la aguja (p. ej. 0km/h) y el valor máximo (p.ej. 120km/h) para tener una referencia de posición y poder hacer un recalibrado al iniciar el funcionamiento.
Es un puerto de salida del microcontrolador que activa o desactiva el LED. Va con lógica invertida, es decir, el LED se enciende cuando pones el pin al valor 0. Esto es debido a cómo está hecho el circuito. Normalmente a los microcontroladores les es más fácil drenar corriente que proveer corriente.
Pedal Bocina
Funciona igual que el interruptor de apertura de puertas.
Selector dirección
Es un selector que tiene 3 posiciones:
1. Parado
2. Avance
3. Retroceso
Para hacer estas tres funciones, tenemos tres combinaciones de pins que entran al microcontrolador. Solo hay que detectar en cual de las tres combinaciones está para poder saber la posición del selector.
Hasta aquí la primera parte. En la siguiente explicaré como funciona el chip de sonido y un poco como está hecho el SW.
FIN PARTE 1
Durante la pandemia, compré un curioso controlador de trenes japonés. ¿Que tiene de particular?. Pues que es una reproducción a escala 1:3 de una cabina típica de tren japonés. A parte de tener aceleración y deceleración controladas de manera bastante realista, pues tiene dos indicadores funcionales (velocidad y presión del freno) y sonido.
Aquí tenéis el vídeo presentación de TOMYTEC:
Cuando lo compré sabía que estaba dañado de alguna forma, aunque no sabía exactamente cómo. Cuando lo recibí tuve la peor de las decepciones. Funcionaba todo menos el control de los trenes (la salida de potencia).
Me resistí a que se convirtiera en un “pongo” y decidí intentar hacer ingeniería inversa. Abrí el “asunto” y me encontré con una agradable sorpresa. El microcontrolador es un PIC de MICROCHIP. Hace años había trabajado con los PIC en bastante profundidad, por lo que en lo que al microcontrolador se refiere, no tenía que haber problema.
Analisis de la placa
Aquí tenéis una foto de la placa (@iruchan)
Lo primero que tuve que hacer fue entender un poco el funcionamiento del sistema. Por tanto el paso 1 era la detección de los componentes clave del sistema:
• Microcontrolador PIC16F886
• Driver de motor LB1948MC
• Chip de sonido aP89341 (en la cajita blanca de la derecha)
El resto son componentes discretos (Resistencias, condensadores, transistores…).
Una vez identificados esos componentes clave, lo siguiente fue trazar las conexiones entre el microcontrolador y los distintos periféricos y conectores. Hay 4 conectores:
1. Tarjeta de Sonido
2. Módulo de Sonido e indicadores
3. Módulo de Freno
4. Módulo de Apertura y Cierre de puertas
Con un multímetro y una lupa digital (cámara con pantalla para poder ver de cerca), pude sacar el pistado del circuito
1. Tarjeta de Sonido
2. Módulo de Sonido e indicadores
3. Módulo de Freno
4. Módulo de Apertura y Cierre de puertas
A parte de los conectores, hay algunos componentes internos que también se conectan al Microcontrolador:
Con todo el conexionado del microcontrolador trazado, el siguiente paso es ver cómo tienen que salir y entrar las señales al microcontrolador, para que luego el programa pueda interpretarlas.
Vayamos por partes:
MASCON: Master controller o regulador de velocidad.
Es un potenciómetro que manda una señal de 0 a 5 V al pin del microcontrolador.
Aunque un potenciómetro ofrece una curva contínua de 0 a 5V, mecánicamente hay 5 posiciones:
1. Stop
2. Velocidad 1
3. Velocidad 2
4. Velocidad 3
5. Velocidad 4
Por tanto lo que hice fue mirar que voltaje llega al pin del microcontrolador en cada posición. Luego con un convertidor Analógico - Digital del Micro, puedo leer la tensión y determinar la posición y por tanto la velocidad.
Accionador de Freno:
Al igual que el MASCON, es un potenciómetro, que en este caso no tiene posiciones fijadas mecánicamente. Por tanto llega una tensión de 0 a 5V al pin del Microcontrolador y de nuevo uso un conversor Analógico - Digital para saber su posición.
En este caso, no entendí el motivo por que hay 2 pins del microcontrolador conectados al potenciómetro, si solo hace falta uno para la actuación del freno. Es posible que en el funcionamiento del equipo de origen, en algún momento (supongo que cuando acelera) se “desconecte” el potenciómetro para ahorrar energía, y que eso se haga a través del pin del microcontrolador.
Interruptor de Apertura y Cierre de Puertas
Es una lectura digital, de 5V o 0V. El circuito es un interruptor que tiene un pin conectado a masa, y el otro a la pata del microcontrolador con una resistencia de Pull-up a positivo.
Me ha resultado curioso que hayan utilizado el pin de RESET del microcontrolador para esta entrada. Realmente es una simple entrada digital por lo que no requiere de mucha depuración. Pero hasta donde he llegado, el pin de al lado no se utiliza. Hubiera sido más fácil dejar el pin de RESET con esa función, y utilizar el de su lado como entrada digital.
Salidas PWM 1 y 2
Son salidas directas de una señal cuadrada con modulación de ancho de pulso para controlar la velocidad del tren. Los dos pines están conectados a las entradas del Circuito Integrado Driver de Potencia. No hace falta poner esquema.
https://es.wikipedia.org/wiki/Modulaci%C..._de_pulsos
Como información sobre la señal PWM, se trata de una señal con una frecuencia de aproximadamente 19.6KHz. Esta frecuencia es generada por el propio microcontrolador.
Lectura Velocidad
Me resultó muy curioso que se midiera la velocidad pinchando en la salida de potencia, y en un principio no veía su utilidad. Como he dicho justo arriba, la salida es una modulación por ancho de pulso, y si se quiere utilizar para algo esa información, hay que procesar esa señal.
¿Por qué lo hacen de esta manera? Pues porque la indicación de velocidad se hace directamente en base a la lectura de la salida de potencia, en lugar de mirar el valor del ancho de pulso que le aplicas al PWM. Digamos que muestra la velocidad real del tren, no la que estás aplicando por Software.
Para hacerlo, hay que convertir el PWM en una señal contínua y adaptarla de los 9V de salida a un máximo de 5V que admite el Microcontrolador. Para ello se utiliza el siguiente circuito:
Las dos resistencias actúan de divisor de tensión:
Vout = PWM*R1 / (R2+R1)
Por tanto, si aplicamos la fórmula a los 9V de entrada, tenemos que la Vout es de 2,87V.
El condensador actúa de filtro. Es decir, convierte la señal cuadrada de entrada en una señal contínua con el valor promedio de tensión correspondiente al Duty Cycle aplicado. Es decir, si tenemos un DC del 50%, significa que durante el 50% del tiempo la señal de salida es 9V y el otro 50% es 0, por lo que su promedio es de 4,5V en un periodo (1,435V después del divisor de tensión). El condensador es el encargado de hacer ese “promedio” ya que su tiempo de carga y descarga es mucho más lento. Tendría que meterme en teoría electrónica, pero tampoco es el propósito de este artículo.
Posición Agujas Velocidad y Presión Freno
Fue el que más quebraderos de cabeza me dió, ya que en el Módulo de Sonido e indicadores hay un circuito auxiliar que ayuda a manejar los indicadores.
Los indicadores son un módulo compacto y no se puede desmontar fácilmente, por lo que tuve que descubrir a base de prueba y error como funciona.
Cada indicador cuenta con 2 elementos electrónicos:
1. Motor que mueve una rueda dentada.
2. Potenciómetro en el eje de la aguja
El motor puede moverse en ambas direcciones, por lo que se necesitan 2 señales que nos permitan tener 3 estados del motor:
1. Parado
2. Giro Horario (CW)
3. Giro Antihorario (ACW)
Para controlar un motor con estas características, se utiliza un Puente en H https://es.wikipedia.org/wiki/Puente_H_(...C3%B3nica)
De nuevo, no es la intención de este artículo explicar detalladamente como funciona un puente en H. Pero básicamente se basa en la activación de los transistores de una manera u otra para que el motor gire en un sentido u otro. Creo que esta imagen es bastante ilustrativa:
Concretamente el circuito utilizado es idèntico a este, hecho con transistores bipolares (aunque a este le falten las resistencias ya que es un esquema conceptual):
Por tanto, tenemos la siguiente tabla de combinación de las salidas
Por tanto ya podemos manejar el motor hacia ambos sentidos.
Lecturas Indicador Velocidad y Presión
Como he comentado, en el eje de la aguja hay un potenciómetro de 360º. Es decir, no tiene final de recorrido. Cuando ha dado la vuelta entera, vuelve al valor inicial. El funcionamiento es como la lectura del MASCON. Solo hay que identificar los valores correspondientes al valor 0 de la aguja (p. ej. 0km/h) y el valor máximo (p.ej. 120km/h) para tener una referencia de posición y poder hacer un recalibrado al iniciar el funcionamiento.
Es un puerto de salida del microcontrolador que activa o desactiva el LED. Va con lógica invertida, es decir, el LED se enciende cuando pones el pin al valor 0. Esto es debido a cómo está hecho el circuito. Normalmente a los microcontroladores les es más fácil drenar corriente que proveer corriente.
Pedal Bocina
Funciona igual que el interruptor de apertura de puertas.
Selector dirección
Es un selector que tiene 3 posiciones:
1. Parado
2. Avance
3. Retroceso
Para hacer estas tres funciones, tenemos tres combinaciones de pins que entran al microcontrolador. Solo hay que detectar en cual de las tres combinaciones está para poder saber la posición del selector.
Hasta aquí la primera parte. En la siguiente explicaré como funciona el chip de sonido y un poco como está hecho el SW.
FIN PARTE 1
Canal de YouTube: Nihon Densha