Forum: Mikrocontroller und Digitale Elektronik Fuse Attiny 44A


von Klaus (Gast)


Lesenswert?

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

von Klaus (Gast)


Lesenswert?

Sorry vertippt
statt 0x62 muus es sein 0x60

von Max B. (citgo)


Lesenswert?

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!!!! ;)

von HildeK (Gast)


Lesenswert?

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.

von Matthias X. (current_user)


Lesenswert?

Kannst z.B. ein USB-RS232-TTL Adapter nehmen und 0xAA im Dauerfeuer 
senden.

von Bärli (Gast)


Lesenswert?

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.

von Klaus (Gast)


Lesenswert?

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

von Arno (Gast)


Lesenswert?

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

von c-hater (Gast)


Lesenswert?

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.

von Klaus (Gast)


Lesenswert?

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?

von Matthias X. (current_user)


Lesenswert?

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;)

von HildeK (Gast)


Lesenswert?

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.

von Uwe K. (ukhl)


Lesenswert?

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