www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Einsteiger braucht hilfe ATmega8


Autor: Jens H. (deltaspace)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Kluchscheißernder Nixwisser (kluchscheisser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Jens H. (deltaspace)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Joe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stell dein BASCOM-Programm hier rein.

Autor: Joe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab was für Anfänger gefunden:

http://home.arcor.de/wosm/AtmegaProjekt/index.htm

Autor: Jens H. (deltaspace)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier mein Bascom Programm:
'0201.BAS: LED an Pin PD7 leuchten lassen
'Hardware: Rote LED an Pin PD7, gelbe an PD6, grüne an PD5
'--------------------------------------------------------------

$regfile = "m8def.dat"                                      'ATmega8-Deklarationen
$crystal = 3686400                                          'Taktfrequenz: 3,6864 MHz

Ddrd = &B10000000                                           'Pin PD7 als Ausgang konfigurieren
Portd = &B11111111                                          'Alle PortD-Pins auf High setzen

Do
Loop
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.

Autor: The_Ride (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: oldmax (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.