¿Cómo puedo reprogramar un Megawin MPC89E52A?

Tengo un par de artilugios antiguos que usan el microcontrolador Megawin MPC89E52A . Quiero descargar el código existente, desarmarlo, hacer mis propios cambios y reprogramar.

La hoja de datos parece bastante básica, pero afirma que es "totalmente compatible con el microcontrolador de la serie 80C51 estándar industrial". La hoja de datos también indica "Memoria flash de 8K bytes integrada para el programa de aplicación", lo que creo que significa que se puede reprogramar en función de la búsqueda en Google que he hecho hasta ahora.

Hay una fila de pines etiquetados como R, T, I, G y A que tracé hasta RXD, TXD, INT0, RESET y EA. EA se describe en la hoja como "EA debe mantenerse bajo para permitir que el dispositivo obtenga el código del programa de la memoria flash externa", lo que suena prometedor.

No sé nada sobre las partes 80C51, excepto que están por todas partes. Supongo que hay muchas herramientas para ellos si sé dónde buscar.

Mis preguntas:

  1. ¿Tengo alguna posibilidad de éxito con esta parte en particular?
  2. Si no puedo reprogramarlo, ¿puedo al menos descargar el código existente y sería difícil encontrar un reemplazo compatible con pines? es un QFP-44
  3. Suponiendo que la reprogramación sea posible, ¿los pines mencionados anteriormente son los correctos para esto?
  4. ¿Qué herramientas de software para la programación?
  5. Finalmente, ¿qué tipo de programador necesito? Con suerte, algo usb está disponible, pero puedo hacer que funcione en paralelo o en serie.

Quizás la pregunta más importante: ¿Cuál es el mejor lugar para buscar información sobre esto?

No hay suficiente información para una respuesta, pero estoy tratando de hacer lo mismo con otro chip Megawin y descubrí que no es tan simple como esperaba. Falta documentación.
@cybergibbons ¿Pudo leer el programa existente? ¿Has tenido algún éxito con eso? ¿Es un chip de la familia 8052 o algo no relacionado?

Respuestas (2)

¿Cuánto vale para ti esta reparación de ese artilugio? Si no sabe nada acerca de 8051, puede ser una tarea larga y difícil. Desensamblar el código le dará una lista de decenas de páginas donde solo se pueden leer las instrucciones, al menos para alguien que conozca 8051. Las etiquetas y las variables son solo números vacíos y, por supuesto, tampoco se comentan. Si la fuente fuera C en lugar de ensamblador, incluso puede parecer más abstracto.

La hoja de datos no es de gran ayuda para la programación. Menciona ISP (Programación en el sistema) e IAP (Programación en la aplicación), pero el procedimiento ISP parece incluir la configuración de SFR, por lo que parece que en realidad también es IAP.

ISP significa que tiene acceso externo a un microcontrolador que está montado en la PCB de su producto, para programarlo. Todo se controla a través de pines externos.

IAP también significa programar el microcontrolador dentro de su producto, pero aquí el microcontrolador tiene que ejecutar un procedimiento de software para comunicarse con el equipo de programación externo y programar el Flash.

Entonces, el controlador parece necesitar un código de programación para reprogramar el dispositivo. Probablemente usará el UART para esto, pero la instalación de programación debe programarse en el dispositivo en primer lugar, y la mayoría de los dispositivos comerciales de bajo costo no están hechos para ser reprogramados.

La hoja de datos no dice nada sobre la programación del dispositivo en un programador, pero dado que es compatible con 8051, la programación también puede ser compatible con eso, y cualquier programador universal heredado puede programarlo.
Tendrás que quitarlo con cuidado de la placa de circuito impreso para poder volver a soldarlo más tarde.

La alternativa AVR de Pault puede ser una buena idea. Nunca los he usado para reemplazar los 8051, así que revise la hoja de datos cuidadosamente, pin por pin. Pault menciona el ATMega162 , y parece que el ATMega8515 también es compatible con 8051 pines. Tenga en cuenta, sin embargo, que ninguna de las hojas de datos menciona nada al respecto.

Gracias por tomarte el tiempo para responder. Parece que puedo tener cierto éxito si elimino la parte, la coloco en un programador y leo el contenido. ¿Es justo decir que todas las partes de 8051 se leen igual? Me siento más cómodo con los aspectos del software que con el hardware.
@mmccoo: creo que es seguro suponer que puede seleccionar un 8051 en el programador.

La hoja de datos dice que se puede programar a través de ISP (Programación en el sistema), lo que significa que debería poder reprogramarlo. Es posible que su código esté bloqueado para que no pueda leerlo, pero puede borrar el chip y reprogramarlo.

Atmel fabrica un chip que parece compatible: la hoja de datos AT89S52 tiene mucha información sobre la programación del chip. Además, hay notas de aplicación y mucha información de terceros sobre la programación de ISP: los pines de programación están marcados como MOSI MISO SS y SCK, el protocolo de comunicación es SPI

Atmel también fabrica un chip que es compatible con 8051 pines pero ejecuta un núcleo AVR mucho más moderno y potente: el atmega162 probablemente podría programarse adaptando el entorno Arduino si proporcionó las definiciones de hardware requeridas: este es el chip que usaría para reemplazar su MPC89E52A pero entonces no tengo experiencia 8051/2 solo experiencia Arduino.

también echa un vistazo al hardware usbasp que ejecuta el software avrdude para programar el chip. Puedes comprar un USBASP por alrededor de $ 4 en ebay. Aparentemente también puedes programar 8051 con el USBASP

No estoy seguro de que el ATmega162 sea compatible con los pines del 8051. Busqué la hoja de datos aquí y el ATmega tiene Vcc en los pines 6 y 17 mientras que el 8051 tiene GPIO en esas ubicaciones y el ATmega tiene GND en los pines 28 y 39 mientras que el 8051 tiene GPIO en esas ubicaciones (ambos en los QFP). Por lo demás, son notablemente consistentes; claramente hubo un esfuerzo para hacer que las huellas fueran similares. El 8051 podría usarse en lugar de un ATmega, pero (1) eso sería triste y (2) no creo que esa sea la dirección en la que el OP quería hacer una sustitución.
Gracias por los consejos. Todavía tengo la esperanza de no necesitar reemplazar el controlador y que la reprogramación sea compatible de alguna manera. Es bueno saber acerca de las posibilidades de tipo arduino.
Disculpas si me equivoco acerca de la compatibilidad con 8051, el sitio web AVR Freaks tiene una base de datos que establece que el (8515)[ avrfreaks.net/… es compatible con pines con el 8051 y el (atmega162)[ avrfreaks.net/… es compatible con pines con el 8515