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
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
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.
Er soll erst alles in C probieren um es dann ins VHDL zu packen? VHDL-I2C-Cores gibt es wie Sand am Meer. Die meisten sind allerdings so schrottig, dass man sich besser selbst etwas schreibt.
Max schrieb: > Der ICE40UP5K hat 2 interne Hardwaremodule, die zwei Dokumentationen auf > der Webseite von Lattice habe ich mir schon durchgelesen und bin total > überfordert. Du meinst FPGA-TN-02010-1-7-iCE40-I2C-and-SPI-Hardened-IP-Usage-Guide.pdf ? Hast du konkrete Fragen?
:
Bearbeitet durch User
> 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.
Max schrieb: > Hat jemand von euch eventuell ein Beispiel-Code mit dem man zumindest > mal 1 Byte senden und empfangen kann? Auf dem MachXo2 Pico Board ist ein Ref-Design für den EFB & I2C Bus als source drauf. Mit einem Tep.Sensor ... Gruss Holger.
Holger schrieb: > Ref-Design https://www.latticesemi.com/alpha-mxo2-pico-kit Runterscollen und unten sind alle Dokus & Ref dazu.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.