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 使用的硬件环境开发板由底板和顶板两部分组成。
AW30N 底板包含的模块如下图所示:
"AD30N开发板“

其中模块:

模块

模块详情

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 顶板包含的模块如下图所示:

"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打开;

"打开CodeBlock工程方式一“

图2.1 打开CodeBlock工程方式一

1.2.1.2. 编译器选择

如下图所示,AW30N SDK需使用杰理PI32 lto Compiler编译器进行编译:

"CodeBlocks编译器选择“

CodeBlocks编译器选择

1.2.1.3. 打开工程后找到main.c文件

打开工程后会显示在左侧的Management
点击打开Sources -> apps -> app -> bsp -> start -> main.c,里面的c_main函数即是我们的工程的主函数。
"打开main.c文件“

打开main.c文件

1.2.1.4. USB强制下载工具连接开发板

第一步:将USB强制下载工具的7号拨片拨至ON,其余拨片拨至OFF;(该做法可使用下载工具的rx口当作串口使用)
第二步:短按下载器的按键,让闪烁的绿灯灭灯,即进入下载模式;
"USB强制下载工具使用“

图2.4 USB强制下载工具使用

1.2.1.5. 编译下载程序并运行

点击codeblocks的编译(Build),如果有改动库文件,需要点击全编译(Rebuild);

"CodeBlocks编译“

CodeBlocks编译

下方logs & others(快捷键F2)会显示下载结果,有下载完毕即下载成功;

"CodeBlocks编译下载成功“

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应用方案选择“

AW30N应用方案选择

SDK应用方案入口如下:
"AW30N应用入口“

AW30N应用入口

1.4.2. 链接LD文件修改说明

由于芯片内部ram资源紧缺,不可能所有功能同时打开,为此在链接文件里,把部分功能在同一片ram复用,以此来节省ram空间花费。

  1. SDK应用链接LD文件的overlay段分布,根据不同应用方案采取不同的排布方式,其余段共用;

  2. 链接文件LD为开源内容,用户可自行查找相关修改方法;
    "AW30N应用LD文件overlay说明“

    AW30N应用LD文件overlay说明

1.4.3. SDK栈空间大小修改说明

  1. SDK默认栈空间大小为3k字节;

  2. BLE遥控器Dongle主机方案默认增大至6k字节;

  3. 用户可在LD文件中,自行拓展栈空间大小;
    "SDK拓展栈空间大小“

    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 打印配置“

bd49_log_readme打印说明

1.4.5. 应用配置文件《app_config.h》介绍

应用配置文件《app_config.h》能配置与系统相关的配置:

1.4.5.1. 时钟配置

配置定义

含义

TCFG_SYS_PLL_CLK

系统时钟源,默认96M

备注

调用clk_set(“sys”, 时钟频率) 即可配置系统时钟
时钟频率:可配置任意立即数;
函数返回值:实际配置成功的系统时钟

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“

USB_CLASS_readme

1.4.6. APP配置文件《app_modules.h》介绍

应用配置文件《app_modules.h》中的宏定义能配置支持的编解码格式、以及APP模式相关的配置;
每一个配置项都可独立开关,关闭没有用到的宏定义,可以 减少生成的代码量,节省程序空间和运行空间
"app_moduels.h配置“

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波特率支持情况

备注

当使用A0芯片时,芯片内部没有自带系统flash,所以需要外挂系统flash,
SDK的sfc波特率只能运行在 48M 和 96M,目前工作在48M(相对稳定);
而由于Flash的型号以及性能,加上PCB布线等情况的影响,
不能预测系统Flash波特率运行在超过48Mhz、甚至是到96MHZ的具体情况;
在此种情况下,客户如果需要系统Flash波特率运行在超过48Mhz,需要自行评估。