应用开发*
1. 功能设置*
1.1. 管脚复用*
打开 boards\nationalchip\fornax_module_1v\board.c 文件
static const GX_PIN_CONFIG pin_table[] = {
// id func | func 0 | func 1 | func 2 | func 3 | func 4 | func 5 | func 6 | func 7 |
{ 0, 0}, // | IDLE | DAC_P | UART1_TX | PWM0 | I2S_OUT | I2C_SDA | PWM_PP | GPIO0 |
{ 1, 0}, // | IDLE | DAC_N | UART1_RX | PWM1 | I2S_LR | I2C_SCL | PWM_NP | GPIO1 |
{ 2, 2}, // | SYS_I2C_SDA | | UART0_RX | PWM2 | JTAG_TMS | I2C_SDA | PWM_PP | GPIO2 |
{ 3, 2}, // | SYS_I2C_SCL | | UART0_TX | PWM3 | JTAG_TCK | I2C_SCL | PWM_NP | GPIO3 |
{ 4, 0}, // | RSTN | CLK_IN | CLK_OUT | | I2S_DIN | JTAG_TMS | | GPIO4 |
{ 5, 0}, // | JTAG_TMS | I2S_DIN | UART2_RX | PWM5 | I2S_BCLK | I2C_SDA | IRC_TX | GPIO5 |
{ 6, 0}, // | JTAG_TCK | | UART2_TX | PWM0 | I2S_MCLK | I2C_SCL | IRC_EN | GPIO6 |
{ 7, 2}, // | IDLE | SPI2_CLK | UART2_RX | PWM1 | I2S_MCLK | I2C_SDA | IRC_RX | GPIO7 |
{ 8, 2}, // | IDLE | SPI2_CS | UART2_TX | PWM2 | I2S_BCLK | I2C_SCL | IRC_TX | GPIO8 |
{ 9, 7}, // | IDLE | SPI2_MISO | UART2_CTS | PWM3 | I2S_DOUT | | IRC_RX | GPIO9 |
{10, 0}, // | IDLE | SPI2_MOSI | UART2_RTS | PWM4 | I2S_LR | | IRC_EN | GPIO10 |
{11, 0}, // | IDLE | SPI2_CS | | PWM1 | MSPI1_CS | | PWM_PN | GPIO11 |
{12, 0}, // | IDLE | SPI2_CLK | | PWM2 | MSPI2_CLK | | PWM_NN | GPIO12 |
{13, 0}, // | IDLE | SPI2_MOSI | | PWM3 | MSPI1_MOSI | | | GPIO13 |
{14, 0}, // | IDLE | SPI2_MISO | | PWM4 | MSPI1_MISO | JTAG_TCK | | GPIO14 |
{15, 7}, // | IDLE | I2S_BCLK | UART2_RX | PWM5 | MSPI1_WP | I2C_SDA | IRC_TX | GPIO15 |
{16, 7}, // | BOOT2 | I2S_MCLK | UART2_TX | PWM0 | MSPI1_HOLD | I2C_SCL | IRC_RX | GPIO16 |
};
id代表pin脚号。fun代表复用的功能,以0为起始索引。比如0代表复用为fun0,1代表复用为fun1。
这里是系统启动后,默认的管脚复用配置。在应用代码里,也可以根据需求,随时改变,见下面例子:
padmux_set(0, 7); // pin0设置为GPIO
padmux_set(1, 7); // pin1设置为GPIO
2. 配置选项*
执行:make menuconfig 打开配置选项
进入 MCU settings 可以设置打印开关,和打印使用的串口号。打印的波特率,默认是921600
自己想修改波特率的话,可以搜索宏CONFIG_MCU_ENABLE_PRINTF,找到下面的地方
void ovp_system_init(void)
{
gx_icache_enable();
gx_dcache_enable();
board_init();
#ifdef CONFIG_MCU_ENABLE_PRINTF
gx_uart_init(CONFIG_MCU_PRINT_UART_PORT_NUM, 921600);
#endif
如果要支持双备份升级,需要勾选 Enable dual bank upgrade
Time Profiler settings 用于算法和NPU模型的性能分析,一般用户开发无需关注
OVP Workmode Settings 默认是Has Offline Asr workmode,工作在离线唤醒模式下。Has Bypass workmode 不跑任何算法,一般用于录原始音场景
I/O Buffer Settings ,需要关注 REF Channel Source (ADC) ,建议使用外部ADC做回采(需要硬件支持)
这里可以设置麦克风的增益和硬件回采的增益,其它的设置不要随意修改
Olab Panda Settings > VMA Settings
降噪等级Denoise Level可以选择0,1,2,3,值越大降噪越厉害,但是声音失真度也会越高
AEC可以设置滤波器长度,默认1024,不建议修改
支持opus编码,编码可以支持16kbps和24kbps,编码帧长可以选择40ms和20ms(单声道16k 16bit PCM音频)
Enable DRC 默认12dB增益,可以根据云端识别要求调整(比如云端识别率对音量大小有要求的情况)
OVP Application Settings -> OVP Application Settings 里,Smartbot App 用于wifi大模型方案的app
Select flow control type 可以选择串口协议流控,或者GPIO流控
播放器设置,比如播放音量,是否使用外部功放以及外部功放的静音脚选择。播放支持PCM和OPUS格式两种选择,opus播放可以设置16K和8K采样率(目前只支持16K采样率的)