ATMEGA 48/88, Live-Umschaltung Portpin ADC ./. Digital-IO

OP #7382258
Lesenswert?
• ▲
▼

Liebe Leute, Folgende Frage konnte ich mir @Datenblatt (noch) nicht beantworten, vielleicht übersah ich dort (wo?) aber etwas:

Am Atmega48 liegt an einem ADC-Eingang (PC.5/ADC.5) der EIN-/AUSGANG eines 4051-Analog-Multiplexers, der dient 3 Zwecken:

  • paar 4051-Pins sind Digital-IN
  • paar 4051-Pins sind Digital-OUT
  • paar 4051-Pins sind Analog-IN Zyklisch wird der 4051 adressiert und der AVR-PortPin entsprechend konfiguriert.

WENN ich nun über ADMUX den AVR-PortPin (temporär) als ADC wähle:

  • ist es relevant, wie der PortPin per DDRn/PORTn zuvor definiert wurde?
  • oder wird er durch ADMUX eh komplett von der DigitalWelt abgekoppelt?

WIE bringe den PortPin danach wieder zu digitaler Funktion?

  • reicht es ADMUX auf einen anderen Input/GND zu schalten?
  • kehrt der Port dann zur vorherigen DDRn/PORTn-Definition zurück?
  • oder muss ich den PortPin danach neu konfigurieren?

Besten Dank schomma für etwas Hilfe!

Moderator Persönliche Seite #7382273
Lesenswert?
• ▲
▼

Es gibt AVRs, bei denen man den Digitaleingang komplett "tot legen" kann, wenn man den Pin analog benutzt. Hat bspw. Sinn, wenn man "zappelige" Analogsignale anliegen hat, die dazu führen, dass der Eingang ständig hin und her schaltet, was zusätzlichen Energieverbrauch bedeutet.

ATmega48/88 haben diese Funktionalität nicht. Man sieht im Blockdiagramm der IO-Ports, dass dort die einzige Möglichkeit, den Digitaleingang vom Pad zu entkoppeln ist, dass sich die MCU im Sleep befindet. Ansonsten ist der Digitalteil der Eingangslogik immer angeschlossen und bewertet das anliegende Signal entsprechend seiner Eingangscharakteristik (Pegel, Schmitt-Trigger-Zustand).

#7382275
Lesenswert?
• ▲
▼

Ist aber im Datenblatt eindeutig erklärt.

Kapitel I/O-Ports - Alternate Port Functions:

Signal Name: AIO

Full Name: Analog Input/Output

Description: This is the Analog Input/output to/from alternate functions. The signal is connected directly to the pad, and can be used bi- directionally.

Also die ADC Eingänge sind parallel zum Portpin geschaltet.

Gruß Jobst

OP #7382284
Lesenswert?
• ▲
▼

Jörg W. schrieb:

Ansonsten ist der Digitalteil der Eingangslogik immer angeschlossen und bewertet

Jobst M. schrieb:

Also die ADC Eingänge sind parallel zum Portpin geschaltet.

Besten Dank! Also -wenn ich richtig verstehe- sollte ich dann:

a) VOR 4051-Umschaltung auf ADC-Verwendung den AVR-Eingang STETS auf "Input-ohne-PullUp" schalten, um das AnalogSignal möglichst wenig zu beeinflussen.

b) VOR 4051-Umschaltung auf DIGITAL-Verwendung den AVR-Eingang STETS "neu-und-jeweils" konfigurieren.

Verstand ich es richtig? Dank nochmal!

#7382329
Lesenswert?
• ▲
▼

Jochen schrieb:

Verstand ich es richtig?

Sieht so aus aber mal, so als Idee, und wenn dein Digital-Signal nicht rasend schnell ausgewertet werden muss:

Lass den Eingang doch immer als ADC laufen. Wenn die das Digitalsignal interessiert wertest du einfach die Analogmessung aus indem du dann z.B. alles < 0.3Vcc als 0 bewertest und alles >0.7Vcc als 1. So kannst du dir das Umschalten zwischen Analog- und Digitalfunktion im Grunde schenken, nur mal so als Idee ;)

#7382395
Lesenswert?
• ▲
▼

Mit DIDR0 kann man die digitalen Eingangspuffer abschalten. Will man zwischen allem umschalten, muß man also DDRC, PORTC und DIDR0 entsprechend setzen.

Jochen schrieb:

  • paar 4051-Pins sind Digital-OUT

Ausgänge mit dem 4051 zu multiplexen halte ich für völlig sinnfrei. Die nicht adressierten sind dann ja floatend, nur der eine ausgewählte ist Ausgang. Für Ausgänge gibt es adressierbare Latches, z.B. 74HC259.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.