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


von FPGA-Noob (Gast)


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

von Strubi (Gast)


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

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


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...

von FPGA-Noob (Gast)


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

von Vanilla (Gast)


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

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.