0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

系统压力测试出现问题的原因和解决方法

恩智浦MCU加油站 来源:恩智浦MCU加油站 作者:恩智浦MCU加油站 2025-05-24 14:52 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

系统压力测试发现的问题通常都比较复杂,作者最近解决了一个有意思的系统稳定性问题,也想请各位读者一起思考下,想想问题的原因是什么。

i.MXRT600/i.MXRT500/i.MXRT700 广泛用AI眼镜的应用中. 其中i.MXRT600,因为其优秀的音频处理能力,在系统中,通常作为音频协处理器使用。

i.MXRT600微控制器包括两个内核ARM Cortex M33 以及 Cadence Xtensa HiFi4 AudioDSP, 4.5MB 片上SRAM. 以及两个DMA 控制器及I2S/PDM 等音频接口

该系统大致框图如下所示:

2a12a9c0-20a6-11f0-9310-92fbcf53809c.png

系统包括应用处理器, i.MXRT600, 音频CODEC,以及麦克风。应用处理器作为I2S 主机通过I2S输送下行音频到RT600,DMA1用于搬移音频数据,HiFi4 DSP运行降噪,去回声等算法处理上下行音频。音频Codec和扬声器用于音频下行数据的播放,麦克风用于音频上行数据的采集。CM33和DMA0处理非音频的应用,CM33和HIFI4使用中断和共享内存通信

系统在压力测试时,数小时后会出现下行音频停止的情况。

下行音频的路径如下图所示,I2S外设0(I2S0)配置为I2S SLAVE接收, 下行数据会存储到I2S0的FIFO中。DMA1从FC0的FIFO 搬移音频到SRAM_0,HIFI4处理在SRAM_0的数据输入并将处理结果放在SRAM_1。最后,DMA1搬移SRAM_1中的数据到I2S外设1(I2S1) FIFO, I2S1被配置为I2S MASTER 发送模式。

2a33b598-20a6-11f0-9310-92fbcf53809c.png

通过在DMA中断回调函数中翻转IO调试显示,当下行音频停止的时候,DMA1搬运I2S0数据到SRAM_0的中断不能在进入了。这个问题的范围也就缩小到DMA1从I2S0的FIFO拷贝数据到SRAM_0的过程。

当问题出现时,停下HiFi4内核,使用调试器观察DMA1 和 I2S0的寄存器。DMA1控制器的DMA状态寄存器和DMA通道状态寄存器都是正确的。DMA1通道寄存器显示传输正在进行。而I2S1 状态寄存器显示了2个异常情况。

1. I2S0 状态寄存器(STAT)显示SLVFRAMEERR, Slave Frame Error.

2. I2S0 FIFO状态寄存器(FIFOSTAT)显示接收FIFO溢出,但当前FIFO中数据为空。

异常情况1只发生在I2S做SLAVE从机时产生。错误的原因是I2S SCK信号和WS信号不匹配。I2S每个SCK时钟周期传输1个音频位,如果一个音频采样是16位,双声道传输的情况,那么在一个WS的低电平(高电平)脉冲应该对应16个SCK的时钟。当SCK和WS不匹配时,就会出现SLVFRAMEERR错误。

2a4c20c4-20a6-11f0-9310-92fbcf53809c.png

一个关于问题原因猜想是,FRAME ERROR导致I2S0不能再正常工作,从而DMA1无法从I2S0 FIFO中取到音频数据而导致下行音频链路终止。

为了证实这个猜想,作者做了如下实验, 分别短时间断开I2S0输入的WS信号和CLK信号,看DMA1是不是会因为WS或者CLK的停止而停止,随着WS/CLK的恢复而恢复。答案是肯定的,当I2S0的输入WS或者CLK信号断开时,DMA由于没有数据可搬运从而停止,当WS或CLK恢复时,I2S SLAVE会根据WS信号重新同步数据并接收数据到I2S FIFO,DMA也可以继续完成未完成的传输。而FRAME ERROR会置位,但这种WS/CLK丢失导致的FRAME ERROR不是关键的致命错误。同时,在这种情况下I2S FIFO寄存器也没有出现溢出的错误。

2a617e9c-20a6-11f0-9310-92fbcf53809c.png

由于DMA1 控制器工作正常,在压力测试期间很难监控I2S信号来分析I2S FRAME ERROR 和FIFO溢出产生的原因,作者计划使用HiFi4通过处理I2S0的FIFO溢出中断,在I2S0FIFO溢出中断中,复位I2S0来保证I2S0状态恢复到正常的状态。

2a744e82-20a6-11f0-9310-92fbcf53809c.png

作者做了以下的验证,确保这个功能的有效性。使用GPIO中断,在GPIO中断中暂停DMA1搬移I2S0到SRAM0的通道。由于DMA1停止了,I2S0FIFO溢出进入中断处理函数,复位I2S, 此时重启DMA1通道,下行音频恢复。

可惜的是,这种方法并不奏效,在接下来的压力测试中,I2S0 FIFO状态寄存器(FIFOSTAT)显示接收FIFO溢出,I2S0中断服务程序可以进入,并重启I2S0,但很快,I2S0 FIFO又马上进入了溢出的状态,DMA1完成中断还是不能够正常触发,DMA没有完成描述字要求的传输任务。

