Receive sai multichannel data into multiple buffs using sdma

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

Receive sai multichannel data into multiple buffs using sdma

跳至解决方案
2,892 次查看
tongt
Contributor I

使用sdma接收sai多通道数据到多个buff中

Receive sai multichannel data into multiple buffs using sdma

在使用sai及sdma接收数据的时候,如果使用multififo等机制,接收到的数据会在一个buff中,能不能使用sdma的多通道功能,使接收到的数据按照通道分散到各执的buff中?

When using sai and sdma to receive data, if you use such as multififo, the received data will be in a buff, can you use the multi-channel function of sdma so that the received data is dispersed according to the channel in the buff of each execution?

_1-1715928528878.png

以上图为例子,第一组4字节为第一个通道,连续的第二组4字节为第二个通道,总共4个通道,实际使用的时候需要对某一个通道的数据进行拷贝,拷贝出一个完整通道的数据
The above figure as an example, the first group of 4 bytes for the first channel, the second consecutive group of 4 bytes for the second channel, a total of 4 channels, the actual use of the time you need to copy the data of a channel, copy out a complete channel data

我尝试使用如下代码,但是回调函数总是不能被调用

I tried to use the following code, but the callback function always fails to be called

_0-1715927543295.png

这种方案有没有问题,能不能实现,如果要实现需要关注哪些呢?

Are there any problems with this option, can it be achieved, and what needs to be focused on if it is to be achieved?

0 项奖励
回复
1 解答
2,717 次查看
Zhiming_Liu
NXP TechSupport
NXP TechSupport

在未对SDK大幅改动的情况下,不行,而且目前的sdma脚本只支持交错存储,不支持自定义的多个buffer地址。

在原帖中查看解决方案

0 项奖励
回复
7 回复数
2,801 次查看
Zhiming_Liu
NXP TechSupport
NXP TechSupport

Hi @tongt 

你的这个想法已经在SDK里集成了,但是用法不对。smda script里有针对SAI multi-fifo的脚本,详细参数请看手册的 A.3.2.8 mcu_2_sai 

Zhiming_Liu_0-1716268355591.png

Zhiming_Liu_1-1716268459452.png

SDK里的SAI_TransferSendSDMA  API也支持script里的这个功能,如果配置的通道数大于1,SAI_TransferSendSDMA 里会使用milti-fifo这个功能读取数据,然后返回第一个buffer,对于其余的buffer,是在这个buffer基础上+offset(默认是4U)。callback应该是一个就行,然后指定通道的时候用或逻辑试试。然后设置saiConfig里的channelNums和channelMask

Zhiming_Liu_2-1716269676812.png

Zhiming_Liu_3-1716270334737.png

 

0 项奖励
回复
2,725 次查看
tongt
Contributor I

@Zhiming_Liu 下午好

目前接收是使用了multi fifo的。offset的类型为uint8_t,也就是最大为255,如果需要buff的偏移更大,有没有办法呢(目前每次接收64K数据,包含4个通道,每4个字节交错),如果不使用offset,如之前说的,4个通道能不能对应到sdma的4个通道上,这4个sdma的通道对应4个不同的buff地址,能不能实现呢

0 项奖励
回复
2,718 次查看
Zhiming_Liu
NXP TechSupport
NXP TechSupport

在未对SDK大幅改动的情况下,不行,而且目前的sdma脚本只支持交错存储,不支持自定义的多个buffer地址。

0 项奖励
回复
2,714 次查看
tongt
Contributor I
谢谢
0 项奖励
回复
2,827 次查看
Zhiming_Liu
NXP TechSupport
NXP TechSupport

Hi @tongt 

你用的是哪颗芯片?

0 项奖励
回复
2,813 次查看
tongt
Contributor I
imx8mp
0 项奖励
回复
2,809 次查看
tongt
Contributor I

另外我还修改了 SAI_TransferRxCreateHandleSDMA以及

/*<! Private handle only used for internally. */
static sai_sdma_private_handle_t s_sdmaPrivateHandle[ARRAY_SIZE(s_saiBases)][16];

tongt_0-1716261721673.png

@Zhiming_Liu 感谢回复

