Hi, bin ein Neuling im µc Bereich. Hab mir einen atmega32 gekauft und ihn wie auf http://rn-wissen.de/images/6/65/Avrtutorial_grundschaltung_max232.gif mit einem 16MhzQuarz aufgebaut. Um den zu Programmieren hab ich mir usbasp gekauft. (von:https://www.ssl-id.de/b-redemann.de/catalog/product_info.php?cPath=44&products_id=32&osCsid=5r4sutvj235cu7oecb2kun9bk3) Problem ist jetz allerdings, dass ich nichts in den flash schreiben kann. Auslesen Klappt wunderbar.Auch das schrieben der fusebits und schreiben des eeproms klappt So nebenbei: Der ISP stecker ist nicht falschrum, bei usbasp ist nur der JP für slowsck gesetzt.Auch wenn der nicht gestzt ist klappt es nicht, kein unterschied. Beim Programmieren bzw auslesen leuchten beide LEDs vom usbasp. Getestet hab ich folgendes: D:\Users\Public\Documents\µc\avrdude-5.5\avrdude-5.5-win32-bin>avrdude.e xe -c us basp -p m32 -t found 7 busses avrdude.exe: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.03s avrdude.exe: Device signature = 0x1e9502 avrdude> read flash 0 50 >>> read flash 0 50 0000 a0 29 72 06 00 00 00 00 00 00 80 01 17 4b 7b 00 |á)r..........K{.| 0010 60 9a 10 03 f8 fa 12 00 e6 3e 7b 00 80 01 00 00 |`Ü..°....>{.....| 0020 80 00 00 00 10 b2 40 04 4c fb 12 00 a5 c6 7c 00 |.....▓@.L...Ñã|.| 0030 80 01 |.. | avrdude> write flash 0 0x45 0x45 0x45 >>> write flash 0 0x45 0x45 0x45 avrdude.exe (write): error writing 0x45 at 0x00000 cell=0xa0 avrdude.exe (write): error writing 0x45 at 0x00001 cell=0x29 avrdude.exe (write): error writing 0x45 at 0x00002 cell=0x72 avrdude> read hfuse 0 1 >>> read hfuse 0 1 0000 d9 |. | avrdude> read lfuse 0 1 >>> read lfuse 0 1 0000 0f |. | avrdude> part >>> part AVR Part : ATMEGA32 Chip Erase delay : 9000 us PAGEL : PD7 BS2 : PA0 RESET disposition : dedicated RETRY pulse : SCK serial program mode : yes parallel program mode : yes Timeout : 200 StabDelay : 100 CmdexeDelay : 25 SyncLoops : 32 ByteDelay : 0 PollIndex : 3 PollValue : 0x53 Memory Detail : Block Poll Page Pol led Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadB ack ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ------ --- eeprom 4 10 64 0 no 1024 4 0 9000 9000 0xff 0 xff flash 33 6 64 0 yes 32768 128 256 4500 4500 0xff 0 xff lfuse 0 0 0 0 no 1 0 0 2000 2000 0x00 0 x00 hfuse 0 0 0 0 no 1 0 0 2000 2000 0x00 0 x00 lock 0 0 0 0 no 1 0 0 2000 2000 0x00 0 x00 signature 0 0 0 0 no 3 0 0 0 0 0x00 0 x00 calibration 0 0 0 0 no 4 0 0 0 0 0x00 0 x00 avrdude> read eeprom 0 5 >>> read eeprom 0 5 0000 ff ff ff ff ff |..... | avrdude> write eeprom 0 0x48 0x61 0x6C 0x6C 0x6F >>> write eeprom 0 0x48 0x61 0x6C 0x6C 0x6F avrdude> read eeprom 0 5 >>> read eeprom 0 5 0000 48 61 6c 6c 6f |Hallo | avrdude> Woran kann das liegen? Fehler beim Löten? µc defekt? Bin für jeden Tipp dankbar.
Hallo, gelöscht hast Du den Flash aber vor dem programmieren? Gruß aus Berlin Michael
Du meinst mit "erase" ? Das geht auch nit? Muss man das immer vor dem schreiben machen? avrdude> erase >>> erase avrdude.exe: erasing chip avrdude> read flash 0 50 >>> read flash 0 50 0000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 0010 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 0020 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 0030 ff ff |.. | avrdude> write flash 0 0x48 0x61 0x6C 0x6C 0x6F >>> write flash 0 0x48 0x61 0x6C 0x6C 0x6F avrdude.exe (write): error writing 0x48 at 0x00000 cell=0xff avrdude.exe (write): error writing 0x61 at 0x00001 cell=0xff avrdude.exe (write): error writing 0x6c at 0x00002 cell=0xff avrdude.exe (write): error writing 0x6c at 0x00003 cell=0xff avrdude.exe (write): error writing 0x6f at 0x00004 cell=0xff avrdude>
Hallo, ich benutze AVRDude nicht und habe den Flash auch noch nie sozusagen zu Fuß beschrieben, keine Ahnung, ob das geht, würde mich wundern. Löschen mußt Du vorher, es kann nur eine 1 auf 0 programmiert werden. Gruß aus Berlin Michael
hab einfach mal mit Bascom
1 | $regfile = "m32def.dat" |
2 | $framesize = 32 |
3 | $swstack = 32 |
4 | $hwstack = 32 |
5 | $crystal = 16000000 |
6 | $baud = 9600 |
7 | Config Portc.0 = Output 'Ein Pin wird als Ausgang konfiguriert PC0 (also Pin0 von Port C) |
8 | Portc.0 = 1 |
9 | Do |
10 | Print "**** RN-CONTROL sagt Hello World *****" |
11 | Wait 1 |
12 | Loop |
compiliert und es versucht mit bascom zu übertragen.(Auslesen und erkennen geht)Beim programmieren, wenn ich Autoprogramming auswähle, geht das Fenster sofort wieder weg. Wenn ich es manuell mache bekomm ich den Fehler: Chip differs at byte address : 00000 Buffer read 384 bytes written to FLASH CHIP is empty Buffer read CHIP erased USBASP programmer set Wenn ich das ganze als .hex mit avrdude hochladen bekomme ich keinen Fehler:
1 | D:\Users\Public\Documents\µc\avrdude-5.5\avrdude-5.5-win32-bin>avrdude.exe -c u |
2 | basp -p m32 -U justprint.hex |
3 | found 7 busses |
4 | |
5 | avrdude.exe: AVR device initialized and ready to accept instructions |
6 | |
7 | Reading | ################################################## | 100% 0.03s |
8 | |
9 | avrdude.exe: Device signature = 0x1e9502 |
10 | avrdude.exe: NOTE: FLASH memory has been specified, an erase cycle will be perf |
11 | rmed |
12 | To disable this feature, specify the -D option. |
13 | avrdude.exe: erasing chip |
14 | avrdude.exe: reading input file "justprint.hex" |
15 | avrdude.exe: input file justprint.hex auto detected as Intel Hex |
16 | avrdude.exe: writing flash (316 bytes): |
17 | |
18 | Writing | ################################################## | 100% 1.52s |
19 | |
20 | |
21 | |
22 | avrdude.exe: 316 bytes of flash written |
23 | avrdude.exe: verifying flash memory against justprint.hex: |
24 | avrdude.exe: load data flash data from input file justprint.hex: |
25 | avrdude.exe: input file justprint.hex auto detected as Intel Hex |
26 | avrdude.exe: input file justprint.hex contains 316 bytes |
27 | avrdude.exe: reading on-chip flash data: |
28 | |
29 | Reading | ################################################## | 100% 1.39s |
30 | |
31 | |
32 | |
33 | avrdude.exe: verifying ... |
34 | avrdude.exe: 316 bytes of flash verified |
35 | |
36 | avrdude.exe: safemode: Fuses OK |
37 | |
38 | avrdude.exe done. Thank you. |
allerdings wenn ich es dann auslese steht was falsches drin in Z:~0x130 sollte etwas von "Hello World" stehen.
1 | avrdude> read flash 0x120 0xF0 |
2 | >>> read flash 0x120 0xF0 |
3 | 0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| |
4 | 0130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| |
5 | 0140 f0 17 3a 04 b8 fb 12 00 e4 80 5b 00 01 9e 57 00 |.:.©...õ.[..×W.| |
6 | 0150 80 80 5b 00 c0 fb 12 00 8a 80 5b 00 b8 fb 12 00 |..[.└.....[.©...| |
7 | 0160 00 00 00 00 40 80 5b 00 01 9e 57 00 70 6a 09 03 |....@.[..×W.pj .| |
8 | 0170 fc fb 12 00 a1 c2 5b 00 cc fb 12 00 c8 c2 5b 00 |³...í┬[.╠...╚┬[.| |
9 | 0180 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| |
10 | 0190 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| |
11 | 01a0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| |
12 | 01b0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| |
13 | 01c0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| |
14 | 01d0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| |
15 | 01e0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| |
16 | 01f0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| |
17 | 0200 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| |
Wo liegt mein Fehler?
Letztendlicht klappt es, danke für die Hilfe. Wenn wer das selbe Problem hat: Das hochladen als hex klappt, das "manuelle" Programmieren mit avrdude nicht. Der punkt Programmer=USBASP in Bascom funktioniert nicht mit meinem USBasp (so muss es gemacht werden-> Beitrag "AVRdude als externen Programmer in BASCOM einbinden") Alle Leiterbahnen zwischen ISP und µc nochmal nachgehen(weis nit ob es bei mir dadran gelegen hat). Kabel zwischen USBasp und der Buchse vom µc austauschen. Eizelne datei übertragen macht man mit
1 | avrdude.exe -c usbasp -p m32 -U dateinameisthier.hex |
Vielen Dank
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.