This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Part Number: IWR1443
I am trying to implement a SPI slave to read the object data out of the MMWave demo on the IWR1443BOOST to control it from an MSP430.
I am able to start the radar unit but when I try to read more than 16 bytes of data (set with the define on line 18). I get a Data Abort exception as shown.
Does the SPI driver not support sending more than 16 bytes at a time? If it does, what is missing from my configuration that is causing this to occur.
All of the memcpy and the buffer sizes are based off the SPI_DATA_OBJ_SIZE define so it should not be running out of space anywhere.
The overhead of having to task switch and call the SPI_transfer function repeatedly will not be able to give me the data rates I need to talk to multiple IWR1443s on a single SPI bus.
I have also seen an Invalid_operation exception show up once instead of the Data Abort exception.
We are glad that we were able to resolve this issue, and will now proceed to close this thread.
If you have further questions related to this thread, you may click "Ask a related question" below. The newly created question will be automatically linked to this question.
In reply to JohnH:
Thanks for the pointer to the examples.
I have gotten past the exception being thrown. It was due to the the receive buffer being too small.
However, I am now running into other issues when increasing the length beyond 16. The transaction.status is returning with SPI_TRANSFER_INVAL. I have tried to step into the transfer function to see when this is being set but the lines that are being stopped on do not line up with the code that is actually executing in the mibspi_dma.c file. This is shown in the attached screenshot where the first line that is halted is a comment line.
Is there a way to load the correct debug information for this so I can determine what line is sending it to the exit?
In reply to Kevin Lannen:
I have removed the -O3 flag from that file and successfully rebuilt the SPI driver. I can tell that the optimizations have been removed since the size of the libspi_xwr14xx.aer4f file went from 186 kB to 216 kB.
However, when I go to step through the code, the first line that it stops on inside the mibspi_dma.c file is line 2181 which is a commented line 6 lines above the MIBSPI_transfer function. Continuing to step breaks on very few lines that actually contain code, and what is changing in the registers is not consistent with what those code lines do.
Here are the line numbers that are stopped on:
2410 (this line is inside a block that is #ifdefed out)
(function returns here)
What else am I missing to be able to step through this code?
Which mmWave SDK version are you using? When I look at C:\ti\mmwave_sdk_01_02_00_05\packages\ti\drivers\spi\src\mibspi_dma.c I see the following which shows the MIBSPI_transfer() function with its opening brace starting on line 2181 (which would appear to match what you see when debugging).
I am using the same one as you. My file in C:\ti\mmwave_sdk_01_02_00_05\packages\ti\drivers\spi\src is attached.
Is it possible you have a different version of that file somewhere that CCS is using during debug? When you hover the mouse over the filename do you see the correct path as shown in the following picture?
This is what I am seeing on the first step into that file.
All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.
TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs andembedded processors, along with software, tools and the industry’s largest sales/support staff.