05-04-2021 09:49 AM
I am using your xiic.c/.h files on a Spartan6 FPGA. Recently I was required to enable the repeated start option. This really impacts the CPU performance. The header file includes the following language. See bolded part. I need the repeated start option to work, but the performance impact is also something my application cannot tolerate either.
* An application can send multiple messages, as a master, to a slave device
* and re-acquire the IIC bus each time a message is sent. The repeated start
* option allows the application to send multiple messages without re-acquiring
* the IIC bus for each message. The transactions involving repeated start
* are also called combined transfers if there is Read and Write in the
* same transaction.
* The repeated start feature works with all the API's in XIic driver.
* The Repeated Start feature also could cause the application to lock up, or
* monopolize the IIC bus, should repeated start option be enabled and sequences
* of messages never end(periodic data collection).
* Also when repeated start is not disable before the last master message is
* sent or received, will leave the bus captive to the master, but unused.