ATmega8 an 230V->5V Netzteil macht Probleme

OP #1686755
Lesenswert?

Hallo,

wenn ich einen ATmega8 an das myAVR USB MK 2 Board anschließe, läuft 
alles einwandfrei. Auch wenn ich nur die Stromversorgung von dem Board 
nehme läuft alles. Sobald ich aber ein USB-HUB-Netzteil mit 5V nehme, 
läuft der AVR nur sporadisch oder bleibt mittendrin im Programmablauf 
einfach stehen. Kondensatoren habe ich auch eingebaut, falls das 
Netzteil nur eine wellige Gleichspannung erzeugt. Leider funktioniert es 
trotzdem nicht mit dem Netzteil.

Woran könnte das liegen?

Adrian
OP #1686786
Lesenswert?

Ich habs mit nem Multimeter gemessen, es kommen wirklich 5,1 V aus dem 
Netzteil heraus und ich habe den ATmega auch ohne Spannungsregler 
getestet. Es geht leider sowohl mit als auch ohne Spannungsregler nicht. 
Zum Testen habe ich aber keinen 7806 sondern ein 2940 verwendet, da 
lagen immerhin noch 4,8V dahinter an, müsste also auch ok sein.

Woran könnte es sonst noch liegen?
OP #1688772
Lesenswert?

Ich vermute jetzt nach weiterem Herumprobieren, dass es mit an den 
Interrupts liegen könnte, da die Interrupt-Pins beim Testaufbau frei in 
der Luft hangen... Da könnte es natürlich sein, dass das Programm stehen 
bleibt, weil die Interrupts willkürlich immer wieder ausgelöst werden.
Ich muss erstmal schauen, obs wirklich an den Interrupts liegt...

Gruß,
Adrian
OP #1689168
Lesenswert?

Ich hab den Fehler gefunden!!! :-)
Ich habe mittels SPI Befehle an ein LCD-Display geschickt, hier hats 
irgendwie gehapert:
Vorher: (ging nicht, sobald mehr als ein Byte geschickt wurde)

    SPDR = cmd;
    while (!(SPSR & 0b10000000));

Nachher: (so gehts jetzt)

    SPSR |= (1 << 7);
    SPDR = cmd;
    while (SPSR & 0b10000000);

Anscheinend muss man das Bit dann vorher per Hand unbedingt auf "1" 
setzen, wenn es wieder "0" wird, ist die Übertragung abgeschlossen. 
Naja, prima, so geht es jedenfalls! :-)
#1689202
Lesenswert?

@  Adrian Zinke (adrian__)

>Anscheinend muss man das Bit dann vorher per Hand unbedingt auf "1"
>setzen,

Keineswegs. Das kann man gar nicht schreiben, nur lesen. Allerdings ist 
dort schon ein kleiner Bug im AVR. Denn das Bit ist ist beim ersten 
Aktivieren des SPI eben 0, was theoretisch bedeutet, dass eine 
Übertragung läuft. Tut sie aber nicht.

> wenn es wieder "0" wird, ist die Übertragung abgeschlossen.
>Naja, prima, so geht es jedenfalls! :-)

Nöö, das ist Murks. Das kann man sauber lösen. Einfach einmal ganz am 
Anfang nach Aktivierung des SPI ein Datenbyte senden, ohne vorher das 
Bit SPIF abzufragen. Dann passt alles.

MFG
Falk
OP #1690203
Lesenswert?

@ Falk Brunner (falk)

Okay habs ausprobiert, du hast Recht. Allerdings hatte ich noch ein 
Problem, weil SS bei mir nicht als Ausgang definiert war.
Das ist der eigentliche Grund, warum der mega8 gesponnen hatte. Je 
nachdem, wie sich der SS-Pin aufgeladen hatte, gings mal und mal nicht. 
(siehe Beitrag "[AVR] SPI wartet endlos auf SPIF Flag") Als Ausgang 
geschaltet und schon gehts :-)

Danke!

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren