Forum: Mikrocontroller und Digitale Elektronik Tristate Ausgang mit XMega behandeln


von Florian F. (flofri)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe vor einen LiPo - Ladeic (MCP73831) in meine Schaltung zu 
integrieren. Dieser IC hat einen Status Ausgang welche über den Zustand 
des ICs informiert (Aus, Laden, Fertiggeladen, ...). Nun ist dieser 
Ausgang in der Lage 3 Zustände einzunehmen, High, Low und eben High-Z 
bzw. hochohmig.

Ich habe mal versucht meine Idee mit Eagle zu konstruieren. Die Idee ist 
folgende: Sollte der IC High oder Low schalten wird durch einen 
Spannungsteiler sichergestellt, dass maximal 3,56V (High, bei 
angenommenen 5V Input +10% Toleranz) am XMega ankommen bzw. max. 0,65V 
auf Low. Die Idee für die dritte Betriebsart des Pins ist nun ein Pullup 
Widerstand. Dieser zieht die Leitung auf 5V sobald der Pin "inaktiv" 
bzw. hochohmig wird. Somit zeigt mir der Pin quasi zwei Zustände, High 
(bei Pin High sowie bei Pin High-Z) und Low (bei Pin Low). Dies würde 
mir vollkommen genügen da die Stati High und High-Z jeweils einen nicht 
tätigen IC beschreiben.

Meine ist nun ob das so funktionieren kann oder ob ich einen 
gravierenden Denkfehler drin hab.

Vielen Dank schonmal.

Gruß Florian

von Jens G. (jensig)


Lesenswert?

sollte so gehen ...
Aufgrund der Hochohmigkeit des Spannungsteilers sollte man aber evtl. 
vielleicht einen kleinen C (so 100n) an den xmega-Eingang machen, um 
mögliche Störungen zu verringern (Falls es nicht auf Geschwindigkeit 
dabei ankommt).
Oder aber den Spannunsteiler niederohmiger machen, was den 
Stromverbrauch aber erhöhen kann.

von Florian F. (flofri)


Lesenswert?

Hallo,

Geschwindigkeit wäre nicht das Problem. So oft wechselt der Status ja 
nicht. Das mit dem Kondensator ist ein gute Idee, werde ich integrieren.

Viel niedriger kann ich aber den Spannungsteiler nicht einrichten weil 
sich sonst der Pull-Up störend auf das Verhältnis auswirkt?? Oder gar 
den Pull-Up in selbem Maße reduzieren?

von Jens G. (jensig)


Lesenswert?

Auf das exakte Teilerverhältnis kommt es wohl nicht an. Hauptsache, du 
tust deutlich die Umschaltschwelle des Eingangs über/unterschreiten zur 
sicheren H/L-Unterscheidung.
Du könntest aber auch einfach einen R vom Eingang richtung 3,3V 
schalten, und den Ausgang schaltest Du via Diode auf den Eingang (Anode 
richtung Eingang). Damit wirkt der Ausgang nur noch wie ein 
Pulldown-Ausgang (bzw. OpenDrain/Collector), und Du brauchst gar keinen 
U-Teiler mehr.

von Florian F. (flofri)


Angehängte Dateien:

Lesenswert?

Hallo nochmal,

ich glaube das ich die Idee mit der Diode nicht ganz verstehe. Habs mal 
versucht aufzumalen, ist das so richtig?

Erklären könnte ich mir noch warum für Ausgang - High bzw. - Hochohmig 
eine definierte Spannung von 3,3 V beim Eingang ankommt. Aber was genau 
passiert wenn der Ausgang auf Low geschaltet wird?

Müßte man etwas spezielles bei der Diodenwahl / R - Wahl beachten?

Sorry für die Fragen aber bin noch nicht solange im Thema...

von Jens G. (jensig)


Lesenswert?

Bie H/High-Z gibt's ja nur eine Spannungsquelle, die die Spannung 
bestimmt. Nämlich die 3,3V. Spannungsteilung gibt's hier nicht, also 
bleibts bei 3,3V.
DIe Diode ist dabei gesperrt, weil Anode negativer - also ohne Funktion.
Bei L wird doch die Diode leitend, und zieht somit den Eingang mit 
runter. Wird zwar nicht ganz 0V, sondern etwa 0,6V, aber das wird vom µC 
als sicherer L-Pegel erkannt.

von Peter D. (peda)


Lesenswert?

Florian Fricke schrieb:
> Dies würde
> mir vollkommen genügen da die Stati High und High-Z jeweils einen nicht
> tätigen IC beschreiben.

Sollte so gehen.


Will man wirklich alle 3 Zustände erkennen, geht auch das.
Dazu schaltet man einfach einen Widerstand (4,7k) in Reihe.
Dann legt der MC low an, geht auf hochohmig, wartet ein NOP und liest 
ein.
Dann legt der MC high an, geht auf hochohmig, wartet ein NOP und liest 
ein.

Ist der Pin hochohmig, liest man durch die Pinkapazität den angelegten 
Pegel ein, also zuerst 0 und dann 1.
Ist der Pin aber Ausgang, dann entweder 2 * 0 oder 2 * 1.


Peter

von Florian F. (flofri)


Lesenswert?

Hallo,

@Jens: Ich hab das jetzt verstanden, finde ich super. Danke!

@Peter: Das allerdings könnte man auch mal ausprobieren wobei ich mir 
noch nicht sicher ob ich das auch benötigen werde. Aber danke für die 
Idee!

Gruß Florian

von Florian R. (rager)


Lesenswert?

Ich bin gerade bei einem Roboterprojekt wo ich den gleichen Lipo-Lader 
und einen Xmega benutze. Zusätzlich gibt es ein paar starke IR-LEDs und 
einen Motortreiber. Mein Problem ist, dass ich denke das der Lipo-Lader 
Probleme hat, wenn ein Akku und noch dazu eine ganze stromfressende 
Schaltung an seinem Ausgang hängt während er laden will.
Da muss doch die Ladesensorik total durcheinander kommen / nicht 
funktionieren oder?
Wie muss die Schaltung aussehen wenn ich zum Beispiel eine Solarzelle 
obendrauf setzten will oder ähnliches?
Ich sehe immer nur Beispiele wo der Akku und der MCU parallel an den 
Ladeausgang des Laders gelegt werden aber der kann ja nur maximal 500mA 
liefern... ich bin verwirrt.

LG,
ein anderer Florian

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
Noch kein Account? Hier anmelden.