示例-Luat demo-audioParam

本文详细介绍如何使用Air724UG开发板通过LUAT和AT固件修改音频参数,涉及材料准备、固件操作步骤及常见问题解决,适用于音频开发和调试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如何用开发板实现修改音频参数功能

简介

Air724UG 内置3种音频输出模式,分别为扬声器(SPK)输出,耳机(HP)输出和听筒(RECEIVER)输出,mic输入有主麦和耳机的mic输入,本文介绍如何用Air724开发板,写入自己修改过的音频文件。

材料准备

  1. EVB_Air724UG_A13开发板一套,包括天线SIM卡,USB线。
  2. PC电脑,一副带mic的国标耳机,一个1w喇叭 ,a13 板上自带了一个差分的驻极体mic。如果用a11,a12开发板要外接一个mic。
  3. audio_calib.bin文件,生成过程参考。指南
  4. luat开发环境:环境搭建方法
    图片.png

步骤

LUAT固件更新音频文件

本文以demo\audioParam这个DEMO为例设置:输入是开发板上mic,输出是喇叭做演示。将准备好的音频参数文件和脚本一起烧录进开发板中。

sys.taskInit(function()
    local USERNVM_DIR = "/usernvm"
    local USERNVM_AUDIOCALIB_FILE_PATH = USERNVM_DIR.."/user_audio_calib.bin"
    local USERNVM_AUDIOCALIB_SET_FILE_PATH = USERNVM_DIR.."/user_audio_calib_flag.bin"

    if rtos.make_dir(USERNVM_DIR) then
        if io.exists(USERNVM_AUDIOCALIB_SET_FILE_PATH) then
            if io.exists(USERNVM_AUDIOCALIB_FILE_PATH) then
                log.error("audioParam USERNVM_AUDIOCALIB_FILE_PATH error",USERNVM_AUDIOCALIB_FILE_PATH)
            else
                log.info("audioParam success")
            end
        else
            os.remove(USERNVM_AUDIOCALIB_FILE_PATH)
            local userAudioParam = io.readFile("/lua/audio_calib.bin")
            io.writeFile(USERNVM_AUDIOCALIB_FILE_PATH,pack.pack("<i",userAudioParam:len()))
            io.writeFile(USERNVM_AUDIOCALIB_FILE_PATH,userAudioParam,"ab")
            io.writeFile(USERNVM_AUDIOCALIB_SET_FILE_PATH,"1")
            
            log.info("audioParam write, restart later...")
            sys.restart("audioParam")
        end
    else
        log.error("audioParam make_dir error",USERNVM_DIR)
    end
end)
  • 在执行过程中lua脚本首先会创建一个"/usernvm"目录

  • 在目录下创建一个音频参数文件,一个音频参数写入标志文件

  • 文件准备就绪后设备执行重启动作,音频参数文件被设备吸收,音频参数写入标志文件存在。可用Audio Calibrator工具读取音频参数,另存为bin文件与原始文件进行对比确认是否写入成功。

AT固件更新音频文件

  • 所用到的AT指令说明
创建目录:AT+FSMKDIR 创建usernvm目录;

创建文件:AT+FSCREATE 分别创建音频实体文件和标志文件;

写文件:AT+FSWRITE 分别写入音频实体文件和标志文件(标志文件固定写 “1” ,一个字符);
重启:AT+RESET 重启模块;
读文件:AT+FSREAD 分别读取音频实体文件和标志文件,根据上述更新原理判断是否更新成功。
  • AT命令交互过程
AT+FSMKDIR=“\usernvm”
OK

AT+FSCREATE=“\usernvm\user_audio_calib.bin”
OK

AT+FSCREATE=“\usernvm\user_audio_calib_flag.bin”
OK

AT+FSWRITE=“\usernvm\user_audio_calib_flag.bin”,0,1,300
>
1
OK

AT+FSWRITE=“\usernvm\user_audio_calib.bin”,0,4,300
>
ABCD (实际数据就是 LEN[4] + DATA[10372])
OK

AT+FSLS=“\usernvm” (此命令非必要,只是方便用户查看是否真的写入了两个文件)
user_audio_calib.bin
user_audio_calib_flag.bin
OK

AT+RESET

//下面重启模块后如果格式正确,user_audio_calib.bin会被模块取走。可以列举\usernvm" 的所有文件。
//如果标志文件在, 音频文件不在了,就说明更新成功

AT+FSLS=“\usernvm” (如果用了这个指令,后面分别 FSREAD 两个文件可以忽略)
user_audio_calib.bin
user_audio_calib_flag.bin
OK

AT+FSREAD=“\usernvm\user_audio_calib.bin”,0,100,0
ABCD
OK

AT+FSREAD=“\usernvm\user_audio_calib_flag.bin”,0,100,0
1
OK

常见问题

  • 识别不到AT口
    解决方法:重装驱动文件
  • ERROR 59
    该参数只支持在通话中进行调节,进入到通话状态。
  • 保存不了bin文件
    先Write to FLASH再进行保存(Export from FLASH)
  • ota音频升级
    脚本里要有升级流程,音频文件放到脚本一起制作成“4G远程升级文件”

相关资料以及购买链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值