-
        

Ergebnis 1 bis 5 von 5

Thema: Taktproblem mit ATMega8

  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    28.05.2007
    Ort
    Mannheim
    Alter
    30
    Beiträge
    270

    Taktproblem mit ATMega8

    Anzeige

    Hallo Leute,

    ich habe hier ein Takt-Problem mit meinem ATMega8 und kann mir das alles wirklich nicht mehr erklären. Was sagt ihr dazu:

    Meine Beschaltung ist wie folgt:
    Ein 4MHz Quarz mit 2 Kondensatoren an XTAL1 und XTAL2 geschalten, so wie im Datenblatt angezeigt.
    Die Fusebits stehen bei mir noch auf default, also eigentlich 1MHz interner RC-Oszillator. Das Programm läuft mit dieser Konfiguration, allerdings etwa 3,5 mal langsamer als er sollte.

    So, nun wollte ich das ganze mal etwas ausbessern und habe folgendes gemacht:
    Die Fusebits auf 4MHz externen Oszillator (ist dass das gleiche wie ein Quarz???) gesetzt (CKSEL=1101 SUT=11)
    Mit dieser Konfiguration läuft das Programm gar nicht mehr.

    So, nun habe ich den Quarz weg gelöstet und die Fuses wie folgt gesetzt:
    CKSEL=0011 SUT=10 Also eigentlich doch Interner 4MHz RC-Oszillator...

    Allerdings läuft auch unter dieser Konfiguration gar nichts mehr.

    woran könnte das alles liegen?
    Ich will eigentlich nur entlich mal ein Programm genau in der Geschwindigkeit laufen lassen wie ich es im Programm angebe. Dieses Timingproblem habe ich schon seit ewigkeiten.
    Hoffe ihr könnt mir sagen was ich hier falsch mache.

    Gruß Robodriver

  2. #2
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Wenn die Fuses auf externer Oszillator eingestellt sind, genügt ein einfacher Quarz mit KOndensatoren nicht, sondern es wird ein kompletter externer Generator (z.B. so ein etwas größerer Metallkasten mit 4 Anschlüssen) erwartet. Damit sollte nicht einmal mehr das Programieren und Auslesen der ID funktionieren. Kann der Programmierer (welches Programm ?) den Chip noch erkennen ?

    Zum Glück ist CKSEL=1101 nicht der externe Oszillator (sondern 1-3 MHz Quarz), sonst müsste ein externer Takt an einen der Clock Pins, vermutlich XTAL1 (im Datenblatt nachsehen welcher). Ein 4 MHz Quarz hätte damit normalerweise auch laufen sollen.

    Wenn der Oszillator nicht schwingt, sollte aber auch das Programmieren nicht mehr gehen. Eventuell ist also das Fuse Setting gar nicht angekommen.


    Das richtige Fuse setting ist external Crystal/Resonator (3-9 MHz), also CKSEL=1111. Und SUT = 01 , 10 oder 11 . Je nachdem ob Brownout gewünscht.

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    28.05.2007
    Ort
    Mannheim
    Alter
    30
    Beiträge
    270
    Also ich habe einen separaten Brenner. Das heißt auf dem Ist eine eigene Takterzeugung drauf.

    Ja, mit den Settings externem Oszillator spricht der Brenner nicht mehr an. ist aber halb so wild, weil ich einen Oszillator da habe. Den hab ich dann einfach angeschlossen und dann konnte ich die Einstellungen auch wieder zurück nehmen.
    Ansonsten habe ich die Fuses jetzt mal auf CKSEL=1111 und SUT=11 gesetzt. Und es scheint mit dem Externen Quarz zu laufen und die Wait-Zeiten scheinen auch zu stimmen.

    Ich habe jetzt aber zwischenzeitlich mal nochmal probiert auf Internen RC-Oszillator zu schalten. Dann spricht aber mein I²C Hardware nicht mehr auf ankommende Daten an (Interrupt) kann das sein das diese eine Externe Takterzeugung braucht oder habe ich jetzt durch die genaueren Zeiten vielleicht einen schnelleren Sender als Empfänger?

  4. #4
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Der externe Takt hat kaum vorteile gegenüber den Quarz am Oszillator. Außer wenn ein sehr niedriger oder extrem stabiler Takt oder eine Syncronisation mit einer anderen Quelle nötig ist, geht es auch ohne externen Takt. Das die I2C Verbindung nicht mehr klappt kann eventuell an der Frequenz liegen, aber nicht an der Quelle des Taktes.

  5. #5
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    28.05.2007
    Ort
    Mannheim
    Alter
    30
    Beiträge
    270
    Hm, in Bascom hab ich 4 MHz definiert und in den Fuses habe ich auch 4 MHz internen Tatk eingestellt.

    Mit der Einstellung 1MHz interner Takt und extern den Quarz mit 2 Kondensatoren dran lief die Software einwandfrei. Obwohl die Wait-Zeiten halt das 4 fache des angegebenen benötigten

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •