Hi, Mein µC hängt an einem 12,288MHz-Quarz mit 2 15pF Kondensatoren gegen Masse. VCC, AVCC und beide GNDs sind angeschlossen. In meinem Code schalte ich bisher ein Pin auf Ausgang und HIGH. Die angeschlossene LED leuchet. Setze ich nun die Fuses auf externen Quarz mit Frequenz größer 8MHz, dann tut sich nichts mehr. Die Fuseeinstellungen, siehe Anhang. Start-up-time ist auch die längste Mögliche. Am Quarz messe ich mit meinem Multimeter 2,5V (bei 5V Betriebsspannung), also ist da schon mal ein Takt (wie der genau aussieht, kann ich leider nicht feststellen). Habt ihr Ideen, was man bei meinem Problem machen könnte? Danke im Voraus Hannes
15 pF ungewöhnlich, ich habe von 16-20 MHz immer nur 22pF dran, 12 MHz hatte ich noch nie probiert, mir war so das ab 20 22 24 MHz kleinere Kondis ran sollten, aber über 20MHz hatte ich noch nie, wobei 22MHz (21.xxx Baudratenquarz sicher gehen soll 24MHz vereinzelt.) Hast du Unterspannung? ab >8 MHz Spannungsdiagramm beachten!
:
Bearbeitet durch User
Bild vom Aufbau? Abblock-Cs vorhanden? Eigentlich kann kein Takt vorhanden sein, sonst würde der µC ja laufen. Die Messung mit dem Multimeter ist Mist.
Ich kenne dein Programm nicht mit dem du die Fuses einstellst. Wenn allerdings kein Haken eine 0 bedeutet, dann hast du auf extern Clock gestellt. CKOPT aktivieren bringt in dem Fall nichts.
Hubert G. schrieb: > Wenn allerdings kein Haken eine 0 bedeutet, dann hast du auf extern > Clock gestellt. Wenn hingegen 'kein Haken' nur 'unprogrammiert' bedeutet (Fuse auf 1), dann wäre das richtig auf Ext. High Frequency Xtal mit langsamen Startup. @TE: Um alle Klarheiten zu beseitigen, lies doch mal, sofern vorhanden, einen fabrikfrischen Mega aus und zeig uns den Screenie.
Ok die fehlenden zusätzlichen Infos: 5V Betriebsspannung, 1µF und 100nF am VCC-Pin Im Burn-o-mat steht Häkchen für programmiert, also '0'. Also Fuses richtig gesetzt, wie Matthias schrieb. Ich habe leider nur den einen Atmega hier. Bzgl. Takt: die Fuses sind ja für externen Quarz gesetzt und ich kann noch über das ISP Interface Fuses bearbeiten und den Flash schreiben, also scheint das ja zu funktionieren. Hier mal der Code: [code] #ifndef F_CPU #define F_CPU 12000000UL #endif #include <util/delay.h> #include <avr/io.h> #include <avr/interrupt.h> #include "includes/light_ws2812.h" #include "includes/test.h" struct cRGB led[1]; void main(){ LED_ON(); while(1){ LED_PORT |= (1<<LED2); _delay_ms(1000); LED_PORT &= ~(1<<LED2); _delay_ms(1000); } } //zugehörige Headerdatei #ifndef _TEST_H #define _TEST_H #endif #include <avr/io.h> #define LED_DDR DDRD #define LED_PORT PORTD #define LED1 PD4 #define LED2 PD6 #define LED_ON() LED_DDR |= ((1<<LED1) | (1<<LED2))
Johannes H. schrieb: > #ifndef F_CPU > #define F_CPU 12000000UL > #endif Evtl. bist du hier zu vorsichtig und F_CPU ist irgendwo anders schon definiert - wenn auch falsch. Entfene doch mal das #ifndef und #endif und mach nur
1 | #define F_CPU 12288000UL
|
Johannes H. schrieb: > Mein µC hängt an einem 12,288MHz-Quarz mit 2 15pF Kondensatoren gegen > Masse. > VCC, AVCC und beide GNDs sind angeschlossen. Acuh mit Abblock-Cs? Ist das vielleicht ein Steckbrett? Dann mal die 15pF weglassen, die Steckbrett Kontakte haben selber Kapazitäten in dieser Größenordnung. Ansonsten: Foto vom Aufbau. Johannes H. schrieb: > Bzgl. Takt: die Fuses sind ja für externen Quarz gesetzt und ich kann > noch über das ISP Interface Fuses bearbeiten und den Flash schreiben, > also scheint das ja zu funktionieren. ISP funktioiniert ohne Takt nicht mehr. Wenn man den verfused, muss man das mit HVPP oder externem Taktgenerator lösen.
Jim M. schrieb: > Acuh mit Abblock-Cs? Johannes H. schrieb: > 5V Betriebsspannung, 1µF und 100nF am VCC-Pin Ok, das sagt aber immer noch nichts darüber, ob wirklich JEDES Vcc-Pin einen 100n bekommen hat.
Also #define F_CPU-Änderung bringt nichts. Ohne die 15pF keine Veränderung.(Ja ein Steckbrett) @asdf: nur VCC hat die. AVCC benötige ich für den Port theoretisch nicht, aber ich hab den Pin vorsichtshalber mal mit an V+ angeschlossen. @Jim: Genau! Und deshalb scheint der µC den Takt zu akzeptieren, weil ISP-Programmierung ja noch funktioniert.
:
Bearbeitet durch User
Johannes H. schrieb: > 5V Betriebsspannung echt gemessen oder nur vermutet? weil 5V ist so eine definitive Aussage, das habe ich so noch nie auf einem Messgerät gesehen.
Johannes H. schrieb: > Bzgl. Takt: die Fuses sind ja für externen Quarz gesetzt und ich kann > noch über das ISP Interface Fuses bearbeiten und den Flash schreiben, > also scheint das ja zu funktionieren. Das heißt: der Takt ist da. Es kann also nur an deinem Programm liegen, wenn irgendwas nicht so läuft, wie du es erwartest. Oder an ungenügender Hardware, insbesondere bezüglich der Versorgung (zu wenig Spannung, zu wenig Block-Kapazität oder zu viel Block-Kapazität). Schalte als erste Maßnahme einfach mal den Brownout-Detector ein. Fuse BODENABLE.
5V vom USB-Port. Ich betreibe diesen Testaufbau gleich an meinem Programmer. @c-hater: Spannung ist da (nachgemessen). Brown-out Detection ist aktiviert. Aber was soll denn an meinem Programm da nicht korrekt sein, wenn's doch für internen Takt funktioniert? Das Steckbrett samt µC lag jetzt 4 Jahre in einer Kiste. Ich weiß nicht, ob das noch irgendeinen Einfluss haben könnte. Auch mit nem 16MHz-Quarz(hab leider nix Kleineres da) gibt's keinen Verhaltensunterschied.
Johannes H. schrieb: > 5V vom USB-Port. Ich betreibe diesen Testaufbau gleich an meinem > Programmer. woher weisst du dann das die 5V vom USB 5V sind und auch am Atmel ankommen? Bei mir kommen weder 5V aus den USB noch kommen die am Atmel an! Der erste große Fehler ist eine falsche Annahme!
Joachim B. schrieb: > woher weisst du dann das die 5V vom USB 5V sind und auch am Atmel > ankommen? hatte ich angegeben: "@c-hater: Spannung ist da (nachgemessen)." Saubere 5,1V um genau zu sein :)
Ok Leute, der neue ATmega32A der gerade eingetroffen ist funktioniert nun mit internem UND externem Takt. Habt ihr evtl. ne Erklärung dafür?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.