Lif
10.12.2012, 14:30
Hallo!
Zuersteinmal: ich weiß, dieses Thema wurde schon oft besprochen, aber ich habe wohl gerade ein Brett vor dem Kopf um komme nicht weiter. ;-)
Vor einigen Wochen bin ich über dieses Forum zur Mikrocontroller-Programmierung gekommenJ.
Nach meinen ersten Versuchen mit dem Attiny13A, habe ich nun versucht, den Atmega324a über Uart mit meinem PC (USB) kommunizieren zu lassen.
Dafür sollte der Mikrocontroller mit einem externen 12Mhz Quarz laufen… und was passiert natürlich. Im Eifer des Gefechts habe ich über avrdude die falschen Fusebits gesetzt und den Atmega324a wohl auf external Clock gestellt – wie sollte es auch anders sein -.- . Also kann aich nicht mehr auf den Atmega324a zugreifen.
Nun habe ich im Tutorial gelesen, man könne den Takt durch einen weiteren Mikrocontroller simulieren. Um einen externen Takt zu generieren, habe ich nun den Attiny13a aus dem Einsteigerpaket genommen, und einen früheren Code für einen Blinker draufgespielt und den Ausgang für die LED an XTAL1 des Atmega324a geklemmt.
Assemblercode vorher:
.include "tn13Adef.inc"
ldi r16,0b00001
out DDRB,r16
ldi r16,0b11110
out PORTB,r16
loop:
sbi PORTB,0
cbi PORTB,0
rjmp loop
Verstehe ich das richtig, dass der Ausgang nun im selben Takt des Attinys schaltet? Wenn ich das Datenblatt richtig interpretiere wären das knapp 9,6 Mhz. Im Datenblatt des Atmega324a lese ich, dass der interne Os. Mit 8Mhz läuft. Nun dachte ich, dass ich den Takt mindestens um ein vierfaches verlangsamen muss (kleine Schleife in Assembler, die nach jedem schalten bis 3 hochzählt). Allerdings bekomme ich weiterhin die Nachricht vom avrdude:
avrdude: auto set sck period (because given equals null)
avrdude: error: programm enable: target doesn't answer. 1
avrdude: initialization failed, rc=-1
avrdude: AVR device initialized and ready to accept instructions
avrdude: Device signature = 0x000000
avrdude: Yikes! Invalid device signature.
avrdude: Expected signature for ATMEGA324P is 1E 95 08
Kann mir einer sagen, wie ich den richtigen Takt für den Attiny13a einstelle und mit welcher Baudrate ich dann den Atmega324a ansprechen kann (bisher –B60)?
Schonmal Danke für jeden Tipp!
Anhang:
Falsch gestellte Fusebits: -U lfuse:w:0x00:m -U hfuse:w:0x99:m -U efuse:w:0xff:m
Wären die Fusebits so richtig gestellt?: -U lfuse:w:0x7e:m -U hfuse:w:0x99:m -U efuse:w:0xff:m
(Generiert über http://www.engbedded.com/fusecalc/)
Zuersteinmal: ich weiß, dieses Thema wurde schon oft besprochen, aber ich habe wohl gerade ein Brett vor dem Kopf um komme nicht weiter. ;-)
Vor einigen Wochen bin ich über dieses Forum zur Mikrocontroller-Programmierung gekommenJ.
Nach meinen ersten Versuchen mit dem Attiny13A, habe ich nun versucht, den Atmega324a über Uart mit meinem PC (USB) kommunizieren zu lassen.
Dafür sollte der Mikrocontroller mit einem externen 12Mhz Quarz laufen… und was passiert natürlich. Im Eifer des Gefechts habe ich über avrdude die falschen Fusebits gesetzt und den Atmega324a wohl auf external Clock gestellt – wie sollte es auch anders sein -.- . Also kann aich nicht mehr auf den Atmega324a zugreifen.
Nun habe ich im Tutorial gelesen, man könne den Takt durch einen weiteren Mikrocontroller simulieren. Um einen externen Takt zu generieren, habe ich nun den Attiny13a aus dem Einsteigerpaket genommen, und einen früheren Code für einen Blinker draufgespielt und den Ausgang für die LED an XTAL1 des Atmega324a geklemmt.
Assemblercode vorher:
.include "tn13Adef.inc"
ldi r16,0b00001
out DDRB,r16
ldi r16,0b11110
out PORTB,r16
loop:
sbi PORTB,0
cbi PORTB,0
rjmp loop
Verstehe ich das richtig, dass der Ausgang nun im selben Takt des Attinys schaltet? Wenn ich das Datenblatt richtig interpretiere wären das knapp 9,6 Mhz. Im Datenblatt des Atmega324a lese ich, dass der interne Os. Mit 8Mhz läuft. Nun dachte ich, dass ich den Takt mindestens um ein vierfaches verlangsamen muss (kleine Schleife in Assembler, die nach jedem schalten bis 3 hochzählt). Allerdings bekomme ich weiterhin die Nachricht vom avrdude:
avrdude: auto set sck period (because given equals null)
avrdude: error: programm enable: target doesn't answer. 1
avrdude: initialization failed, rc=-1
avrdude: AVR device initialized and ready to accept instructions
avrdude: Device signature = 0x000000
avrdude: Yikes! Invalid device signature.
avrdude: Expected signature for ATMEGA324P is 1E 95 08
Kann mir einer sagen, wie ich den richtigen Takt für den Attiny13a einstelle und mit welcher Baudrate ich dann den Atmega324a ansprechen kann (bisher –B60)?
Schonmal Danke für jeden Tipp!
Anhang:
Falsch gestellte Fusebits: -U lfuse:w:0x00:m -U hfuse:w:0x99:m -U efuse:w:0xff:m
Wären die Fusebits so richtig gestellt?: -U lfuse:w:0x7e:m -U hfuse:w:0x99:m -U efuse:w:0xff:m
(Generiert über http://www.engbedded.com/fusecalc/)