Forum: Mikrocontroller und Digitale Elektronik Eingangsport Erweiterung


von Jörg D. (misterbf)


Lesenswert?

Hallo zusammen,

Ich habe mir jetzt mal diverse Male Tante Google zu Gemüte geführt und 
nach einer Möglichkeit gesucht um meinem ATmega8 um ein bis zwei 
Eingangsbytes zu erweitern.

Habe diverse Möglichkeiten gefunden um Ausgänge über einen 8-bit Latch 
zu erweitern, aber das funktioniert ja mit Eingängen ja leider nicht so 
einfach.
Oder ich habe da nen Knoten im Kopf.

Soweit wie ich das verstanden habe müsste ich einen Baustein haben der 
den aktuellen Zustand am Eingangsbyte an meinen PINx weitergibt und beim 
weiterschalten auf ein anders Eingangsbyte den Zustand wieder 
"vergisst".

Ich würde den Zustand am PINx in eine Variable schreiben und dann das 
nächste Byte abfragen. wenn ich das mit dem Latch durchdenke komme ich 
zu der Erkenntnis das der Latch den eingelesenen Zustand speichert und 
am Ausgang Q dauerhaft ausgibt. Ist das so richtig ?

Was wäre denn das richtige Bauteil was ich bräuchte ?

Ich stelle mir sowas vor wie so ein 8-bit Schalter der den Zustand am 
Bingangsbit erst auf Abfrage weiter gibt und dann wieder abfällt.

Aber gibt es sowas ?


Grüße Jörg

von Justus S. (jussa)


Lesenswert?


von Philipp K. (philipp_k59)


Lesenswert?

Versteh ich nicht..

meinst Du vielleicht einen 74HC165?

Oder so eine Art 8 bit Eingang mit 1 Ausgang der das als getaktetes 
Signal ausgibt?

: Bearbeitet durch User
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Jörg Drösser schrieb:
> Was wäre denn das richtige Bauteil was ich bräuchte ?
Du brauchst einfach einen 8-Bit Bustreiber (z.B. 74245 o.ä.) mit 
Tristate pro 8 Eingänge. Dann nimmst du ein Byte-Enable Signal, 
schaltest damit einen der Bustreiber aktiv auf deinen Eingangsport, 
liest dieses Byte in eine Variable, schaltest den nächsten Bustreiber 
aktiv, liest das Ergebnis in eine Variable usw.

Und jetzt kommt der Trick schlechthin: anschließend kannst du den 
Eingangsport auf Ausgang umschalten und damit deine Ausgangslatches 
bedienen.
1
                    .--->---- Latch1  -->---  
2
                    |                                   
3
                    o--->---- Latch2  -->---  
4
                    |                    
5
                    o--->---- Latch3  -->---  
6
                    |           :
7
                    |           :                        
8
                    |                                   
9
        (8 Bit-Bus) |                                   
10
PA  ------<->-------o---<---- Buffer1 --<---  
11
                    |                                   
12
                    o---<---- Buffer2 --<---  
13
                    |                                   
14
                    o---<---- Buffer3 --<---  
15
16
PB0 -->-- Latch1                            
17
PB1 -->-- Latch2                            
18
PB2 -->-- Latch3                            
19
PB3 -->-- BufferEnable1                            
20
PB4 -->-- BufferEnable2                            
21
PB5 -->-- BufferEnable3
Einfach mal ein Blatt Papier nehmen und aufzeichnen. Das ist Technik aus 
dem letzten Jahrtausend...

: Bearbeitet durch Moderator
von Jörg D. (misterbf)


Lesenswert?

Also ich bin in der Thematik mit dem Schieberegister über den SPI Bus 
nicht so belesen.
Wie funktioniert das denn genau ?
Bekommt das Register denn damit eine eigne Adresse, so wie PINxy ?

von Anonymous U. (gastt)


Lesenswert?


von Jörg D. (misterbf)


Lesenswert?

Ist ja nicht so das ich es nicht versucht hätte, ich komme nur nicht mit 
dem SPI klar.
Ich kenne den nur in Verbindung mit meinem STK500 programmer.

Kann mir das mal einer versuchen zu erklären ?

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.