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
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).
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.
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.
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
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?
Hallo, meine Erfahrung und Empfehlung für zwei separat startende Systeme: jeweils einen externen Pullup Widerstand 4,7k-10k an die RX Leitungen.
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).
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...
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:
1 | +---|>|---o VCC ca. 2,4V |
2 | | |
3 | Raspi o-------------+--o AVR Eingang |
4 | High | |
5 | 3,3V +---|<|---| GND |
Wenn die Leitungen kurz sind, kannst du die beiden Seiten mit zwei Dioden und Widerständen entkoppeln:
1 | 2,2kΩ |
2 | +---[===]---o VCC |
3 | | |
4 | Raspi TxD o-----|<|----+-----------o AVR RxD |
5 | |
6 | |
7 | 2,2kΩ |
8 | VCC o---[===]---+ |
9 | | |
10 | Raspi RxD o-----------+-----|>|----o AVR TxD |
11 | |
12 | |
13 | 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.
Beispiel mit Optokoppler:
1 | |
2 | 2,2kΩ |
3 | +-------+----[===]---o VCC |
4 | Raspi 220Ω | | |
5 | TxD o---[===]---|<|--+ |/ +------------o AVR RxD |
6 | | >> | |
7 | VCC o----------------+ |\> |
8 | | |
9 | +--------------------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.
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.
P. F. schrieb: > 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. Hatte ein ähnliches Problem mit parasitärer Spannung am RX-Pin und auch mir half das Aktivieren der BOD bei 4V (bei 2.7V nicht). Guter Tipp.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.