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 SCI问题

Other Parts Discussed in Thread: TMS570LS3137, HALCOGEN

请问TMS570LS3137 的SCI/LIN模块用于SCI功能时与SCI模块两种情况,有什么不同或有什么关系?

两种情况下的SCI功能是否支持FIFO??技术手册中专门有一节26.2.5 SCI Multi Buffered Mode,是说明当SCI/LIN用于SCI功能时具有8个缓存器吗??相当于8级FIFO吗?

而SCI模块没有提到该功能,是说明若使用SCI 模块就只有1个RX和1个TX缓存器吗??

我有很多问题,很急,有其它的咨询联系方式吗?电话什么的?

  • Hi fan,

        问题多,我们可以一个一个来。

    首先你提到的这个Multi-buffer的SCI确实是有的,但是这种buffer有点特殊。它是芯片内部的针对于TX和RX都有4-bytes的缓存,但是这个缓存针对于我们的软件编程时看不到。通过我们的HALCOGEN也是配置不了的。

    所以简单点说,你就想平常一样开发我们的SCI,如果你要增加SCI的吞吐量,可以考虑使用我们的硬件DMA模块配合使用。

    谢谢

    ken

  • 手册里标注的是RD0~7,难道不是指有8byte缓存可以用于接收吗?怎么是4byte呢?

    SCIFORMAT寄存器中的LENGTH位指示可以选择0~8byte啊?

    即使使用DMA,手册注明也是做多支持8byte是产生DMA请求啊??

    我的需求是一个报文16byte。

  • Hi Fan,

        不好意思,我记成我们另外一款芯片关于缓存的大小了。给你造成误解,还请原谅。

    你上面提到的这个TX和RX都具有8个RD或TD缓存寄存器确实是我们SCI/LIN那个模块的特定功能。这也是它和我们另外一个单独的SCI模块不同的地方。

    针对于DMA对Multi-buffer的操作也确实是支持可编程的长度大小的触发请求。

    如果你要是支持一个16bytes的报文的话,我建议你是否还可以考虑用multi-SPI模块来进行通信,它的缓存空间远比SCI来的大,通信速率也会比SCI快很多,且支持parallel模式的并行数据传输。

    谢谢

    ken

      

  • 由于涉及到其它设备,所以暂时不考虑更改通讯模式。

    那关于DMA模块本身的具有的4级64位宽的FIFO对于我的需求业也没有帮助吧??SCI的DMA的buffer和DMA模块本身的FIFO在硬件是不同的吧?

    DMA模块的FIFO只支持DMA控制器的4个64bit的范围的操作吧?SCI的每达到8byte执行DMA请求后,会被新数据覆盖掉吧?

    所以我无论使用中断还是DMA模式,都不能实现16byte吧?

  • Hi Fan,

        因为SCI最大的缓存也只是8byte,所以说如果你需要实现16bytes的传输,只是说是最多分两次传输,两次之间可以考虑应用另个DMA通道,通道之间应用我们的channel-chain功能。换句话说两个DMA之间,前者传输完后自动触发后者的传输,期间不需要MCU的干预。当然,这其中还涉及到你是用我们的TMS570做SCI的发送还是接收端。如果只是做单纯的一方的话,你需要考虑另一方是否也有想对应的DMA功能的操作。不然的话接收到的数据,会发生覆盖的现象。

    谢谢

    ken

  • TMS570的SCI既需要发送数据,也需要接受数据。另一端是上位机软件。

    如果我使用你所说的2个DMA通道的话,流程能说的具体点吗?我对DMA模块还没有很熟悉。

  • Hi fan,

      你可以看下我们的DMA模块,里面有一种工作模式叫做channel-chain。

    简单点说,就是把几个DMA通道串联在一起,前一个DMA传输完,自动触发下一个DMA的传输。当整个链都完成传输后,触发DMA发送完成中断。每个DMA需要设置不同的终端或是源端地址。

    我上传了一个我们的实例程序,你可以参考一下:

    希望对你的理解有所帮助。

    谢谢

    ken

  • 以前询问的其它问题也是你帮忙解答的,非常感谢。

    我了解一下DMA,再有问题还得麻烦你。

    谢谢啦。