Assembler Spannungsversorgung über PC -> USB zu TTL -> RxD, TxD ATtiny

stinakovits

Mitglied
Premium Benutzer
22 Apr 2013
83
6
8
Kottingbrunn
Sprachen
Assembler
Hallo zusammen,

suche seit 2 Tagen ein Softwareproblem und komme drauf, dass es höchstwahrscheinlich ein Hardwareproblem ist.

Eine Platine ist per USB-TTL Konverter am USB Anschluss des PC angeschlossen. Nur die beiden Leitungen RxD und TxD sind angeschlossen. Es ist keine Datenkommunikation vorhanden!

Platine mit ATtiny814 ---> RxD und TxD des ATtiny ---> TTL-USB Konverter ---> USB Anschluss des PC

Jetzt messe ich, wenn die Spannungsversorgung der Platine mit dem ATtiny abgeschalten ist, etwa 2,2V an den Versorgungsspannungspins des ATtiny ... und das Programm läuft :(
Somit versorgen die beiden Leitungen RxD und TxD den ATtiny mit Energie - und der läuft - manchmal natürlich nicht fehlerfrei - aber er tut was - sollte er nicht.

Das hätte ich nun wirklich nicht erwartet.

Laut Datenblatt ist der TxD Pin als Ausgang geschalten und der RxD verbleibt im Ursprungs zustand als Eingang. Die Datenkommunikation funkt auch im Normalfall wenn die Spannung eingeschalten ist.

Mir ist bei einem früheren Projekt mit einem Attiny45 schon aufgefallen, dass ein Eingangspin den ATtiny versorgt hatte und der lief auch.

Gibt es da irgend einen Trick um das zu verhindern oder muss ich Hardware Maßnahmen setzen, wie Optokoppler oder irgendwas anderes?
 
Zuletzt bearbeitet:

LotadaC

Sehr aktives Mitglied
22 Jan 2009
3.428
62
48
Marwitz
Sprachen
BascomAVR, Assembler
Bei den alten SPI-programmierbaren Controllern findet man im Datenblatt üblicherweise Bilder zum Aufbau der Beine. Da sind dann die entsprechenden Ableitdioden gegen Vcc und Gnd erkennbar (Ausnahmen sind reine(!) ADC-Eingänge, wie es sie bei non-DIP-Megas gibt, und der Reset-Pin, da er 12V-tolerant sein muß.

In den modernen Datenblätter (ich mag sie nicht), findet sich nach flüchtigem drüberlesen nichts darüber - aber er wird trotzdem welche haben.

(Außerdem vermisse ich die sonst übliche Tabelle bezüglich der Overrides bei alternativen Funktionen. Und natürlich immer noch jegliche Information zum Umgang mit dem PTC)
 

Dirk

Administrator
Teammitglied
28 Jan 2007
4.308
150
63
Mittelhessen, Giessen
Sprachen
ANSI C, C++, C#, Java, Kotlin, Pascal, Assembler, PHP
Hallo Manfred,

LotadaC hat ja schon die Schutzdioden der Pins im Mikrocontroller erwähnt. Der Strom vom TXD Pin des USB-UART fließt über die Pin-Schutzdiode vom RXD Pin des Mikrcontrollers in den Betriebsspannungspfad deiner Anwendung und reicht aus, um die Anwendung zu versorgen.

Du kannst versuchen den möglichen Strom zu verringern, indem du einen Widerstand (1k Ohm oder ähnliches) zwischen TXD UART und RXD Mikrocontroller einbaust. Problem: Widerstand zu hoch = Signal Pegel wird nicht erreicht oder ist nicht schnell genug. Widerstand zu niedrig = Der MC wird weiterhin (ausreichend) über das Signal versorgt. Also ggf mal probieren. Eventuell zusätzlich noch einen Unterspannungssensor vom MC aktivieren, falls vorhanden.

Oder: Ich würde hier ein Logik-IC verwenden. Einen Buffer (also nicht invertierend) dessen Eingang liegt an TXD UART und der Ausgang an RXD MC. Der Buffer wird entweder durch VCC vom MC versorgt oder der Ausgang ist abschaltbar (Enable Signal, Ausgang hochohmig). Der Eingang muss Spannungstolerant gegenüber TXD UART sein, wenn von MC Seite versorgt (Buffer IC gibt es auch als "Single-Gate" Version).

Oder: Die Sache mit dem Optokoppler. Oder über Transistoren.

Dirk :ciao:
 

LotadaC

Sehr aktives Mitglied
22 Jan 2009
3.428
62
48
Marwitz
Sprachen
BascomAVR, Assembler
Nur die beiden Leitungen RxD und TxD sind angeschlossen.
Und Gnd??

Der IC auf dem Konverter wird durch VUSB versorgt, TxD ist im Idle High, also legt der Konverter ein High auf diese Leitung (aus seiner Sicht). Da Vtg des Controllers kleiner ist, fließt Strom über die Schutzdiode.
Wie hoch ist Vout des Konverters? Bei einigen kann man zwischen 3V3 und 5V wählen.
An der Diode sollten meiner Meinung nach irgendwas zwischen 0,3 und 0,7V abfallen, woher kommen Deine 2V2?

Wozu ist Der Zustand "Controller aus - USB-Konverter an" nötig? Möglicherweise kannst Du den Controller stattdessen einfach schlafen schicken (dann könnte er über den UART sogar geweckt werden, wenn ich mich recht erinner).
 

Dirk

Administrator
Teammitglied
28 Jan 2007
4.308
150
63
Mittelhessen, Giessen
Sprachen
ANSI C, C++, C#, Java, Kotlin, Pascal, Assembler, PHP
An der Diode sollten meiner Meinung nach irgendwas zwischen 0,3 und 0,7V abfallen, woher kommen Deine 2V2?
Der TXD Pin vom USB UART "versorgt" den Attiny und alles was sonst noch an dessen VCC hängt. Der Pin kann nicht beliebige Lasten treiben, die Spannung ist bei höherem Strom kleiner als bei kleinerem Strom. Abzüglich Spannungsabfall an der Schutzdiode, da sind die 2,2V plausibel.

Dirk :ciao:
 

stinakovits

Mitglied
Premium Benutzer
22 Apr 2013
83
6
8
Kottingbrunn
Sprachen
Assembler
Hallo zusammen,

vielen Dank für eure Stellungnahmen.

Natürlich kommt die Masseleitung noch dazu. Ist aber für dieses Phänomen nicht relevant. Ob mit oder ohne GND. Das Verhalten ändert sich nicht.

3V3 und 5V wählen
Der Konverter läuft mit 3V3, bietet auch 5V und ist, wenn man den Angaben trauen kann, 5V tolerant. Meine Schaltung arbeitet aus bestimmten Gründen mit 5V.

Wozu ist Der Zustand "Controller aus - USB-Konverter an" nötig?
Ist nicht nötig. Aber später werden die unterschiedlichsten Menschen damit hantieren. Die haben in der Regel wenig bis keine Ahnung von Elektronik. Und wer ließt schon Bedienungsanleitungen ;)
Es darf einfach nicht passieren, dass jemand zuerst die Datenleitungen anschließt (die werden benutzt um die Platine zu programmieren, mit Parametern zu versorgen) und danach die Spannung einschaltet. Dann geht nämlich nichts mehr weil das Teil irgendwie irgendwo in den Wald gelaufen ist, in der Hauptschleife hängt, die Interrupts nicht mehr funken usw. Was macht der geplagte Mensch? Er nimmt die Versorgungsspannung weg und hofft so das Problem in den Griff zu bekommen -> Erfahrungswerte. Was dann aber nicht funkt.

woher kommen Deine 2V2?
Die kommen eindeutig aus der TxD Leitung des Konverters. Die RxD Leitung des Konverters fungiert als Rückleiter.

Oder: Die Sache mit dem Optokoppler. Oder über Transistoren.
Da die Platine möglichst günstig bleiben soll habe ich mich für die Entkopplung der ankommenden TxD Leitung (RxD des ATtiny) mittels MOS-FET entschieden. Sieht dann so aus:

1596998706242.png
Wahrscheinlich werde ich die TxD Leitung des ATtiny auch so entkoppeln, da ich gemessen habe, dass etwa 13 mA vom ATtiny in den Konverter fließen. Scheint mir zuviel zu sein.
 

dino03

Aktives Mitglied
27 Okt 2008
6.748
17
38
Sprachen
BascomAVR, Assembler
Hallo,

Eine Platine ist per USB-TTL Konverter am USB Anschluss des PC angeschlossen. Nur die beiden Leitungen RxD und TxD sind angeschlossen. Es ist keine Datenkommunikation vorhanden!
Berechtigte Frage von LotadaC ...
Natürlich kommt die Masseleitung noch dazu. Ist aber für dieses Phänomen nicht relevant. Ob mit oder ohne GND. Das Verhalten ändert sich nicht.
Häh? :fie:

Aber später werden die unterschiedlichsten Menschen damit hantieren. Die haben in der Regel wenig bis keine Ahnung von Elektronik. Und wer ließt schon Bedienungsanleitungen ;)
Ähm ... sag ich jetzt nichts zu ...ein Stromkreis heißt nicht umsonst StromKREIS. Die Elektronen tröpfeln da nicht irgendwo wie aus einem Wasserhahn raus.
Und wie Dirk schon angemerkt hat, könnte sich deine Schaltung theoretisch aus den beiden Datenleitungen TxD/RxD fremdversorgen wenn du GND nich anschließt.
Je nachdem wie die beteiligten Bausteine mit internen Schutzdioden versehen sind, die dann für die "Versorgung" zweckeintfremdet werden.
Im schlimmsten Fall erzeugst du damit Elektronikschrott weil die Pin-Treiber sich in Wohlgefallen auflösen. Das Phänomen nennt sich Backpowering ...
Siehe auch: https://e2e.ti.com/blogs_/b/analogw...g-why-are-the-lights-on-when-the-power-is-off

