AnsweredAssumed Answered

Problem about SPI of MPC5744P

Question asked by nathan 米 on Nov 15, 2017
Latest reply on Nov 16, 2017 by nathan 米

I want to use the SPI module  of MPC5744P to communicate with another chip in the controller board.

The following are my config:

//PORT CONFIG

SIUL2.MSCR[PC6].B.SSS = 1; /* PC6: Source signal is DSPI_0 SOUT */
SIUL2.MSCR[PC6].B.OBE = 1;
SIUL2.MSCR[PC6].B.SRC = 3;

SIUL2.MSCR[PC5].B.SSS = 1; /* PC5: Source signal is DSPI_0 CLK */
SIUL2.MSCR[PC5].B.OBE = 1;
SIUL2.MSCR[PC5].B.SRC = 3;

SIUL2.MSCR[PC7].B.IBE = 1; /* PC7: Enable pad for input DSPI_0 SIN */
SIUL2.IMCR[41].B.SSS = 1;

SIUL2.MSCR[PB2].B.SSS = 2; /* PB2: Source signal is DSPI_0 CS4 */
SIUL2.MSCR[PB2].B.OBE = 1; /* PB2: OBE=1. */
SIUL2.MSCR[PB2].B.SRC = 3;

//SPI_0 INIT

SPI_0.MCR.R = 0x80010001; /* Configure DSPI_0 as master */
SPI_0.MODE.CTAR[0].R = 0x7E0A0010;/*0x7EAA0010;*/ /* Configure CTAR0 */
SPI_0.MCR.B.HALT = 0x0; /* Exit HALT mode: go from STOPPED to RUNNING state*/

//SEND 

SPI_0.PUSHR.PUSHR.R  = /*0x08013400;*/0x08013001;

 

When I use the oscilloscope to detect the SDO and SCK of the 5744, I detected the correct waveform,

But the output of the B[2] pin which is used as the SPI0 PCS4 is always low, which is not what I want.

Actually I want the SPI0 PCS4 to be low when the message is conveyed and to be high when the communication 

is not activated.

What should I do to get the correct output of SPI0 PCS4? Are there any mistakes in my config?

Or someone have any examples?

 

Thanks in advance.

Outcomes