ATmega328PB taktet zu langsam

OP #5924974
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?
Angehängte Dateien:
OP #5924999
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?
OP #5925011
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.
Angehängte Dateien:
OP #5925025
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.
#5925035
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ß ...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren