Forum: FPGA, VHDL & Co. I2C core von open cores nutzen?


von Robert (Gast)


Lesenswert?

Hallo,

ich versuche gerade die VHDL Version des I2C cores von opencores zu 
nutzen (http://www.opencores.org/projects.cgi/web/i2c/overview).

Um zu sehen ob das ganze funktioniert möchte ich eine vhdl Datei 
erstellen, in welche der core eingebunden wird und der von einem ds1621 
die Temperatur liest und auf LEDs ausgibt.

In der Dokumentation des cores sind hinten Programmierbeispiele drin, in 
denen steht was man machen muss um z.B. 1 Byte an einen slave zu senden.

Ein Teil davon lautet z.B. write 0xA2 (address + write bit) to transmit 
register.

Meine Fragen ist aber nun wie genau mache ich das, was muss ich an das 
wishboneinterface übergeben damit genau dieser Schritt geschieht?

Mein Vorschlag wäre:

s_wb_adr_i  <= '011'; -- transmit register wählen indem ich es an die 
adressschnittstelle anlege

s_wb_dat_i  <= x"A2"; -- die Daten hex A2 an die Datenschnittstelle 
anlegen
-- bis hier hin denke ich bin ich auf dem richtigen weg, was aber nun 
tun mit dem write enable, strobe und dem valid cycle signal?
s_wb_we_i  <= '1'; -- ich setze alles eins weil nur dann der Befehl 
ausgeführt wird
s_wb_stb_i  <= '1';
s_wb_cyc_i  <= '1';
s_wb_we_i  <= '0'; --  ich habe keine Ahnung ob es notwendig ist diese 
Signale wieder auf null zu setzen oder ob ich die auf eins lassen kann 
und für das nächste Byte einfach nur die adresse und die daten ändern 
muss.
s_wb_stb_i  <= '0';
s_wb_cyc_i  <= '0';

wäre schön wenn mir jemand helfen könnte, denn wenn ich diesen 
speziellen Schritt hinbekomme dann kann ich die gesamte notwendige 
sequenz aufbauen, als state machine oder so.

Danke

Robert

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Schau dir mal die Dokumentation zum Wishbone Bus an, ist da eigentlich 
ganz verständlich erklärt:
http://www.opencores.org/projects.cgi/web/wishbone/wbspec_b3.pdf

von Robert (Gast)


Lesenswert?

Hallo Andreas,

Danke für Deine Antwort. Ich hatte dummerweise nur grob in der Doku 
geschaut und anscheinend Kapitel 3 übersehen. Ich denke jetzt müsste ich 
es hinbekommen :)

Robert

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.