杰理AC692X---常用模式介绍

常用模式介绍

692X系列的SDK支持多种模式切换,以下是一些常用的模式介绍,RTC模式和录音模式在此不讲解。

蓝牙模式

用的最多的应该是蓝牙模式,蓝牙模式主要由以下宏定义进行协议选择:

注销掉的是BLE,只选择了我们常用的EDR,即经典蓝牙,用于传输音频。

蓝牙模式主要的开发代码都在一下文件夹下:

大部分情况下我们都只是修改一下指示灯的状态,按键消息。也有需要修改代码逻辑功能的时候,比如做一些定制化的东西,这个时候一般都是在task_bt.c里面去修改。

后续如果时间允许,将会做视频进行介绍。

音乐模式

音乐模式的宏定义如下:

SD卡和U盘是共用一个music task的,所以统称为音乐模式。

SD卡又分为SD0和SD1,这个主要是看使用的芯片的SD引脚是SD0还是SD1来进行选择的。

音乐模式的相关代码如下:

常用的也主要就是用到music.c和task_music_key.c,在客户没有定制化需求的时候,是很简单的。

声卡模式

打开上图中的宏定义, 就可以打开声卡模式了,声卡模式的意思就是当电脑USB口跟设备的USB口连接时,设备可以直接播放电脑的音乐,相当于一个有线音响。

相关代码如下:

声卡模式一般只会改到按键消息,很少会需要改动task_pc.c里面的内容。

FM模式

692系列的芯片有内置FM模块, 而且692系列的FM收音效果会比690系列的好很多。

同时杰理的这套SDK上也集成了一些常用的外置FM芯片的驱动,做成宏定义的形式给用户选择:

第一个宏定义是打开SDK的FM功能,第二个是选择内置FM模块。如果把内置FM模块置0,可以选择上面的外置FM芯片,RDA5807和BK1080、QN8035,目前只集成了这三个常用的外置FM芯片,如果用户用的是别的外置FM芯片,则需要自己重写驱动了。

相关代码如下:

FM这块说简单很多简单,说难也很难。如果客户没有特别的定制化需求,基本上开个宏定义改下按键消息,就可以了。如果客户对手动存台,或者对默认的按位存台不满意,需要改动,那就有得折腾了。

Idle模式

IDLE模式是一个空任务模式,一般用作开机和关机。

最常见的是拿来播放内置音乐。

如果客户要求FLASH里面存一些音乐,然后在没有连接蓝牙和U盘的时候,也能播放内置音乐,这时候一般就会用IDLE模式来做,当然了,也可以自己新建一个任务来做,不过有现成的空任务干嘛不用呢?

相关代码如下:

 

AUX模式

AUX模式也称外音输入模式和Linein模式、线输入模式等,就是芯片的两个或一个引脚接收外部的音频模拟信号,然后芯片再把这个信号通过DAC输出,最终播放出来。

AUX检测

AUX检测方式有两种:

  1. AD按键的220K电阻用于AUX检测

当插入AUX线时,220K的阻值接地。

  1. GPIO用于AUX检测,当AUX线插入时,检测口接地。

如上图,当AUX_DETECT_EN和AUX_DET_MULTI_AD_KEY都设置成1时,使用方式1检测;当AUX_DETECT_EN置1、AUX_DET_MULTI_AD_KEY置0时,使用方式2检测。

如果把AUX_DETECT_EN置0,则不需要检测AUX是否介入,这时候通过按键切换模式是可以切换进AUX模式的。

 

AUX通道选择

这个宏定义是AUX的通道选择,这个通道需要根据自己选用的芯片来设置。

如下:

假设使用的是6925A,当使用6脚作为AUX输入引脚是,应该把AUX通道应该选择DAC_AMUX1_R_ONLY

如果使用的是13、14脚作为AUX输入脚,则设置成DAC_AMUX0

AUX通道有以下可选:

 

 

 

### 杰理设备 TF卡和USB同时使用的方法 对于杰理设备而言,在实现TF卡和USB的同时使用过程中,主要挑战在于管理和区分不同存储介质的数据访问路径以及确保系统的稳定性和兼容性。针对这一情况,可以通过修改设备管理模块中的配置来支持多存储设备的同时接入。 #### 修改设备管理逻辑 为了使TF卡和USB能够被系统识别并分别处理,可以在`dev_manage.c`文件中调整设备初始化流程[^1]: ```c // dev_manage.c 中增加对多种外部存储的支持 void init_dev_management() { // 初始化音乐播放器的物理设备总数统计功能 int usb_device_count = dev_get_phydev_total(USB_DEV_TYPE, DEV_ONLINE); int tf_card_count = dev_get_phydev_total(TF_CARD_DEV_TYPE, DEV_ONLINE); printf("Detected %d USB devices and %d TF cards.\n", usb_device_count, tf_card_count); if (usb_device_count > 0 && tf_card_count > 0) { setup_dual_storage_mode(); } else { configure_single_storage_mode(); } } ``` 这段代码展示了如何通过调用特定于硬件类型的API接口获取当前连接状态下的USB和TF卡的数量,并据此设置不同的操作模式。当两者都存在时,则进入双存储模式;反之则维持单存储模式的工作方式。 #### 实现独立媒体库 为了避免U盘和TF卡之间的音频文件相互干扰,建议构建各自的媒体库索引机制。这不仅有助于提高用户体验,还能简化后续的功能扩展工作[^2]: - **创建单独的扫描线程**:分别为每种外接存储分配专门的任务用于定期更新其内部的内容列表。 - **定义清晰的优先级规则**:比如规定在相同名称的情况下,默认先播放来自某一指定源(如USB)上的曲目。 #### 处理固件升级注意事项 值得注意的是,在尝试让这两种外围设备共存的过程中,务必小心对待任何涉及底层驱动变更的操作,特别是涉及到固件更新的部分。因为不当的操作可能会导致现有功能失效甚至整个装置无法启动等问题发生[^3]。
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jim天河

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值