Forum: Mikrocontroller und Digitale Elektronik S/P-Wandlung mit TTL-Pegel


von Sebastian W. (bc137)


Lesenswert?

Hallo,

ich habe folgendes Problem:
Ich möchte auf einer Zweidraht-Schnittstelle von Seite (A) ein 4 Bit 
Datenwort schicken. Auf Seite (B) möchte ich das Datenwort (Beispiel: 
1101) parallel ausgeben. Da fällt mir sofort ein Schieberegister ein. 
Das Datenwort soll aber so lange an den parallelen Ausgängen des 
Schieberegisters anliegen, bis ich die nächsten 4 bit seriel an die 
Seite (B) schicke (Gerät(B) soll dafür nicht bedient werden müssen).
Der Takt an dem Schieberegister wird doch aber dafür sorgen, dass die 
Daten nicht erhalten bleiben oder habe ich da etwas falsch in 
Erinnerung?

Gruß
Sebastian

von Bitkracherl (Gast)


Lesenswert?

Es gibt Schieberegister mit einem vorgeschalteten Latch.
Allerdings keine 4-Bit weiten (wenn ich nicht irre).
Du musst Du den Latch-Übernahme-Impuls noch mit einem zusätzlichen 
Zähler erzeugen.

Es gibt irgendwo im Netz (in Ermangelung eines der guten alten 
Eulenbücher) ein Verzeichnis der 74er- und 40er-Reihe. Blätter da mal 
durch.

von Roland .. (rowland)


Lesenswert?


von Axel S. (a-za-z0-9)


Lesenswert?

Sebastian W. schrieb:
> eine Zweidraht-Schnittstelle

Das ist der Knackpunkt. Welche denn? und zählst du GND da schon dazu 
oder nicht?

Mit 2 Leitungen + GND könnte man I²C (aka TWI) verwenden. Da gibt es 
mehr als einen Baustein der 4 (oder mehr) digitale Ausgänge hat. Für ein 
"nacktes" Schieberegister braucht es wenigstens 3 Leitungen: Takt, Daten 
und Latch. Prinzipiell kann man das Latch zwar weglessen - aber dann 
wackeln die Leitungen halt, wenn man neue Daten einschiebt.


XL

von Sebastian W. (bc137)


Lesenswert?

>Das ist der Knackpunkt. Welche denn? und zählst du GND da schon dazu oder nicht?

Ja, den GND zähle ich schon dazu. I²C wäre etwas wo ich noch nicht dran 
gedacht habe. Da muss ich mich mal schlau lesen, danke!

von Dietrich L. (dietrichl)


Lesenswert?

Sebastian W. schrieb:
> I²C wäre etwas wo ich noch nicht dran gedacht habe.

Aber dann brauchst Du doch 3 Leitungen, hast aber nur 2. Und die 
Stromversorgung brauchst Du auch noch, oder wie war das gedacht?

