mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Seltsames Verhalten durch UART


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: P. F. (pfuhsy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich hab eine Schaltung mit einem ATmega88 die zur Bestätigung beim Start 
2 LEDs kurz aufleuchten lässt (ca. 2s an dann wieder aus). Hier hängt 
zusätzlich an der UART-Schnittstelle ein Raspbarry Pi der alle 5s Daten 
sendet. Ich habe beide über 2 unterschiedliche Netzteile laufen. Wenn 
ich nach ein paar Tagen die ausgeschalteten Netzteile wieder einschalte, 
verhält sich die Schaltung mit dem ATmega88 ziemlich seltsam. Die LED's 
leutchten deutlich länger auf und dannach funktioniet eigentlich nichts 
mehr so wie es sollte. Ich hab schon gemerkt, dass es an der Verbindung 
ATmega88_RxD <-> Raspi_TxD liegt. Trenne ich diese vor dem einschalten, 
funktioniert alles so wie es soll. Ich hab eine Ahnung woher das kommen 
könnte, so eine Art Bootloader der gar nicht verwendet wird. Ich kann es 
nicht ganz in Worte fassen. Kann jemand helfen ?

Gruss

Autor: Timmo H. (masterfx)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Zwei Netzteile können ungünstig sein. Selbst wenn sie durch eine 
schaltbare Steckdosenleiste scheinbar gleichzeitig eingeschaltet werden, 
liefern die Netzteile nicht zeitgleich ihre 5V am Ausgang. Dadurch kann 
es zu einer Fremdspeisung über die Schutzdioden kommen und ggf. bist du 
dann in einem undefinierten Zustand (Ruhezustand vom Pegel ist Vcc).

Autor: fop (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eventuell versorgt der Raspi den Avr über diese Leitung mit Energie. Zu 
wenig, um richtig zu laufen, aber genug um danach das Einschalten des 
eigenen Netzteils zu verpassen und einen vernünftigen Kaltstart 
hinzulegen.

Autor: A. (Gast)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Auf jedenfall auch mal GND von beiden miteinander verbinden.

Autor: P. F. (pfuhsy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Timmo H. schrieb:
> Zwei Netzteile können ungünstig sein. Selbst wenn sie durch eine
> schaltbare Steckdosenleiste scheinbar gleichzeitig eingeschaltet werden,
> liefern die Netzteile nicht zeitgleich ihre 5V am Ausgang. Dadurch kann
> es zu einer Fremdspeisung über die Schutzdioden kommen und ggf. bist du
> dann in einem undefinierten Zustand (Ruhezustand vom Pegel ist Vcc).

Hmm...klingt erstmal plausibel. Ich probiere mal das selbe Netzteil, mal 
sehen. Wie wird das denn sonst gelöst, wenn man 2 verschiedene 
Spannungsquellen hat  ?

fop schrieb:
> Eventuell versorgt der Raspi den Avr über diese Leitung mit Energie. Zu
> wenig, um richtig zu laufen, aber genug um danach das Einschalten des
> eigenen Netzteils zu verpassen und einen vernünftigen Kaltstart
> hinzulegen.

Kann man dagegen was machen, ausser das selbe Netzteil nehmen ?

A. schrieb:
> Auf jedenfall auch mal GND von beiden miteinander verbinden.

Das hab ich schon gemacht.

Autor: Timmo H. (masterfx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
P. F. schrieb:
> Hmm...klingt erstmal plausibel. Ich probiere mal das selbe Netzteil, mal
> sehen. Wie wird das denn sonst gelöst, wenn man 2 verschiedene
> Spannungsquellen hat  ?
z.B. galvanisch trennen oder zumindest ein Level-Shifter um die 
Fremdspeisung zu verhindern.
Oder Quick and Dirty einen Serienwiderstand zwischen Rx und Tx der so 
dimensioniert ist dass die Versorgungsspannung "genug" einbricht, dass 
die Brown-Out zuschlägt (die du natürlich aktivieren musst)

: Bearbeitet durch User
Autor: Wolfgang (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
P. F. schrieb:
> Kann man dagegen was machen, ausser das selbe Netzteil nehmen ?

Man kann einen anständigen Widerstand in die Datenleitungen hängen.
Dein ATmega88 läuft mit 3.3V?

Autor: Karl M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

meine Erfahrung und Empfehlung für zwei separat startende Systeme: 
jeweils einen externen Pullup Widerstand 4,7k-10k an die RX Leitungen.

Autor: unknown (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das hilft aber im Falle Fremdversorgung über die IC-internen 
Schutzdioden nichts. Bestenfalls dann, wenn der Eingang über eine in 
Reihe liegende Diode entkoppelt ist, die den Eingang nur tief ziehen 
kann, aber nicht hoch (was dann der Pullup übernimmt).

Autor: chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
1. Brown-Out aktivieren: verhindert solange ein Start des Prozessors bis 
die Versorgungsspannung stabil ist.

2. Programm richtig initalisieren.

3. Leitungslänge beachten

4. Entweder ein Netzteil für beides oder 2 Netzteile und dann über 
Optokoppler getrennt nutzen.

5. Ohne Programm und Schaltplan stochern im Nebel nur Goethe war 
Dichter...

Autor: Stefanus F. (Firma: Äppel) (stefanus)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Der serielle Ausgang des Raspberry Pi liegt auf High Pegel. Da der AVR 
noch keine Spannungsversorgung hat, fließt ein Strom durch seine ESD 
Schutzdioden zum VCC Pin. Somit kommt es zu einer parasitären 
Spannungsversorgung.

Ich habe hier mal die ESD Dioden eingezeichnet, sie befinden sich im AVR 
Mikrocontroller:
                    +---|>|---o VCC ca. 2,4V
                    |
Raspi o-------------+--o AVR Eingang
High                |
3,3V                +---|<|---| GND

Wenn die Leitungen kurz sind, kannst du die beiden Seiten mit zwei 
Dioden und Widerständen entkoppeln:
                           2,2kΩ
                       +---[===]---o VCC
                       |
Raspi TxD o-----|<|----+-----------o AVR RxD


             2,2kΩ
      VCC o---[===]---+  
                      |
Raspi RxD o-----------+-----|>|----o AVR TxD


      GND o------------------------o GND

Die Dioden übertragen Low-Pegel. Die Pull-up Widerstände sorgen für 
definierten (High) Pegel zu den Zeiten, wo die Dioden nicht leiten.

Verwende Shottky Dioden mit einer geringen Verlustspannung (<0,5V), 
damit es zuverlässig funktioniert.

Die Schaltung ist nicht Ideal, denn auch so fließt ein parasitärer Strom 
zur anderen Seite, aber dieses mal durch die 2,2k Ohm Widerstände 
abgeschwächt. Normalerweise genügt dies, die parasitäre 
Versorgungsspannung gering genug zu halten. Insbesondere zusammen mit 
aktiviertem Brown-Out Detektor.

Etwas sauberer geht es mit den bereits empfohlenen Optokopplern, aber da 
muss man dann auf die Signalflanken achten. Optokoppler sind nämlich 
relativ langsam.

: Bearbeitet durch User
Autor: Stefanus F. (Firma: Äppel) (stefanus)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Beispiel mit Optokoppler:
 
                                                  2,2kΩ
                                    +-------+----[===]---o VCC
Raspi      220Ω                     |       |
TxD    o---[===]---|<|--+         |/        +------------o AVR RxD
                        |    >>   |
VCC    o----------------+         |\>
                                    |
                                    +--------------------o GND

Die Diode und der Transistor sind Bestandteile des Optokopplers. Für die 
Umgekehrte Richtung (AVR zum Raspi) baust du das Ganze nochmal 
spiegelverkehrt.

Autor: P. F. (pfuhsy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

ich hatte das mit der galavanischen Trennung nicht so ganz auf dem 
Schirm. Bei dem nächsten HW-Update der Platine werde ich es nachrüsten. 
ich hab jetzt den Brown Out auf 4V gestellt und aktiviert, schein zu 
funktionieren.

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.