Programación Flash para AT89S2051

Perdóname si esta es una pregunta de novato, este es mi primer proyecto de MCU.

Después de leer algunos tutoriales aquí y allá, configuré mi circuito MCU y programé un programa simple en Keil μVision 4 y lo compilé en HEX-80. Sin embargo, tengo problemas al intentar actualizar el programa a la MCU.

Básicamente, estoy un poco perdido en cómo conectar los dispositivos (PC-> MCU). Tenía la impresión de que una simple entrada USB->TTL (Serial)->MCU UART lo haría, pero aparentemente no.

Después de 5 horas de búsqueda, solo encontré artículos relacionados con AVR o PIC sin mencionar nada remotamente relacionado con 8051. Entiendo que el AT89S2051 tiene funcionalidad ISP, por lo que no necesito un programador flash de chip dedicado. También descubrí que la MCU tiene capacidades de flash en serie.

Puede alguien señalarme la dirección correcta?

Detalles adicionales:

MCU: Atmel AT89S2051 (en placa)
PC: Win 7 x64 (no debería importar, pero aquí está de todos modos)
USB->TTL: PL2303HX (chipset integrado)

Alambrado:

El RXD (salida TTL) está conectado al TXD (Pin 3.1) del UART
El TXD (salida TTL) está conectado al RXD (Pin 3.0) del UART
El GND (salida TTL) está conectado a la tierra del circuito
El + 5V (salida TTL) está conectado al circuito +5V
El +3,3V (salida TTL) no está conectado.

Programas que probé (y no pude usar):

AtmelISP
PonyProg
IspPgm

¿Ya buscaste un programador ISP?
@IgnacioVazquez-Abrams En este punto estoy bastante confundido acerca de todo el procedimiento de flasheo. Por un programador de ISP, ¿está hablando de un dispositivo de hardware/placa de circuito que programa chips de ISP o un programa de software que facilita tal función a través de una salida en serie?

Respuestas (1)

Donde se está confundiendo es que, si bien ISP significa programación en el sistema, a menudo todavía necesita un programador de hardware dedicado para proporcionar los voltajes y/o el protocolo necesarios para programar el FLASH. Para ese dispositivo querrás algo como un Atmel AT89ISP .

Nunca he usado la serie AT89 en particular, pero en la página 32 de la hoja de datos AT89S2051 verá que es una interfaz de tipo SPI que requiere un reloj y líneas de entrada y salida de datos. Algunos dispositivos FTDI pueden admitir comunicaciones SPI, pero estoy bastante seguro de que el PL2303HX no puede y, después de una revisión rápida de la hoja de datos, solo parece mencionar el modo asíncrono.

En general, la forma más fácil sería comprar el programador AT89ISP o creo que hay algunos proyectos de bricolaje y clones disponibles. Aunque, a menos que el presupuesto sea ajustado, probablemente siempre sea más fácil comenzar con un programador con soporte oficial.

Si obtengo esto correctamente, en términos de software, simplemente uso el programa AtmelISP con el cable AtmelISP real conectado a los pines especificados en la página 32 de la hoja de datos AT89S2051. 31 dólares para programar un MCU de 2 dólares...
@CPUTerminator, sí, es cierto, es común necesitar gastar un poco al comenzar. Con eso en mente, es posible que desee pensar en su elección de CPU, si está escribiendo código en C, el conjunto de instrucciones 8051 no es una gran ventaja, por lo que tal vez un AVR sería una mejor opción a largo plazo. El Arduino (y los clones más baratos) ya tienen un cargador de arranque en serie instalado en el chip. O eso, o si gasta la misma cantidad de dinero en un programador AVR ISP, puede obtener un uso más prolongado.
Bueno, supongo que tienes razón otra vez... Pero dado que ya compré el MCU, también podría usarlo... Definitivamente invertiré en un MCU más "convencional" (AVR/PIC) a largo plazo, tal vez uno que se pueda programar directamente a través de UART (¿existe esto o estoy malinterpretando algo otra vez?). Gracias por tu respuesta.
Con la programación UART y el Arduino, alguien ya ha programado en un cargador de arranque en serie utilizando un programador ISP. Algunos chips Atmel tienen algo llamado SAM-BA (asistente de arranque) incorporado, pero eso es solo los chips ARM más complejos. Una ventaja para un programador de ISP es que a menudo también permiten la depuración de hardware.