请问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缓存器吗??
我有很多问题,很急,有其它的咨询联系方式吗?电话什么的?
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/LIN模块用于SCI功能时与SCI模块两种情况,有什么不同或有什么关系?
两种情况下的SCI功能是否支持FIFO??技术手册中专门有一节26.2.5 SCI Multi Buffered Mode,是说明当SCI/LIN用于SCI功能时具有8个缓存器吗??相当于8级FIFO吗?
而SCI模块没有提到该功能,是说明若使用SCI 模块就只有1个RX和1个TX缓存器吗??
我有很多问题,很急,有其它的咨询联系方式吗?电话什么的?
手册里标注的是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