1. AW30N 环境介绍
本章节主要介绍 AW30N 软硬件开发环境。
- AW30N主要应用于传统玩具与数传结合的场景,该芯片有以下特点:
支持单模5.4版本的蓝牙BLE
支持单声道的 AUDIO_ADC / DAC;
支持内置Class-D功放的APA模块;
支持多种编解码格式;
- 主要应用demo有:
传统玩具应用(如音乐模式,录音模式,扩音模式等);
基于蓝牙BLE的对讲机应用;
基于蓝牙BLE的遥控器HID从机应用;
基于蓝牙BLE的遥控器Dongle主机应用;
不用应用demo选择详情请阅读小节: SDK工程与配置
1.1. AW30N硬件环境介绍
AW30N mbox_flash方案 硬件开发环境分为开发顶板和开发底板。
1.1.1. AW30N硬件开发环境
AW30N芯片框图如下图所示:
![]()
AW30N 使用的硬件环境开发板由底板和顶板两部分组成。AW30N 底板包含的模块如下图所示:![]()
其中模块:
模块
模块详情
TF卡模块
可驱动一线模式的TF卡,支持IO供电以及内部SD_PG供电;
USB模块
可连接U盘或者PC从机,或通过VPWR给开发板供电或充电;U盘由VBAT经过升压后供电,具体请参考开发板原理图;
TYPE C模块
可连接PC从机,或通过VPWR给开发板供电或充电;
VBAT电源模块
可正极接VBAT+,负极接VBAT-,并短接VBAT到MCU_VBAT;注:VBAT供电电压不可超过4.3V
AD按键模块
默认SDK支持一个IO连接8个AD按键,外接10k上拉电阻;
红外接收模块
可用于接收红外信号,需将IRVDD与IOVDD短接;
双声道功放模块
可支持双声道功放输出以及功放mute;
MIC模块
可连接麦克风;
耳机模块
可连接3.5mm耳机;
Linein模块
可支持双声道Linein以及检测;
数码管模块
可连接7脚MP3数码管;
AW30N 顶板包含的模块如下图所示:
![]()
图1 AW30N顶板
1、复位功能:按下顶板的“复位按键(RESET)”后,系统会进行复位;
2、USB升级功能:按住 ”UPDATE“ 按钮后插入USB,即可进入下载模式;
3、系统flash单双四线选择:单线 / 双线 / 四线;
4、系统flash供电方式选择:IOVDD供电 或 FSPG供电;
5、开发板使用的是AW300芯片,即AW30N 没有内封flash,所以在芯片外部带了一颗系统flash来存放代码和资源;:
其他封装的芯片如: AW302A4中的4指的是 AW30 内封4Mbit(即512K字节)flash作为系统flash; AW306A2中的2指的是 AW30 内封2Mbit(即256K字节)flash作为系统flash;
1.2. AW30N 快速上手
1.2.1. 编译下载介绍
本节将介绍使用AW30N 软件打开工程,编译把程序SDK下载进入小机后进入音乐模式进行解码播歌:
1.2.1.1. 使用CodeBlocks打开工程
1.直接在目录下找到CBP文件,用codeblocks打开;
![]()
图2.1 打开CodeBlock工程方式一
1.2.1.2. 编译器选择
如下图所示,AW30N SDK需使用杰理PI32 lto Compiler编译器进行编译:
![]()
CodeBlocks编译器选择
1.2.1.3. 打开工程后找到main.c文件
打开工程后会显示在左侧的Management点击打开Sources -> apps -> app -> bsp -> start -> main.c,里面的c_main函数即是我们的工程的主函数。![]()
打开main.c文件
1.2.1.4. USB强制下载工具连接开发板
第一步:将USB强制下载工具的7号拨片拨至ON,其余拨片拨至OFF;(该做法可使用下载工具的rx口当作串口使用)第二步:短按下载器的按键,让闪烁的绿灯灭灯,即进入下载模式;![]()
图2.4 USB强制下载工具使用
1.2.1.5. 编译下载程序并运行
点击codeblocks的编译(Build),如果有改动库文件,需要点击全编译(Rebuild);
![]()
CodeBlocks编译
下方logs & others(快捷键F2)会显示下载结果,有下载完毕即下载成功;
![]()
CodeBlocks编译下载成功
使用Type-c 或者 下载工具进行供电,接上SDK默认打印口PA5(在 app_config.h 里的 TCFG_UART_TX_PORT 宏控制,观察打印信息,开机打印信息如下,即小机运行成功;
![]()
图 2.7 小机运行打印
1.3. SDK 资源占用情况
1.3.1. I/O口占用情况
PA口 I/O
默认占用情况
PA0
测试盒串口引脚
PA1
sd卡clk引脚 / LPCTMU_CH0 / IOKEY0按键检测引脚
PA2
sd卡cmd引脚 / LPCTMU_CH1 / IOKEY1按键检测引脚
PA3
sd卡dat引脚 / LPCTMU_CH2 / MATRIX矩阵按键检测引脚
PA4
单端MIC默认输入引脚 / aux_linein输入引脚 / MATRIX矩阵按键检测引脚
PA5
默认打印脚 / 模拟DAC输出引脚 / MATRIX矩阵按键检测引脚 / uboot串口tx
PA6
IRKEY红外按键检测引脚
PA7
单端MIC偏置电压输出引脚 / TOUCH触摸按键检测引脚
PA8
ADKEY按键检测引脚 / 默认唤醒引脚
PA9
UI_PORT6 / 四线系统flash_d2
PA10
UI_PORT5 / 四线系统flash_d3
PA11
IOKEY2按键检测引脚 / UI_PORT4
PA12
MATRIX矩阵按键检测引脚 / UI_PORT3
PA13
MATRIX矩阵按键检测引脚 / UI_PORT2
PA14
MATRIX矩阵按键检测引脚 / UI_PORT1
PA15
IOKEY3按键检测引脚 / UI_PORT0
PB口 I/O
占用情况
PB0
LPCTMU_CH3 / 外挂flash_cs片选脚
PB1
LPCTMU_CH4 / 外挂flash_clk引脚 / 晶振
PB2
LPCTMU_CH5 / 外挂flash_do引脚 / 晶振
PB3
LPCTMU_CH6 / 外挂flash_di引脚
PB4
LPCTMU_CH7
PB5
暂无使用
PB6
暂无使用
1.3.2. 软中断占用情况
软中断
默认占用情况
SOFT0_IRQ
解码中断使用
SOFT1_IRQ
编码中断使用
SOFT2_IRQ
录音写数据 / 队列
SOFT3_IRQ
bt_stack
SOFT4_IRQ
rcsp协议使用
SOFT5_IRQ
stream_frame数据流使用
SOFT6_IRQ
暂无使用
SOFT7_IRQ
暂无使用
1.3.3. 定时器占用情况
定时器
默认占用情况
TIMER0
暂无使用
TIMER1
暂无使用
TIMER2
powerdown延时使用
TIMER3
IR红外按键
1.3.4. 串口占用情况
串口
默认占用情况
UART0
SDK打印
UART1
测试盒串口升级口
UART2
暂无使用
1.4. SDK工程与配置
目前AW30N支持的应用工程如下:
应用模式
传统玩具应用 + BLE对讲机
BLE遥控器HID从机
BLE遥控器Dongle主机
应用入口函数
app_custom();
app_ble_rc_ctrl()
app_ble_dongle()
SDK应用默认运行传统玩具 + BLE对讲机demo应用;
具体应用内容说明请阅读《传统玩具APP应用》和《BLE APP应用》章节
1.4.1. 应用方案选择
- SDK应用方案在app_modules.h中,可选择上文对应的应用模式方案;
![]()
AW30N应用方案选择
- SDK应用方案入口如下:
![]()
AW30N应用入口
1.4.2. 链接LD文件修改说明
由于芯片内部ram资源紧缺,不可能所有功能同时打开,为此在链接文件里,把部分功能在同一片ram复用,以此来节省ram空间花费。
SDK应用链接LD文件的overlay段分布,根据不同应用方案采取不同的排布方式,其余段共用;
- 链接文件LD为开源内容,用户可自行查找相关修改方法;
![]()
AW30N应用LD文件overlay说明
1.4.3. SDK栈空间大小修改说明
SDK默认栈空间大小为3k字节;
BLE遥控器Dongle主机方案默认增大至6k字节;
- 用户可在LD文件中,自行拓展栈空间大小;
![]()
SDK拓展栈空间大小
1.4.4. 应用配置文件《app_config.c》介绍
应用配置文件《app_config.c》能配置与系统相关的配置:
1、系统使用到的中断的中断优先级 和 系统未使用到的中断的优先级; (注意:用户自行使用的中断不可执行时间过久!!!)
2、config_asser:内核异常打印。
0:关闭内核异常打印; 1:开启内核异常打印;
备注
打开内核异常打印后,系统出现异常会 关闭看门狗 并且 在异常中断里面while(1)停留不再退出!
所以,生产的工程要 关闭内核异常打印!避免出现异常卡死!!
所以,生产的工程要 关闭内核异常打印!避免出现异常卡死!!
所以,生产的工程要 关闭内核异常打印!避免出现异常卡死!!
3、config_audio_adc_enable:audio adc模块使能。
0:不使用audio adc模块; 1:使用audio adc模块;4、MAINTRACK_USE_CHN :MIDI乐谱使用主轨道选择
0:用 track 号来区分; 1:用 channel 号来区分;5、MAX_DEC_PLAYER_CNT :MIDI乐谱解码最大同事发声key数
范围:1 ~ 31 :对应 midi乐谱 可支持同时发声按键音数量;
备注
该参数会影响 midi乐谱 解码运算buff大小。
6、MAX_CTR_PLAYER_CNT :MIDI琴最大同时发声key数
范围:1 ~ 31 :对应 midi琴 可支持同时发声按键音数量;
备注
该参数会影响 midi琴 解码运算buff大小。
7、NOTE_OFF_TRIGGER :
midi琴 note_off time参数传 0 时, 是否产生回调音符结束动作 :: 0:不回调; 1:回调;
8、config_rtc_enable :开启RTC功能后,进入soft off低功耗仍保存计数时间
0:不使能; 1:使能;9、config_usbslave_ctl_mic:usb从机模式控制麦克风。
0:不使能; 1:使能;10、config_decoder_auto_mutex :启动解码时,将其他与之互斥的解码停止
0:不使能; 1:使能;11、libs_debug:打印总开关。
1:FALSE:关闭打印; 2:TRUE:开启打印;12、log_tag_const_x_yyyy:分支打印开关,仅仅在打印总开关打开的时候有效。
1:当x = i时:控制打印函数(log_info / log_info_hexdump)的打印开关; 2:当x = d时:控制打印函数(log_debug / log_debug_hexdump)的打印开关; 3:当x = e时:控制打印函数(log_error / log_error_hexdump)的打印开关; 4:当x = c时:控制打印函数(log_char)的打印开关; 5:yyyy:控制相应的打印块; 注:若要打开相应打印,将CONFIG_DEBUG_LIBS(0)改为CONFIG_DEBUG_LIBS(1)即可!![]()
bd49_log_readme打印说明
1.4.5. 应用配置文件《app_config.h》介绍
应用配置文件《app_config.h》能配置与系统相关的配置:
1.4.5.1. 时钟配置
配置定义
含义
TCFG_SYS_PLL_CLK
系统时钟源,默认96M
备注
1.4.5.2. 串口配置
配置定义
含义
TCFG_UART_TX_PORT
串口打印输出引脚(默认PA5)
TCFG_UART_BAUDRATE
串口打印波特率
1.4.5.3. 按键配置
配置定义
含义
KEY_DOUBLE_CLICK_EN
使能按键多击
KEY_IO_EN
IO按键使能
KEY_AD_EN
AD按键使能
KEY_IR_EN
红外按键使能
KEY_MATRIX_EN
矩阵按键使能
KEY_TOUCH_EN
触摸按键使能
KEY_LPTOUCH_EN
LP触摸按键使能
AD_KEY_IO
AD按键设置脚位,默认PA8
IR_KEY_IO
红外按键设置脚位,默认PA6;
IR_KEY_TIMER
红外按键采集定时器设置,默认选择定时器TIMER3;
TOUCH_KEY_IO_SEL
触摸按键I/O口选择,可选择多组I/O口,默认PA7,PA10;
LPCTMU_CHx_EN
LP触摸按键通道使能,该通道对应固定引脚
D_HAS_KEY_VOICE
按键音使能
1.4.5.4. 低功耗配置
配置定义
含义
TCFG_VDDIOM_LEVEL
VDDIO电压选择,默认选择IOVDD 3.2v
POWER_WAKEUP_IO
低功耗唤醒I/O选择,默认与ADkey按键同引脚位,即PA8
POWER_WAKEUP_EDGE
唤醒边沿设置,默认下降沿
1.4.5.5. AUDIO DAC配置
- 1、SR_DEFAULT:默认DAC采样率,支持以下采样率
AW30N AUDIO 采样率支持情况
采样率
DAC
APA
8000
yes
no
11025
yes
no
12000
yes
no
16000
yes
no
22050
yes
no
24000
yes
no
32000
yes
yes
44100
yes
yes
48000
yes
yes
64000
yes
no
88200
yes
no
96000
yes
no
1.4.5.6. DAC数字音量设置淡入淡出配置
配置定义
含义
TCFG_DAC_VOL_FADE_EN
硬件DAC淡入淡出
DAC_SOFT_FADE_EN
软件运算淡入淡出
TCFG_DAC_VOL_FADE_STEP
配置范围0 ~ 15 (配置0 和 1 为一样效果)
TCFG_DAC_VOL_FADE_SLOW
配置范围0 ~ 15
1.4.5.7. 硬件EQ配置(AW30N无该功能)
配置定义
含义
TCFG_CFG_TOOL_ENABLE
硬件EQ 在线调试功能(AW30N无该功能)
TCFG_NULL_COMM
不支持通讯
TCFG_UART_COMM
串口通讯
TCFG_USB_COMM
USB通讯
TCFG_COMM_TYPE
选择通讯方式(AW30N无该功能)
1.4.5.8. UI显示配置
配置定义
含义
LED_5X7
LED数码管使能,会占用部分I/O,请查看app.h中的引脚分布
LCD_4X8_EN
LCD断码屏使能,会占用部分I/O,请查看驱动文件中的引脚分配(AW30N无该功能)
KEY_MATRIX_LCD_REUSE_EN
矩阵按键与LCD复用宏(AW30N无该功能)
POWERDOWN_KEEP_LCD
LCD断码屏powerdown低功耗保持(AW30N无该功能)
1.4.5.9. VM模块配置
配置定义
含义
SYS_MEMORY_SELECT
新 / 旧 VM选择
1.4.5.10. 外挂FLASH配置(FLASH Configuration)
配置定义
含义
TFG_EXT_FLASH_EN
外挂flash使能
TFG_SPI_HW_NUM
外挂flash使用的硬件spi组
TFG_SPI_UNIDIR_MODE_EN
外挂flash单线模式使能,单线模式下,flash 的 do 与 di 短接并连接到do的i/o引脚
TFG_SPI_WORK_MODE
spi模式选择
TFG_SPI_READ_DATA_WIDTH
spi位宽选择
TFG_SPI_CS_PORT_SEL
spi cs引脚选择
TFG_SPI_CS_PORT
spi cs引脚选择,用于配置ini文件下载数据到外挂flash
TFG_SPI_CLK_PORT_SEL
spi clk引脚选择
TFG_SPI_CLK_PORT
spi clk引脚选择,用于配置ini文件下载数据到外挂flash
TFG_SPI_DO_PORT_SEL
spi do引脚选择
TFG_SPI_DO_PORT
spi do引脚选择,用于配置ini文件下载数据到外挂flash
TFG_SPI_DI_PORT_SEL
spi di引脚选择
TFG_SPI_DI_PORT
spi di引脚选择,用于配置ini文件下载数据到外挂flash
SPI_SD_IO_REUSE
SD卡 与 SPI 复用
1.4.5.11. SD模块配置
配置定义
含义
TFG_SD_EN
SD卡模块使能
TFG_SDPG_ENABLE
SD卡模块使用SD_PG(PC3)供电使能
1.4.5.12. USB模块配置
配置定义
含义
TCFG_PC_ENABLE
PC模块使能
TCFG_USB_MSD_CDROM_ENABLE
无该功能
TCFG_USB_EXFLASH_UDISK_ENABLE
外掛FLASH模拟U盘使能
TCFG_UDISK_ENABLE
U盘模块使能
USB_DEVICE_CLASS_CONFIG
USB从机功能选择
SD_CDROM_EN
无该功能
1、USB_DEVICE_CLASS_CONFIG:USB从机功能选择
1:MASSSTORAGE_CLASS:大容量存储(读卡器)功能; 2:SPEAKER_CLASS:AUDIO功能; 3:HID_CLASS:HID控制功能; 4:MIC_CLASS:麦克风功能; 5:CUSTOM_HID_CLASS:CUSTOM_HID控制功能(主要用于手机APP升级); 6:AUDIO_CALSS:即SPEAKER_CLASS 与 MIC_CLASS。
备注
- USB从机功能的六个CLASS不是都能任意开启,需要适配以下规则: ::
- 1:USB 可分为 3个端点(1,2,3),每个端点又分为输入和输出;2:任意功能(CLASS),当其占据同一个端点的 输入/输出,就不能同时使用;3:任意功能(CLASS),配置其占据的是哪一个端点的 输入/输出,可在usb_std_class_def.h配置
- 例如:
MASSSTORAGE_CLASS 的 MSD_BULK_EP_OUT 占据了通道1的输入 MSD_BULK_EP_IN 占据了通道1的输出(IN / OUT是对应主机端的方向)
CDC_CLASS的 CDC_DATA_EP_OUT 占据了通道1的输入 CDC_DATA_EP_IN 占据了通道1的输出(IN / OUT是对应主机端的方向)
则 MASSSTORAGE_CLASS 与 CDC_CLASS 功能不能同时开启
!["USB_CLASS_readme“](../_images/USB_CLASS_readme.png)
USB_CLASS_readme
1.4.6. APP配置文件《app_modules.h》介绍
应用配置文件《app_modules.h》中的宏定义能配置支持的编解码格式、以及APP模式相关的配置;每一个配置项都可独立开关,关闭没有用到的宏定义,可以 减少生成的代码量,节省程序空间和运行空间 。![]()
app_moduels.h配置
1.5. AW30N超频说明
AW30N的系统时钟最高运行240Mhz,内部的系统Flash的波特率限制只能跑 48M 和 96Mhz;
系统时钟不超过 |
内核电压挡位 |
系统Flash |
A0芯片外挂系统Flash |
---|---|---|---|
128Mhz |
1.20v |
支持 |
支持 |
160mhz |
1.32v |
支持 |
支持 |
192Mhz |
1.38v |
支持 |
支持 |
表 系统时钟支持情况
系统Flash波特率 |
系统Flash |
A0芯片外挂系统Flash |
---|---|---|
“<= 50Mhz” |
支持 |
支持 |
“>=50mhz” & “<=96Mhz” |
支持 |
不能直接支持 |
“>96MHZ” |
不支持 |
不支持 |
表 系统Flash波特率支持情况
备注