Reparación Controlador TOMIX 22413 - Versión para impresión +- Foro de modelismo escala N (https://www.escalan.es) +-- Foro: Modelismo Escala N (https://www.escalan.es/forum-3.html) +--- Foro: Electricidad (https://www.escalan.es/forum-8.html) +--- Tema: Reparación Controlador TOMIX 22413 (/thread-9675.html) Páginas:
1
2
|
Reparación Controlador TOMIX 22413 - lluisgib - 04-09-2020 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. [attachment=35207] [attachment=35213] 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) [attachment=35214] 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 [attachment=35216] 2. Módulo de Sonido e indicadores [attachment=35217] 3. Módulo de Freno [attachment=35218] 4. Módulo de Apertura y Cierre de puertas [attachment=35219] A parte de los conectores, hay algunos componentes internos que también se conectan al Microcontrolador: [attachment=35220] 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. [attachment=35209] 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. [attachment=35205] 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. [attachment=35206] 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%C3%B3n_por_ancho_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: [attachment=35212] 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_(electr%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: [attachment=35211] 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): [attachment=35210] Por tanto, tenemos la siguiente tabla de combinación de las salidas [attachment=35215] 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. [attachment=35208] 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. [attachment=35221] 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 RE: Reparación Controlador TOMIX 22413 - amobla - 04-09-2020 Me he quedado impresionado. RE: Reparación Controlador TOMIX 22413 - krokodiland - 04-09-2020 El que sabe.......sabe........y los demás, al "truyo" Con la boca abierta me he quedado, impresionante ! ! ! Un saludo RE: Reparación Controlador TOMIX 22413 - tigrin - 05-09-2020 lluisgib es una pasada sebe que tus conocimientos en electrónica Digital son muy importantes, espero que puedas arreglar ese juguete que es una chulada por cierto seguiré tus avances con la máxima atención Saludos. RE: Reparación Controlador TOMIX 22413 - Ficusrex - 05-09-2020 Muchas gracias, Lluis. Ilustrativo y didáctico. RE: Reparación Controlador TOMIX 22413 - minitix - 05-09-2020 Esperando con expectacion la(s) siguiente(s) parte(s) RE: Reparación Controlador TOMIX 22413 - lluisgib - 05-09-2020 Gracias a todos por vuestros comentarios. Me he sonrojado Lo que pasa es que todo depende del prisma con que lo miras. Mi formación es de Ingeniería Electrónica, y al final, este controlador tiene mucha electrónica básica, y un poco de programación, que es a lo que me he dedicado principalmente los últimos 20 años Todavía tengo que empezar a escribir la parte 2, pero hoy he estado cambiando el chip que daba problemas para que funcionara hacia el otro sentido y... "et voilà" ¡Ya funciona en ambos sentidos! Me da un problema con el sonido hacia el nuevo sentido. Como no he podido depurar el SW hacia ese sentido, será el siguiente paso. No se si será un cruce en el HW o un problema de SW. ¡Pero lo encontraré! De nuevo gracias a todos y os continúo contando como va esa reparación. Ya queda menos. Lluís RE: Reparación Controlador TOMIX 22413 - lluisgib - 07-09-2020 aP89341 - Chip de sonido Para mi era una gran incógnita saber cómo funcionaba el sonido. Sobretodo en un tipo de dispositivo que podríamos denominar como “simple”. El chip aP89341 es un chip específico para este tipo de funcionalidad. En resumen tiene las siguientes características:
[attachment=35233] ¿Y cómo funciona? Básicamente tiene una memoria en la que se graban los distintos grupos de voz. El chip tiene 2016 bloques de voz de unos 160ms cada uno. Por tanto, si queremos hacer un sonido más largo que 160ms tenemos que agrupar varios bloques. Para eso existen los Grupos de voz. Un ejemplo: Supongamos que tenemos tres archivos de voz, que son "¿Cómo estás?", Efecto de sonido y Música. Cada uno de los archivos de voz se divide en varios bloques de voz de longitud fija y se almacenan en la memoria.
[attachment=35234] Tenemos que saber exáctamente qué hemos puesto en cada bloque de voz, para luego poder crear los grupos que nos interesen. El audio se graba en una memoria no volátil EPROM. Es un tipo de memoria que solo se puede grabar una vez y no se puede borrar, por lo que una vez grabados los sonidos y los grupos, no puedes corregirlos. Como el chip está conectado al Microcontrolador, utiliza el modo de control serie, por lo que se utilizan 2 pins del microcontrolador para enviar comando, y un pin para monitorizar el estado de la reproducción de audio. El chip acepta 8 comandos de los que se utilizan 5 para reproducir los sonidos en el sistema: [attachment=35231]
Todos los comandos son de 1 Byte de longitud excepto el PREFETCH que es de 2 bytes de longitud para poderle indicar al chip que Grupo de Voz queremos reproducir. Para saber que audios contiene el chip tuve que hacer un pequeño software que los reprodujera todos con un espacio de tiempo entre ellos para poder identificarlos unitariamente. Esta es la lista: [attachment=35235] Para mandar el PREFETCH, tenemos que mandar primero el comando y luego el valor Hexadecimal del sonido, que se construye poniendo el número o letra MSB + LSB (Para los que no sepáis, el Hexadecimal es un sistema de contar en informática que va de 0 a 15. Los símbolos son 0-9, A-F, siendo A = 10 y F = 15) Por tanto, si queremos mandar un sonido de abrir puertas tenemos que mandar: 0x71 + 0x24 Driver de potencia El driver de potencia es un chip que convierte la señal PWM de 5V que llega del microcontrolador a una señal de 9V y 800mA para poder manejar el tren (Como os dije, este controlador es para la serie de trenes de TOMYTEC que se pueden motorizar, y que funcionan a 9V). [attachment=35236] L significa 0V H significa 5V En este caso el chip LB1948MC, un chip de 10 patas que tiene 2 canales independientes de PWM (por decirlo simple, podríamos controlar 2 circuitos independientes). Pero si ponemos en paralelo los dos circuitos podemos alimentar 1 vía pero con más corriente de salida. Este es el montaje que tenemos en en circuito. [attachment=35232] Es posible que el todo el circuito se pueda alimentar a 12V y correr trenes normales, pero después de todo el curro, prefiero no volver a cargarme la placa . Software Primero de todo os digo que el SW no está terminado. Para los que trabajamos en SW, nunca lo está. Funcionan todos los elementos pero falta depurar y añadir la gestión de errores. Los que tenéis alguna experiencia en Arduino o en Raspberry Pi, probablemente sepáis que son unos microprocesadores ARM de 32 bits y que funcionan con Sistemas Operativos (por ejemplo, Raspberry Pi funciona con Raspbian). En este controlador se utiliza un procesador mucho más simple, de 8 bits, y de propósito específico. Estos microcontroladores son los que pueden llevar pequeños dispositivos sin mucha necesidad de procesado, como podría ser una lavadora o un lavavajillas (que no se conecten a internet ) Por tanto, lo primero que tenemos que tener en cuenta es que un Sistema Operativo no cabe, por lo que tenemos que tirar de otras estrategias de programación. Pasos de creación del SW Se puede hacer de distintas maneras. Lo que yo he hecho es lo siguiente:
Una vez todo puesto en marcha por separado, había que empezar a juntar las piezas del puzzle. Para ello, como no se puede utilizar un sistema operativo, monté un “scheduler”, es decir, en el bucle principal del programa se llaman a todas las funciones que tienen que hacer algo de manera secuencial y luego te esperas en un punto muerto hasta que pasa el ciclo de tiempo definido, para volver a empezar. Diagrama conceptual
Las funciones del SW son:
Conclusion Al cambiar el microcontrolador se me rompió alguna pista. Cuando lo sueldan con máquina, le añaden una cola para que el componente no se mueva hasta que pasa por el horno de soldadura. Estaba tan fuertemente pegado que tuve que hacer fuerza para sacarlo y se levantó alguna pista de cobre. He tenido que repararlo poniendo cables que suplen las pistas. Lo mismo pasó con el Driver de potencia. Tuve que romperlo para poder desoldarlo y cambiarlo, pero al menos, en este caso, no se me rompió ninguna pista de cobre, cambiando un poco la técnica que utilicé para el microcontrolador. Hay que aprender Estoy contento. He convertido un “pongo” en algo funcional y además he disfrutado y sufrido a partes iguales. La satisfacción es, si cabe, mayor. Espero que os haya gustado la explicación. Si tenéis alguna pregunta, miraré de responderla. RE: Reparación Controlador TOMIX 22413 - krokodiland - 07-09-2020 Enhorabuena. Pero casi que con tus conocimientos, podias haberte hecho uno nuevo partiendo de cero. Disfrútalo ahora haciéndolo funcionar. Un saludo RE: Reparación Controlador TOMIX 22413 - minitix - 07-09-2020 RE: Reparación Controlador TOMIX 22413 - lluisgib - 07-09-2020 (07-09-2020, 16:52)minitix escribió: Que te pasa? He hecho algo mal? RE: Reparación Controlador TOMIX 22413 - Ficusrex - 07-09-2020 Una explicación del paso a paso de la reparación genial. Aunque, desde el desconocimiento, me quedo un poco perdido. RE: Reparación Controlador TOMIX 22413 - tigrin - 07-09-2020 Alucinante lluisgib me alegro de que lo hayas podido reparar pero una cosa esta muy clara tus conocimientos en electrónica son lo mas de lo mas ingeniería electrónica nada menos así que ya te consultaremos alguna cosa que para el resto de los morales es como el Chino ahora a disfrutar del juguete Saludos. RE: Reparación Controlador TOMIX 22413 - minitix - 07-09-2020 (07-09-2020, 19:54)lluisgib escribió:(07-09-2020, 16:52)minitix escribió: NOOOOOO!!!! Pensaba que eran caras de admiracion. Uno de los mejores articulos de ingenieria inversa que he visto, IMPRESIONANTE RE: Reparación Controlador TOMIX 22413 - lluisgib - 08-09-2020 Gracias a todos Ayer descubrí algo que no sabía, ya que no tengo experiencia en motores. El retorno que hay en la lectura del PWM es para saber cuando arranca el motor y sincronizar el sonido. Tengo más curro en los próximos días No te acostarás... RE: Reparación Controlador TOMIX 22413 - krokodiland - 08-09-2020 Al final, lo vas a dejar "niquelado". Si es que no se puede decir, que ya lo está. Un saludo RE: Reparación Controlador TOMIX 22413 - lluisgib - 10-09-2020 Hola, Ya hay algo potable funcionando. Primero os enseño el montaje que tengo para programar el cacharro [attachment=35238] He modificado el Software para el uso de la lectura del PWM del motor y lograr un arranque sincronizado con el sonido y el indicador de velocidad. EL tren funciona hacia los 2 lados, pero continuo con un problema eléctrico que tengo que solucionar hacia un sentido. Hay cosas mejoradas respecto al aparato de serie, como la luz de cerrar puertas, que se espera a que el sonido termine para encenderse. Aquí tenéis un video de su funcionamiento Me faltan unas pequeñas mejoras, pero ya está operativo y puedo disfrutar de su uso Lluis RE: Reparación Controlador TOMIX 22413 - krokodiland - 10-09-2020 Muy bueno el funcionamiento, pero al verlo me asaltan varias dudas: - El 2º y el 4º reloj, no tienen ninguna función....??? - Los pulsadores blanco y rojo que quedan en el centro (en la parte superior del pulsador de la bocina), tienen alguna función.....??? - Donde va el regulador, hay la palanca en el lado izquierdo (que imagino que es para el cambio de sentido y el paro de emergencia).....??? - En el lado derecho superior del regulador, parece que hay otra palanca que da le sensación de ser falsa y sin función alguna......??? - El pupitre que queda separado (al lado derecho), con el interruptor negro, es solo para conectar y desconectar, o tiene alguna otra función.....??? Un saludo RE: Reparación Controlador TOMIX 22413 - tigrin - 10-09-2020 En ahora buena lluisgib es una pasada para mi ya esta mas que bien pero si aun lo puedes mejorar adelante y disfruta mucho de el te lo mereces Saludos. RE: Reparación Controlador TOMIX 22413 - lluisgib - 10-09-2020 (10-09-2020, 18:59)krokodiland escribió: Muy bueno el funcionamiento, pero al verlo me asaltan varias dudas: Respuestas:
Saludos |