AVR: ADC-Messung am GPIO-Ausgang?

Gast #6213482
Lesenswert?

Lässt sich ein high geschalteter GPIO-Ausgang per ADC messen?

"Figure 10-5.Alternate Port Functions" (S. 58) des attiny85 Datenblattes 
zufolge könnte es evtl. gehen, falls nicht noch eine Art Verriegelung 
ins Spiel kommt..?

https://www.microchip.com/wwwproducts/en/ATtiny85#datasheet-toggle
http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-2586-AVR-8-bit-Microcontroller-ATtiny25-ATtiny45-ATtiny85_Datasheet.pdf
Gast #6213548
Lesenswert?

Mir war kalt schrieb:

> .. bzw. die ggf. höhere, anliegende Spannung als high+0.7V, richtig?
> Das wäre ideal.

Dein ADC misst bis VREF. Alles was darüberliegt wird als "gleich VREF" 
(0x3FF bei 10 bit) angezeigt. Wenn Du externe Überspannung erkennen 
willst musst Du VREF über VDD legen -- wenn Dein Controller das erlaubt.

Aber aufpassen: bei Überspannung an einem Portpin fließt ein Strom durch 
die ESD-Schutzstruktur in die VDD. Der liefert eben diese ca 0,7 V, die 
der Pin über VDD liegen kann. Dieser injizierte Strom stört 
üblicherweise analoge Schaltungsteile auf dem Chip, insbesondere den 
ADC. Oft spezifiziert der Hersteller, mit wieviel LSB zusätzlicher 
Ungenauigkeit man bei welchem injection current zu rechnen hat.
#6213770
Lesenswert?

Mir war kalt schrieb:
> Danke für die Hinweise, das hatte ich nicht bedacht.
> Dann lässt sich nur HIGH=AREF=VCC messen, nichts drunter, und erst recht
> nichts drüber.

Alles zwischen 0V und Vref kann man messen.
Es wäre halt interessant, worum es dir geht.

Messen, ob
- an einem Pin mit gesetztem DDR-Bit auch hoch genug ist, oder 
kurzgeschlossen.
- an einem Pin, das mit gelöschten PORT-Bit über DDR-Bit Open-Source 
(die HW-Variante) bei High jemand anderer auf Löw zieht (z.B. I2C, 
OneWire,...)
- irgend was ganz anderes

Was also?
Gast #6221387
Lesenswert?

Es wäre interessant zu wissen, ob das Signal vom GPIO oder von einem 
parallelgeschalteten Taster kommt.

Evtl. lässt sich anstelle des GPIO-Ausgangs mit HIGH-Pegel mit dem 
integrierten Pull-Up und einem externen Widerstand ein Spannungsteiler 
aufbauen, so dass die sich einstellende Spannung vom Controller oder vom 
Taster kommt.
Dann kann die Spannung "in die Knie" gehen, ohne Gefahr, den Port zu 
überlasten.
Andererseits gibt es lt. S. 183 des "ATtiny25/45/85 [DATASHEET] 
2586Q–AVR–08/2013" in "Figure 22-21.I/O Pin Output Voltage vs. Source 
Current (VCC = 3V)" bereits bei 5 mA Last einen Spannungsabfall > .1 V.
#6221414
Lesenswert?

Mir war kalt schrieb:
> Lässt sich ein high geschalteter GPIO-Ausgang per ADC messen?
>
> "Figure 10-5.Alternate Port Functions" (S. 58) des attiny85

logisch
Selectable 1.1V / 2.56V ADC Voltage Reference

wähle intern 1,1V oder 2,56V

Einen Spannungsteiler der VCC max 6.0V passend teilt, also auf 1/3 -> 
REF 2,56V oder 1/6 -> REF 1,1V
dann GPIO messen und umrechnen
#6222080
Lesenswert?

S. Landolt schrieb:
> Mit Aref=Vcc sollte man
> durchaus messen können, ob der Ausgang sein high hält oder aufgrund
> Belastung "in die Knie" geht

Man "sollte" nicht nur, sondern man kann das definitiv. Das 
Zabex-Ohmmeter macht genau das, um den unter Last einknickenden H-Pegel 
rauszurechnen. Da man aber auch mit VREF nicht über Vcc gehen kann, 
bleibt der Meßbereich auf Spannungen zwischen GND und Vcc eingeschränkt.


Mir war kalt schrieb:
> Es wäre interessant zu wissen, ob das Signal vom GPIO oder von einem
> parallelgeschalteten Taster kommt.

Es gibt nur eine legale Anwendung, wo man einem als Ausgang geschalteten 
GPIO einen Taster parallel legen darf: wenn das ein Open-Drain Ausgang 
ist und der Taster nach GND geht. Alles andere ist gefährlicher Murks.

Wie bereits gesagt wurde: wenn man dein eigentliches Problem kennen 
würde, dann könnte man dir besser helfen.
Gast #6222100
Lesenswert?

Joachim B. schrieb:
> Einen Spannungsteiler

Ich meinte ein und denselben Pin - ich kann keinen Spannungsteiler in 
den IC einbauen ;-) Aber statt Ausgang liesse sich der Pull-Up 
einschalten.


Axel S. schrieb:
> wo man einem als Ausgang geschalteten
> GPIO einen Taster parallel legen darf: wenn das ein Open-Drain Ausgang
> ist und der Taster nach GND geht.

