Hallo an alle Beim schreiben eines Bootloaders hab ich nun 2 Fragen. Ich sende die Pages vom PC zum Avr. Hier ist eine Prüfsumme sicher sehr sinnvoll. Nur die Pages haben eine Größe bis zu 256 Bytes. Welche Methoden sind den hier sinnvoll?? (einefache Prüfsumme aus den Modulo 255 Werten der Bytes oder doch eine höherer Methode??) So nun die 2. Frage: Beim Bootloader möchte ich auch die Möglichkeit haben den Avr auszulesen. Nur wie lese ich den ganzen Flash Speicher aus der Boot Sektion aus?? Danke im Voraus Gruß Martin
Hab noch eine Frage, Jeder Avr Typ hat doch sichher eine eigene Device ID. Wie kann ich die aus dem AVR auslesen? Danke im Voraus Gruß Martin
Also ein 16-Bit-Wert,der lediglich nur alle aufaddierten Bytes beinhaltet,funktioniert schon recht zuverlässig.Sollten die Daten bei der Übertragung gestört werden (1-Bit und Mehrbit-Fehler),ist die Wahrscheinlichkeit sehr hoch,das du damit ungültige Daten erkennst.Allerdings bieten CRC&Co eine bessere Fehlererkennungsrate. Zur ID: In der Application-Note AVR910 von Atmel (doc0943.pdf) wird u.a. das Auslesen des Devicecode beschrieben.Einfach mal danach googlen.
Hi Ronny Danke für die Tipps. Ich hab mir die App Note von Atmel mal angeschaut. Ist recht interessant. Das Problem bei mir ist aber, dass ich nicht mit ISP programmiere, sondern über USB (mit FT245) oder über RS232. Kann ich da auch irgendwie zum Device Code kommen? Gruß Martin
Auf http://www.roboter-teile.de/modules.php?name=Forums&file=viewtopic&p=355 hab ich schon einige Device Codes gefunden :)
1 | Device code: 0x13 = AT90S1200 |
2 | Device code: 0x20 = ATtiny2313 |
3 | Device code: 0x28 = AT90S4414 |
4 | Device code: 0x30 = AT90S4433 |
5 | Device code: 0x34 = AT90S2333 |
6 | Device code: 0x38 = AT90S8515 |
7 | Device code: 0x48 = (unknown) |
8 | Device code: 0x4c = AT90S2343 |
9 | Device code: 0x51 = (unknown) |
10 | Device code: 0x55 = ATtiny12 |
11 | Device code: 0x56 = ATtiny15 |
12 | Device code: 0x68 = AT90S8535 |
13 | Device code: 0x6c = AT90S4434 |
14 | Device code: 0x86 = (unknown) |
15 | Device code: 0x87 = (unknown) |
16 | Device code: 0x23 = (unknown) |
17 | Device code: 0x3a = ATMEGA8515 |
18 | Device code: 0x3b = (unknown) |
19 | Device code: 0x41 = ATMEGA103 |
20 | Device code: 0x43 = ATMEGA128 |
21 | Device code: 0x44 = (unknown) |
22 | Device code: 0x45 = (unknown) |
23 | Device code: 0x46 = (unknown) |
24 | Device code: 0x5e = ATTINY26 |
25 | Device code: 0x60 = ATMEGA161 |
26 | Device code: 0x61 = (unknown) |
27 | Device code: 0x62 = (unknown) |
28 | Device code: 0x63 = (unknown) |
29 | Device code: 0x64 = ATMEGA163 |
30 | Device code: 0x66 = (unknown) |
31 | Device code: 0x69 = (unknown) |
32 | Device code: 0x6a = (unknown) |
33 | Device code: 0x72 = ATMEGA32 |
34 | Device code: 0x73 = (unknown) |
35 | Device code: 0x74 = ATMEGA16 |
36 | Device code: 0x75 = ATMEGA169 |
37 | Device code: 0x76 = ATMEGA8 |
38 | Device code: 0x77 = (unknown) |
39 | Device code: 0x78 = (unknown) |
40 | Device code: 0x79 = (unknown) |
41 | Device code: 0x65 = (unknown) |
42 | Device code: 0x67 = (unknown) |
43 | Device code: 0x42 = (unknown) |
So ich werde die CRC Prüfung nach dem gleichem Schema wie im IP Protokoll oder TCP Protokoll machen. Sprich: Addition der EInerkomplemente und dann aus der Summe wieder das Einerkomplement. Ich werde es aber auf 8 Bit BAsis machen. Nun zum Problem beim Device ID auslesen. Ist das über den Bootlaoder möglich? Gruß Martin
So ich hab nun wieder eine Tabelle mit Device Codes gefunden: http://www.atmel.com/dyn/resources/prod_documents/doc2525.pdf Jedoch unterscheiden sich die mit den obrigen. Wo finde ich zuverlässige Quellen. Die Device ID ist ja für jeden Avr Typ fix, oder??
Ich denke hierbaei handelt es sich nur um die Device Codes für das ST500 Protkoll und hat nichts mit der Device ID des AVRs selbst zu tun, oder? Ich möchte halt kontrolliern ob die Target MCU dem eingestellten Controller übereinstimmt...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.