PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Atmel sendet nach Stromverlusst nur wirres Zeug



BlaueLed
19.07.2006, 18:45
Hallo,

wenn ich vom AVR etwas über die serielle an den PC schicken will, geht das eigentlich ganz gut. Ist der AVR länger als ca. 2 Std. vom Strom getrennt und schalte ihn dann wieder ein, läuft das Programm perfekt weiter nur sendet er über die serielle dann nur noch wirres Zeug. Programmiere ich Ihn dann frisch, geht es wieder. Hatte jemand von euch auch schonmal dieses Problem.

mfg Kay

PS: ich füge mal noch einen Teil meines Programmes hinzu




'--------------------Chipkonfiguration--------------------------'
$regfile = "m16def.dat"
$crystal = 16000000
$baud = 9600
$hwstack = 32
$swstack = 10
$framesize = 40
'--------------------Porteinstellungen--------------------------'
Config Portb = Input
Config Portd = Output
'-------------------Displaykonfiguration------------------------'
Config Graphlcd = 240 * 128 , Dataport = Porta , Controlport = Portc , Ce = 2 , Cd = 3 , Wr = 0 , Rd = 1 , Reset = 4 , Fs = 5 , Mode = 8
'-------------------Uhrzeitkonfiguration------------------------'
Enable Interrupts
Config Date = Dmy , Separator = .
Config Clock = Soft
Date$ = "01/01/06"
Time$ = "00:00:00"

Do
print "KayIB 1.0"
wait 1
Loop

ulihuber
19.07.2006, 20:09
Ich tippe, daß das mit den 2 Stunden nichts zu tun hat, sondern mit Zerstörung des Flash-Inhalts durch Brown-Out bzw. durch Oszillationen der Spannung beim An- oder Abschalten.

E-Fan
19.07.2006, 21:01
Wär ne Möglichkeit.

@BlaueLED:
Haste den Resetpin vernünftig belegt oder die BOD-Fusebits richtig gesetzt?

BlaueLed
19.07.2006, 21:34
Hallo,

also reset habe ich über einen Widerstand an VCC. Hab ich bisher immer so gemacht und funktioniert bis jetzt tadellos bei meine anderen Projekten. Die Fuses stehen so:

Bodlevel 2,7V
Boden Disabled

mfg Kay

ulihuber
19.07.2006, 22:29
Na ja,

dann würde ich mal den BODEN enablen....

Der Reset sollte mindestens einen Kondensator auf Masse haben (Verzögerung). Besser noch einen Resetcontroller.

Gruß
Uli

BlaueLed
20.07.2006, 12:14
Hallo,

habe jetzt noch einen kondensator 100nF gegen masse hinzugefügt. Das Fusebit Boden habe ich auf enable gestellt und das Level auf 4V. klappt aber immer noch nicht.

mfg Kay

ulihuber
20.07.2006, 12:48
...dann bist Du zumindest sicher, daß es die von mir vermuitete Ursache nicht war... ;-)

Mehr Ideen habe ich dazu jetzt nicht.

Gruß
Uli

pebisoft
21.07.2006, 10:55
beim hochfahren des pc die serielle schnittstelle vom avr entfernen, anschliessend wieder weitermachen.

BlaueLed
21.07.2006, 11:40
hallo pebisoft,

danke für den Tip. bringt aber leider nichts. wenn ich den AVR einschalte, bekomme ich ja diese komische Zeichen. Resette ich mit Ponyprog dann den AVR gehts einwandfrei.

mfg Kay

Marco78
21.07.2006, 11:54
So blöde und traurig es klingt, aber "Tonne auf, M16 rein, neuen M16 nehmen".

Wenn der neue M16 das auch macht, den alten wieder aus der Tonne holen ;)

Benutzt du den internen EEPROM und da die Zelle 0? Und wenn ja, hat der Inhalt was mit RS232 zu tun?

Hast du einen Bootloader installiert?

Wie sind die Bootloader-Einstellungen deines M16?

Womit wird der M16 getaktet? Intern, externen Quarz? Wenn Quarz, evtl mal den Quarz und die Kerkos tauschen. Evtl schwingt der Quarz nicht richtig an? Nach einem Reset schwingt er ja noch vom ersten Start.
Da evtl mal eine Pause von ein paar Sekunden einlegen, bevor das Hauptprogramm startet. RS232 benötigt ja ein Timing. Bei Abfragen eines Tasters wären unregelmäßige Schwinungen nicht so schlimm.

Wenn das alles nichts hilft, dann Variante A, das mit der Tonne ;)

BlaueLed
21.07.2006, 12:03
Hallo Marco78,

also, ich benutze kein Eeprom und habe auch keinen Bootloader installiert. momentan benutze ich einen Quarzoszillator. Ich werde jetzt mal einen anderen mega16 probieren.

danke

Marco78
21.07.2006, 12:22
Und die Fusebits sind auch richtig gesetzt? (Für Bootloader sowie Quarz (selbst da gibt es ja mehrere Einstellmöglichkeiten))

Und du bist dir 100%ig sicher, das dein Quarzoszi richtig anschwingt?