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.

TMS570LS3137 in Slave mode

Other Parts Discussed in Thread: TMS570LS3137

Hi,


I am running TMS570LS3137 in standard slave mode. For sending data I am using DMA. Everything is fine up to 8 MHz above that it seems TMS can not send fast enough data.

Here is 6Mhz ClK/MISO from TMS

Data is 1,2,3,4,5..

.

Here is 10Mhz log Data suppose to be 1,2,3,4... But it is 1,1,0,..

There is CS on every transfer and i do not use ENABLE signal. It is standard 3 -wire connection.

Is there limitation in  TMS570for slave mode?If not what can be the reason TMS not to be  ready to send data?

Best Regards,

Stefan Nikolov

  • Stefan,

    Hard to tell from this alone.

    There is an upper limit on the slave clock frequency - would you please confirm that conditions 2 and 5 are met?

    The capture above is just from the footnotes on one of the slave mode timing tables in the datasheet so if you can't read it in the image capture you can find the same info in the datasheet.

    If your prescaler and your VCLK are configured to support the faster 10MHz operation (they may not be so this is why we would check this first), then I would suggest to change the slave setup for 4 pin (with Enable) next.   You can add the enable signal to your oscilloscope trace or replace the data trace w. enable.

    Enable shows you when the SPI has been serviced.  So even though your master may not be configured to use enable, if the problem is that the DMA is taking too long to service the SPI and the master is starting the next transfer too soon, you will see this by viewing the enable out of the slave.

    If that's the case you could consider adding more delay between transfers, or making use of the Mib unit as options.

  • I think that condition 2 and 5 are met. I have experimented with several value for PS without success now PS = 1;

    For some reason I can not run SPI ENABLE signal. All communication stops when i made this

        spiREG1->PC0  = (1 << 0)   /* SCS[0] */
                        | (0 << 1)   /* SCS[1] */
                        | (0 << 2)   /* SCS[2] */
                        | (0 << 3)   /* SCS[3] */
                        | (1 << 8)   /* ENA    */
                        | (1 << 9)   /* CLK    */
                        | (1 << 10)  /* SIMO   */
                        | (1 << 11); /* SOMI   */

    I setup interrupt for Data error flag. When SPI is set up as 6 MHz it do not trigger. When SPI is setup as 8MHz it is triggered. This means to me that TMS570LS3137 is not ready with data.

    The question: is it possible TMS570LS3137 to work with speed more than 6 MHz in slave mode without SPIENA signal?

    If is possible how can this be done? Is there someone made this?

    Regards,

    Stefan

  • Hi Stefan,

    Sorry.  Are you saying that slave mode stops working with SPIENA turned on?  I don't think this is right.   ENA is an OUTPUT of the slave and an input to the master. 
    So turning on ENA would only stop a master from working.