www.mikrocontroller.net

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


Autor: Tim (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Uwe ... (uwegw)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Stanko T. (newie)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Tim (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Artur Funk (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

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]
  • [vhdl]VHDL-Code[/vhdl]
  • [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.