Du benötigst in einer Schaltung _immer_ ein gemeinsames Bezugspotential (jaaa ... Spezialfälle mal außen vor). In deinem Fall ist das GND. Auf dieses Potential beziehen sich alle anderen Spannungswerte. Wenn du das irgendwo unterbrichst, dann arbeitest du nur noch mit den Differenzspannungen der restlichen Leitungen. Wie gesagt: mit Glück ergeben sich tolle Phänomene, mit Pech Elektroschrott.

Gruß
Dino
 

LotadaC

Sehr aktives Mitglied
22 Jan 2009
3.428
62
48
Marwitz
Sprachen
BascomAVR, Assembler
TxD Leitung des ATtiny [...] etwa 13 mA vom ATtiny in den Konverter fließen
Da stimmt meiner Meinung nach auch irgendwas nicht. Der RxD des Konverters sollte quasi keinen Strom aufnehmen... von Ausgleichströmen über Schutzdioden wegen fehlender Masse oder Spannungsversorgung mal abgesehen
 

stinakovits

Mitglied
Premium Benutzer
22 Apr 2013
83
6
8
Kottingbrunn
Sprachen
Assembler
Hallo zusammen,

Du benötigst in einer Schaltung _immer_ ein gemeinsames Bezugspotential
Mensch Dino, hast du meine Beiträge nicht gelesen. Oder hab ich mich so schlecht ausgedrückt ;)
Natürlich ist da eine GND Leitung! Ich wollte nur anmerken, dass die GND Leitung keinen Unterschied für die Fremdversorgung macht. Die Versorgung läuft über die beiden Leitungen RxD und TxD.

