Hallo zusammen, ich habe auf der Suche nach einem I2C Slave Core für FPGA hier im Forum den Link http://www.fpga4fun.com/ExternalContributions/ mit anhängendem Core gefunden. Der Core funktioniert mit meinem ProASIC3E auch soweit. Allerdings will ich nicht nur 1 Byte sondern 18 Byte übertragen und der Slave soll auch sendefähig sein. Ich probiere jetzt schon eine ganze Weile rum aber da ich Neuling bin kriege ich es einfach nicht hin. Mein erstes Problem ist schon dass der FPGA nach dem übertragenen Datenbyte kein ACK Bit sendet und somit der Master keine weiteren Bytes sendet. Was muss ich am Code ändern dass er nach jedem übertragenen Byte das ACK sendet? Um das ganze zu testen habe ich einen USB-I2C Wandler mit dem ich bis zu 128 Byte übertragen kann und ein Oszi um die Leitungen zu beobachten.
Hallo Andreas, bei I2C liegt es oft nicht am HDL Code, sondern an der Art wie die IOs konfiguriert werden. Es müssen Opendrains mit Pullup (extern oder intern) sein. Auf gar keinen Fall darf der IO aktiv High treiben, weil sonst kein ACK generiert werden kann. Viele Grüße Arndt
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.