Hi zusammen,
bei einem aktuellen Projekt bin ich auf ein Problem gestoßen:
Ich verwende einen ATmega128 und würde gern Port G3 und G4 nutzen.
Port G2 funktioniert einwandfrei. G3 und G4 machen gar nichts. Der Mega ist ok, habe auch einen anderen ausprobiert.
Da der G-Port ja was Besonderes ist hier mal die Fakten:
Fusebits: Low 3F (Brown-Out 4V, Brown-out enabled, Ext. CRystal High Speed), High C0 (kein OCD, kein JTAG, SPI an, osc=0)
Extended: ATMEGA128 Mode an, Watchdog aus.
externer Quarz vorhanden, Grundsätzlich läuft der Chip.
Lasse ich nun G2, G3 und G4 im Sekundentakt togglen geht G2 einwandfrei, G3 und G4 aber gar nicht.
Im Datasheet steht nur, dass IM ATmega103 compatibility mode die beiden Pins als oscillator Pins genutzt werden, IM 128 Mode NICHT.
Google spuckt auch nix aus, ausser evtl. keiner Funktion wegen JTAG, dann aber bei anderen Ports und nicht G.
Hat jemand eine Idee?
Gruß
Markus
ATmega128 Frage
Moderatoren: Heaterman, Finger, Sven, TDI, Marsupilami72, duese
- Fritzler
- Beiträge: 12604
- Registriert: So 11. Aug 2013, 19:42
- Wohnort: D:/Berlin/Adlershof/Technologiepark
- Kontaktdaten:
Re: ATmega128 Frage
Ausversehen das Fusebit falsch gesetzt?
Hier kannste dir direkt die Häkcnen oder HEX Werte zeigen lassen:
http://www.engbedded.com/fusecalc/
Ansonsten ausversehn den Timer0 auf externen Takt gestellt?
Hier kannste dir direkt die Häkcnen oder HEX Werte zeigen lassen:
http://www.engbedded.com/fusecalc/
Ansonsten ausversehn den Timer0 auf externen Takt gestellt?
Re: ATmega128 Frage
Die Fusebits habe ich ja oben angegeben. Meines Erachtens sind die ok.
In Frage kämen da ja nur OCD / JTAG (beides aus) oder osc (habe ich schon mit 0 und 1 probiert - kein Unterschied).
Ich bin zur Fehlersuche soweit heruntergegangen dass das Programm NUR noch Port G2-4 als Output definiert und die Ports
in einer Loop ein Mal pro Sekunde togglen.
Also kein Timer definiert.
Port G2 geht - G3 und G4 eben nicht. ALLE anderen Ports funktionieren wie im Lehrbuch.
Ein anderer Chip des selben Typs zeigt das selbe Phänomen.
In Frage kämen da ja nur OCD / JTAG (beides aus) oder osc (habe ich schon mit 0 und 1 probiert - kein Unterschied).
Ich bin zur Fehlersuche soweit heruntergegangen dass das Programm NUR noch Port G2-4 als Output definiert und die Ports
in einer Loop ein Mal pro Sekunde togglen.
Also kein Timer definiert.
Port G2 geht - G3 und G4 eben nicht. ALLE anderen Ports funktionieren wie im Lehrbuch.
Ein anderer Chip des selben Typs zeigt das selbe Phänomen.
- Fritzler
- Beiträge: 12604
- Registriert: So 11. Aug 2013, 19:42
- Wohnort: D:/Berlin/Adlershof/Technologiepark
- Kontaktdaten:
Re: ATmega128 Frage
Jo, die Fusebits sind aber invertierte Logik, da hat man ganz shcnell maln KNoten im Kopf.
Daher der Ratschlag mit dem Abgleich.
Womit haste die Fusebits ind en AVR gehämmert?
Aber im m103 Mode sollte ja ganz PortG nicht gehen *Kopfkratz*
Bau beim Init deines Programms mal bitte aus Spaß ein "ASSR = 0;" ein.
Daher der Ratschlag mit dem Abgleich.
Womit haste die Fusebits ind en AVR gehämmert?
Aber im m103 Mode sollte ja ganz PortG nicht gehen *Kopfkratz*
Bau beim Init deines Programms mal bitte aus Spaß ein "ASSR = 0;" ein.
Re: ATmega128 Frage
Ich benutze BASCOM (jaja... ich komme sehr gut damit zurecht)...
Ich habe "aus Spaß" ASSR=0 gesetzt (heisst bei BASCOM auch genau so) und: geht.
MEINGOTTDERGEHT.
Keine Ahnung warum aber es klappt. Obwohl es im Datenblatt NUR den Hinweis auf den M103 Mode gibt.
Aber jetzt klappt's, jetzt kann ich wieder einige Ebenen höher weiter machen.
Großes Danke an Martin.
Ich habe "aus Spaß" ASSR=0 gesetzt (heisst bei BASCOM auch genau so) und: geht.
MEINGOTTDERGEHT.
Keine Ahnung warum aber es klappt. Obwohl es im Datenblatt NUR den Hinweis auf den M103 Mode gibt.
Aber jetzt klappt's, jetzt kann ich wieder einige Ebenen höher weiter machen.
Großes Danke an Martin.
Re: ATmega128 Frage
Was dieses Programm im Hintergrund tut bzw. die Ungewissheit darüber UND die Unzulänglichkeiten von Basic hindern mich daran, das Gefrickel damit zu vermissen.timaks hat geschrieben:Ich benutze BASCOM (jaja... ich komme sehr gut damit zurecht)...
Der fehlende Debugger ist noch das kleinste Problem.
- Fritzler
- Beiträge: 12604
- Registriert: So 11. Aug 2013, 19:42
- Wohnort: D:/Berlin/Adlershof/Technologiepark
- Kontaktdaten:
Re: ATmega128 Frage
Bascom nutzt im Hintergrund gewisse Dinge.
zB ist der UART auch immer aktiv und wenn man dann ein LCD mit an diese Pins knallt gehts nicht...
Aber warum jetzt Timer0 im async Mode läuft, keine Ahnung.
Der Timer steht dann still weil er kein Takt bekommt.
Die hamm doch vergammeltes Gras geraucht...
Ansonsten ist es empfehlenswert C zu lernen, das ist der beste Weg
zB ist der UART auch immer aktiv und wenn man dann ein LCD mit an diese Pins knallt gehts nicht...
Aber warum jetzt Timer0 im async Mode läuft, keine Ahnung.
Der Timer steht dann still weil er kein Takt bekommt.
Die hamm doch vergammeltes Gras geraucht...
Ansonsten ist es empfehlenswert C zu lernen, das ist der beste Weg