Menu

synchronization error su AVR Atmega8

Anonymous
2016-05-09
2016-05-28
  • Anonymous

    Anonymous - 2016-05-09

    Ciao Alberto sono Gregorio. Innanzitutto i doverosi ringraziamenti per l'ottimo progetto. Ho assemblato un programmatore e sembra funzionare bene. Legge e scrive correttamente i PIC (provati diversi), mentre non riesco a scrivere su di un atmega8. Ottengo sempre :
    "errore sincronizzazione". Lo stesso chip riesco a programmarlo senza problemi con un programmatore su parallela e con un USBAsp. Provato sia su Linux (Ubuntu 12.04 ed opgui) che su win (software nativo).
    Su Linux ho provato anche la versione 0.90 del software

    Ho letto un'altro post con un problema simile, ma non ho capito bene come procedere. Mi spiace ma non sono un programmatore, purtroppo.

    Allego il log, creato dalla versione windows.

    OpenProg version 0.9.1
    Firmware version 0.9.0
    Mon May 09 20:09:17 2016
    
    ReadAT(0x2000,0x200,0x17)
    PacketIO(1.00)
    bufferU=[00
    07 01 07 D0 06 0E 00 2F 02 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    ]
    bufferI=[00
    07 06 0E 2F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    ]
    T=9.26 ms
    PacketIO(9.00)
    bufferU=[00
    35 FF 0E 00 32 00 00 0A 0E 01 0A 07 00 01 00 32 00 40 0A 32 00 00 35 05 04 00 00 00 00 00 00 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    ]
    bufferI=[00
    35 0E 32 0A 0E 0A 07 32 0A 32 35 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    ]
    T=13.12 ms
    PacketIO(2.34)
    bufferU=[00
    31 02 AC 53 30 02 31 0B 55 00 AA 00 55 00 AA 00 30 00 00 30 01 31 03 30 00 00 30 01 31 03 30 00 
    00 30 01 31 03 30 00 00 30 01 31 03 30 00 00 30 01 31 02 AC 53 30 02 31 03 30 00 00 30 01 04 00 
    ]
    bufferI=[00
    31 02 30 02 FF FF 31 0B 30 01 FF 31 03 30 01 FF 31 03 30 01 FF 31 03 30 01 FF 31 03 30 01 FF 31 
    02 30 02 FF FF 31 03 30 01 FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    ]
    T=10.07 ms
    PacketIO(9.00)
    bufferU=[00
    35 FF 0E 00 32 00 00 0A 0E 01 0A 07 00 02 00 32 00 40 0A 32 00 00 35 05 04 00 00 00 00 00 00 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    ]
    bufferI=[00
    35 0E 32 0A 0E 0A 07 32 0A 32 35 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    ]
    T=13.00 ms
    PacketIO(2.49)
    
     

    Last edit: Anonymous 2016-05-09
  • Alberto Maccioni

    In questo pezzo di log il chip non risponde, ma sta ancora provando la frequenza massima di comunicazione; nel resto del log non so cosa succeda: immagino continui a non rispondere e quindi ti viene segnalato l'errore.
    Usi la scheda di espansione o dei fili fino alla tua applicazione?
    Hai già provato con un altro AVR in passato?
    Che configurazione c'è sul dispositivo?

     
  • Anonymous

    Anonymous - 2016-05-13

    Uso dei fili, ma sono pochi cm, direttamente dal programmatore all'AVR. In passato ho testato con un ATMEGA644, ma il problema era lo stesso. La configurazione sull'atmel e' quella di default. Se vuoi provo a leggerla con AVRDuDE e la posto. Probabilmente e' troppo bassa, stavo guardando come configurare i fuses per attivare l'oscillatore interno ad 8Mhz. Con l'USBAsp per programmarlo devo attivare la funzione "slow clock" .
    Per quanto riguarda illog completo, come faccio ad allegarlo come file? E' piuttosto lungo......

     
  • Alberto Maccioni

    Quali segnali trasferisci?
    Assicurati di attaccare tutte le masse/alimentazioni.
    Per i file usa "add attachments"

     
  • Anonymous

    Anonymous - 2016-05-15

    I segnali sono Reset, MOSI, MISO, GND e +5V.
    I Fuses sono hfuse = D9, lfuse = E1
    Se, pero' , con AVRDUDE riprogrammo lfuse = D4 (clock interno 8Mhz, fast rise) il controller viene correttamente riconosciuto da opgui versione 0.90.
    La versione 0.91, invece mi da' o errore sincronizzazione, o chip non riconosciuto, e valori azzerati, pur effettuando la lettura. (Ma non posso confermarti che sia corretta)

     
  • Alberto Maccioni

    Linux o Windows?
    C'è un problema di sincronizzazione USB; il primo trasferimento non è corretto e tutti sono scalati di una posizione.
    Se configuri con il clock esterno è necessario collegare anche X1.

     
  • Anonymous

    Anonymous - 2016-05-17

    Linux. Ubuntu 12.04 32bit. Il chip e' configurato con clock interno, ed infatti la versione 0.90 funziona correttamente.
    Se vuoi, posso testare anche lato windows.

     
  • Alberto Maccioni

    Il metodo di scambio pacchetti sotto linux sembra avere attualmente qualche problema (ma non in tutti i sistemi); una piccola modifica al codice dovrebbe migliorare le cose:
    in progAVR.c trova la funzione
    void ReadAT(int dim, int dim2, int options)
    sostituisci il primo
    PacketIO(1);
    con
    PacketIO(3);

     
  • Anonymous

    Anonymous - 2016-05-24

    Fatto. Ora molto raramente mi da' errore sincronizzazione, ma non riconosce comunque il chip . Questo e' quello che mi da' a schermo:

    Comunicazione @ 21 kbps
    CHIP ID:000000
    Dispositivo sconosciuto
    LOCK bits: 0x00
    FUSE bits: 0x00
    FUSE HIGH bits: 0x00
    Calibration bits: 0x53,0x1E,0x1E,0x1E

    La versione nativa windows, invece funziona correttamente, cosi' come la versione linux 0.9.0
    Allego il log ...

     
  • Alberto Maccioni

    Ancora lo stesso problema.
    Prova a incrementare il ritardo a 20 o 30.
    Sto verificando una nuova versione che dovrebbe risolvere automaticamente il problema.

     
  • Anonymous

    Anonymous - 2016-05-28

    Incrementando il valore a 25 non esce piu' l'errore di sincronizzazione, ma il chip non viene comunque riconosciuto.

     

Anonymous
Anonymous

Add attachments
Cancel





Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.