cancel
Showing results for 
Search instead for 
Did you mean: 

Problems to comunication SPI between two SPC56EL70L5, maybe it's due of the LATEST UPDATES.

Matteo.Ferrara
Associate II

Hi,

I have implemented a master slave communication between two uC SPC56EL70L5 but it only works for a short time.

In particular, each microcontroller can be both slave and master, it is in master mode when it must send data and in slave mode when it must receive them.

The problem is that the system works correctly, in terms of data validity, only when I make the "Enable Synchronous Functions" setting and precisely the system works correctly in this case only for a limited number of time. Without that setting communication does not work.

I noticed that as time passes tcsc and tasc increases the number of times I am able to make this two-way communication but it still ends up stopping.

I have tried several possible configurations but I can not solve the problem.

Also I want to point out that after compiling the SPIConfig structure in spi_lld_cfg.c is filled with a non-existent argument "SPI_MASTER".

I NEED TO FIND A SOLUTION AS SOON AS POSSIBLE.

Thanks

Matteo Ferrara

3 REPLIES 3
Erwan YVIN
ST Employee

Hello Matteo ,

I have submitted an ER.

Could you me your installation details ?

Best regards

Erwan

Matteo.Ferrara
Associate II

The version of SPC5 Studio is the 5.8.1, the version of the package dedicated to the uC that i am using (SPC5-RLA_SPC56ELxx_SupportFeature) is 1.11.0.20191127143658

Matteo

zambrano.luigi
Senior III

Hi Matteo,

the configuration of a DSPI mode as master or slave is done at the beginning, based on the configuration specified through the graphic interface and loaded using the function spi_lld_start. In the communication between a master and a slave, the master decides when to send new data to the slave and when receives new data from a slave. Normally, the mode of a specific DSPI doesn't change between master and slave during the application execution. In any case, if you want to change the mode during the application execution, you have to define 2 different configurations (one in which DSPI A is master and DSPI B is slave, and another in which DSPI A is slave and DSPI B is master) and load the right configuration (using the API spi_lld_start) each time you want to switch the mode. Moreover, please, remember that each time you execute a spi_lld_start, you have to execute an spi_lld_stop before to run a new spi_lld_start.

Best regards,

Luigi