mikrocontroller.net

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


Autor: Robert (Gast)
Datum:

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

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

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

Autor: Robert (Gast)
Datum:

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

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.