- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I have an SPI slave set up on a CY8C4125AZI-473 and I am seeing some very odd behavior in both the setup controls and the SPI is not sending or receiving data. The project bundle is attached. When configuring, the dialog defaults to the one internal interrupt unchangeable, and I do receive the interrupt, but never receive any data, nor send any data.
The scope plot show the transmission, from a CYBLE-212006-01, 16bytes, 0,0, active low CS. We have also tried active high, but no change.
Sending an array of A5 5A, which should be echoed back by hard code, I am not trying to hand data off, the transmit should be getting the same array, here is the call that loads the TX buffer:
SPIS_SpiUartPutArray(Readings,CONTROL_DATA_LEN);
We have scoped the MOSI, CLOCK and SS to the pins on the device and the signals are present.
There is also a second SPI in the design, which works, but generates an error during build, that must be handled, but it should not be there. It is a Master that talks to a dedicated peripheral, when configuring that SPI, the dialog allows no interrupts:
But when you do a build, these instructions are in the generated source code, and have to be commented out on each clean and build
Map,.\CortexM0\ARM_GCC_541\Debug/EPR0226_Power_Control.map -T Generated_Source\PSoC4\cm0gcc.ld -specs=nano.specs -Wl,--gc-sections -g -ffunction-sections -O0 -ffat-lto-objects -Wl,--end-group
.\CortexM0\ARM_GCC_541\Debug\EPR0226_Power_Control.a(SPI_TLE_SPI_UART.o): In function `SPI_TLE_SpiUartClearRxBuffer':
C:\Users\Administrator\Documents\PSoC Creator\smartrvpanel\EPR0226_Power_Control.cydsn/Generated_Source\PSoC4/SPI_TLE_SPI_UART.c:205: undefined reference to `SPI_TLE_DisableInt'
C:\Users\Administrator\Documents\PSoC Creator\smartrvpanel\EPR0226_Power_Control.cydsn/Generated_Source\PSoC4/SPI_TLE_SPI_UART.c:224: undefined reference to `SPI_TLE_EnableInt'
.\CortexM0\ARM_GCC_541\Debug\EPR0226_Power_Control.a(SPI_TLE_SPI_UART.o): In function `SPI_TLE_SpiUartClearTxBuffer':
C:\Users\Administrator\Documents\PSoC Creator\smartrvpanel\EPR0226_Power_Control.cydsn/Generated_Source\PSoC4/SPI_TLE_SPI_UART.c:422: undefined reference to `SPI_TLE_DisableInt'
C:\Users\Administrator\Documents\PSoC Creator\smartrvpanel\EPR0226_Power_Control.cydsn/Generated_Source\PSoC4/SPI_TLE_SPI_UART.c:432: undefined reference to `SPI_TLE_EnableInt'
Solved! Go to Solution.
- Labels:
-
PSoC 4 Architecture
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks for the reply, I went checking and found that the first transaction stopped after 8 bytes, my SW implementation is not allowing my 16 byte buffer. I reduced the package to 8 bytes, and now get successful communications. Which device can I upgrade into to get a full 16 byte buffer?
H