Gibt es irgendwo einen Treiber für ein I2C-EEPROM wie z.B. das 24AA64 in VHDL? http://ww1.microchip.com/downloads/en/devicedoc/21189f.pdf Ich suche nach eine Minimallösung für das Kopieren des EEPROMs ins interne RAM beim StartUp.
hier: https://www.digikey.com/eewiki/pages/viewpage.action?pageId=10125324 gibt es einen (nachweislich funktionierenden) i2c Master. Der sollte das können.
Markus F. schrieb: > i2c Master. Der sollte das > können. Das ist aber noch nicht alles. Der I2C-Master ist nur der Low-level-Teil. Man braucht noch einen Controller, der die Kopieroperation steuert und der zum restlichen Bussystem passt. Ob es das fertig irgendwo gibt, ist fraglich, dürfte aber andererseits kein Hexenwerk sein.
>Man braucht noch einen Controller,
Ich glaube, ihr denkt zu umständlich. Die Timing Digramme des EEPROMs
sind so einfach, dass man das ganze wahrscheinlich in 30-40 Luts bekommt
( Protokoll + Ram Access )
Wenn du das EEPROM immer nur komplett lesen und niemals schreiben willst, kannst du den sequential read mode verwenden. Ja, dann wirds sehr einfach. Wieviele LUTs man dafür braucht, hängt von der Implementierung und vom FPGA ab.
Markus schrieb: > Ich glaube, ihr denkt zu umständlich Eher pragmatisch, eine Soft CPU spart dir eine Menge Zeit und die Wiederverwertbarkeit ist höher, insbes. wenn die Projekte komplex werden.
Andi schrieb: > eine Soft CPU spart dir eine Menge Zeit Naja, es kann aber auch erstmal ein Menge Zeit kosten, so eine Soft-CPU richtig zum fliegen zu bekommen... Duke
... und ? wie ist es gelaufen ? noch eine möglichkeit ist ein Flash Chip, aber via SPI. Ja, ich weiß weder I2C noch EEPROM... aber fertiger Quelltext gibt es z.B. hier: https://github.com/gtjennings1/HyperBUS/blob/master/riscv32/hardware/spimemio.v in verilog :)
Mit Controller meinte ich keine CPU, sondern eine Statemachine mit dem notwenigen Zeugs drumherum. Das sollte in 3-4 Tagen entwickelt sein für diesen Anwendungsfall.
Hallo Markus, Markus schrieb: > Gibt es irgendwo einen Treiber für ein I2C-EEPROM wie z.B. das 24AA64 in > VHDL? Geht es ausschließlich um das kopieren EEPROM->RAM? Wenn ja folgenden Vorschlag: 1) I2C Master von OpenCores ziehen (https://opencores.org/projects/i2c) 2) Wegschmeißen des Wishbone Registersatzes, und dann hängst du dich mit deiner FSM daran. 3) FSM implementiert Befehlssatz zum Auslesen des EEPROMs 4a) Spezialfälle mit ACK/NCK berücksichtigen, damit sich die FSM nicht verhängt, und schon kannst du das ganze kopieren. Ich hatte mal ein System geschrieben, das den EEPROM in ein paralleles IF im FPGA umwandeltet. Viele Grüße, Andreas
>Wenn ja folgenden Vorschlag: Danke für den Vorschlag. Mir geht es darum, möglichst wenig Resourcen des FPGAs zu verbrauchen, deshalb denke ich, dass man so was eher "from Scratch" machen muss, sonst kommt man nicht auf die optimale Lösung.
>Ich suche nach eine Minimallösung für das Kopieren des EEPROMs >ins interne RAM beim StartUp. nicht in VHDL, sondern mit Mikrocontroller: https://www.mikrocontroller.net/articles/Low_Cost_FPGA_Konfiguration
Vancouver schrieb: > Mit Controller meinte ich keine CPU, sondern eine Statemachine mit dem > notwenigen Zeugs drumherum. Das sollte in 3-4 Tagen entwickelt sein für > diesen Anwendungsfall. Braucht nur eine FSM, die eine ADR lädt, eine Schleife, R,W und eventuell Sprünge kann. Sowas gibt es aber auch in den meisten Abteilungen schon, weil alle die gleichen Probleme haben.
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.