到底是什么原因导致DMA1不能完成从FIFO搬移到SRAM的任务呢?欢迎评论区留言,答案见下期揭晓~

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    8249

    浏览量

    162339
  • 处理器
    +关注

    关注

    68

    文章

    20148

    浏览量

    247064
  • 寄存器
    +关注

    关注

    31

    文章

    5588

    浏览量

    129053
  • 音频
    +关注

    关注

    31

    文章

    3134

    浏览量

    84921
  • 压力测试
    +关注

    关注

    0

    文章

    29

    浏览量

    13755

原文标题:经验分享 - 系统压力测试出现问题,该怎么办?(上)

文章出处:【微信号:NXP_SMART_HARDWARE,微信公众号:恩智浦MCU加油站】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    鸿蒙OpenHarmony:【常见编译问题和解决方法

    常见编译问题和解决方法
    的头像 发表于 05-11 16:09 5211次阅读

    STC-ISP下载失败的原因和解决方法

    整理原因和解决方法如下:(仅供参考,欢迎指正,Email:stcisp@163.com)首先成功进行ISP烧写的条件非常简单,只要有串口和单片机接成最小系统(带有RS232电路)就可以了(
    发表于 08-09 08:26

    BIOS错误信息和解决方法

    BIOS错误信息和解决方法 1.CMOS battery failed(CMOS电池失效) 原因:说明CMOS电池的电力已经不
    发表于 03-10 11:49 4658次阅读

    TD-SCDMA测试出现不顺畅插曲:设备互通出现问题(1)

    来自TD-SCDMA测试前线的最新消息显示,目前这场备受关注的测试出现了一些不顺畅的小插曲。     4月17日,一家TD智能天线生产厂家的内部人士告诉记者,测试前期,中
    发表于 06-26 08:58 401次阅读

    假焊的原因和解决方法

    在电子原件焊接过程中,焊点表面上好像焊接成功,但实际上并没有焊住,有时用手一拨,引线就可以从焊接点中拨出,这种现象称为假焊。假焊的原因和解决方法说明如下
    发表于 04-30 15:18 3.3w次阅读

    液晶拼接屏安装时出现色差的原因和解决方法

    液晶拼接屏在安装调试的过程中,有时候会出现色差的问题。这种问题比较常见,一般来说并不是大的问题,通常经过调试之后便能统一色彩。下面景信科技小编就来说一下液晶拼接屏出现色差的解决方法
    发表于 07-16 16:39 4937次阅读

    压力变送器输出过大可能的原因和解决方法资料下载

    电子发烧友网为你提供压力变送器输出过大可能的原因和解决方法资料下载的电子资料下载,更有其他相关的电路图、源代码、课件教程、中文资料、英文资料、参考设计、用户指南、解决方案等资料,希望可以帮助到广大的电子工程师们。
    发表于 04-05 08:46 5次下载
    <b class='flag-5'>压力</b>变送器输出过大可能的<b class='flag-5'>原因</b><b class='flag-5'>和解决方法</b>资料下载

    电风扇转速慢的原因和解决方法

    电风扇是夏季常用的一种电器,可以带来清凉的风,缓解高温天气带来的不适。但是有时候我们会发现电风扇转速变慢了,风量也不够大,这时候应该怎么办呢?本文将介绍电风扇转速慢的原因和解决方法
    的头像 发表于 06-03 09:34 4.8w次阅读

    减速电机日常出现的异常原因解决方法

    减速电机现应用的领域越来越多,日常中或许会遇到减速电机出现异常情况,以下我们来了解一下日常出现的异常原因解决方法
    的头像 发表于 12-27 15:39 3029次阅读
    减速电机日常<b class='flag-5'>出现</b>的异常<b class='flag-5'>原因</b>及<b class='flag-5'>解决方法</b>

    保护死区的概念和解决方法

    保护死区的概念和解决方法
    的头像 发表于 07-15 11:02 2515次阅读
    保护死区的概念<b class='flag-5'>和解决方法</b>

    变频器过热的故障原因和解决方法

    变频器过热的故障原因和解决方法
    的头像 发表于 10-24 10:09 9804次阅读

    GSM系统中干扰问题的分类、定位和解决方法

    电子发烧友网站提供《GSM系统中干扰问题的分类、定位和解决方法.pdf》资料免费下载
    发表于 11-17 16:53 0次下载
    GSM<b class='flag-5'>系统</b>中干扰问题的分类、定位<b class='flag-5'>和解决方法</b>

    步进电机丢步的原因和解决方法

    步进电机丢步的原因和解决方法 步进电机是一种常见的电动机类型,特点是可以实现精确的位置控制和旋转运动。然而,在实际使用过程中,步进电机有时会出现丢步的现象,即无法按照预定步长准确移动。这种情况可能会
    的头像 发表于 02-01 16:32 7877次阅读

    常见的锡珠形成的原因和解决方法

    及时进行处理的话可能会影响到板子的使用寿命和使用可靠性,下面深圳佳金源锡膏厂家给大家简单介绍一下常见的锡珠形成的原因和解决方法:一、形成原因1、感应熔敷在焊接加热
    的头像 发表于 06-01 11:02 2379次阅读
    常见的锡珠形成的<b class='flag-5'>原因</b><b class='flag-5'>和解决方法</b>

    变压器跳闸原因和解决方法

    变压器跳闸是一个复杂的问题,涉及到多种因素和解决方案。 变压器跳闸原因和解决方法 引言 变压器是电力系统中不可或缺的设备,其主要功能是将电能从一种电压等级转换为另一种电压等级。然而,在
    的头像 发表于 07-08 09:38 8004次阅读