mit Glück ergeben sich tolle Phänomene, mit Pech Elektroschrott.
Hehe, so ist es!

Da stimmt meiner Meinung nach auch irgendwas nicht. Der RxD des Konverters sollte quasi keinen Strom aufnehmen
Ja, das dachte ich auch. Ich erkläre es mir mit der unterschiedlichen Spannung. Ich arbeite mit 5V, der Konverter eigentlich mit 3V3 und ist aber 5V tollerant an RxD und TxD laut Datenblatt. Ich bin so ehrlich zuzugeben, dass ich mir nicht die Mühe gemacht habe rauszufinden warum der Konverter oder sein Umfeld die paar mA saugt.
Ein anderen Konverter gleicher Bauart verhält sich genau so.
Inzwischen weiß ich, es gibt eigene Bausteine für dieses Problem.
Die TxD Leitung des ATtiny wurde ebenfalls mit MOS-FET entkoppelt. Jetzt fließt der Strom nur mehr μA Bereich.

Ähm ... sag ich jetzt nichts zu ...
:D ich kenne meine Pappenheimer ...


Als Nachtrag: Auf der Konverter-Platine werkelt ein CP2102.

Und bevor es jemandem auffällt und mir schreibt, es kann gar nicht funktionieren - ja die Entkopplung ist invertierend. Zum Glück kann man die Ports am ATtiny814 ebenfalls invertieren. Dann passt es wieder.

Möchte mich nochmal für eure Beiträge bedanken. Durch's diskutieren kommen einem immer wieder neue Ideen!
 

dino03

Aktives Mitglied
27 Okt 2008
6.748
17
38
Sprachen
BascomAVR, Assembler
Hi,

Mensch Dino, hast du meine Beiträge nicht gelesen. Oder hab ich mich so schlecht ausgedrückt ;)
ich lese in letzter Zeit nicht mehr so oft mit. Eher so sporadische Blicke und wenn ich meine etwas beitragen zu können, schreib ich was dazu.
Da fehlt einem dann so ein wenig der Überblick im Forum.

Ich erkläre es mir mit der unterschiedlichen Spannung. Ich arbeite mit 5V, der Konverter eigentlich mit 3V3 und ist aber 5V tollerant an RxD und TxD laut Datenblatt.
Wenn der Eingang einen Schutzwiderstand hat und dann die Eingangsstufe nach GND und Vcc Schutzdioden, dann könnte das der Strom von 5V zum 3,3V sein. Also 1,7V (5-3,3) durch den Schutzwiderstand ergibt dann den Eingangsstrom. Wenn man mit einem Netzteil die Spannung am RxD-Eingang langsam erhöhen würde, dann müßte der Strom unterhalb 3,3V sehr gering sein und ab 3,3V langsam ansteigen. Dann könnte man den Wert des Schutzwiderstandes ausrechnen. Muß man aber bei aufpassen sonst gibts gekochtes Silizium ;)

Gruß
Dino
 

stinakovits

Mitglied
Premium Benutzer
22 Apr 2013
83
6
8
Kottingbrunn
Sprachen
Assembler
Hi Dino,

genau so waren auch meine Überlegungen. Daher schaut das nun so aus:

1597264813987.png

Funktioniert eigentlich zu meiner Zufriedenheit. Eventuell versuche ich noch den R13 4K7 etwas zu reduzieren. Laut Oszi hab ich Spannungspegel auf den Leitungen zwischen Konverter und meiner Platine von 4V bis 4V5. Also alles im grünen Bereich, denke ich.
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)