板级配置使用说明¶
1. 概述¶
本文为CI14LP系列芯片SDK板级适配文档,旨在介绍当开发人员使用非SDK标准板时,如何修改SDK,使其适配新的板子。
2. 使用说明¶
板级配置代码路径:SDK\driver\boards
2.1. 代码结构¶
| 源文件 | 说明 |
|---|---|
| board.c / board.h | 板级配置接口 |
| CI-L0XGS01D-V10.h | CI标准板L0XGS01D配置头文件(SDK默认板) |
| CI-14LP-TEST-V10.h | CI标准板14LP-TEST配置头文件 |
board.h通过 user_config.h 中的宏自动关联芯片与板级头文件:
#define CI_CHIP_TYPE 3422 //芯片型号,关联 driver\ci14lp_chip_driver\ci3422.h
#define BOARD_CONFIG_FILE "CI-L0XGS01D-V10.h" //板级配置源文件关联到CI-L0XGS01D-V10.h
其中 CI_CHIP_TYPE 通过 INCLUDE_BOARD_HEADER(PREFEX, CI_CHIP_TYPE) 自动包含 ci3422.h 芯片头文件,BOARD_CONFIG_FILE 则包含具体的板级引脚配置头文件。
板级配置头文件内容以宏定义为主,涵盖:
| 配置类别 | 主要宏 |
|---|---|
| 时钟配置 | USE_EXT_OSC4M_PLL_SRC(外部4M晶振)、USE_EXT_OSC32K(外部32K晶振)、PLL_SRC_FREQUENCY、SRC_32K_FREQUENCY |
| 麦克风输入 | MIC_DIFF_SINGLE(差分/单端输入选择) |
| CORE电压引脚 | CORE_VOLTAGE_PAD(固定PA2) |
| 低功耗退出引脚 | EXIT_DEEP_LOWPOWER_PIN、触发方式 |
| UART0/½引脚 | UARTx_TX_PIN、UARTx_RX_PIN、UARTx_PIN_EN、UARTx_OPEN_DRAIN_EN、UARTx_TX_PULL、UARTx_RX_PULL |
| IIS引脚 | EXT_IIS_PIN_A_EN/B_EN、EXT_IIS_LRCLK/SCLK/MCLK/SDI/SDO_PIN及REUSE |
| IIC0/1引脚 | IICx_SDA_PIN、IICx_SCL_PIN、IICx_PIN_EN、IICx_SDA_PULL、IICx_SCL_PULL |
| SPI引脚 | SPI_PIN_EN、SPI_CS_PIN、SPI_RXD_PIN、SPI_TXD_PIN、SPI_CLK_PIN |
| PWM0~3引脚 | PWMx_PIN |
| TIMER capture引脚 | TIMERx_CAPTURE_PIN |
| KEY_SCAN引脚 | KEY_SCAN行列引脚 |
2.2. 新板添加步骤¶
当开发者需要使用SDK没有对应配置头文件的新板时,需要按照如下步骤进行添加;若SDK中已有配置源文件,只需要按照步骤二关联当前板子即可。
2.2.1. 步骤一:添加源文件¶
添加新板头文件,例如CI-xxx.h。添加方法:复制CI-L0XGS01D-V10.h到 SDK\driver\boards 中,并将其重命名为CI-xxx.h,并修改源文件中对应的接口中的内容(按2.1节表格逐项核对引脚分配),若需新增接口查看步骤三。
注意
新板头文件中的 BD_SURPPORT_CHIP_NAME 需与所支持的芯片型号一致(如3422),同时注意保留”固定不可修改”的宏(如CORE电压引脚相关配置)原值。
2.2.2. 步骤二:关联新板源文件¶
在 SDK\driver\boards 下添加好新板的源文件之后,需要将新板源文件与当前SDK关联起来。关联方法:打开工程代码,修改 projects\offline_asr_sample\src\user_config.h 中的宏定义,且修改板子芯片型号,使新的板级配置源文件被关联。
#define CI_CHIP_TYPE 3422 //修改板子的芯片型号
#define BOARD_CONFIG_FILE "CI-xxx.h" //板级配置源文件关联到CI-xxx.h
2.2.3. 步骤三:新增接口添加说明¶
(1) 在board.c文件中添加接口实现。board.c/board.h中已提供的板级接口如下:
| 接口 | 说明 |
|---|---|
| pad_config_for_uart | 引脚复用配置为UART功能 |
| pad_config_for_iis | 引脚复用配置为IIS功能 |
| pad_config_for_power_amplifier | 引脚复用配置为GPIO,用于控制功放使能 |
| power_amplifier_on / off | 开启/关闭功放使能 |
| pad_config_for_i2c | 引脚复用配置为IIC功能 |
| pad_config_for_spi | 引脚复用配置为SPI功能 |
| pad_config_for_pwm | 引脚复用配置为PWM功能 |
| pad_config_for_timer_capture | 引脚复用配置为TIMER的capture功能 |
| pad_config_for_key_scan | 引脚复用配置为KEY_SCAN按键扫描功能 |
| pad_config_for_core_voltage | 引脚用于core电压配置 |
| main_set_core_voltage_1_1v | 设置core电压为1.1V |
| pad_config_for_madc_dmic | 引脚复用配置为madc的数字dmic功能 |
| pad_config_for_dcodec_dmic | 引脚复用配置为dcodec的数字dmic功能 |
| pad_config_for_dcodec_dac | 引脚复用配置为dcodec的pwm输出功能 |
| audio_in_codec_registe | 录音codec注册 |
| audio_play_out_codec_registe | 播音codec注册 |
| audio_pre_rslt_out_codec_init | 语音前处理结果IIS输出初始化 |
| clear_aon_core_audio_buffer | 清理AON核音频BUFFER数据 |
| board_clk_source_set | 选择晶振/RC作为时钟源 |
(2) 在board.h文件中添加函数声明,并按照需要在CI-xxx.h中补充对应引脚宏。
2.3. 波特率校准联动¶
当新板使用内部RC(USE_EXT_OSC4M_PLL_SRC = 0)时,board.h会自动强制开启波特率校准功能(UART_BAUDRATE_CALIBRATE = 1),详见 ☞《SDK波特率校准功能说明》。
#if (USE_EXT_OSC4M_PLL_SRC == 0) //使用内部RC时,建议开启波特率自适应(需要电控增加对应支持)。
#undef UART_BAUDRATE_CALIBRATE
#define UART_BAUDRATE_CALIBRATE 1 // 是否使能波特率校准功能。开启后,连续发包间隔必须大于1ms,否则可能丢包。
#endif