I/O Pins einsparen

OP #1572553
Lesenswert?

Hallo,

ich habe sieben Leitungen von denen immer nur eine auf Masse gezogen 
wird (die anderen hängen in der Luft).

Bisher wollt ich diese 1:1 zum AVR ziehen, nur gehen mir langsam die I/O 
Pins aus.

Im Moment möchte ich einen ATMega644A nehmen.

Eigentlich müsste ich die 7 Leitungen in BCD (also Codieren) wandeln 
können und würde nur noch 3 Pins brauchen (ld(2) = 2,...).

Nur finde ich kein passendes Bauteil (bevorzugt SMD).

Stefan
Gast #1572584
Lesenswert?

Hallo Stefan,

ich würde es mit einem Seriell-Parallel-Schieberegister
versuchen, hier brauchst Du nur 3 Leitungen, Takt, Data und
Strobe um die Daten zu laden. Baustein wäre z.B. 74HC594
oder CD4094.

Diese Art Porterweiterung habe ich an ATMEGAS schon mehrfach
erfolgreich verwendet.
#1572612
Lesenswert?

Thorsten S. schrieb:

> ...stimmt, jedoch lässt die Satzstellung der Beschreibung für mich erst
> nach deinem jetzigen Hinweis eine 5% ige Chance zu, das es die Ausgänge
> des Ucs sind die die Leitungen auf Low ziehen....

Gibt schlechte Noten für's Kaffeesatzlesen. Wenn Leitungen in BCD 
gewandelt werden, codiert statt decodiert werden, dann sind es 
wehrscheinlich Eingänge am Controller. ;-)
OP #1572620
Lesenswert?

Hallo,

um es nochmal klar zustellen.

Die Leitungen gehen zum µC sind also Eingänge.
Ich will dann erfahren, welche Leitung auf Masse gezogen wird.

Ich dachte es sei Klar, dass ich aus 7 Leitungen 3 machen will.
Ob die nun zum µC oder von ihm weg ist da sogar egal.

Stefan
OP #1572628
Lesenswert?

Thorsten S. schrieb:
> Programmieraufwand eine binärzahl an einem Ausgang hochzuzählen und
> einen pin zu überprüfen zwischen jedem Zählschritt ob er low oder high
> ist!? Na Na Na, nun wird aber dramatisch...

Wenn ich das Datenblatt beim Überfliegen richtig gelesen habe, muss ich 
S0/S1/S2 passend setzen und bekomme dann an Y den Status der 
entsprechenden Leitung.

also muss ich im Programm die S Pins passend setzen und dann immer den 
Pin Prüfen.

Stefan
#1572646
Lesenswert?

Stefan Kuhne schrieb:

>> Ok, dann scheidet die ADC-Variante natürlich aus. Denn die braucht nur
>> einen Pin, nicht drei.
>
> Dann erklär bitte etwas ausführlicher.
> Am besten mit IC (Datenblatt).
>
> Bin nur halber E-Techniker und die Ausbildung ist noch länger her.

Der Begriff Spannungsteiler ist bekannt?

               VCC
                |
                R0
                |
 ADC-Pin -------+-----R1----- Eingang 1
                |
                +-----R2----- Eingang 2
                |
                +-----R3----- Eingang 3
               usw

R1 != R2 != R3.

Wenn Eingang 2 auf Masse gezogen wird und alle anderen Eingänge offen 
sind, dann entsteht ein Spannungsteiler aus R0 und R2. Da alle 
Widerstände verschieden sind, ergibt sich für jeden Eingang eine andere 
Spannung.

IC wird keines benötigt, den ADC hat der Controller ja schon an Bord.
OP #1572659
Lesenswert?

A. K. schrieb:
> IC wird keines benötigt, den ADC hat der Controller ja schon an Bord.

Ich dachte schon, die Pin Beschreibung im Pinout ist falsch.
Ich dachte der PortA ist ein Umwandler, aber das sind 8 A/D Wandler 
drin.
Dann gehen mir ja nicht mal Pins aus. Aber die Idee ist gut.

Muss ich mir im Datasheet ansehen, wie man das im Programm macht.
So ganz vorstellen kann ich mir das noch nicht.

Zu letzt habe ich das über einen externen am SPI machen müssen.

Stefan

PS:
> Der Begriff Spannungsteiler ist bekannt?

Bin Kommunikationselektroniker und werde bald Dipl.-Ing.

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