Ich benutze einen ATmega328 und möchte ein kleines "Bitmap" vom PC in das interne EEPROM schreiben, damit ich es später auf einem LED-Display anzeigen kann. Der µc hat 1 KB EEPROM, das Bitmap 1000 Bytes, eine andere kleine Testdatei 11 Bytes. Ich wandle die Binärdatei mit diesem Tool in eine hex-Datei um: http://www.ht-lab.com/freeutils/bin2hex/bin2hex.html und versuche sie mit AVR Studio 5 via "Memories -> EEPROM -> Program" hochzuladen. Dabei kommt beim verifizieren die Fehlermeldung: "Verifying EEPROM...Failed! address=0x0004 expected=0x6c actual=0xff" Kann mir jemand helfen? Muss das hex-File eine bestimmte Startadresse oder sonstige Parameter haben?
Hier noch die Dateien: test.txt ist meine Ursprungsdatei:
1 | little test |
test.hex ist diese Datei nach hex konvertiert:
1 | :0D0000006C6974746C6520746573740D0A6E |
2 | :00000001FF |
out.hex erhalte ich nach dem auslesen des EEPROMS nach brennen von test.hex
1 | :100000006C697474FFFFFFFF6C652074FFFFFFFFD6 |
2 | :100010006573740DFFFFFFFF0AFFFFFFFFFFFFFF88 |
3 | :10002000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 |
4 | :10003000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 |
5 | :10004000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 |
6 | :10005000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 |
7 | :10006000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 |
8 | :10007000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 |
9 | :10008000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 |
10 | :10009000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 |
11 | :1000A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 |
12 | :1000B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 |
13 | :1000C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 |
14 | :1000D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 |
15 | :1000E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 |
16 | :1000F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 |
17 | :10010000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
18 | :10011000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF |
19 | :10012000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF |
20 | :10013000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF |
21 | :10014000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF |
22 | :10015000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF |
23 | :10016000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F |
24 | :10017000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F |
25 | :10018000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F |
26 | :10019000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F |
27 | :1001A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F |
28 | :1001B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F |
29 | :1001C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F |
30 | :1001D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F |
31 | :1001E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F |
32 | :1001F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F |
33 | :100200006C697474FFFFFFFF6C652074FFFFFFFFD4 |
34 | :100210006573740DFFFFFFFF0AFFFFFFFFFFFFFF86 |
35 | :10022000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE |
36 | :10023000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE |
37 | :10024000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE |
38 | :10025000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE |
39 | :10026000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E |
40 | :10027000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E |
41 | :10028000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E |
42 | :10029000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E |
43 | :1002A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E |
44 | :1002B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E |
45 | :1002C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E |
46 | :1002D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E |
47 | :1002E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E |
48 | :1002F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E |
49 | :10030000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD |
50 | :10031000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED |
51 | :10032000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD |
52 | :10033000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD |
53 | :10034000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD |
54 | :10035000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD |
55 | :10036000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D |
56 | :10037000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D |
57 | :10038000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D |
58 | :10039000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D |
59 | :1003A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D |
60 | :1003B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D |
61 | :1003C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D |
62 | :1003D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D |
63 | :1003E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D |
64 | :1003F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D |
65 | :00000001FF |
Er schreibt also 4 Bytes Daten, dann 4 Bytes FF anstatt der Daten. Weshalb? Und wieso steht die ganze Sequenz in der Mitte des EEPROMS nochmal?
OK, hat sich erledigt. Ich benutze einen mySmartUSB MK3 Programmer. Entwder ist der nicht mit der EEPROM Schreibroutine von AVR Studio kompatibel, oder AVR Studio hat einen Bug. Auf jeden Fall klappt es mit dem myAVR-eigenen Tool. Wieder mal schön Zeit verschwendet...
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.