F429的PCM格式调试遇到的问题*(数据混乱)

2019-07-20 18:58发布

      我在用F429进行一个1拖4数字mic的项目,基本流程4个mic采集现场的声音,arm选择音量最大的一组做处理然后通过usb传输到电脑上。现在发现录得声音全是乱的。所以用逻辑分析仪抓了一组数据。参考附件

      我的SAIA发送帧时钟和位时钟,模式为主,位长时16bit,16K采样。SAIB接收mic数据,位长时16bit,16K采样。其他的配置只是把framelenth和slot的长度做了变化,帧同步有效按照手册改成了1位。其他的没变。现在看逻辑分析仪的波形看不出来什么问题,想问下论坛的朋友对这个现象有什么建议。之前用pcm格式进行放音没有问题,所以觉得其实这里的问题应该也不大但是目前没有思路。
      下面是SAIB的初始化代码,我把我修改的标注出来:
void SAIB_Init(u32 mode,u32 cpol,u32 datalen)
{
    HAL_SAI_DeInit(&SAI1B_Handler);                       
    SAI1B_Handler.Instance=SAI1_Block_B;                  
    SAI1B_Handler.Init.AudioMode=mode;                     
    SAI1B_Handler.Init.Synchro=SAI_SYNCHRONOUS;            
    SAI1B_Handler.Init.OutputDrive=SAI_OUTPUTDRIVE_ENABLE;  
    SAI1B_Handler.Init.NoDivider=SAI_MASTERDIVIDER_ENABLE;
    SAI1B_Handler.Init.FIFOThreshold=SAI_FIFOTHRESHOLD_1QF;
    SAI1B_Handler.Init.ClockSource=SAI_CLKSOURCE_PLLI2S;   
    SAI1B_Handler.Init.MonoStereoMode=SAI_STEREOMODE;      
    SAI1B_Handler.Init.Protocol=SAI_FREE_PROTOCOL;         
    SAI1B_Handler.Init.DataSize=datalen;                    
    SAI1B_Handler.Init.FirstBit=SAI_FIRSTBIT_MSB;         
    SAI1B_Handler.Init.ClockStrobing=cpol;                 

    //è
    SAI1B_Handler.FrameInit.FrameLength=64;                
    SAI1B_Handler.FrameInit.ActiveFrameLength=1;      
    SAI1B_Handler.FrameInit.FSDefinition=SAI_FS_CHANNEL_IDENTIFICATION;
    SAI1B_Handler.FrameInit.FSPolarity=SAI_FS_ACTIVE_LOW;
    SAI1B_Handler.FrameInit.FSOffset=SAI_FS_BEFOREFIRSTBIT;

    //SLOTè
    SAI1B_Handler.SlotInit.FirstBitOffset=0;              
    SAI1B_Handler.SlotInit.SlotSize=SAI_SLOTSIZE_16B;    
    SAI1B_Handler.SlotInit.SlotNumber=4;                 
    SAI1B_Handler.SlotInit.SlotActive=SAI_SLOTACTIVE_0|SAI_SLOTACTIVE_1|SAI_SLOTACTIVE_2|SAI_SLOTACTIVE_3;

    HAL_SAI_Init(&SAI1B_Handler);
    SAIB_DMA_Enable();                                   
    __HAL_SAI_ENABLE(&SAI1B_Handler);                     
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
czdspeed
1楼-- · 2019-07-21 10:27
 精彩回答 2  元偷偷看……
czdspeed
2楼-- · 2019-07-21 13:47
Seektruth 发表于 2016-11-7 15:39
为什么我的图采集出来的是这样的,慢了半个bck。

我就是初始化代码改了一点其他都好像没怎么动。
Seektruth
3楼-- · 2019-07-21 15:54
我是用高速示波器观察的,波形采出来和datasheet的图一样,你那张图是那个地方的。
czdspeed
4楼-- · 2019-07-21 20:17
 精彩回答 2  元偷偷看……

一周热门 更多>