0 项奖励
回复
%3CLINGO-SUB%20id%3D%22lingo-sub-1867768%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%E4%BD%BF%E7%94%A8%20sdma%20%E5%B0%86%20sai%20%E5%A4%9A%E9%80%9A%E9%81%93%E6%95%B0%E6%8D%AE%E6%8E%A5%E6%94%B6%E5%88%B0%E5%A4%9A%E4%B8%AA%20buff%20%E4%B8%AD%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1867768%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%BF%E7%94%A8sdma%E6%8E%A5%E6%94%B6sai%E5%A4%9A%E9%80%9A%E9%81%93%E6%95%B0%E6%8D%AE%E5%88%B0%E5%A4%9A%E4%B8%AAbuff%E4%B8%AD%3C%2FP%3E%3CP%3E%E4%BD%BF%E7%94%A8%20sdma%20%E5%B0%86%20sai%20%E5%A4%9A%E9%80%9A%E9%81%93%E6%95%B0%E6%8D%AE%E6%8E%A5%E6%94%B6%E5%88%B0%E5%A4%9A%E4%B8%AA%20buff%20%E4%B8%AD%3C%2FP%3E%3CP%3E%E5%9C%A8%E4%BD%BF%E7%94%A8sai%E5%8F%8Asdma%E6%8E%A5%E6%94%B6%E6%95%B0%E6%8D%AE%E7%9A%84%E6%97%B6%E5%80%99%EF%BC%8C%E5%A6%82%E6%9E%9C%E4%BD%BF%E7%94%A8multififo%E7%AD%89%E6%9C%BA%E5%88%B6%EF%BC%8C%E6%8E%A5%E6%94%B6%E5%88%B0%E7%9A%84%E6%95%B0%E6%8D%AE%E4%BC%9A%E5%9C%A8%E4%B8%80%E4%B8%AAbuff%E4%B8%AD%EF%BC%8C%E8%83%BD%E4%B8%8D%E8%83%BD%E4%BD%BF%E7%94%A8sdma%E7%9A%84%E5%A4%9A%E9%80%9A%E9%81%93%E5%8A%9F%E8%83%BD%EF%BC%8C%E4%BD%BF%E6%8E%A5%E6%94%B6%E5%88%B0%E7%9A%84%E6%95%B0%E6%8D%AE%E6%8C%89%E7%85%A7%E9%80%9A%E9%81%93%E5%88%86%E6%95%A3%E5%88%B0%E5%90%84%E6%89%A7%E7%9A%84buff%E4%B8%AD%EF%BC%9F%3C%2FP%3E%3CP%3E%E4%BD%BF%E7%94%A8sai%E5%92%8Csdma%E6%8E%A5%E6%94%B6%E6%95%B0%E6%8D%AE%E7%9A%84%E6%97%B6%E5%80%99%EF%BC%8C%E5%A6%82%E6%9E%9C%E4%BD%BF%E7%94%A8%E6%AF%94%E5%A6%82multififo%E7%9A%84%E8%AF%9D%EF%BC%8C%E6%8E%A5%E6%94%B6%E5%88%B0%E7%9A%84%E6%95%B0%E6%8D%AE%E9%83%BD%E4%BC%9A%E5%9C%A8%E4%B8%80%E4%B8%AAbuff%E9%87%8C%EF%BC%8C%E8%83%BD%E5%90%A6%E5%88%A9%E7%94%A8sdma%E7%9A%84%E5%A4%9A%E9%80%9A%E9%81%93%E5%8A%9F%E8%83%BD%EF%BC%8C%E8%AE%A9%E6%8E%A5%E6%94%B6%E5%88%B0%E7%9A%84%E6%95%B0%E6%8D%AE%E6%8C%89%E7%85%A7%E9%80%9A%E9%81%93%E5%88%86%E6%95%A3%E5%9C%A8%E6%AF%8F%E6%AC%A1%E6%89%A7%E8%A1%8C%E7%9A%84buff%E9%87%8C%E5%91%A2%EF%BC%9F%3C%2FP%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22_1-1715928528878.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22_1-1715928528878.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F279308i84F4FBCEC71C3D4D%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22_1-1715928528878.png%22%20alt%3D%22_1-1715928528878.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%E4%BB%A5%E4%B8%8A%E5%9B%BE%E4%B8%BA%E4%BE%8B%EF%BC%8C%E7%AC%AC%E4%B8%80%E7%BB%844%E5%AD%97%E8%8A%82%E4%B8%BA%E7%AC%AC%E4%B8%80%E4%B8%AA%E9%80%9A%E9%81%93%EF%BC%8C%E8%BF%9E%E7%BB%AD%E7%9A%84%E7%AC%AC%E4%BA%8C%E7%BB%844%E5%AD%97%E8%8A%82%E4%B8%BA%E7%AC%AC%E4%BA%8C%E4%B8%AA%E9%80%9A%E9%81%93%EF%BC%8C%E6%80%BB%E5%85%B14%E4%B8%AA%E9%80%9A%E9%81%93%EF%BC%8C%E5%AE%9E%E9%99%85%E4%BD%BF%E7%94%A8%E7%9A%84%E6%97%B6%E5%80%99%E9%9C%80%E8%A6%81%E5%AF%B9%E6%9F%90%E4%B8%80%E6%9D%A1%E9%80%9A%E9%81%93%E7%9A%84%E6%95%B0%E6%8D%AE%E8%BF%9B%E8%A1%8C%E5%A4%8D%E5%88%B6%EF%BC%8C%E5%A4%8D%E5%88%B6%E5%87%BA%E4%B8%80%E6%9D%A1%E5%AE%8C%E6%95%B4%E9%80%9A%E9%81%93%E7%9A%84%E6%95%B0%E6%8D%AE%3CBR%20%2F%3E%E4%BB%A5%E4%B8%8A%E5%9B%BE%E4%B8%BA%E4%BE%8B%EF%BC%8C%E7%AC%AC%E4%B8%80%E7%BB%844%E4%B8%AA%E5%AD%97%E8%8A%82%E4%B8%BA%E7%AC%AC%E4%B8%80%E4%B8%AA%E9%80%9A%E9%81%93%EF%BC%8C%E7%AC%AC%E4%BA%8C%E7%BB%84%E8%BF%9E%E7%BB%AD%E7%9A%844%E4%B8%AA%E5%AD%97%E8%8A%82%E4%B8%BA%E7%AC%AC%E4%BA%8C%E4%B8%AA%E9%80%9A%E9%81%93%EF%BC%8C%E4%B8%80%E5%85%B14%E4%B8%AA%E9%80%9A%E9%81%93%EF%BC%8C%E5%AE%9E%E9%99%85%E4%BD%BF%E7%94%A8%E7%9A%84%E6%97%B6%E5%80%99%E9%9C%80%E8%A6%81%E5%A4%8D%E5%88%B6%E4%B8%80%E4%B8%AA%E9%80%9A%E9%81%93%E7%9A%84%E6%95%B0%E6%8D%AE%EF%BC%8C%E5%A4%8D%E5%88%B6%E5%87%BA%E6%9D%A5%E4%B8%80%E4%B8%AA%E5%AE%8C%E6%95%B4%E7%9A%84%E9%80%9A%E9%81%93%E6%95%B0%E6%8D%AE%3C%2FP%3E%3CP%3E%E6%88%91%E5%B0%9D%E8%AF%95%E4%BD%BF%E7%94%A8%E5%A6%82%E4%B8%8B%E4%BB%A3%E7%A0%81%EF%BC%8C%E4%BD%86%E6%98%AF%E5%9B%9E%E8%B0%83%E5%87%BD%E6%95%B0%E6%80%BB%E6%98%AF%E4%B8%8D%E8%83%BD%E8%A2%AB%E8%B0%83%E7%94%A8%3C%2FP%3E%3CP%3E%E6%88%91%E5%B0%9D%E8%AF%95%E4%BD%BF%E7%94%A8%E4%B8%8B%E9%9D%A2%E7%9A%84%E4%BB%A3%E7%A0%81%EF%BC%8C%E4%BD%86%E5%9B%9E%E8%B0%83%E5%87%BD%E6%95%B0%E6%80%BB%E6%98%AF%E8%B0%83%E7%94%A8%E5%A4%B1%E8%B4%A5%3C%2FP%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22_0-1715927543295.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22_0-1715927543295.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F279303iE1455EC5A29B4937%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22_0-1715927543295.png%22%20alt%3D%22_0-1715927543295.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%E8%BF%99%E7%A7%8D%E6%96%B9%E6%A1%88%E6%9C%89%E6%B2%A1%E6%9C%89%E9%97%AE%E9%A2%98%EF%BC%8C%E8%83%BD%E4%B8%8D%E8%83%BD%E5%AE%9E%E7%8E%B0%EF%BC%8C%E5%A6%82%E6%9E%9C%E8%A6%81%E5%AE%9E%E7%8E%B0%E9%9C%80%E8%A6%81%E5%85%B3%E6%B3%A8%E5%93%AA%E4%BA%9B%E5%91%A2%EF%BC%9F%3C%2FP%3E%3CP%3E%E8%BF%99%E4%B8%AA%E9%80%89%E9%A1%B9%E5%AD%98%E5%9C%A8%E4%BB%80%E4%B9%88%E9%97%AE%E9%A2%98%EF%BC%8C%E8%83%BD%E4%B8%8D%E8%83%BD%E5%AE%9E%E7%8E%B0%EF%BC%8C%E5%A6%82%E6%9E%9C%E8%A6%81%E5%AE%9E%E7%8E%B0%E7%9A%84%E8%AF%9D%E9%9C%80%E8%A6%81%E6%B3%A8%E6%84%8F%E4%BB%80%E4%B9%88%EF%BC%9F%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-1867768%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CLINGO-LABEL%3Ei.MX%208%20%E7%B3%BB%E5%88%97%20%7C%20i.MX%208QuadMax%20(8QM)%20%7C%208QuadPlus%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1877883%22%20slang%3D%22zh-CN%22%20mode%3D%22CREATE%22%3ERe%3A%20Receive%20sai%20multichannel%20data%20into%20multiple%20buffs%20using%20sdma%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1877883%22%20slang%3D%22zh-CN%22%20mode%3D%22CREATE%22%3E%E8%B0%A2%E8%B0%A2%3C%2FLINGO-BODY%3E