Hallo Leute, bin gerade erst beim einstieg in die AVR Welt und stehe gleich vor einem riesigen Problem. Ich habe das AVR Mikrocontroller Lehrbuch von Roland Walter, eine entsprechende Experimentierplatine und einen USBasp brenner. Ich habe wie im Buch beschrieben die FUSE für den ext. Crystal eingestellt. Jetzt habe ich das Listing aus Kap. 2 abgetippt (BASCOM) und in den AVR gebrannt. Danach soll die rote LED angehen, aber da tut sich nichts. Es kommt von Bascom beim brennen die Meldung: F:\AVR Projekte\0201.EEP not found 128 bytes written to Flash Wenn ich dann aber einen Vergleich mache, kommt die Meldung: Chip differs at byte address : 00000 Was kann das Problem sein, warum sich dieser AVR nicht Programmieren lässt? Wie gesagt, es ist der erste Versuch. Kann es sein, das der Chip defekt ist? MfG Jens
Jens H. schrieb: > Hallo Leute, > > bin gerade erst beim einstieg in die AVR Welt und stehe gleich vor einem > riesigen Problem. > Ich habe das AVR Mikrocontroller Lehrbuch von Roland Walter, eine > entsprechende Experimentierplatine und einen USBasp brenner. Wenn Du Dir jetzt noch das Datenblatt des Mega8 besorgst, dann bist Du für den selbstständigen Einstieg gut vorbereitet. > > Ich habe wie im Buch beschrieben die FUSE für den ext. Crystal > eingestellt. Warum? Der Mega8 läuft ab Werk mit internem Takt von 1MHz. Damit sollten alle Einsteiger-Experimente möglich sein. Erst bei zeitkritischen Dingen wie UART oder genauer Uhr ist ein externer Quarz nötig. An die Fuses sollte man sich erst heranwagen, wenn man versteht, was man tut. Der Anfänger versteht das normalerweise noch nicht. > > Jetzt habe ich das Listing aus Kap. 2 abgetippt Abtippen alleine reicht nicht, Du must versuchen, es zu verstehen. Ansonsten ist es schade um die Zeit. > (BASCOM) und in den AVR > gebrannt. Danach soll die rote LED angehen, aber da tut sich nichts. Es > kommt von Bascom beim brennen die Meldung: > > F:\AVR Projekte\0201.EEP not found > 128 bytes written to Flash Na vielleicht braucht das Programm ja keine EEP-Datei? Schau mal ins Datenblatt und ergründe die Unterschiede zwischen Flash, EEPROM, RAM, Registern und I/O. > > Wenn ich dann aber einen Vergleich mache, kommt die Meldung: > Chip differs at byte address : 00000 Was hast Du verglichen, Flash oder EEPROM? Das sind ja zweierlei Dinge. > > Was kann das Problem sein, warum sich dieser AVR nicht Programmieren > lässt? Ich kenne und benutze den USBASP nicht. Schau doch mal in der Doku des Herstellers nach, wie er benutzt wird und welche Software er braucht. Ich brenne mit STK500 oder Dragon und nutze das AVR-Studio 4 auf dem PC zum Brennen, auch dann, wenn ich mal was in Bascom programmiere (sehr selten). > Wie gesagt, es ist der erste Versuch. Kann es sein, das der Chip > defekt ist? Das ist sehr unwahrscheinlich. Ich tippe auf vermorkelte Fuses oder Inkompatiblität zu Bascom. Tip: Vor jedem Programmierzugriff die Signature auslesen und auf Korrektheit prüfen. Nur so ist sichergestellt, dass der AVR ansprechbar ist und der richtige Typ eingestellt ist. > > MfG > > Jens
Hallo Kluchscheißender Kluchscheißer, Das Datenblatt des Mega8 habe ich auch auf dem Rechner, und hab darin auch schon einiges gelesen. Die Fuses habe ich eingestellt, weil dies im Buch so vorgegeben war. Der AVR ist ja auch noch ansprechbar. Ich kann zumindest noch den Typ usw. auslesen. Verstanden habe ich das Listing schon. Das reines abtippen nicht ausreichend ist, ist schon klar. Man sollte die Funktion der Befehle kennen, bevor man sie einsetzt. Ob das Programm eine EEP DAtei braucht, weiß ich nicht. im Datenblatt habe ich nichts dazu gefunden. Aber wenn ich das richtig verstehe, dann ist die EEP Datei für die Daten, die in EEPROM kommen, oder nicht? Was genau verglichen wurde, kann ich dir nicht sagen. Im Brennprogramm von BASCOM gibt es einen Vergleich Button, und da hab ich dann draufgedrückt, weil ich ja die Meldung bekommen habe, das die Bytes in den Flash geschrieben wurden. Ich werd mir wohl auch noch ein STK500 zulegen, schon alleine deswegen, weil man damit auch falsch Programmierte Fuses wieder zurücksetzen kann. Was bitte meinst du mit Inkompatiblität zu Bascom? Gibt es Chips von AVR die sich mit Bascom nicht brennen lassen? Das mit dem Auslesen der Signatur habe ich gemacht. Dabei kam dann auch die Meldung Chip OK
Hier mein Bascom Programm:
1 | '0201.BAS: LED an Pin PD7 leuchten lassen |
2 | 'Hardware: Rote LED an Pin PD7, gelbe an PD6, grüne an PD5 |
3 | '-------------------------------------------------------------- |
4 | |
5 | $regfile = "m8def.dat" 'ATmega8-Deklarationen |
6 | $crystal = 3686400 'Taktfrequenz: 3,6864 MHz |
7 | |
8 | Ddrd = &B10000000 'Pin PD7 als Ausgang konfigurieren |
9 | Portd = &B11111111 'Alle PortD-Pins auf High setzen |
10 | |
11 | Do |
12 | Loop |
13 | End |
Hab gerade nochmal bei dem Vergleicher geschaut, es ist der Flash, der verglichen wird. Wenn ich den Chip lösche, und dann Teste ob der Chip gelöscht ist bekomme ich die Meldung: Chip erased Nachdem ich dann das Programm auf den Chip geladen habe und einen Power Off/On Reset gemacht habe, findet er beim vergleich aber immer noch differenzen an Adresse 00000. Deine Seite für Einsteiger sehe ich mir gleich an.
Hi! Da kann nichts leuchten Tipp mal das ein $regfile "m8def.dat" $crystal = 1000000 Config Portd = Output Do Portd.0 = 1 Waitms 500 Portd.0 = 0 Waitms 500 Loop das stammt von der Seite http://www.dieelektronikerseite.de/ er erklärt alles was man zum Anfang braucht habe auch damit angefangen :) cya The_Ride
Hi Ein Tipp von mir: schau hier mal in die Tutorials. Zum Rest: Ein Controller arbeitet mit Hardware eng zusammen. Da ist es wichtig, auch diese zu kennen, um zu beurteilen, ob eine LED leuchtet oder nicht. LED's funktionierten nun mal nur in eine Richtung, deshalb ja auch der Begriff "Diode". Des weiteren: ist diese LED an VCC oder GND geschaltet ? Nur mal so bemerkt: ein Datenblatt ist ja schon ganz gut, aber verstehst du auch, was da drin steht ? Ok, das mag bis hierher nicht sehr hilfreich gewesen sein, daher versuch ich's jetzt mal etwas anders: Die Tutorials in Assembler, die hier stehen sind besser geeignet, wie ein Bascom-Programm. Warum ? Ganz einfach, du lernst zu begreifen, wie tief unten dein Controller mit der Hardware verbunden ist. Assembler macht dir mit jedem Befehl klar, du arbeitest mit Speicherzellen und Bits. Und so schwer ist das auch nicht. Wenn du's erst mal begriffen hast, wirst du Bascon nur noch für mathematische Aufgaben einsetzen. Eine Hilfe dazu: versuche die Kürzel (Mnmonik) immer zu lesen: Ld =Load, st= store, jmp= Jump etc. Auch wenn Assembler von Controller zu Controller unterschiedlich ist, es gibt auch viele Gemeinsamkeiten. Gruß oldmax
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.