mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATmega8 an 230V->5V Netzteil macht Probleme


Autor: Adrian Zinke (adrian__)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: syn_error (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>USB-HUB-Netzteil mit 5V nehme
der eingebaute spannungsregler 7806 braucht um zu arbeiten selbst 2-3 
volt.
also hat den atmega nur noch 2-3 volt zum arbeiten.

Autor: Adrian Zinke (adrian__)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: STK500-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie sieht deine restliche Beschaltung aus?
Quarz? Reset?

Autor: Adrian Zinke (adrian__)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das kann nur passieren, wenn Du diese Interrupte erlaubst und keine 
Sprungadresse in den dafür vorgesehenen Vektoren zu den entsprechenden 
Service-Routinen eingetragen hast.

Autor: Adrian Zinke (adrian__)
Datum:

Bewertung
0 lesenswert
nicht 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! :-)

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Adrian Zinke (adrian__)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.