Forum: Analoge Elektronik und Schaltungstechnik I2C / TWI Bootloader Xmega


von Andreas R. (andi_ruetten)


Lesenswert?

Hallo,
ich möchte, das ein Bootloader die Daten aus einem I2C EEPROM ausliest,
und darüber ein Update der Software ausführt.

Ich verwende dafür einen Xmega32A4 und einen 24LC256.

Leider hängt sich der Bootloader beim auslesen auf.

Wenn ich das selbe Programm als normale Applikation laufen lasse
( Also ab $0000 ) funktionert I2C auslesen.
Grundsätzlich funktionert der I2C Part also!!

Verwendet wird der Codevision AVR Compiler.

unsigned char ReadEEPROM(unsigned int adr)
{
     unsigned char data_in;

    twi_eeprom.addr.msb = adr/0x100 ;
    twi_eeprom.addr.lsb = adr%0x100 ;
    twi_master_trans(&twic_master,EEPROM_TWI_BUS_ADDRESS,(unsigned char 
*) &twi_eeprom,2,&data_in,1);

     return data_in;
}

Das Programm kehrt im Debugger nicht mehr aus der Routine :
twi_master_trans() zurück.

Die Ints scheinen offensichtlich an der richtigen Stelle zu sein.

Was kann denn noch anders sein, außer den Einsprungadressen der Ints?

mfg Andreas

von Thomas F. (tomasf)


Lesenswert?

>
> Was kann denn noch anders sein, außer den Einsprungadressen der Ints?
>

Ist denn das IVSEL Bit gesetzt?

von Andreas R. (andi_ruetten)


Lesenswert?

Thomas F. schrieb:
>>
>> Was kann denn noch anders sein, außer den Einsprungadressen der Ints?
>>
>
> Ist denn das IVSEL Bit gesetzt?

Ja, seit gerade eben ....
Ich habe das auch selber herausgefunden...
Bis jetzt habe ich immer Bootloader gehabt, die keine Ints benutzt 
haben.

Trotzdem Danke ,

Andreas

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.