Hallo,
ich bin neu hier im Forum und bringe auch nicht viel Erfahrung mit.
Ich habe mir ein Eval-Board für den ATmega8 gekauft mit samt LC-Display.
Die Hintergrundinfos:
In meinem ersten Programm habe ich mich an einem Uhrenwecker probiert.
Auf dem LCD läuft in der ersten Zeile die Uhr und in der zweiten Zeile
wird die Weckzeit gezeigt, die man mit 4 Tastern (Stunden auf/ab;
Minuten auf/ab) einstellen kann.
Das Board wird über USB am PC angeschlossen. Zusätzliche Stromversorgung
ist über Stecker möglich (bei mir an einem 9V-Block).
Betriebssystem: Windows XP
Software: myAVR Workpad Plus
Das Problem:
Wenn ich das Board über USB mit Strom versorge, läuft das Programm
einwandfrei.
Sobald ich aber auf externe Stromversorgung umschalte und das Board vom
PC entferne, wird auf die Startbedingungen zurückgesetzt. In einem Video
auf Youtube http://www.youtube.com/watch?v=PLVrgD_470A&feature=plcp
sieht man das gut.
Hier mal mein Quellcode bis jetzt (das mit dem Anhängen hat bei mir
warum auch immer nicht funktioniert; hoff der QC stört nicht):
1
volatileinttc;
2
charhr=14,min=3,sec=0;
3
charstr[2];
4
5
ISR(TIMER1_OVF_vect)
6
{
7
TCNT1=51136;tc++;
8
}
9
10
intmain(void)
11
{
12
TIMSK|=_BV(TOIE1);//Overflow-Interrupt für Timer 1 aktivieren
Ja korrekt, MK2 Plus. Ich habe es als Bausatz gekauft und selbst
gelötet.
Magnus Müller schrieb:> Vermutlich geht die Spannung der Batterie in die Knie und der Brown-Out> Reset schlägt zu.
Gibt es da eine Möglichkeit, das zu umgehen?
>> Vermutlich geht die Spannung der Batterie in die Knie und der Brown-Out>> Reset schlägt zu.>Gibt es da eine Möglichkeit, das zu umgehen?
Netzteil verwenden.
Wenn die Versorgungsspannung zu gering ist, wird der Mikrocontroller
unberechenbar und macht völlig unvorhersehbare Aktionen. Um das zu
vermeiden, gibts die Brown-Out Schaltung im µC, die bei zu geringer
Versorgungsspannung einen Reset auslöst.
Da du eine 9 Volt Batterie verwendest, gehe ich davon aus, dass da schon
ein Spannungsregler auf dem Board drauf ist. Ersetze die Batterie durch
ein normales Steckernetzteil mit 9 Volt Gleichspannung.
Ggf. gibt es einen Reset durch den Programmer?
Kannst du mal prüfen was für eine Spannung am Resetpin anliegt?
Das Display scheint noch zu laufen, und meine sind sehr empfindlich
gegenüber zu geringer Spannung...
mfg Andreas
Steffen Keller schrieb:> Ja korrekt, MK2 Plus. Ich habe es als Bausatz gekauft und selbst> gelötet.
Miss mal bei ausgeschaltetem Board den Widerstand zwischen Pin 7 und
Pin 19 des Controllers. Ich vermute hier einen Kurzschluss welcher durch
eine Lötbrücke am Bussteckverbinder hervorgerufen wird.
Andreas B. schrieb:> Kannst du mal prüfen was für eine Spannung am Resetpin anliegt?
Die Spannung bezogen zu Gnd beträgt 2,4V.
Magnus Müller schrieb:> Miss mal bei ausgeschaltetem Board den Widerstand zwischen Pin 7 und> Pin 19 des Controllers.
Das sind bei mir 2,55 Megaohm.
Andreas schrieb:> Da du eine 9 Volt Batterie verwendest, gehe ich davon aus, dass da schon> ein Spannungsregler auf dem Board drauf ist. Ersetze die Batterie durch> ein normales Steckernetzteil mit 9 Volt Gleichspannung.
Jawoll, nen 7806er ist onboard.
Habe es mit 9V/0,5A ausprobiert, da gibts auch keinen Unterschied.
Und als wieder die direkten 5V aus dem USB-Port kamen, hats wieder
einwandfrei funktioniert...
Lowtzow .... schrieb:> schalte von portb und portc wirklich nur die pins, welche du für die> Taster, LED und den speaker brauchst. bzw kommentier die ports testweise> mal aus.
Meinst du damit:
Nachtrag zum 9V-Block.
Über den Brückengleichrichter am Eingang verlierst du etwa 1,2V, der
Spannungsregler hat ein DropOut von etwa 2V, das macht bei einem 7806
dann schon 9,2V aus.
Da darf der 9V Block nicht sehr in die Knie gehen damit die
Spannungsregelung nicht mehr richtig funktioniert.
Solange du keine großartigen Verbraucher anschließt und dein Finger
keine Blase zieht wenn du den Spannungsregler berührst, kannst du die
Eingangsspannung problemlos auf 12 - 15V erhöhen.
Hubert G. schrieb:> Hast du schon mal den Dip-Switch 1 auf OFF geschaltet?
Nein habe ich nicht, was passiert, wenn ich das mache? Wenn das
ungefährlich ist, dann probier ichs gleich aus.
Hubert G. schrieb:> Solange du keine großartigen Verbraucher anschließt und dein Finger> keine Blase zieht wenn du den Spannungsregler berührst, kannst du die> Eingangsspannung problemlos auf 12 - 15V erhöhen.
Gut, der 06er wird n bissle warm, dann werd ich mal mein Netzgerät
fertigmachen.
Ich habe jetzt das Board angesclossen über USB und den 9V-Block auch
angeschlossen. Dip 1=on.
Nun, das Programm läuft.
Jetzt Dip 1=off.
Programm läuft immernoch.
Ohne Veränderungen wird USB ausgesteckt.
Es kommt zum Reset.
Gleiche Versuche mit Netzteil:
Dip 1=on.
Problem: der Wecker zeigt mir -19-39 an.
Also stell ich im Programm um:
von:
1
DDRB=0xff;
2
DDRC=0x00;
3
PORTC=0xff;
4
5
volatilecharh,m;
6
7
8
lcdGoto(2,1);
9
lcdWrite("Wecker: 14:02");
auf
1
DDRB=0xff;
2
DDRC=0x00;
3
PORTC=0xff;
4
5
volatilecharh=14,m=2;
6
7
8
lcdGoto(2,1);
9
lcdWrite("Wecker: : ");
und wieder zurück auf
1
DDRB=0xff;
2
DDRC=0x00;
3
PORTC=0xff;
4
5
volatilecharh,m;
6
7
8
lcdGoto(2,1);
9
lcdWrite("Wecker: 14:02");
Dann läuft das Programm wieder.
Wiederholt mit DIp 1=off: Programm läuft
Nun USB ausstecken: und wieder Reset
Ich habe in der Zwischenzeit folgende Beobachtung gemacht:
Wenn die Weckzeit mit der tatsächlichen Uhrzeit übereinstimmt, und die
LED leuchtet, kann ich den USB-Stecker sowohl vom Board, als auch vom PC
entfernen, ohne einen Reset zu verursachen
Danke für den Tip!! =)
Beobachtung 1:
Wenn ich bei laufendem Programm den ganzen Programmer entferne, kommt es
zu KEINEM Reset :-D
2. Beobachtung:
Wenn die Weckzeit vorbei ist, kommt es ebenfalls NICHT zum bisherigen
Reset =)
Die Frage ist nur warum.
Trotzdem vielen Dank.
Hallo,
das "Problem" wurde im myAVR-Forum schon öfters mal besprochen und die
von myAVR selbst weisen darauf hin, dass der Programmer abgezogen werden
muss wenn er nicht an USB angeschlossen ist da dieser MK2-Programmer
nicht von der Schaltung aus versorgt wird und damit undefinierte
Zustände hat... eine Versorgung des Programmers aus der Schaltung ist
nach Aussage von nur beim MK3 vorgesehen
Gruß J.
Hallo,
ich hatte auch den mk2-Programmer angeschlossen und ähnliche Probleme
mit sporadischen Resets, hab dann in myAVR-Forum zum Programmer
diskutiert und folgendes Ergebnis:
1) Platine ohne Programmer und externer Versorgung=problemlos
2) Platine mit Programmer und Programmer am laufenden PC angehängt und
ohne externer Versorgung=problemlos
3) Platine mit Programmer und Programmer am laufenden PC angehängt und
mit externer Versorgung=problemlos
4) 2) Platine mit Programmer und Programmer NICHT am laufenden PC
angehängt und mit externer Versorgung=VERBOTEN, sporadische Resets.
Wenn also keine USB-Spannung vorhanden ist, dann darf der Programmer
nicht gesteckt sein!