1 Reply Latest reply on Sep 20, 2020 10:05 PM by BragadeeshV_41

    Cy_SCB_SPI_Transfer bug

    EdHa_4455331

      I think that I have pretty compelling evidence that Cy_SCB_SPI_Transfer() does not work correctly when oversampling is 4 and relatively long spi exchanges are requested.

       

      Basically, if I try one long exchange, Cy_SCB_SPI_Transfer() fails to complete correctly. If I chop up the long exchange into a sequence of smaller exchanges with each the length of each exchange being shorter than the Tx/Rx fifo (128 bytes), the system does not lock up.

       

      Of course, this creates other problems because the enable signal is cleared after each shorter block and the target device can't handle that. I worked around that by using another I/O pin as the enable and manually controlling it.

       

      Anyhow, if anyone has any ideas as to how to fix Cy_SCB_SPI_Transfer() I'd be glad to hear it. Otherwise, what is the proper/best way to bring this issue to the attention of the Cypress damage control team?

       

      Thanks,

       

      Ed H.