Forum: FPGA, VHDL & Co. I2C Slave Core ändern


von Andreas (Gast)


Angehängte Dateien:

Lesenswert?

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.

von Arndt B. (Firma: Helion GmbH) (bussmann)


Lesenswert?

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
Noch kein Account? Hier anmelden.