¿Es posible programar un chip AT89S51 con un cable convertidor de USB a TTL (UART) o Arduino?

Recientemente, tuve la oportunidad de obtener un chip AT89S52, pero no tengo un programador adecuado para ello. Soy nuevo en los microcontroladores, especialmente en la serie MCS-51, pero escuché que MCS-51 es la "manera correcta" de hacer cosas de microcontroladores, y me gustaría intentar aprenderlo.

Tengo un convertidor USB a TTL (UART) (usando el chip PL2303HX), una placa Arduino Uno y una placa Raspberry Pi.

He buscado en Internet acerca de cómo programar el chip, pero la mayor parte de la información y el diagrama del circuito implican un puerto serie RS-232, un puerto de impresora paralelo o algún otro producto de programador comercial costoso. Como no tengo un puerto RS-232 o de impresora en mi computadora, no puedo seguir estos diagramas o tutoriales.

Hablé con un amigo mío que está familiarizado con 89C51, y me dijo que de acuerdo con la hoja de datos de programación en serie de Atmel del chip 89S51, en realidad es técnicamente posible programar el chip con Arduino o Raspberry Pi, pero él no es seguro si es factible con el convertidor USB a TTL (UART).

No he encontrado ninguna información clara del protocolo de programación en serie 89S51 (algunos dicen que es SPI, pero otros dicen que no lo es), lo que tal vez se deba a mi falta de habilidad en inglés o conocimiento sobre cosas electrónicas, estoy completamente confundido.

Entonces, ¿es posible programar un chip AT89S51 con un convertidor USB a TTL (UART) o algún circuito simple con eso? Si no puede, ¿es posible programarlo con una placa Arduino o Raspberry Pi? ¿Alguien ha hecho esas cosas alguna vez?

Si todo lo anterior no es posible, ¿puedo usar un convertidor de USB a RS-232 con un programador en serie como este?1

(Obtuve este diagrama de aquí )

Gracias de antemano.

PD Muchos de los productos comerciales no son útiles para mí porque no tengo una computadora con Windows a mi alcance.

Un poco asqueroso ir con el buen viejo 8051 solo porque escuchaste que es la 'manera correcta'. El camino correcto es elegir el micro que mejor se adapte a tus necesidades.
En realidad, no me quedo mucho con esa teoría, pero aquí en Taiwán, a muchos "profesionales" (excepto algunos de ellos que entienden la comunidad de fabricantes) no les gusta AVR y especialmente las cosas de Arduino. Dicen que harán que los estudiantes no sean capaces de trabajar en las industrias y arruinarán su vida profesional.
Realmente no me importan mucho esos comentarios, porque creo que son personas de la vieja escuela con pensamientos antiguos y pensaron que Bill Gates es el genio más grande del mundo. Pero estoy bastante interesado en 8051, ya que todavía son muy populares y, hasta donde yo sé, también es el estándar de facto de los microcontroladores. Y SON MUY BARATOS.
Puede usar el siguiente boceto de Arduino y un arduino para programar este chip: wdong.org/wordpress/blog/2012/07/04/… sin duda hay otros haciendo lo mismo si tiene problemas con este.
@PcChou bueno, Bill Gates es el genio más grande del mundo, pero entiendo tu punto.

Respuestas (2)

Creo que lo mejor que puedes hacer es usar un Arduino como programador ISP. Este artículo lo explica con más detalle.

¡Gracias por tu respuesta! voy a revisar ese articulo
¿Es posible usar un cable convertidor de USB a TTL (UART) para programar?
No. Un UART es un receptor/transmisor asíncrono. Un programador de ISP utiliza el protocolo SPI, que es síncrono. Eso significa que produce una señal de reloj y una señal de datos, mientras que una línea serie asíncrona solo tiene la señal de datos (y una buena sincronización). Los dos no son intercambiables. Pero hay una cantidad de programadores de ISP que puede usar con su computadora.

El adaptador que proporciona en el esquema requiere un bit-banging del protocolo en los pines del puerto serie. Es factible en computadoras con puerto serie de placa base.

Sin embargo, cuando se trata de adaptadores USB-RS232, la mayoría solo puede enviar datos a través de las líneas Rx-Tx utilizando el protocolo RS232 USART estándar. No funcionará porque no puede alternar pines específicos del puerto serie.

Una interfaz de programación similar (PonyProg con hardware SIProg) no funciona con dichos adaptadores.

Sí, es posible programar el 8051 usando un Arduino: Uso de Arduino para programar at89s51

Solo que, en este caso, estamos tratando de programar un 8051 usando un Arduino.
¡Gracias por tu respuesta! Buscaré el enlace que me proporcionas. Probablemente me daré por vencido con el pensamiento del adaptador RS232.
¿Es posible usar un cable convertidor de USB a TTL (UART) para programar?