F
Frank Buss
I've written a I2C slave core:
http://www.frank-buss.de/vhdl/i2c_slave-0.1.zip
It should work with 100 kB and 400 kB master devices and it supports
sending and receiving multiple bytes and the repeated start condition.
Stretching clock cycles is not supported, the host which uses the core must
be fast enough.
Currently I've tested it in a simulator, only, maybe someone could test it
on real hardware, e.g. with the included testdevice and a hardware master,
like built-in in some microcontrollers.
I'm not sure about the communication concept: Currently it doesn't use
handshaking, but the slave entity signals, that a byte was received and
some cycles later releases this signal. I think it is easier to use, but
maybe a more standard interface like Wishbone would be better?
The licence is BSD and if you have bugfixes or other improvments, I'll add
it and publish it again. When it is mature, I'll plan to submit it to
opencores.org.
http://www.frank-buss.de/vhdl/i2c_slave-0.1.zip
It should work with 100 kB and 400 kB master devices and it supports
sending and receiving multiple bytes and the repeated start condition.
Stretching clock cycles is not supported, the host which uses the core must
be fast enough.
Currently I've tested it in a simulator, only, maybe someone could test it
on real hardware, e.g. with the included testdevice and a hardware master,
like built-in in some microcontrollers.
I'm not sure about the communication concept: Currently it doesn't use
handshaking, but the slave entity signals, that a byte was received and
some cycles later releases this signal. I think it is easier to use, but
maybe a more standard interface like Wishbone would be better?
The licence is BSD and if you have bugfixes or other improvments, I'll add
it and publish it again. When it is mature, I'll plan to submit it to
opencores.org.