Programador para AT89S52

Estimadisimos todos,
Necesito construirme un programador para el micro ATMEL AT89S52 de la familia de los 8051... Hay muchos por internet, pero quiero alguno que esté recomendado el uso...
saludos,,,FELO :eek:
 
Hola, el que hice y funciona perfectamente es el Easy Downloader (EZ2), incluso puedes programar los At89c8252. Saludos
 
Hola a todos, quiero hacerme un programador para el AT89s52 y toda la gama similar, via usb. Es como hacer un LPT via USB pero solo con la funcionalidad para programar, utilizando un pic 18F2550.
Ya realize todo el firmware y software para la pc, (en consola, lo corro bajo linux).
El problema lo tengo en la comunicacion del PIC con el micro de atmel. Cuando le mando los comandos, que serianlos codigos 0xAC 0x53 y 0x00; el 89s no me responde con nada mas que un 0xFF o a veces un 0x7F.

Alguien tendrian una rutinita para grabar via ISP los micros atmel? Yo encontre algunas pero no me sirvieron. Posteo las rutinas que uso para transmitir y recibir un byte al micro 89s.

Código:
unsigned char TransmitSingleByte(unsigned char data){

    unsigned char bitcount;

    for(bitcount = 8; bitcount > 1; bitcount--){
        /* Set data */
        if((data >> (bitcount - 1)) & 1)        {    /* bit is 1 */
            UP_DATA_WRITE();
        } else{    /* bit is 2 */    
            LED_OFF(LED_YELLOW);
            DOWN_DATA_WRITE();
        }
        /* Settle */
//        pause(delay);
        /* Strobe clock */
        UP_CLOCK();        

        pause(delay);

        DOWN_CLOCK();
        /* Settle */
        pause(delay);
    }
/* el prendido y apagado de leds es solo a modo de debug mio*/
    LED_OFF(LED_YELLOW);
    LED_OFF(LED_RED);
    pause(delay);
    
    return(OK_RESPONSE);

}

unsigned char ReceiveSingleByte(void){
    
//        Usb Command: USB_RECEIVE_SINGLE_BYTE

    char bitcount;
    unsigned char data = 0;

    for(bitcount = 0; bitcount < 8; bitcount++)    {
        /* Clock high */
        UP_CLOCK();
        /* Settle */
        pause(delay);
        /* Read */
        
        if(INPUT(DATA_IN)){    /* bit is 1 */
            data = data | (1 << (7 - bitcount));
            LED_ON(LED_GREEN);
        } 
        /* Clock low */
        DOWN_CLOCK();
        /* Settle */
        pause(delay);
    }    
    LED_OFF(LED_GREEN);
    LED_OFF(LED_RED);
    pause(delay);    

    return(data);
}

MUCHAS GRACIAS!
 
¿Has mirado la página oficial de Atmel? Si no voy equivocado, tienen documentación abundante sobre el tema, aunque yo básicamente he usado sólo los AVR, no los 8051.

Hay programadores que pueden programar los micros de atmel por el puerto serie (ponyprog?) del PC, así que siempre se puede probar esta opción y 'hackear' la comunicación.
 
Las rutinas de programación las tendrías que buscar en la hoja de datos del micro ...sino bajate el código fuente del USBasp y ahi fijate como es la rutina de escritura del mismo..
 
Muchas gracias x las respuestas! Ya he podido...en verdad el protocolo estaba bien, el error lo cometia en el PIC, cuando queria mover los pines del puerto.

Ahora el problema que tengo es que tarda muchoooooooooooooooooo.... es por la trasmicion USB. Hay forma de acelerar la comunicacion usand HID? envio 8 bytes por HID report, se pueden mandar mas??

Muchas gracias!

Al margen.como configuro si quiero full speed o low speed en la comunicacion USB?
 
Última edición:
Amigo me interesa muchisimo este trabajo he estado intentando hacer algo asi para linux y estoy en 0, realmente no me causa mucha gracias tener que estar usando win solo para programar atmel.. podrias dar mas informacion
 
Hola Pax, ojala te ponga contento saber que ya termine el codigo para firmware y software (Linux en consola). Cuando tenga un tiempo lo subo. Aun no probe si lo que graba es lo correcto pero se que esta grabando bien ya que cada byte que escribe el pic en la flash del atmel luego es leido y verifica lo que leyo con el byte recibido y esto no da ningun error. Asique creo que esta grabando bien. Cuando haga las pruebas pertinentes, hago el esquematico y subo el programa. Mas adelante portare ese programa a windows, ya que utilizando QT hago una GUI para linux y despues tambien la uso en windows.

Un saludo, cualquier cosa preguntame!
 
hola a todos, ja_fileiv2 encuentro muy buena tu idea de hacer el grabador usb para esta familia de microcontroladores y publicarlo por este medio, creo ke es un gran aporte a la comunidad que nosotros mismos creemos nuestras propias herramientas y las compartamos. yo tambien estoy trabajando en un grabador pero de memorias eprom, eeprom y rams (estas ultimas para saver si estan buenas ) y e ido lento en el desarrollo, lo que e logrado hasta la fecha es poder leer varios tipos de memorias como 27128, 27512 y la nvram m48t58 (esta ultima la pedi como muestra gratis a la empresa st) la idea de realizar este programador tuvo su origen justamente porque tube que realizar unos trabajos con el 8051 y fue complicado conseguir grabar la memoria para realizar la experiencia de laboratorio, cuando tenga algo un poco mas cocinado creare un hilo para ese tema de momento espero ansioso el desarrollo de tu grabador. saludos
 
Atrás
Arriba