I am trying to interface a Winbond W25X20CL SPI flash chip to a TM4C123 MCU. I was excited to find that the Tiva Utility Library that apparently got installed with Code Composer Studio includes a SPI flash driver with an API that looks perfect for my application. I compiled it in and found that it attempts to utilize SSI features that the TM4C123 doesn't support (although the TM4C129 apparently does).
First I found that it attempts to utilize SSIAdvFrameHoldEnable() to hold the SPI slave/chip select active while it transfers multiple bytes. That function isn't supported on the TM4C123, so I changed the slave select to a GPIO and toggled it manually.
Then I found that the data received in a call to SPIFlashReadID() is delayed by 8 bits. I think that is because it attempts to use MAP_SSIAdvModeSet(ui32Base, SSI_ADV_MODE_WRITE) to prevent the first byte sent from also causing a byte to be received. That also isn't supported on the TM4C123.
I think I could go through the SPI flash source file and adapt it to work with the TM4C123, but I wanted to first check if someone else had already done so, or if there was a better option to use with the TM4C123. Switching to the TM4C129 is one option, but not an easy one for me at this point.
Thanks for any suggestions.
Steve