mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Verständnisfrage 74HC165


Autor: Sven (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe das Wochenende damit zugebracht den 74HC165 einzulesen, es ist 
mir aber nicht gelungen das richtig hinzubekommen (trotz vielen 
googlens). Habe dazu eine kleine Testschaltung, wie folgt aufgebaut: 8 
poligen DIP-Schalter mit den Eingängen D0-D7 verbunden, die Eingänge 
werden mit Pull-Down-Widerständen auf Masse gezogen. Ist ein Schalter 
aus liegt an dem jeweiligen Eingang des 74HC165 logisch 0 an, ist ein 
Schalter an entsprechend logisch 1.

Das Einlesen habe ich mir wie folgt gedacht:

1.) /PL (Pin 1) auf 0 und dann wieder auf 1 setzen (Die Zustände von 
D0-D7) werden ins Shiftregister des 74HC165 übernommen.

2.) Dann lese ich das erste Bit am Ausgang Q7 (Pin 9) aus

3.) CP (Pin 2) auf 1 und dann wieder auf 0 setzen (einmal Takten)

... das ganze 8 mal wiederholen, dann sollte ich ein Byte ausgelesen 
haben, leider bekomme ich kein sinnvolles Ergebnis. Mir ist auch die 
Funktion von DS (Pin 10) nicht ganz klar, muss dieser möglicherweise auf 
Masse gelegt werden? Ich habe bisher immer mit dem 4021 als 
Shiftregister (Parallel Input - seriell Output) gearbeitet und hatte 
niemals Probleme damit.

Ich hoffe mir kann jemand einen Tip geben wo mein Denkfehler ist. Vielen 
Dank

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

DS ist der Eingang des Shift-Registers, der Wert wird mit der steigenden 
CP-Flanke in das erste FF eingelesen.

CE auf L gelegt? Sonst kommt kein Takt durch.

Steht aber eigentlich alles in der Wahrheitstabelle des Datenblatts 
drin.

Gruß aus Berlin
Michael

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast Du den CE\- (Clock Enable-) Pin auf Masse gelegt?

Autor: yalu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 3.) CP (Pin 2) auf 1 und dann wieder auf 0 setzen (einmal Takten)

Was geht bei CP rein? Ein Schalter? Ist der entprellt?

Sonst erzeugst du jedesmal mehrere Takte.

Autor: Sven (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, /CE (Clock Enable) liegt auf Masse. Angesteuert wir der 74HC165 
durch den Parallelport eines PC's:

D0 -> /PL (Parallel Load)
D1 -> CP (Clock Pulse)
Error <- Q7 (serieller Ausgang)

Ich kann mir wirklich nicht erklären warum das bei mir nicht klappt, ich 
muss da einen denkfehler machen. Ich habe ja auch schon mit dem 595, 
4021, 4094 gearbeitet und keinerlei Probleme gehabt, aber mit dem 
74HC165 bekomm ich das einfach nicht hin.


Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Sven

>Ich kann mir wirklich nicht erklären warum das bei mir nicht klappt, ich
>muss da einen denkfehler machen. Ich habe ja auch schon mit dem 595,

Programmierfehler in der Ansteuerung? Ein Digitaloszi wäre hier Gold 
wert.

MFG
Falk



Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
An die Ein/Ausgänge Led anhängen und das Pgm mit
vielen Verzögerungszeiten langsam machen.

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>An die Ein/Ausgänge Led anhängen und das Pgm mit
>vielen Verzögerungszeiten langsam machen.

Poor's Man Digi-Scope ;-)

MfG
Falk

Autor: Sven (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für die Hilfe, ich kann jetzt den 74HC165 auslesen. Dennoch 
habe ich bei mir eine (für mich) komische Besonderheit festgestellt: Ich 
habe zwei Parallelports in meinem PC (LPT1 Basisadresse 0x3BC und LPT2 
Basisadresse 0x378). Den 74HC165 habe ich versuchsweise mit einem der 
Parallelports verbunden, an einen LPT funktioniert alles am anderen 
nicht, obwohl der Versuchsaufbau und das Programm (QBasic) identisch 
sind. Beide Parallelports sind in ordnung, habe dies mit einem Drucker- 
und Leuchtdiodentest überprüft. Natürlich habe ich die Basisadresse im 
Programm den entsprechenden Port angepasst. An dem einen Druckerport 
fuktioniert es nur, wenn ich die Eingänge /PL und CP am 74HC165 
zusätzlich mit den Parallelport eines anderen Computer verbinde um die 
Signale mit meinen primitiven Logicanalyzer (ebenfalls in QBasic) 
auszulesen.

hoffendlich kann mir jemand erklÄaren warum dies so ist, ich habe dafür 
keier Erklärung.

Danke für einen Tip.

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Sven

>Programm den entsprechenden Port angepasst. An dem einen Druckerport
>fuktioniert es nur, wenn ich die Eingänge /PL und CP am 74HC165
>zusätzlich mit den Parallelport eines anderen Computer verbinde um die

Vielleicht ist dieser Port in Ulta-Billig-Murks und hat Open Drain 
Ausgänge ohne Pull-ups?
Häng mal je 2k Pullups an \PL und CP und probiers nochmal.

MfG
Falk

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]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [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.