Skip to main content
Matteo.Ferrara
Associate
January 21, 2020
Question

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

  • January 21, 2020
  • 3 replies
  • 1015 views

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

    This topic has been closed for replies.

    3 replies

    Erwan YVIN
    ST Employee
    February 14, 2020

    Hello Matteo ,

    I have submitted an ER.

    Could you me your installation details ?

    Best regards

    Erwan

    Matteo.Ferrara
    Associate
    February 14, 2020

    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
    ST Employee
    February 19, 2020

    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