Forum: Mikrocontroller und Digitale Elektronik Eingangsport Erweiterung


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
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. (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 ?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.