www.mikrocontroller.net

Forum: FPGA, VHDL & Co. 2Wire zwischen CMOS-Sensor,FPGA


Autor: FPGA-Noob (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

wie verbinde ich ein FPGA (Xilinx Spartan3E) mit dem
2Wire-Interface eines CMOS-Sensors. Am Sensor habe ich
SCL und SDA (SCL: IN, SDA: INOUT), 2.4V <= Vin_HIGH  <= 3.1V.
LVCMOS33 liefert da zu viel, LVCMOS25 zu wenig.

Gruss

Autor: Strubi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
I2C ist doch sowieso ein 'Open Drain' Bus, da solltest du insofern 
sowieso keinen definierten H-Spannungspegel anlegen. Du musst deinen 
Code nur so schreiben, dass der Pin entweder "Z" oder "0" generiert und 
auf die richtigen Pullups achten.

Gruss,

- Strubi

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Antwort hat Strubi schon gegeben, aber zum Hintergrund:
> LVCMOS33 liefert da zu viel, LVCMOS25 zu wenig.
Du kannst mit diesen Constraints die Spannung am Pin sowieso nicht 
einstellen. Der High-Pegel eines Ausgangs wird bei beiden IO-Standards 
von Vcco der entsprechenden Bank bestimmt. Genaueres dazu im 
Datenblatt...

Autor: FPGA-Noob (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Erstmal vielen Dank für die Antworten, insbesondere das Stichwort
I2C (hab noch nie damit gearbeitet). Ich habe inzwischen auch in
ein paar anderen Threads nach I2C nachgeschaut und werde mein Design
entsprechend anpassen.

Zu LVCMOS25/33: Mein DevBoard erlaubt leider nur 2.5V oder 3.3V
je Bank (VCCO).

Besten Dank

Autor: Vanilla (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo FPGA-Noob,

wenn dein CMOS Sensor lt. deinem Datenblatt nicht mehr als 3,1V max. 
vertraegt ( wo hast Du die Angabe her, Max. Ratings?).
Dann musst Du dafuer sorgen dass da nicht mehr anstehen.

Hast Du Pull-Ups auf dem CMOS Sensor Board?
Wenn nein musst Du fuer geeignete Pull-UPs sorgen.

Bei I2C (mal vom langsamen 100kHz Standard ausgehend) wird nur der 
Low-Pegel von den angeschlossenen Bausteinen getrieben, fuer den 
Highpegel sind die Pull-Ups verantwortlich.

Du kannst also unbesorgt zwei FPGA IOs von einer 3V3 Volt-Bank nehmen.

getrieben wird dann der Pin so, oder so aehnlich:

SCL <= '0' when scl_int = '0' else 'Z';

Gruss

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.