Dann ist die Unterscheidung Ausgang/Taster aber nicht mehr möglich - 
oder?
#6222169
Lesenswert?

Mir war kalt schrieb:
> Ich meinte ein und denselben Pin

wenn ich hellsehen könnte würde ich Lotto spielen

Mir war kalt schrieb:
> ich kann keinen Spannungsteiler in
> den IC einbauen ;-)

muss man auch nicht, Spannungsteiler werden fast immer extern 
angeschlossen, was soll also diese Aussage?

Mir war kalt schrieb:
> Dann ist die Unterscheidung Ausgang/Taster aber nicht mehr möglich -
> oder?

doch, als Ausgang schaltet der µC auf GND oder VCC, man kann den auch 
per Software auf Eingang setzen und dort natürlich nicht einen Schalter 
mit Fremdspannung anschliessen, wenn dieser Schalter aber mit 
Fremdspannung ein Photomos Relais schaltet kann der der µC das durchaus 
feststellen.

lieber TO, sorge dafür das dir nicht mehr kalt ist, dann klappt das 
denken auch besser!

Nun wäre es mal an der Zeit das Schaltbild zu zeigen und mal genauer zu 
beschreiben was du eigentlich machen willst mit ALLEN Daten.
Gast #6222309
Lesenswert?

S. Landolt schrieb:
> Welche Last wird mit diesem "GPIO-Ausgang" geschaltet und wogegen
> (Vcc
> oder GND)?

Das Gate eines kleinen Mosfets. P-Kanal, aber invertieren ginge auch.
Was hast du gegen "GPIO-Ausgang", ausser, dass bei AVR das "GPIO" wohl 
implizit ist?

Peter D. schrieb:
> Man kann zyklisch den Ausgang abschalten und dann messen, ob ein Taster
> oder Schalter betätigt ist.

Danke, auch interessant.

Joachim B. schrieb:
> lieber TO, sorge dafür das dir nicht mehr kalt ist, dann klappt das
> denken auch besser!

Uncool.
#6222488
Lesenswert?

Mir war kalt schrieb:
> Axel S. schrieb:
>> wo man einem als Ausgang geschalteten
>> GPIO einen Taster parallel legen darf: wenn das ein Open-Drain Ausgang
>> ist und der Taster nach GND geht.
>
> Dann ist die Unterscheidung Ausgang/Taster aber nicht mehr möglich -
> oder?

Kommt drauf an. Wir wissen ja immer noch nicht, was du eigentlich 
erreichen willst. Du erzählst immer nur, was du tun willst, aber 
nicht, warum du es tun willst.

Typischer Kandidat für http://xyproblem.info/


Mir war kalt schrieb:
> S. Landolt schrieb:
>> Welche Last wird mit diesem "GPIO-Ausgang" geschaltet
>
> Das Gate eines kleinen Mosfets. P-Kanal

Klingt wie eine Variante von "ein Gerät soll per Taster eingeschaltet 
werden und sich dann selbst eingeschaltet halten" mit der Erweiterung 
"und ein zweiter Druck auf den gleichen Taster soll das Gerät wieder 
ausschalten".

Wenn das deine Aufgabenstellung sein sollte, dann wurde sie hier schon 
gefühlt 1000-mal diskutiert.
Gast #6222785
Lesenswert?

> Das Gate eines kleinen Mosfets.

Also eine minimale Last. Muss man dann nicht lediglich den 
Serienwiderstand zum Taster so dimensionieren, dass die Schaltschwelle 
des MosFets nicht unter- bzw. überschritten wird, gleichzeitig aber die 
Spannungsänderung beim Tastendruck eben noch mit dem 10-bit-ADC 
detektierbar ist?
  Klingt jetzt irgendwie zu einfach, ich trinke erstmal Kaffee.
#6222870
Lesenswert?

S. Landolt schrieb:
> Oder habe ich das Problem nicht verstanden?

keine Ahnung, das versteht ja hier fast niemand!

Mir war kalt schrieb:
> Es wäre interessant zu wissen, ob das Signal vom GPIO oder von einem
> parallelgeschalteten Taster kommt.

ist dieser Taster vom TO im selben Gerät wie der µC?
oder ist das ein externer Taster auf Netzspannung am 
Kondensatornetzteil?
Liegt am Taster überhaupt DC an oder AC?
Liegt am externen Taster gar eine Spannung an die höher ist als VCC vom 
µC?
Darf man 2 Spannungen einfach parallel schalten?
Muss die Spannung vom externen Taster nach dem Taster im Strom begrenzt 
werden damit der µC keinen magischen Rauch abbläst?
Wird mit dieser Strombegrenzung der externe Taster noch seine Aufgabe 
erfüllen können?
Gast #6223198
Lesenswert?

S. Landolt schrieb:
> Oder habe ich das Problem nicht verstanden?

Jain: das ist eine gute Möglichkeit, die ich bis gestern noch nicht 
kannte.
Der Taster sollte allerdings selbst auch ein high-level (alternativ low) 
erzeugen. Aber das dürfte sich ja auch mit einem Spannungsteiler 
realisieren lassen.

Daher: erstmal vielen Dank für die konstruktiven Beiträge.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren