新版SDK命名说明 ========================================= 2023年9月发布的SDK整合了AD14N / AC104N / AD15N / AD17N / AD18N的工程,SDK命名为 *AD1x-4578_AC104-release_v1.8.0* ,其含义为: - AD1x-4578:代表AD14、AD15、AD17、AD18N - AC104:代表AC104 - v1.8.0:表示当前SDK版本号 .. image:: 0_sdk_name_introduce.png :alt: "新版本SDK名称说明" :align: center .. centered:: 新版本SDK名称说明 ^^^^^^^^^^^^^^^^^^^^ 环境介绍 ========================================= 本章节主要介绍软硬件开发环境。 ^^^^^^^^^^^^^^^^^^^^ 硬件环境介绍 ################################ AD系列硬件开发环境使用不同的开发板,包括不同底板和顶板。以下芯片适用于AD系列在线文档说明。 ================= ================ ============== ================== ================== 适用本文的芯片 AD14N / AC104N AD15N AD17N AD18N ================= ================ ============== ================== ================== AD14N AC104N硬件开发环境 ********************************* AD14N芯片框图如下图所示: .. image:: chip_attach-ad14.png :alt: "AD14N芯片框图" :align: center | AD14N,AC104N使用的硬件环境开发板由底板和顶板两部分组成。 | 底板包含的模块如下图所示: .. image:: dev-board-ad14.png :alt: "AD14N开发板“ :align: center 其中模块: ================= ================================================================================================== 模块 模块详情 ================= ================================================================================================== MIC模块 MIC输入引脚固定为PB01,偏置电压可由MICLDO(PA15)或MICBIAS(PA13)提供,也可以使用外部偏置,不占用芯片I/O口; LINEIN模块 LINEIN输入引脚可选AUX0(PA13)或AUX1(PA14),需将对应引脚与AUX_OUT短接; Audio PA功放模块 单端DAC输出引脚为PB0,需将PA_IN与PB0短接; Class-D APA模块 差分DAC输出引脚为DACN和DACP; LED模块 该模块的3个LED灯都是高电平点亮; 红外模块 该模块用于接收红外信号,需将IRVDD与VDDIO短接; 按键模块 该模块有4个AD按键以及4个I/O按键,其中AD按键外接10k上拉电阻; 电源模块 供电可通过正极接“VUSB”,负极接“GND”实现,且需要将VBAT和VUSB短接、HPVDD和VBAT短接; USB模块 该模块可以用来通信USB设备,或给开发板下载程序以及供电; TF卡模块 该模块支持驱动一线模式的TF卡; 外挂FLASH模块 该模块可挂载一颗存放资源的FLASH; ================= ================================================================================================== 顶板包含的模块如下图所示: .. image:: dev-core-board-ad14.png :alt: "AD14N开发板-核心板“ :align: center 顶板的“FLASH工作模式以及供电方式选择区”可以选择FLASH是跑1线模式还是2线模式,并且可以选择POWER引脚供电使用VDDIO还是PD4引脚。 系统flash单双线配置及flash电源配置: 使用USB升级FLASH的时候,插入USB线连电脑和开发板,按住“FLASH短路按键”不松手之后再短按“复位按键”复位系统,之后松开“FLASH短路按键”就可以进入升级,此时电脑可以正常出现设备盘符即是操作成功了。 AD15N硬件开发环境 ********************************* AD15N芯片框图如下图所示: .. image:: chip_attach-ad15.png :alt: "AD15N芯片框图" :align: center | AD15N使用的硬件环境开发板由底板和顶板两部分组成。 | 底板包含的模块如下图所示: .. image:: dev-board-ad15.png :alt: "AD15N开发板“ :align: center 其中模块: ================= =========================================================================================================================================== 模块 模块详情 ================= =========================================================================================================================================== Class-D APA模块 差分DAC输出引脚为DACN和DACP; 红外模块 该模块用于接收红外信号,需将IRVDD与VDDIO短接; LED模块 该模块的3个LED灯都是高电平点亮; 按键模块 该模块有8个AD按键,外接10k上拉电阻; TF卡模块 该模块支持驱动一线模式的TF卡; 外挂FLASH模块 该模块可挂载一颗存放资源的FLASH; 电源模块 AD15N USB口只用来供电,芯片自身并没有USB模块。特别地,AD150开发烧写使用串口升级方式,供电使用USB UPDATER插入USB口供电,并且USB UPDATER TX接到开发板的PB9。 ================= =========================================================================================================================================== 顶板包含的模块如下图所示: .. image:: dev-core-board-ad15.png :alt: "AD15N开发板-核心板“ :align: center AD15N使用串口方式升级,升级时候并不需要按着Update,只需要点击运行升级脚本,USB UPDATER就会让开发板自动进入升级模式了。 顶板的“FLASH工作模式以及供电方式选择区”可以选择FLASH是跑1线模式还是2线模式,并且可以选择POWER引脚供电使用VDDIO还是PD4引脚。 .. _AD17N硬件开发环境: AD17N硬件开发环境 ********************************* AD17N芯片框图如下图所示: .. image:: chip_attach-ad17.png :alt: "AD17N芯片框图" :align: center | AD17N使用的硬件环境开发板由底板和顶板两部分组成。 | 底板包含的模块如下图所示: .. image:: dev-board-ad17.png :alt: "AD17N开发板“ :align: center 其中模块: ================= =========================================================================================================================================== 模块 模块详情 ================= =========================================================================================================================================== Class-D APA模块 差分输出引脚为APAN和APAP; 红外模块 该模块用于接收红外信号,需将IRVDD与VDDIO短接; LED模块 该模块的3个LED灯都是高电平点亮; 按键模块 该模块有8个AD按键,外接10k上拉电阻; 外挂FLASH模块 该模块可挂载一颗存放资源的FLASH; 电源模块 AD17N USB口只用来供电,芯片自身并没有USB模块。特别地,AD17N开发烧写使用串口升级方式,供电使用USB强制升级工具插入USB口供电,并且USB强制升级工具TX接到开发板的PB1。 ================= =========================================================================================================================================== 顶板包含的模块如下图所示: .. image:: dev-core-board-ad17.png :alt: "AD17开发板-核心板“ :align: center AD17N使用串口方式升级,升级时候并不需要按着Update,只需要点击运行升级脚本,USB强制下载工具就会复位开发板让其进入升级模式。 顶板的“FLASH工作模式以及供电方式选择区”可以选择FLASH是跑1bit模式还是2bit模式,并且可以选择POWER引脚供电使用VDDIO还是芯片PD4(SPFG)引脚。 .. _AD18N硬件开发环境: AD18N硬件开发环境 ********************************* AD18N芯片框图如下图所示: .. image:: chip_attach-ad18.png :alt: "AD18N芯片框图" :align: center | AD18N使用的硬件环境开发板由底板和顶板两部分组成。 | 底板包含的模块如下图所示: .. image:: dev-board-ad18.png :alt: "AD18N开发板“ :align: center 其中模块: ================= =========================================================================================================================================== 模块 模块详情 ================= =========================================================================================================================================== USB模块 该模块可以用来通信USB设备,或给开发板下载程序以及供电; 外挂FLASH模块 该模块可挂载一颗存放资源的FLASH; Audio PA功放模块 单端模拟DAC输出引脚为AIN7,需将PA_IN与AIN7短接; Class-D APA模块 差分输出引脚为APAN和APAP;(耳机座子接APA) 电源模块 供电可通过接USB线或者Type-C线实现,且需要将+5V和VPWR短接、HPVDD和VPWR短接; 按键模块 该模块有4个AD按键,外接10k上拉电阻与不同阻值的下拉电阻;同时还有4个独立IO按键; LCD断码屏模块 该模块支持最多4com * 12seg的段码屏; 红外模块 该模块用于接收红外信号,需将IRVDD与IOVDD短接; LED模块 该模块的3个LED灯都是高电平点亮; ================= =========================================================================================================================================== 顶板包含的模块如下图所示: .. image:: dev-core-board-ad18.png :alt: "AD18开发板-核心板“ :align: center AD18N使用USB升级,升级前需接入USB强制下载工具并进入下载模式。(下载器红灯常量即进入下载模式),再使用Codeblock编译下载即可; 顶板的“FLASH工作模式以及供电方式选择区”可以选择FLASH是跑1bit模式还是2bit模式,并且可以选择POWER引脚供电使用VDDIO还是芯片PD4(FSPG)引脚。 顶板的“PA7 & PA8外接32K晶振选择”可以选择顶板的PA7、PA8直接接到底板的PA7、PA8,还是直接接到外挂32K晶振引脚; .. image:: AD18N_PA7PA8_to_32K.png :alt: "AD18 PA7 PA8连接外部晶振“ :align: center ^^^^^^^^^^^^^^^^^^^^ .. _SDK工程与配置: SDK工程与配置 ################################ 目前AD14N / AD15N / AC104N / AD17N支持的工程如下: ============== ======= ======== ======== ===== ========== 芯片/工程 app_mg simple mbox_mg mcu voice_toy ============== ======= ======== ======== ===== ========== AD14N / AC104N √ √ √ √ √ AD15N √ √ √ √ AD17N √ √ AD18N √ √ ============== ======= ======== ======== ===== ========== - app_mg应用工程: 该工程有完整玩具功能,能实现解码、编码录音、MIDI、LINEIN等功能;同时将VM、按键、休眠应用在工程中。 - simple示例工程: 该工程可实现解码、扩音功能等功能;未将VM、按键、休眠应用在工程中,但是相关代码能在工程中直接调用使用。 ============== ============================================================== 芯片/工程 支持的SDK版本 ============== ============================================================== AD14N ad140-release_v1.0.0 ~ v1.4.0、开源sdk_v1.0.0 ~ v1.6.0 AD15N ad150-release_v1.0.0 ~ v1.4.0、开源sdk_v1.0.0 ~ v1.6.0 ============== ============================================================== .. image:: pro_dir_ad14-ad15.png :alt: "AD14 ad15工程目录“ :align: center - mbox_mg应用工程: 该工程有完整插卡音箱功能,能实现标准MP3、WAV解码、FM、USB从机、录音、扩音功能等功能;同时将VM、升级、按键、休眠应用在工程中。 ============== =============================================================== 芯片/工程 支持的SDK版本 ============== =============================================================== AC104N ac104-release_v1.0.0 ~ v1.4.0、开源SDK_v1.6.0 ~ 至今最新版本 ============== =============================================================== .. image:: pro_dir_ac104.png :alt: "AC104N工程目录“ :align: center - voice_toy应用工程: 该工程有完整发声玩具功能,在simple工程基础上集成了app_mg功能;能实现解码、MIDI功能;同时将VM、按键、休眠应用在工程中。 ==================== =============================================================== 芯片/工程 支持的SDK版本 ==================== =============================================================== AD14/15/17/18/AC104 AD1x-457_AC104-release_v1.7.0 ~ 至今最新版本 ==================== =============================================================== .. image:: pro_dir_voice_toy.png :alt: "voice_toy工程目录“ :align: center - mcu应用工程: 该工程为MCU工程,仅初始化串口打印、时钟、电源、异常等模块,不包含其他功能。 应用配置文件《app_config.c》介绍 *************************************** 应用配置文件《app_config.c》能配置与系统相关的配置: .. image:: app_config.c.png :alt: "APP 配置文件“ :align: center 1、中断优先级; | *注:控制各个模块的中断优先级!* 2、LRC_TRIM_DISABLE:LRC校准时钟,LRC必须经过了烧写器校准后才能使用 | ① FALSE:使用LRC校准时钟偏差,生产必须选择FALSE; | ② TRUE:不使用LRC校准时钟偏差; | *注:默认开启LRC校准时钟,时钟不准的芯片一定要过烧写器校准!* 3、MM_ASSERT:MALLOC内部断言使能 | ① FALSE:关闭malloc内部断言; | ② TRUE:打开malloc内部断言,默认打开; 4、MIC_CAPLESS_EN:MIC省电容使能 | ① FALSE:不省电容; | ② TRUE:省电容; | *注:省电容方案底噪较大,不建议使用!* 5、MIC_RES_BUILT_IN:MIC电路偏置方式 | ① 0:使用MICLDO(PA15)提供偏置电压,需短接V_MIC和MICLDO; | ② 1:使用MICBIAS(PA13)提供偏置电压,需短接MIC和MICBIAS; | ③ 2:不使用内部偏置(不占用I/O口); 6、MIC_LDO_V:MICLDO增益“MIC_0DB” | *注:此选项只在MIC_RES_BUILT_IN == 0时起作用,以下为千欧姆* | ① 0 : 1.8V; | ② 1 : 2.1V; | ③ 2:2.4V; | ④ 3:2.7V; 7、MIC_RES_IN:MICBIAS电路内置偏置电阻挡位选择 | *注:此选项只在MIC_RES_BUILT_IN == 1时起作用,以下为千欧姆* ========== ======== ========== ======== value kkilohm value kkilohm ========== ======== ========== ======== 0b00100 7; 0b00101 1.555; 0b00110 2.916; 0b00111 1.186; 0b01000 NA; 0b01001 3; 0b01010 6; 0b01011 2.428; 0b00000 NA; 0b00001 2; 0b00010 5; 0b00011 1.425; 0b01100 8; 0b01101 2.555; 0b01110 3.916; 0b01111 2.186; 0b10000 NA; 0b10001 3.5; 0b10010 6.5; 0b10011 2.926; 0b10100 8.5; 0b10101 3.055; 0b10110 4.416; 0b10111 2.686; 0b11000 NA; 0b11001 2.6; 0b11010 5.6; 0b11011 2.208; 0b11100 7.6; 0b11101 2.4; 0b11110 3.73; 0b11111 1.99; 0b000001 0.85; 0b0000001 0.35 ========== ======== ========== ======== 8、MIC_0DB:MIC前级增益 ====== ==== value db ====== ==== 0 6db 1 0db ====== ==== 9、MIC_PGA_G:MIC后级增益 ====== ==== value db ====== ==== 0b0000 0db 0b0001 2db 0b0010 4db ... ... 0b1110 28db ====== ==== 10、AUDIO_ADC_SR_COR:录音采样率纠错使能 | ① FALSE:关闭自动纠错,当录音设置的采样率不在AUDIO ADC工作的范围内时,返回错误,启动AUDIO ADC失败; | ② TRUE:开启纠错,当录音设置的采样率不在AUDIO ADC工作的范围内时,将采样率设置在AUDIO_ADC_SR对应的值!如果AUDIO_ADC_SR正确那么启动成功,否则失败; 11、AUDIO_ADC_SR:录音采样率纠错值 | ① 采样率:8000 | ② 采样率:12000 | ③ 采样率:16000 | ④ 采样率:24000 | ⑤ 其他:非法值 12、AUDIO_VCMCAP:VCM是否挂电容,挂了电容后音质会有较大提升: | ① FALSE:没有挂电容; | ② TRUE:有挂电容; | *注:只有部分封装有将VCMCAP引脚引出,详情请看具体芯片封装原理图!* 13、ADC_VBG_TRIM_EN:内部VBG校准使能 | ① FALSE:使用默认值校准; | ② TRUE:使用烧写值校准,生产必须选择TRUE; 14、GPIO_CRITICAL_OPT:GPIO中断临界保护使能 | ① FALSE:关闭GPIO中断临界保护; | ② TRUE:打开GPIO中断临界保护; 15、MAINTRACK_USE_CHN:MIDI乐谱使用主轨道选择 | ① 0:用track号来区分; | ② 1:用channel号来区分; 16、MAX_DEC_PLAYER_CNT:MIDI乐谱解码最大同时发声key数 | ① 范围:1~31,会影响到midi乐谱解码运算buff大小; 17、MAX_CTR_PLAYER_CNT:MIDI琴最大同时发声key数 | ① 范围:1~31,会影响到midi琴解码运算buff大小; 18、dev_update_use_eeprom:设备升级占用区域,占用的区域数据是失效 | ① 0:占用VM区域(一般用于AD14N的内置flash录音); | ② 1:占用EEPROM区域(一般用于VM记忆); 19、dev_update_keep_io_status:设备升级I/O保持使能 | ① 0:不保持I/O,升级时复位I/O; | ② 1:保持I/O,升级过程中I/O保持升级前状态; 20、ufw_vid_need_to_be_different:设备升级对ufw升级文件的vid要求 | ① 0:升级文件vid与当前设备vid相同才可升级; | ② 1:升级文件vid与当前设备vid不同才可升级; | ③ 2:升级文件vid \> 当前设备vid才可升级; | ④ 3:升级文件vid \< 当前设备vid才可升级; | *注:vid在isd_config.ini文件中修改!* 21、config_asser:内核异常打印“config_asser”。 | ① 0:关闭内核异常打印; | ② 1:开启内核异常打印; | *注:生产的工程要关闭内核异常打印,内核异常打印会关闭看门狗并且while(1)停留!* 22、libs_debug:打印总开关 | ① FALSE:关闭打印; | ② TRUE:开启打印; 23、log_tag_const_x_yyyy:分支打印开关,仅仅在打印总开关打开的时候有效 | ① x=i:控制打印函数(log_info / log_info_hexdump)的打印开关; | ② x=d:控制打印函数(log_debug / log_debug_hexdump)的打印开关; | ③ x=e:控制打印函数(log_error / log_error_hexdump)的打印开关; | ④ x=c:控制打印函数(log_char)的打印开关; | ⑤ yyyy:控制相应的打印块; | *注:若要打开相应打印,将CONFIG_DEBUG_LIBS(0)改为CONFIG_DEBUG_LIBS(1)即可!* 应用配置文件《app_config.h》介绍 *************************************** 应用配置文件《app_config.h》能配置与系统相关的配置: .. image:: app_config.h.png :alt: "APP 配置头文件“ :align: center 串口配置 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1、UART_TX_OUTPUT_CH_EN:串口打印输出任意引脚使能 | ① DISABLE:使用固定引脚输出,默认串口引脚AD14 / AC104:PA4,AD15N:PA6; | ② ENABLE:使能串口任意引脚输出,输出到;UART_OUTPUT_CH_PORT定义的引脚; | *注:使能串口输出任意引脚会占用一路output channal通路!* 2、UART_OUTPUT_CH_PORT:串口打印输出引脚选择,不可选择芯片没有的I/O口; 按键配置 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | *注:按键部分功能需要在key.h中配置!* +----------------+------------------+-----------------------------------------------------+ | 配置项目 | 含义 | | | | +================+==================+=====================================================+ | AD_KEY_CH_SEL | AD按键采集引脚选择,可查看adc_drv.h中支持的引脚通道 | +----------------+------------------+-----------------------------------------------------+ | IR_KEY_IO_SEL | 红外按键捕获引脚选择,会占用一路input channal通路 | +----------------+------------------+-----------------------------------------------------+ | IR_KEY_IO_SEL | 红外按键捕获引脚选择,会占用一路input channal通路 | +----------------+------------------+-----------------------------------------------------+ | X_ADC_CH_SEL & | X_ADC_CH_SEL | X轴要求选择支持ADC的I/O; | | Y_PORT_SEL +------------------+-----------------------------------------------------+ | | Y_PORT_SEL | Y轴选择普通I/O | +----------------+------------------+-----------------------------------------------------+ | TOUCH_KEY_SEL | 触摸按键I/O口选择 | +----------------+------------------+-----------------------------------------------------+ | KEY_VOICE_EN | 触摸按键I/O口选择 | +----------------+------------------+-----------------------------------------------------+ 低功耗配置 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1、POWER_WAKEUP_IO:低功耗唤醒I/O选择,请查看power_api.c中的配置 SD模块配置 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1、TFG_SD_EN:SD卡模块使能(新版本SDK在app_moduels.h中定义该宏) 2、SPI_SD_IO_REUSE:外挂FLASH与SD卡模块I/O复用使能 USB模块配置 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1、TCFG_PC_ENABLE:PC模块使能 2、TCFG_USB_EXFLASH_UDISK_ENABLE:外掛FLASH模拟U盘使能 3、TCFG_UDISK_ENABLE:U盘模块使能 外挂FLASH配置(FLASH Configuration) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **AD17N / AD18N支持任意I/O映射,外挂flash I/O需要在device_list.c中指定;** 1、TCFG_FLASH_SPI_TYPE_SELECT:spi选择 | ① 1:选择硬件spi,固定I/O口,可查看device_list.c或者芯片原理图的spi模块引脚; | ② 0:选择软件spi,可指定任意I/O口; 2、TFG_SPI_UNIDIR_MODE_EN:外挂flash运行1bit模式选择 | ① 1:使能外挂flash 1bit模式; | ② 0:不使能外挂flash 1bit模式; 3、HW_SPI_WORK_MODE & SPI_READ_DATA_WIDTH:spi模式 | ① SPI_MODE_BIDIR_1BIT:全双工,di接收,do发送; | ② SPI_MODE_UNIDIR_1BIT:半双工,do分时接收/发送; | ③ SPI_MODE_UNIDIR_2BIT:半双工,di & do共2bit分时接收/发送; 4、SPI_CS_PORT_SEL:spi cs引脚选择 5、软件spi配置: | ① A_CLK_BIT & A_CLK_PORT(x):软件spi CLK引脚选择; | ② A_DO_BIT & A_DO_PORT(x):软件spi DO引脚选择; | ③ A_DI_BIT & A_DI_PORT(x):软件spi DI引脚选择; | ④ SOFT_SPI_WORK_MODE:软件spi模式,可选择1bit或者2bit模式; Mbox_mg工程独有的配置 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ============================ ======================================================= 宏定义 含义 ============================ ======================================================= LED_5X7 LED数码管使能,会占用部分I/O,请查看mbox_main.h中的引脚分布 BREAK_POINT_AUTO_SAVE 实时断点保存使能 POWERDOWN_UDISK_MODE_EN U盘进入powerdown使能 FM_SD_IO_REUSE FM与SD卡模块I/O复用使能 LINEIN_DET_MULT_SD SD卡模块与LINEIN检测I/O复用使能 ============================ ======================================================= .. _应用APP配置文件《app_modules.h》介绍: 应用APP配置文件《app_modules.h》介绍 *************************************** 各个工程下有对应cpu的应用配置文件《app_modules.h》,其中的宏定义能配置支持的编解码格式、以及APP模式相关的配置;每一个配置项都可独立开关,关闭没有用到的宏定义,可以 * 减少生成的代码量,节省程序空间和运行空间 * 。 **该文件中出现的宏,即该工程拥有的功能;对于默认为0的宏,使能为1即可正常使用;** 解码模块 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ============================ ========================= 宏定义 含义 ============================ ========================= DECODER_UMP3_EN UMP3解码使能; DECODER_MP3_ST_EN 标准MP3解码使能(mbox独有); DECODER_WAV_EN WAV解码使能(mbox独有); DECODER_F1A_EN F1A解码使能; DECODER_MIDI_EN MIDI解码使能; DECODER_MIDI_KEYBOARD_EN MIDI琴解码使能; DECODER_A_EN A格式解码使能; HAS_MIO_EN MIO功能使能; ============================ ========================= 音频算法模块 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ============== ================= 宏定义 含义 ============== ================= AUDIO_SPEED_EN 变速变调算法使能 SPEAKER_EN 扩音使能; VO_PITCH_EN 变音算法使能; PCM_EQ_EN EQ算法使能; ECHO_EN ECHO算法模块使能; ============== ================= 驱动模块功能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ =================== ======================================================================================== 宏定义 含义 =================== ======================================================================================== EXT_FLASH_EN 外挂FLASH使能,使用外挂FLASH需要打开该宏; TFG_SD_EN SD卡模块使能,使用SD卡需要打开该宏; UART_UPDATE_EN 带电池串口升级使能; =================== ======================================================================================== 芯片应用功能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ =================== ======================================================================================== 宏定义 含义 =================== ======================================================================================== RECORD_MODE_EN 录音模式使能; LINEIN_MODE_EN LINEIN(AUX)模式使能; SIMPLE_DEC_EN 多路解码模式使能; LOUDSPEAKER_EN 扩音模式使能; FM_EN FM模块使能; =================== ======================================================================================== .. image:: app_modules.h.png :alt: "app_moduels.h配置“ :align: center .. centered:: app_modules.h配置 CodeBlocks工程宏定义介绍 *************************************** 除了app_config.c、app_config.h和app_modules.h中的配置外,部分模块总开关放在CodeBlocks工程的宏定义中,不使用某些模块时,将宏关闭可以节约代码量; 在没有app_modules.h的旧版本SDK中,模块宏需要在CodeBlocks工程的宏定义中关闭。 芯片Codeblocks宏定义功能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ =================== ======================================================================================== 宏定义 含义 =================== ======================================================================================== AUDIO_ADC_EN AUDIO ADC使能; ENCODER_EN 编码使能,有该配置即支持编码功能; EEPROM_EN EEPROM使能,使用EEPROM需要打开该宏,并在SDK工程中添加相应的c文件以及h文件; =================== ======================================================================================== .. image:: CodeBlocks-define.png :alt: "CodeBlocks 宏定义配置“ :align: center ^^^^^^^^^^^^^^^^^^^^ .. _SDK工程裁切: 新版本SDK工程裁切(2023年7月发布的SDK起始) ################################################################ 从2023年7月发布的AD1x-457_AC104-release_v1.7.0起始,SDK添加了app_modules.h模块管理机制; 裁切工程只需将app_modules.h中需要关闭的宏定义配置为0即可; .. image:: cut_prj_1-1.png :alt: "裁剪某个算法库“ :align: center ^^^^^^^^^^^^^^^^^^^^ 旧版本SDK工程裁切 ################################################################ 如何将解码格式从工程中移除 ************************************************************ 旧版本发布的SDK里面支持F1A、UMP3、A、midi四种格式,AD15N支持F1A、A、MIDI三种格式,在开发过程中如果不需要支持某些格式,那么可以将相关的代码删除。这样可以极大的节省生成的代码大小; 下面以移除MIDI解码格式为例介绍,主要分四步: | ① 将相关的宏定义清0; | ② 移除相关的库文件; | ③ 移除相关的源文件; | ④ 删除其资源定义; 裁切解码第一步 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 打开窗口,将需要MIDI格式相应的宏定义设置为0: .. image:: cut_prj_1.png :alt: "裁剪某个算法库“ :align: center 裁切解码第二步 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 上一步打开的窗口中删除MIDI的库包含: .. image:: cut_prj_2.png :alt: "裁剪某个算法库“ :align: center 裁切解码第三步 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 移除工程目录app\\src\\common\\decoder\\list\\下的解码源文件; .. image:: cut_prj_3.png :alt: "裁剪某个算法库“ :align: center 裁切解码第四步 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 在文件app\\post_build\\sh54\\app_ld.c中删除相关格式用到的资源定义,切记此文件在不可放在工程中编译,如果添加进了工程,一定要将其编译和链接包含取消掉. .. image:: cut_prj_4.png :alt: "裁剪某个算法库“ :align: center 如何将压缩格式从工程中移除 *************************************** 目前发布的AD14N SDK里面支持UMP3、A两种格式的压缩,AD15N不支持录音压缩,在开发过程中如果不需要支持某些格式,那么可以将相关的代码删除。这样可以极大的节省生成的代码大小; 下面以移除UMP3压缩格式为例介绍,主要分三步: ① 移除相关的库文件; ② 移除相关的源文件; ③ 删除源码使用到的地方定义; 裁切压缩第一步 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 打开窗口,删除mp3编码库的库包含: .. image:: cut_enc_1.png :alt: "裁剪某个压缩库“ :align: center **注:部分宏配置需要在《app_modules.h》中关闭!详情请见上文《裁切解码第一步》** 裁切压缩第二步 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 移除工程目录app\\src\\common\\decoder\\list\\下的压缩源文件: .. image:: cut_enc_2.png :alt: "裁剪某个压缩库“ :align: center 裁切压缩第三步 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 在文件app\\post_build\\sh54\\app_ld.c中删除相关格式用到的资源定义,切记此文件在不可放在工程中编译,如果添加进了工程,一定要将其编译和链接包含取消掉。 .. image:: cut_enc_3.png :alt: "裁剪某个压缩库“ :align: center 裁切压缩第四步 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 修改一些编译错误,这里主要指在在程序中对编码接口的调用: .. image:: cut_enc_4.png :alt: "裁剪某个压缩库“ :align: center