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.

TMS570LS0432: SPI 2 as master and SPI3 as slave in Hercules LS0432 launchpad

Part Number: TMS570LS0432

Hi,

I am using SPI 2 & SPI 3 peripherals of TMS570LS0432 as master and slave respectively as shown in attached document from old TI forum. If I use each peripheral separately by configuring as master and short SOMI and SIMO of peripheral, I can read the data I have transmitted.  If i connect SPI2 with SPI3 as shown in the attached document, i am always reading 0xFFFF.  I do get the number of interrupts as expected, But data is 0xFFFF. 

Thanks & best regards,

sreekanth challa

/** @file example_SPI_Master_Slave.c
*   @brief Application main file
*   @date 25.July.2013
*   @version 03.06.00
*
*   This file contains an example of SPI1 and SPI2 Master / Slave configurations.
*
*   PIN Connections must be as Below
*     ---------------         ---------------
*     SPI1 ( Master )          SPI2 ( SLave)
*     ---------------         ---------------
*     SIM0             --->    SIMO
*     S0MI             <---    SOMI
*     CLK              --->    CLK
*     CS0              --->    CS0
*
*  ------------------
*  GUI configurations
*  ------------------
*  1) Driver TAB
*       - Select SPI2
*       - Select SPI1
*  2) VIm Channel 0-31
*       - Enable SPI2 Level 0 and Level 1 channels.
*  3) SPI2 TAB
*       - SPI2 Global SubTAB
*       	- Uncheck Master Mode
*       	- Uncheck Internal Clock
*       - SPI2 Port SubTAB
*       	- Uncheck DIR for CS 0
*  3) SPI1 TAB
*       - Have it default
*  4) Generate Code.
*
*/

/* (c) Texas Instruments 2009-2013, All rights reserved. */

/* USER CODE BEGIN (0) */
/* USER CODE END */

/* Include Files */

#include "sys_common.h"
#include "system.h"

/* USER CODE BEGIN (1) */
#include "spi.h"
/* USER CODE END */

/** @fn void main(void)
*   @brief Application main function
*   @note This function is empty by default.
*
*   This function is called after startup.
*   The user can use this function to implement the application.
*/

/* USER CODE BEGIN (2) */
uint16 TX_Data_Master[16] = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10 };
uint16 TX_Data_Slave[16]  = { 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20 };
uint16 RX_Data_Master[16] = { 0 };
uint16 RX_Data_Slave[16]  = { 0 };
/* USER CODE END */

void main(void)
{
/* USER CODE BEGIN (3) */

	spiDAT1_t dataconfig1_t;

	dataconfig1_t.CS_HOLD = FALSE;
	dataconfig1_t.WDEL    = TRUE;
	dataconfig1_t.DFSEL   = SPI_FMT_0;
	dataconfig1_t.CSNR    = 0xFE;


	/* Enable CPU Interrupt through CPSR */
	_enable_IRQ();

	/* Initialize SPI Module Based on GUI configuration
	 * SPI1 - Master ( SIMO, SOMI, CLK, CS0 )
	 * SPI2 - Slave  ( SIMO, SOMI, CLK, CS0 )
	 * */
	spiInit();

	/* Initiate SPI2 Transmit and Receive through Interrupt Mode */
	spiSendAndGetData(spiREG2, &dataconfig1_t, 16, TX_Data_Slave, RX_Data_Slave);

	/* Initiate SPI1 Transmit and Receive through Polling Mode*/
	spiTransmitAndReceiveData(spiREG1, &dataconfig1_t, 16, TX_Data_Master, RX_Data_Master);

	while(1);
/* USER CODE END */
}

/* USER CODE BEGIN (4) */
/* USER CODE END */