ICE40UP5K I2C Hardend VHDL, Überforderung

Gast #6833055
Lesenswert?
• ▲
▼
Hallo,

ich bin noch recht neu in der Welt von VHDL.
Ich versuche aktuell ein I2C zum Laufen zu bringen, der mir einen 
Temperatursensor TMP421 ausliest.

Der ICE40UP5K hat 2 interne Hardwaremodule, die zwei Dokumentationen auf 
der Webseite von Lattice habe ich mir schon durchgelesen und bin total 
überfordert.

Hat jemand von euch eventuell ein Beispiel-Code mit dem man zumindest 
mal 1 Byte senden und empfangen kann?

Viele Grüße
Max
Gast #6833536
Lesenswert?
• ▲
▼
Max schrieb:
> Hat jemand von euch eventuell ein Beispiel-Code mit dem man zumindest
> mal 1 Byte senden und empfangen kann?

Da sollte sich mit Google was finden lassen. Ich würde erstmal nach 
Beispielen schauen, die nicht speziell auf die Hard-IP des ICE40UP5K 
zugeschnitten sind...

Duke
Gast #6833897
Lesenswert?
• ▲
▼
Soweit ich mir erinnerer verwenden die I²C und SPI Hardmacros eine 
vereinfachte Variante des Wishbone Bus als "System Bus". Das direkt in 
Hardware richtig auf die Reihe zu bekommen ist aufwendig (HDL schreiben, 
synthetisieren, aufspielen, testen und von vorne...).

An deiner Stelle würde ich erstmal einen Softcore mit Wishbone-Interface 
in das FPGA packen und den I²C Block da dranhängen. Dann braucht man 
sich nicht mehr um das Protokoll kümmern und kann über z.B. JTAG oder 
UART "einfach mal so" kompilierten C-Code draufladen und damit dann das 
eigentliche Interface vom Modul (I²C Register schreiben/konfigurieren) 
testen.

Wenn das dann läuft und man die Ansteuerung aus "C hinaus" geschafft 
hat, kann man sich Gedanken machen wie man das z.B. als Statemachine in 
reiner Hardware machen könnte.
Gast #6834189
Lesenswert?
• ▲
▼
> Er soll erst alles in C probieren um es dann ins VHDL zu packen?

So würde ich es machen denke ich.

> VHDL-I2C-Cores gibt es wie Sand am Meer. Die meisten sind allerdings so
> schrottig, dass man sich besser selbst etwas schreibt.

Richtig. Ein I²C-Master ist jetzt auch nicht wirklich groß, aber wenn es 
wirklich um Platz geht, dann ist so ein Hardmacro schon praktisch.

Übrigens, "FPGA-TN-02011-1.6 - Advanced iCE40 I2C and SPI Hardened IP 
Usage Guide" erklärt die einzelnen Kontrollregister und Bits.

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.