Xilinx IOs als open-collector

Gast #251775
Lesenswert?
• ▲
▼
Moin,

ich moechte eine IIC Kommunikation mit einem CMOS Kamera chip(QV7620)
herstellen, und dafuer benoetige ich eine bi-direktionalen
Datenleitung. In meinem Modul habe ich folgendes implementiert:
############
module I2C(Clock, Reset, SDA, SCL, ...);
...
inout SDA;
reg SDAreg;

assign SDA = SDAreg;
...
##########

Ich kann dann problemlos SDA lesen und schreiben.
Meine Frage: muss ich explizit vor Place&Route den SDA Input als
open-collector spezifizieren, und wie mache ich das? Ich nutze Spartan3
von Xilinx und ISE7.1.

Gruss,
H
Gast #251776
Lesenswert?
• ▲
▼
Hallo,
genau genommen müsste man sagen Open-Drain.
Nein, die Synthese erkennt aus der Beschreibung,
ob ein Open-Drain implementiert werden soll oder
ein Push-Pull Ausgang. Input-mäßig ist es eh immer
dasselbe: ein Input-Buffer der den Logik-Pegel vom
Pin einliest.

Hier mal 2 Beispiele VHDL(nur für die Output-Seite):

Datenbus bidirektional, push-pull:

my_databus <= data when rd_n = '0' else (others=>'Z');

I2C, Open-Drain am SDA:

sda <= '0' when sda_intern = '0' else 'Z'; -- keine '1' !
Gast #251777
Lesenswert?
• ▲
▼
Das genze ist eigentlich nur ein Trick.
Bei sda<='0' wird der push-pull-treiber so getrieben, dass eben LO
rauskommt - bei sda<='Z' wird der Aus-/Eingang nur auf Tristate
geschaltet - ist bei den AVRs eigentlich das Gleiche.

Übrigens muss man in der Entity dann

sda : inout std_logic;

verwenden.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.