Forum: Mikrocontroller und Digitale Elektronik ATmega328PB taktet zu langsam


von Veit D. (devil-elec)


Angehängte Dateien:

Lesenswert?

Hallo,

möchte einen ATmega328PB (PB!) testen.
CLKDIV8 Fuse mit meinem AVRISP mkII rausgenommen und extern Crystal Fuse 
gesetzt. 8MHz Quarz usw. ran. Fuse auslesen funktioniert weiterhin.

Blinkcode geflasht > taktet um Faktor 8 zu langsam.

F_CPU = 8000000UL ist als allgemeines Symbol konfiguriert.
1
#include <avr/io.h>
2
#include <util/delay.h> 
3
4
int main(void)
5
{
6
  DDRD  = (1<<PD6);         
7
   
8
    while (1) 
9
    {
10
    PORTD ^= (1 << PD6);  // Toggle PD6 
11
    _delay_ms(100);
12
    }
13
}

Mit Datalogger messe ich Pulsbreiten von jeweils 800ms.

Der Witz ist jedoch das er genauso weiterblinkt wenn ich den Quarz 
entferne.
Der dürfte doch nicht sein?

Das ändern der Fuse interessiert den gar nicht. Fuse CKDIV8 an/aus, 
völlig egal. Fuse intern RC oder extern Crystal, völlig egal.

Wie kann das sein?

: Bearbeitet durch User
von Oliver S. (oliverso)


Lesenswert?

Deine Fuse-Änderungen laufen anscheinend ins Leere. Der Prozessor läuft 
die ganze Zeit im Auslieferungszustand mit 8Mhz und gesetzter 
Clkdiv-Fuse.

Oliver

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Man könnte vermuten, daß das Programmieren der "Fuses" nicht 
funktioniert.

von holger (Gast)


Lesenswert?

Nimm mal die Versorgungsspannung weg und schalte sie wieder ein.

von Veit D. (devil-elec)


Lesenswert?

Hallo,

hatte ihn vorhin als letztes auf internen RC gefused.

Spannung kurz weg, blinken stimmt jetzt.

Fuse ich ihn wieder auf extern Crystal, dauert es ewig bis es blinkt und 
dann blinkt es wieder zu langsam. Spannung weg hilft auch nicht.

Fuse ich wieder auf intern RC und nehme kurz die Spannung weg, blinkt es 
wieder korrekt.

Ist mir noch ein Rätsel.

Nur wenn ich die Fuse ändere schreibt er doch die gewollten Daten und 
liest sie zurück. Wenn die alten Einstellung zurückkommen müßte er doch 
meckern? Oder übernimmt der PB die Fuse erst nach Reset?

: Bearbeitet durch User
von Veit D. (devil-elec)


Angehängte Dateien:

Lesenswert?

Hallo,

nehme ich die andere extern Crystal Einstellung stellt er sich danach 
tot, nach Spannung weg lebt er wieder, taktet aber auch zu langsam.

Man könnte vermuten der Quarz hätte eine Macke, funktioniert jedoch am 
ATtiny841 wunderbar wenn ich umbaue. Wenn das Steckbrett eine Macke 
hätte dürfte er laut meiner Logik überhaupt nicht funktionieren.

Stand ist, funktioniert aktuell nur korrekt mit internen RC und kurz 
Spannung kurz weg.

: Bearbeitet durch User
von Veit D. (devil-elec)


Lesenswert?

Hallo,

habe was im Manual lesen können. Er nimmt demnach den externen Quarz 
nicht und schaltet zur Sicherheit automatisch auf intern und 1MHz um.
1
CFD - Clock Failure Detection mechanismClock Failure Detection and Switching Mechanism is a new feature introduced in ATmega328PB. Thisdigital logic detects the failure of the Low power crystal oscillator, Full swing crystal oscillator, and externalclocks. If a failure is detected, this logic will automatically switch the clock to 1MHz internal RC systemclock.
2
3
The Clock Failure Detection mechanism for the device is enabled by an active high fuse. When the CFDfuse is enabled, 128kHz oscillator will be enabled and the CFD circuit works using that clock.
4
5
CFD will be automatically disabled when the chip enters power save/down sleep mode. It will be enabledby itself when the chip returns to active mode. CFD will be enabled only when the system frequency isgreater than 256kHz.

von Veit D. (devil-elec)


Lesenswert?

... und damit findet sich auch die Lösung des Problems, der Quarz 
steckte um ein Pin versetzt falsch. Mir fiel jetzt auf das ich die 
Ziffern vermehrt hatte. PB6/PB7 != Pin 7/8.   :-)

Danke allen für die Hilfe.

CFD ist demnach ein geiles Feature.

: Bearbeitet durch User
von Johann J. (johannjohanson)


Lesenswert?

Veit D. schrieb:
> Stand ist, funktioniert aktuell nur korrekt mit internen RC und kurz
> Spannung kurz weg.

Kann es sein, dass Du vergessen hast uns einen Schaltplan vorzustellen / 
alternativ ein scharfes Bild mit allen Details?

Auf dem vorgestellten Bild sehe ich alles und nichts - die Farben der 
Kabel sind willkürlich und man kann nur ahnen, wo die Quarz-Beinchen 
andocken. Vielleicht trügt die Ahnung - vielleicht ist der Adapter auch 
nicht "koscher" - wer weiß ...

von Stefan F. (Gast)


Lesenswert?

Falls der Quarz nochmal zicken sollte: Die Kontakte in den Steckbrettern 
haben eine beträchtliche Kapazität (ca 5-10pF) zueinander. Quarze laufen 
darin nicht immer gut.

von klöner (Gast)


Lesenswert?

Ist der Quarz zwischen Pin 6 und 7 oder zwischen 7 und 8. Er muß 
zwischen Pin 7 (PB6) & 8 (PB7)! Auf dem Bild nicht so gut erkennbar.

von klöner (Gast)


Lesenswert?

klöner schrieb:
> Ist der Quarz zwischen Pin 6 und 7 oder zwischen 7 und 8. Er muß
> zwischen Pin 7 (PB6) & 8 (PB7)! Auf dem Bild nicht so gut erkennbar.

OK, wurde schon entdeckt.

von Veit D. (devil-elec)


Lesenswert?

ja, alles gut seit 19:47 Uhr   :-)

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
Noch kein Account? Hier anmelden.