Hallo Gemeinde stelle mich wieder total blöd an. Habe auf einer kleinen Platine mit ein paar Taster und LEDs einen Attiny 44a aufgebaut. Habe einen Quarz mit 16Mhz verwendet und wollte den Attiny auf diesen Quarz umstellen. Vom Hersteller ist er ja auf RC eingestellt. Konnte die ^Fuse auslesen: E - 0xFF H - 0xDF L - 0x62 Habe mit einem Fuse Calcolator überprüft was ich brauche und eingegeben: E - 0xFF H - 0xDF L - 0x62 Ergebnis, nun geht gar nichts mehr. Stimmt die Einstellung? LG Klaus
0x60 ist External Clock! Von daher erwartet dein Attiny nun einen externen Taktgeber. :( 0x7F wäre eine der richtigen Einstellungen gewesen. Du kennst folgende Seite?: http://www.engbedded.com/fusecalc/ Ansonsten immer wieder den Unterschied zwischen CLOCK und CRYSTAL OSC. in den Kopf einhämmern!!!! ;)
Max B. schrieb: > Von daher erwartet dein Attiny nun einen externen Taktgeber. :( Also: irgendwo her einen 1MHz-10MHz Takt nehmen und an XTAL1 (PB0) anschließen. Dann die richtigen Fuses programmieren.
Matthias X. schrieb: > Kannst z.B. ein USB-RS232-TTL Adapter nehmen und 0xAA im Dauerfeuer > senden. Das erklär mal genauer. Besonders wie sich Start und Stopbit zusammen mit dem Binärmuster von 0xAA auf den Takt auswirkt.
Habe 0x7F eingestellt. Die anderen wie oben angegeben. Verwende als erstes diese kleine Programm zum blinken:
1 | #define F_CPU 16000000UL // Angabe der Quarzfrequenz, wichtig für die Zeit
|
2 | #include <util/delay.h> // Einbindung Datei Pause |
3 | #include <avr/io.h> // Einbindung Datei Ausgänge |
4 | |
5 | int main(void) |
6 | {
|
7 | DDRA=0b00000000; // Port A auf Ausgang schalten |
8 | DDRB=0b00000100; // Port B auf Ausgang schalten |
9 | |
10 | while(1) // Programmschleife |
11 | {
|
12 | PORTB &= ~(1<<PB2); // Schaltet Pin aus |
13 | _delay_ms(500); // Pause 500 ms |
14 | PORTB |= (1<<PB2); // Schaltet Pin ein |
15 | _delay_ms(500); // Pause 500 ms |
16 | }
|
17 | }
|
Die eingestellte Zeit sollte 2 x 500 mS betragen. Zusammen 1 Sekunde Es blinkt aber mit 10 Sekunden. Leider unklae warum) LG Klaus
Optimierung nicht aktiviert? CLOCKDIV-Fuse gesetzt (und es blinkt mit 8 Sekunden, nicht 10 Sekunden?) Quarz falsch abgelesen und es ist ein 1,6MHz-Quarz? MfG, Arno
Bärli schrieb: > Das erklär mal genauer. Besonders wie sich Start und Stopbit zusammen > mit dem Binärmuster von 0xAA auf den Takt auswirkt. Genau. Wennschon, dann sendet man 0x55, also: 'U'. Dann passt das mit den Start- und Stopbits.
Noch mal mitgezählt, sind 8 Sekunden, der Quarz ist ein Schwinger mir der Aufschrift 16,0. Was meinst du mit 0x55? Statt f7 soll es 55 sein?
c-hater schrieb: > Bärli schrieb: > >> Das erklär mal genauer. Besonders wie sich Start und Stopbit zusammen >> mit dem Binärmuster von 0xAA auf den Takt auswirkt. > > Genau. Wennschon, dann sendet man 0x55, also: 'U'. Dann passt das mit > den Start- und Stopbits. Oh stimmt. Hab vergessen LSB. Also mit 0x55. Theoretisch sollte 0xAA auch funktionieren. Dem AVR sollten die ungleichen Taktabstände egal sein. Hauptsache es bewegt sich was;)
Klaus schrieb: > Was meinst du mit 0x55? Statt f7 soll es 55 sein? Was meinst du mit F7? Die 0x55 gibt eine 01010101-Folge, zusammen mit den Start- und Stopbits sieht das aus wie ein Takt. Einfach als Taktersatz für den auf externen Takt gefusten Tiny nehmen. Wie ich oben schon schrieb: HildeK schrieb: > Also: irgendwo her einen 1MHz-10MHz Takt nehmen und an XTAL1 (PB0) > anschließen. Dann die richtigen Fuses programmieren.
Atmel-Studio sagt folgendes für den ATtiny44A mit einen 16MHz Quarz ohne Teiler:
1 | SELFPRGEN = [ ] |
2 | RSTDISBL = [ ] |
3 | DWEN = [ ] |
4 | SPIEN = [X] |
5 | WDTON = [ ] |
6 | EESAVE = [ ] |
7 | BODLEVEL = DISABLED |
8 | CKDIV8 = [ ] |
9 | CKOUT = [ ] |
10 | SUT_CKSEL = EXTXOSC_8MHZ_XX_16KCK_14CK_65MS |
11 | |
12 | EXTENDED = 0xFF (valid) |
13 | HIGH = 0xDF (valid) |
14 | LOW = 0xFF (valid) |
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.