Forum: FPGA, VHDL & Co. Signal soll weder 0 noch 1 sein (VHDL)


von Tim (Gast)


Lesenswert?

Guten Abend,

ich hab folgendes Problem in meinem VHDL-code:

Hab mir einen Generator gebaut, welcher eine Sequenz von Bits aussendet.

Die Bitsequenz hat folgende Form:

1Startbit  Wartezeit(1 Takt)  24Datenbits  Wartezeit(1 Takt)  1Stopbit


Das Problem sind die beiden Wartetakte. In denen soll nämlich weder 0 
noch 1 anliegen. Zumindest nichts, was den Empfänger beeinflusst.

Wie kann man das realisieren?

Vielen Dank schonmal....
Grüße, Tim

von Uwe .. (uwegw)


Lesenswert?

Wenn es  weder Null noch Eins sein soll, musst du nen Datentyp 
verwenden, der mehr als zwei Zustände kennt. Allerdings stellt sich mir 
die Frage, ob das hier wirklich sinnvoll, nötig und synthesefähig 
wäre...

von New I. (newie)


Lesenswert?

Hallo Tim,

an deiner Stelle würde ich eine Startsequenz mit der halben Bitbreite 
erstellen.

z.B.  "101" und Danach das Datenwort.

Für den Empfang baust du dir eine State-Machine zum Erkennen der 
Startsequenz (101 Übergang) und Eintakten der Daten.


Gruss
Stanko

von Tim (Gast)


Lesenswert?

Hi Stanko,

schwierig, da der Empfänger eine I2C Chipkarte ist und diese genormt 
ist, wie die Daten ankommen sollen.

Diese verlangt (laut Datenblatt) Wartetakte zwischen Start- Daten- und 
Stopbit.

Jedoch steht da nichts konkretes über das Signal, wie dies aussehen 
soll, wenn gewartet wird.

Da nehme ich an, dass es nicht definiert sein sollte ... also X, - oder 
U

Aber was macht diese Signalzusweisung genau bei der Karte?

Grüße,Tim

von Christian R. (supachris)


Lesenswert?

Das ist doch Unsinn. Außerhalb des FPGA existieren nicht so viele 
logische Zustände wie VHDL erlaubt. Gib mal das Datenblatt der Karte. 
Bei I2C ist der Ruhepegel durch PullUps eh immer definiert, was bei VHDL 
dann mit einem 'Z' ausgegeben werden müsste.

von Artur Funk (Gast)


Lesenswert?

>schwierig, da der Empfänger eine I2C Chipkarte ist und diese genormt
>ist, wie die Daten ankommen sollen.

Die Norm. Genau, deshalb gibt es auch i2c-start und i2c-stop. Die 
Ruhezustände sind, die Zustände, bei denen nach einem i2c-stop beide 
Leitungen (SDA und SCL) auf high bleiben. Das kannst du wie der 
Vorredner schon sagte, mit einem hochohmigen Eingang realisieren.

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.