However I'm using FX3 controller for USB3.0 functionality at connected FPGA using 32-bit sync-slave fifo implementation, I need to read/write 1-wire EEPROM chip which is connected with one of GPIO pin of FX3. Idea is like user can read or write some info from/into 1-wire EEPROM using vendor commands.
I've implemented 1-wire communication protocol on GPIO to read/write EEPROM, but it is not consistent result, out of 10 times wire 16 bytes data into EEPROM and read back same data, 5 times it gets failed. I have used following APIs for making GPIO input/out and for timing purpose:
 CyU3PGpioSetSimpleConfig() for pin direction, input or output.
 CyU3PGpioSetValue() to transmit 0 or 1 when pin is in output
 CyU3PGpioGetValue() to read pin state when it is used in input to read data & ack from EEPROM.
 CyU3PBusyWait() to emulate timing need as per protocol.
However, I have doubt that there might be due to timing criteria related issue, sometime EEPROM doesn't respond properly. And these issue might be because of I'm using these library calls which itself can give some overhead.
So my question is that is there any way to resolve/implemente this protocol using very low level programming along with my original firmware for slave-fifo ? Can I mix threadex RTOS based slave-sync fifo implementation and any low level GPIO toggle and timing need ?
I hope that any help will make me move ahead.
- Can you please provide the datasheet of the EEPROM.
- How do you achieve synchronization between FX3 and EEPROM?