mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik HC4094 Schieberegsiter Problem


Autor: Läubi (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Also, ich wollte eine 7Seg Anzeige mittels des obigen Schieberegisters
Ansteuern (eigentlich sind es 3 hintereinader aber das sollte ja
erstmal egal sein).

Beschaltet ist das ganze folgendermaßen:

OE = +5V
Strobe = +5V
Clk = Port C, Pin3
Data = Port C, Pin 2

Das Problem ist jezt alelrdings das ich es nicht hinbekomme Daten an
die Ausgänge zu legen, vielmehr sind alle Ausgänge immer HIGH.

Das Programm:
-------------

cbi PORTC, 2 ; Data LOW
ldi tmp, 50
outzahl1:
sbi PORTC, 3 ;clk HIGH
dec tmp
cbi PORTC, 3 ;clk LOW
brne outzahl1

Ich hab jezt shcon mehrmals das Datenblatt studiert und auch
nachgemessen das Alles "kontakt" hat, aber ich kriege die Daten
einfach nicht rein...
Laut Wahrheitstabelle und Timing Diagramm sollte das aber alles so
korrekt sein.
Habe das Datenblatt gleich mal angehangen, ich weiß mir gerade nicht
mehr zu helfen :(

Autor: Andreas W. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nach dem Du alle Daten rausgeschoben hast, musst Du noch einen kurzen
Impuls auf Strobe geben, damit die Daten auf die SR-Ausgänge gegeben
werden. (siehe Datenblatt S.5)

Gruß
Andreas

Autor: Läubi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit anderen Worten komm ich nicht drum rum die Strobe leitung auch an
dne Controller zu legen? Eigentlich wollte ich gerne mit zwei leitungen
auskommen ... :(

Autor: Rahul Der trollige (rahul)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Schieberegister hat ein Output-Latch. Du kannst Daten in bzw. sogar
durch das Register schieben, ohne dass sich die Ausgänge ändern.
Wenn Du nur 2 Leitungen benutzen willst musst du das
'164-Schiebergister (' = 74LS, 74HC, 74HCT...) nehmen.

Autor: Läubi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm.. ok, das sit natürlich blöde, könnte ich das Strobe an die
CLockleitung mit dranhängen? Dan müßte ja bei jedem CLock Impuls die
Daten übernommen werden.
@Rahul danke für den hinweis werd ich mir gleich mal ansehen udn beim
nächsten mal mitbestellen.

Autor: Läubi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aber das '164 er kann man nicht kaskadieren oder seh ich das nun gerade
falsch?

Autor: Rahul Der trollige (rahul)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
naja, du kannst den Eingang des folgenden Schieberegisters and den
letzten Ausgang des vorherigen hängen. Anders läuft das beim 4094 auch
nicht.

Autor: Unbekannter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm, eigentlich müsste das gehen, denn laut Datenblatt ist das
Strobe-Signal nicht Flankengesteuert sondern Levelgesteuert.

So steht es in der Beschreibung, so ist das IEC-Symbol gezeichnet und
so ist es auch in der Logik-Tabelle und im Timing-Diagramm
beschrieben.

Hmm. Komisch.

Autor: Läubi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das meine ich doch auch, solange Strobe HIGH ist solten die Daten doch
an den Ausgang durchgereicht werden ....

Autor: Manfred Glahe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist auch so, aber die Anzeige würde doch die unsinnigen Zustände
auch anzeigen. Will er das?

Manfred Glahe

Autor: Läubi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja das Menschliche Auge ist träge ;)
Da ich die Anzeige nur einmal beschreibe (z.b. das Bimuster für ne 5
reinschiebe) udn dan vileicht 5 Minuten nix mehr mache könnte ich
zugunsten das ich nur zwei Leitungen brauche, das "unsinnige
anzeigen" auf der Segemntanzeige in den paar ms verkraften.
Die Anzeige wird ja auch nicht gemultiplext oder so, sondern an jedem
der 8 Ausgänge hängt halt ein Segment der Anzeige, sodas nach dem
reinschieben auch dauerhaft das zulezt gesnedet Bitmuster drine stehen
sollte.
Aber leider hab ich immer alle Ausgänge auf High heißt alle Segmente
Leuchten... obwohl ich mittels des obigen programms erstmal alles auf
"0" setzen wollte damit die Anzeige aus ist.

Autor: Rahul Der trollige (rahul)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Philips Datenblätter...
Unter ti.com findet man ein "shöneres".
http://www-s.ti.com/sc/ds/cd74hc4094.pdf

Ich gehe davon aus, dass STRobe auch eine Flanke braucht.
Im functional diagramm sieht man schön die drei Teile des Bausteins.
Offensichtlich ist aber in sämtlichen Datenblättern der gleiche
"Fehler".

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich verwende immer die MOS4094 von reichelt. sind meist CD4094. kannst
ja mal in das datasheet gucken. allerdings stimmen die timings nich
mehr.

strobe kannst du an clock hängen. Output Enable hängst du auf Vdd,
sodass die Ausgänge nie High-Z sind.

Autor: Läubi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm... das sit wirklich aergerlich, hat jemand ne Idee wie ich das
Problem umgehn kann ohne jezt nue Bausteine besorgen zu müßen?
Ich hab eben einfach mal Strobe an die Clock Leitung mit drangehangt
aber das hat auch nicht wirklich geholfen :(

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Woas? Bei mir ging das, überprüf lieber nochmal... grübel

Autor: Läubi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja ich werd das nochmal auseinader pfluecken, fehlt nurnoch das HC und
MOS dinger unterschiedlich ticken ....

Autor: Unbekannter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Rahul:

> Ich gehe davon aus, dass STRobe auch eine Flanke braucht.
> Im functional diagramm sieht man schön die drei Teile des Bausteins.
> Offensichtlich ist aber in sämtlichen Datenblättern der gleiche
> "Fehler".

Die Datenblätter sind definitv richtig. Egal welcher Hersteller,
überall steht in den Datenblättern dass Strobe nicht
Flankengetriggert ist.

Also wenn Strobe auf High ist, müssen die Ausgänge transparent sein.

Autor: Läubi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also kann man sagen wenn OE + Strobe auf VDD sind dann muß alles was ich
reinschiebe auch am Ausgang erscheinen, ergo hab ichs irgenwo anders
verbockt?

Autor: Andreas W. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Japp, der Unbekannte hat recht.
Habe gerade ein Datenblatt von ST angeschaut, da sieht man ein bisschen
mehr zum inneren Aufbau...

Autor: Läubi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat eigetlich jemand zufällig gerde son teil rumleigen udn könnte mal
nen Testaufbau machen? Ich komm hier einfach nicht weiter, an den Chips
sollte es nicht leigen die sind neu und warum sollte an Drei Chips das
selbe Problem auftreten das sit dann doch etwas unwarscheinlich... :(

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Korrekt. Die Datasheets sind eindeutig, das Programmfragment sieht auch
ganz manierlich aus. Wenn auch die Richtungs der Pins (DDRC) stimmt,
dann ist wohl die Hardware dran.

Mach mal die Schleife ggggggaaaaaaannnnnnnzzzzzz langsam zum mitlesen.
Also 1sec Intervalle und Messgerät oder LEDs an die Pins.

Autor: Läubi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
---
ldi tmp, 0b11110011
out DDRC, tmp
---
Sollte im Prinzip hinhauen, ich kan die Ausgänge ja High/Low setzen
(und messen) werde mir mal eine Art stekcer mit LED löten und über
Timer das ganze extrem verlangsammen, leider muß ich gleich nochmal los
zur Uni werde also erst heute Abend "berichten" können.

Autor: Läubi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach ja, Device sit ein Mega8 ich hoffe mal das der nciht irgenwelche
Spezialfunktion wie der Mega16 hat das ich erst JTAG deaktivieren muß
oder?

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"ldi tmp, 0b11110011
out DDRC, tmp"

Definiert 2+3 als Eingang und den Rest als Ausgang. Hmm.

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Funktioniert definitiv mit OE=1 und STR=1, also transparent.

Autor: Läubi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich krieg zuviel du hast Recht, udn oh WUnder oh Wunder... auf einaml
tut das Regsiter seine Arbeit, manchmal steht man echt davor und sieht
den Wald vor lauter Bäumen nicht!

Trozdem Danke an alle Beteiligten, wenigstens habe ich jezt die
FUnktionsweise des Schieberegsiters mal richtig verstanden schäm

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.