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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren