ATmega8 an 230V->5V Netzteil macht Probleme

OP #1686755
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
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
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
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
@  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
@ 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

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.