Es gibt auch den 1-Wire-Bus (http://de.wikipedia.org/wiki/1-Wire). Ob es 
aber da einen passenden Baustein gibt weiß ich nicht...

Gruß Dietrich

von Sebastian W. (bc137)


Lesenswert?

Hab auch gerade gesehen, dass I2C drei Leitungen  braucht.
Sender und Empfänger haben bei meiner Idee eine eigene 
Spannungsversorgung. Als Verbindung stehen mir nur zwei Leitungen zur 
Verfügung. Eine für GND und eine für Tx-Daten. Mit einer RS232 
Schnittstelle würde es ja gehen, lieber wäre mir eine einfache Lösung 
mit TTL-Pegel gewesen.

von Bitkracherl (Gast)


Lesenswert?

>...lieber wäre mir eine einfache Lösung mit TTL-Pegel gewesen.

Das geht durchaus. Wie oben schon beschrieben: Zähler und 
Schieberegister mit Latch.

von Dietrich L. (dietrichl)


Lesenswert?

Sebastian W. schrieb:
> Eine für GND und eine für Tx-Daten. Mit einer RS232
> Schnittstelle würde es ja gehen, lieber wäre mir eine einfache Lösung
> mit TTL-Pegel gewesen.

Wenn die Entfernung nicht zu lang und die Umgebung nicht zu störbehaftet 
ist geht das auch mit TTL-Pegeln. Du brauchst dann auf beiden Seiten 
z.B. einen µC mit UART.

Gruß Dietrich

von Bitkracherl (Gast)


Lesenswert?

>Du brauchst dann auf beiden Seiten z.B. einen µC mit UART.

Ein UART ist nicht notwendig.

von Dietrich L. (dietrichl)


Lesenswert?

Bitkracherl schrieb:
> Das geht durchaus. Wie oben schon beschrieben: Zähler und
> Schieberegister mit Latch.

Da muss man aber noch einiges dazu basteln, um auf einer Leitung Daten 
und Clock zu verschicken - z.B. einen Machnester-Kodierer bzw. 
Dekodierer. Dann ist ein kleiner µC mit UART doch wesentlich 
einfacher...

Bitkracherl schrieb:
>>Du brauchst dann auf beiden Seiten z.B. einen µC mit UART.
>
> Ein UART ist nicht notwendig.

Dann sag mal, wie Du das machen willst.

Gruß Dietrich

von Bitkracherl (Gast)


Lesenswert?

> Dann sag mal, wie Du das machen willst.

Das habe ich schon geschrieben. Ein Schieberegister mit Latch und ein 
Zähler.

von Bitkracherl (Gast)


Lesenswert?

Scheibenhonig. Ich habe übersehen, dass er Ground zu den zwei Leitungen 
zählt. Das kam ja erst später im Thread. Sorry.

von Dietrich L. (dietrichl)


Lesenswert?

Bitkracherl schrieb:
> Das habe ich schon geschrieben. Ein Schieberegister mit Latch und ein
> Zähler.

Und wie taktest Du die Daten in das Schieberegister? Mit nur einer 
Leitung?
Vielleicht hast Du es ja nicht mitgekriegt: Sebastian hat 2 Leitungen, 
aber eine davon ist GND. Es bleibt also nur 1 Leitung für das Signal 
übrig.

Gruß Dietrich

von Bitkracherl (Gast)


Lesenswert?

Ein typisches Beispiel für einen falschen Fokus bei der Fragestellung.

Der TO fragt danach wie er eine Veränderung an den Ausgängen des 
Schieberegisters bei der Übertragung verhindert. Dafür ist natürlich die 
Voraussetzung, das er schon Takt und Daten übertragen kann. Das er da 
von Zwei-Draht-Schnittstelle schreibt, mag hingehen, denn man redet auch 
von 1-Wire, was ja auch zwei Verbindungen benötigt.

In Wirklichkeit aber, ist das Problem der Übertragung selbst noch 
garnicht gelöst.

Na jedenfalls würde ich dann auch I2C empfehlen.

von Bitkracherl (Gast)


Lesenswert?

I2C braucht ja auch drei Drähte. Bin wohl etwas abwesend. Sorry. Ich 
halte mich raus.

von (prx) A. K. (prx)


Lesenswert?

Dietrich L. schrieb:
> Und wie taktest Du die Daten in das Schieberegister? Mit nur /einer/
> Leitung?

1. Monoflop an Leitung, Dauer 50% des Taktes. Mit dessen Ablauf wird das 
Schieberegister getaktet.

2. Monoflop an Leitung, Dauer 150% des Taktes, retriggerbar. Mit dessen 
Ablauf wird das Outputregister getaktet.

Daten PWM-moduliert, 25%/75%. Nach den Bits mindestens 1 Takt Pause 
lassen.

Aufwand: 1x Dual-Monoflop 4538, 1x Shift+Register 4094.
ALternativ: 1x 8-Pin µC.

: Bearbeitet durch User
von Jobst M. (jobstens-de)


Lesenswert?


von Sebastian W. (bc137)


Lesenswert?

Danke für die hilfreichen Antworten. Den Sender und Empfänger werde ich 
mir zum testen gleich bestellen.

Gruß
Sebastian

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.