chore: migrate project into clean repository

This commit is contained in:
yuuux
2026-08-13 16:50:52 +08:00
commit d1d25a09e7
27405 changed files with 9422808 additions and 0 deletions

View File

@@ -0,0 +1,17 @@
# ARCS BOARD SUPPORT
#
# Copyright (c) 2025, LISTENAI
# SPDX-License-Identifier: Apache-2.0
# 创建板型库
listenai_library_named(module_boards)
# 添加源文件
listenai_library_sources(
pinmux.c
board.c
)
# 添加头文件路径
listenai_include_directories(${CMAKE_CURRENT_SOURCE_DIR})

View File

@@ -0,0 +1,18 @@
# Board Configuration
#
# Copyright (c) 2025, LISTENAI
# SPDX-License-Identifier: Apache-2.0
config BOARD_NAME
string
default "arcs_mini"
prompt "Board Name"
help
Board Name
config BOARD_ARCS_MINI
bool
default y
help
Board is arcs_mini

View File

@@ -0,0 +1,190 @@
# ARCS Mini 开发板
## 板型概述
ARCS Mini 是一款紧凑型开发板,适用于快速原型开发和嵌入式应用学习。
**板型标识:** `arcs_mini`
## 板型外观
![ARCS Mini 开发板](../../assets/arcs_mini_board.png)
*ARCS Mini 开发板外观图(标注序号说明见下表)*
## 硬件接口说明
下表详细说明了开发板上的各个接口和组件:
| 序号 | 接口/组件 | 说明 |
|------|----------|------|
| 1 | 预留烧录串口 | 引出可用于烧录 boot 固件和查看日志的引脚。注意boot 固件已在工厂预烧录,一般不需要使用此接口 |
| 2 | 屏幕SPI接口 | 屏幕连接器,用于连接开发板默认附带的显示屏 |
| 3 | 摄像头DVP接口 | 摄像头 FPC 连接器,用于连接开发板默认附带的摄像头 |
| 4 | I/O拓展接口 | 引出 6 个可编程 GPIO 和一组电源/GND可用于连接外部传感器或其他外部设备。<br>引脚定义PCBA 放置如图所示时,从下到上依次为 VCC(3.3V)、GND、A04、A05、A06、A07、A08、A09 |
| 5 | 主功能按键 | 用于开发板开关机等交互触发操作 |
| 6 | 充放电LED | 充电状态指示灯,充电时红色常亮 |
| 7 | USB接口 | TypeC 接口,提供供电、充电、固件烧录功能(需要已烧录 boot 固件) |
| 8 | 可编程LED | 支持通过编程控制的 LED使用 B01 引脚 |
| 9 | RST按钮 | Reset 按键,短按该按键会对开发板执行复位操作 |
| 10 | 麦克风接口 | 用于连接开发板默认附带的驻极体麦克风,用户也可以替换或外接其他麦克风 |
| 11 | 扬声器接口 | 用于连接开发板默认附带的扬声器,用户也可以替换或外接其他扬声器 |
| 12 | 锂电池接口 | 用于连接开发板默认附带的锂电池 |
## 硬件特性
### 主要参数
- **芯片平台**:基于 ARCS 架构
- **板型尺寸**:紧凑型设计
- **适用场景**:快速原型开发、教学演示、功能验证
### 外设支持
#### 串口通信UART
| 串口 | 引脚 | 功能 | 功能码 | 说明 |
|------|------|------|--------|------|
| UART0 | PAD_A[3] | AP_LOG_TX | 2 | 主串口 TXAP 日志输出) |
| UART0 | PAD_A[2] | AP_LOG_RX | 2 | 主串口 RXAP 日志输出) |
| UART2 | PAD_B[2] | CP_LOG_TX | 3 | 辅助串口 TXCP 日志输出) |
#### I2C 总线
| 总线 | 引脚 | 功能 | 功能码 | 说明 |
|------|------|------|--------|------|
| I2C0 | PAD_B[6] | SCL | 8 | 主 I2C 时钟线(摄像头) |
| I2C0 | PAD_B[7] | SDA | 8 | 主 I2C 数据线(摄像头) |
#### SPI 总线
| 总线 | 引脚 | 功能 | 功能码 | 说明 |
|------|------|------|--------|------|
| SPI0 | PAD_A[22] | CS | 5 | LCD SPI 片选 |
| SPI0 | PAD_A[24] | MOSI | 5 | LCD SPI 主出从入 |
| SPI0 | PAD_A[25] | CLK | 5 | LCD SPI 时钟线 |
#### GPIO通用输入/输出)
| 引脚组 | 引脚 | 功能名称 | 功能码 | 说明 |
|--------|------|----------|--------|------|
| GPIO_A | PAD_A[0] | CAMERA_RST | 1 | 摄像头复位控制 |
| GPIO_A | PAD_A[1] | PA_EN | 1 | 功放使能控制 |
| GPIO_A | PAD_A[4-9] | 可编程 GPIO | 0 | IO 扩展接口 |
| GPIO_A | PAD_A[23] | LCD_CD | 0 | LCD 命令/数据选择 |
| GPIO_A | PAD_A[27] | LCD_TE | 0 | LCD 撕裂效应信号 |
| GPIO_B | PAD_B[0] | USB_DET | 0 | USB 检测 |
| GPIO_B | PAD_B[1] | LED | 0 | LED 指示灯控制 |
| GPIO_B | PAD_B[3] | POWER_EN | 0 | 电源使能控制 |
| GPIO_B | PAD_B[4] | POWER_KEY | 0 | 电源按键输入 |
| GPIO_B | PAD_B[8] | CHARGE_DET | 0 | 充电检测 |
| GPIO_B | PAD_B[9] | LCD_RST | 0 | LCD 复位控制 |
#### PWM脉宽调制
| 功能名称 | 引脚 | 功能码 | 说明 |
|----------|------|--------|------|
| LCD_PWM | PAD_A[21] | 12 | LCD 背光亮度调节 |
#### SDIO
| 接口 | 引脚范围 | 引脚数量 | 功能码 | 说明 |
|------|----------|----------|--------|------|
| SDIO | PAD_A[4-9] | 6 | 15 | SD 卡/eMMC 接口(数据/控制线) |
#### DVP数字视频接口
| 接口 | 引脚范围 | 引脚数量 | 功能码 | 说明 |
|------|----------|----------|--------|------|
| DVP | PAD_A[10-20, 26] | 12 | 16 | 摄像头接口(数据线) |
#### ADC模数转换
| 功能 | 通道引脚 | 功能码 | 说明 |
|------|----------|--------|------|
| ADC | PAD_B[5] | 3 | 电池电压检测AON 域) |
## 引脚配置说明
所有外设的引脚复用配置定义在 [pinmux.h](pinmux.h) 和 [pinmux.c](pinmux.c) 中。这些文件由 LISA Pinmux Tool 自动生成,建议使用工具进行修改。
### 引脚别名
为方便使用,常用引脚已定义别名(参见 [pinmux.h:26-41](pinmux.h#L26-L41)
```c
CAMERA_RST_PIN // PAD_A[0]
PA_EN_PIN // PAD_A[1]
AP_LOG_RX_PIN // PAD_A[2]
AP_LOG_TX_PIN // PAD_A[3]
LCD_PWM_PIN // PAD_A[21]
LCD_CD_PIN // PAD_A[23]
LCD_TE_PIN // PAD_A[27]
CP_LOG_TX_PIN // PAD_B[2]
POWER_EN_PIN // PAD_B[3]
POWER_KEY_PIN // PAD_B[4]
BAT_ADC_PIN // PAD_B[5]
CHARGE_DET_PIN // PAD_B[8]
LCD_RST_PIN // PAD_B[9]
USB_DET_PIN // PAD_B[0]
LED_PIN // PAD_B[1]
```
### 引脚功能说明
下表为 LS26 芯片在 Arcs-Mini 开发板上的 GPIO 分配使用列表:
| 引脚/端口 | 主功能 | 说明/连接外设 | 分类 |
|-----------|--------|---------------|------|
| GPIOA_00 | CAM_RST | 摄像头复位 | 摄像头 |
| GPIOA_01 | PA_EN | 功放使能控制 | 音频 |
| GPIOA_02 | UART0 RX | 预留烧录串口 | 烧录&日志 |
| GPIOA_03 | UART0 TX | 预留烧录串口 | 烧录&日志 |
| GPIOA_04 | 可编程 GPIO | IO 扩展接口 | I/O 扩展 |
| GPIOA_05 | 可编程 GPIO | IO 扩展接口 | I/O 扩展 |
| GPIOA_06 | 可编程 GPIO | IO 扩展接口 | I/O 扩展 |
| GPIOA_07 | 可编程 GPIO | IO 扩展接口 | I/O 扩展 |
| GPIOA_08 | 可编程 GPIO | IO 扩展接口 | I/O 扩展 |
| GPIOA_09 | 可编程 GPIO | IO 扩展接口 | I/O 扩展 |
| GPIOA_10 | HSYNC | DVP 摄像头水平同步 | 摄像头 |
| GPIOA_11 | VSYNC | DVP 摄像头垂直同步 | 摄像头 |
| GPIOA_12 | DVP_CLK | DVP 摄像头像素时钟 | 摄像头 |
| GPIOA_13 | DVP_D4 | DVP 摄像头数据线 4 | 摄像头 |
| GPIOA_14 | DVP_D5 | DVP 摄像头数据线 5 | 摄像头 |
| GPIOA_15 | DVP_D6 | DVP 摄像头数据线 6 | 摄像头 |
| GPIOA_16 | DVP_D7 | DVP 摄像头数据线 7 | 摄像头 |
| GPIOA_17 | DVP_D8 | DVP 摄像头数据线 8 | 摄像头 |
| GPIOA_18 | DVP_D9 | DVP 摄像头数据线 9 | 摄像头 |
| GPIOA_19 | DVP_D10 | DVP 摄像头数据线 10 | 摄像头 |
| GPIOA_20 | DVP_D11 | DVP 摄像头数据线 11 | 摄像头 |
| GPIOA_21 | LCD_PWM | LCD 背光 PWM 控制 | 显示 |
| GPIOA_22 | LCD_SPI0_CS | LCD SPI 片选 | 显示 |
| GPIOA_23 | LCD_GPIO_WR | LCD 命令/数据选择 | 显示 |
| GPIOA_24 | LCD_SPI0_MOSI | LCD SPI 数据输出 | 显示 |
| GPIOA_25 | LCD_SPI0_CLK | LCD SPI 时钟 | 显示 |
| GPIOA_26 | DVP_MCLK | DVP 摄像头主时钟 | 摄像头 |
| GPIOA_27 | LCD_TE | LCD 撕裂效应信号 | 显示 |
| GPIOA_28 | MIC1 AEC_P | 硬回采正极 | 音频 |
| GPIOA_29 | MIC1 AEC_N | 硬回采负极 | 音频 |
| GPIOA_30 | MIC0 INP | 麦克风输入正极 | 音频 |
| GPIOA_31 | MIC0 INN | 麦克风输入负极 | 音频 |
| GPIOB_00 | USB_DET | USB 插入检测 | 通信 (USB) |
| GPIOB_01 | LED | 用户 LED | GPIO |
| GPIOB_02 | uart2_txd | 预留烧录串口 TX | 烧录&日志 |
| GPIOB_03 | POW_EN | 电源使能 | 电源 |
| GPIOB_04 | power_KEY | 主功能按键 | 输入/控制 |
| GPIOB_05 | ADC_Bat_Vol | 电池电量检测 | 电源 |
| GPIOB_06 | SDA0 | I2C0 数据线(摄像头) | 通信 (I2C) |
| GPIOB_07 | CLK0 | I2C0 时钟线(摄像头) | 通信 (I2C) |
| GPIOB_08 | CHARGE_DET | 充电状态检测 | 电源 |
| GPIOB_09 | LCD_RST | LCD 复位 | 显示 |
| FLASH_CS_N | FLASH_CS_N | Boot Flash 片选 | 存储 (Flash) |
| FLASH_MISO | FLASH_MISO | Boot Flash 数据输入 | 存储 (Flash) |
| FLASH_WP_N | FLASH_WP_N | Boot Flash 写保护 | 存储 (Flash) |
| FLASH_HOLD_N | FLASH_HOLD_N | Boot Flash 保持 | 存储 (Flash) |
| FLASH_CLK | FLASH_CLK | Boot Flash 时钟 | 存储 (Flash) |
| FLASH_MOSI | FLASH_MOSI | Boot Flash 数据输出 | 存储 (Flash) |
| USB_DP | USB_DP | USB 差分正极 | 通信 (USB) |
| USB_DM | USB_DM | USB 差分负极 | 通信 (USB) |
| MIC_BIAS | MIC_BIAS | 麦克风偏置 | 音频 |
| LIN_OUTP | LIN_OUTP | 差分输出正极 | 音频 |
| LIN_OUTN | LIN_OUTN | 差分输出负极 | 音频 |

View File

@@ -0,0 +1,17 @@
/*
* Copyright (c) 2025, LISTENAI
*
* SPDX-License-Identifier: Apache-2.0
*/
/**
* @file board.c
* @brief 板级初始化实现
*/
#include "board.h"
const char* board_get_name(void)
{
return "arcs_mini";
}

View File

@@ -0,0 +1,26 @@
/**
* @file board.h
* @brief 板级接口定义
*
* 本文件定义了板级支持包必须实现的标准接口。
* 所有板型都应该提供这些接口,以确保系统能够正确初始化硬件。
*/
#pragma once
#include "pinmux.h"
#ifdef __cplusplus
extern "C" {
#endif
/**
* @brief 获取板型名称
*
* @return 指向板型名称字符串的指针(静态字符串,无需释放)
*/
const char* board_get_name(void);
#ifdef __cplusplus
}
#endif

View File

@@ -0,0 +1,134 @@
/*
* Copyright (c) 2026, LISTENAI
*
* SPDX-License-Identifier: Apache-2.0
*/
/**
* @file pinmux.c
* @brief 引脚复用配置
*
* 本文件由 LISA Pinmux Tool 自动生成
* 生成工具: https://tool.listenai.com/ls-pinmux-tool/
*
* 说明:
* - 所有外设的 pinmux 函数都会生成,未配置的外设函数体为空
* - 所有函数使用 weak 属性修饰,可在用户代码中重写
* - 尽量避免手动修改该文件,建议统一使用工具生成
*/
#include "pinmux.h"
#include "IOMuxManager.h"
__attribute__((weak)) void lisa_adc_pinmux()
{
AON_IOMuxManager_PinConfigure(CSK_IOMUX_PAD_B, BAT_ADC_PIN, 3);
}
__attribute__((weak)) void lisa_capture_pinmux()
{
}
__attribute__((weak)) void lisa_dvp_pinmux()
{
IOMuxManager_PinConfigure(CSK_IOMUX_PAD_A, CAM_HSYNC_PIN, 16);
IOMuxManager_PinConfigure(CSK_IOMUX_PAD_A, CAM_VSYNC_PIN, 16);
IOMuxManager_PinConfigure(CSK_IOMUX_PAD_A, CAM_PCLK_PIN, 16);
IOMuxManager_PinConfigure(CSK_IOMUX_PAD_A, CAM_D0_PIN, 16);
IOMuxManager_PinConfigure(CSK_IOMUX_PAD_A, CAM_D1_PIN, 16);
IOMuxManager_PinConfigure(CSK_IOMUX_PAD_A, CAM_D2_PIN, 16);
IOMuxManager_PinConfigure(CSK_IOMUX_PAD_A, CAM_D3_PIN, 16);
IOMuxManager_PinConfigure(CSK_IOMUX_PAD_A, CAM_D4_PIN, 16);
IOMuxManager_PinConfigure(CSK_IOMUX_PAD_A, CAM_D5_PIN, 16);
IOMuxManager_PinConfigure(CSK_IOMUX_PAD_A, CAM_D6_PIN, 16);
IOMuxManager_PinConfigure(CSK_IOMUX_PAD_A, CAM_D7_PIN, 16);
IOMuxManager_PinConfigure(CSK_IOMUX_PAD_A, CAM_MCLK_PIN, 16);
}
__attribute__((weak)) void lisa_gpioa_pinmux()
{
IOMuxManager_PinConfigure(CSK_IOMUX_PAD_A, CAMERA_RST_PIN, 1);
IOMuxManager_PinConfigure(CSK_IOMUX_PAD_A, PA_EN_PIN, 1);
IOMuxManager_PinConfigure(CSK_IOMUX_PAD_A, LCD_CD_PIN, 0);
IOMuxManager_PinConfigure(CSK_IOMUX_PAD_A, LCD_TE_PIN, 0);
}
__attribute__((weak)) void lisa_gpiob_pinmux()
{
IOMuxManager_PinConfigure(CSK_IOMUX_PAD_B, USB_DET_PIN, 0);
IOMuxManager_PinConfigure(CSK_IOMUX_PAD_B, LED_PIN, 0);
IOMuxManager_PinConfigure(CSK_IOMUX_PAD_B, POWER_EN_PIN, 0);
IOMuxManager_PinConfigure(CSK_IOMUX_PAD_B, POWER_KEY_PIN, 0);
IOMuxManager_PinConfigure(CSK_IOMUX_PAD_B, CHARGE_DET_PIN, 0);
IOMuxManager_PinConfigure(CSK_IOMUX_PAD_B, LCD_RST_PIN, 0);
}
__attribute__((weak)) void lisa_i2c0_pinmux()
{
IOMuxManager_PinConfigure(CSK_IOMUX_PAD_B, 6, 8);
IOMuxManager_PinConfigure(CSK_IOMUX_PAD_B, 7, 8);
}
__attribute__((weak)) void lisa_i2c1_pinmux()
{
}
__attribute__((weak)) void lisa_i2s0_pinmux()
{
}
__attribute__((weak)) void lisa_i2s1_pinmux()
{
}
__attribute__((weak)) void lisa_jtag_pinmux()
{
}
__attribute__((weak)) void lisa_pwm_pinmux()
{
IOMuxManager_PinConfigure(CSK_IOMUX_PAD_A, LCD_PWM_PIN, 12);
}
__attribute__((weak)) void lisa_qspi_lcd_pinmux()
{
}
__attribute__((weak)) void lisa_rgb_pinmux()
{
}
__attribute__((weak)) void lisa_sdio_pinmux()
{
}
__attribute__((weak)) void lisa_spi0_pinmux()
{
IOMuxManager_PinConfigure(CSK_IOMUX_PAD_A, LCD_CS_PIN, 5);
IOMuxManager_PinConfigure(CSK_IOMUX_PAD_A, LCD_SPI_DATA_PIN, 5);
IOMuxManager_PinConfigure(CSK_IOMUX_PAD_A, LCD_SPI_CLK_PIN, 5);
}
__attribute__((weak)) void lisa_spi1_pinmux()
{
}
__attribute__((weak)) void lisa_spi2_pinmux()
{
}
__attribute__((weak)) void lisa_uart0_pinmux()
{
IOMuxManager_PinConfigure(CSK_IOMUX_PAD_A, AP_LOG_RX_PIN, 2);
IOMuxManager_PinConfigure(CSK_IOMUX_PAD_A, AP_LOG_TX_PIN, 2);
}
__attribute__((weak)) void lisa_uart1_pinmux()
{
IOMuxManager_PinConfigure(CSK_IOMUX_PAD_B, CP_LOG_TX_PIN, 3);
}
__attribute__((weak)) void lisa_uart2_pinmux()
{
}

View File

@@ -0,0 +1,81 @@
/*
* Copyright (c) 2026, LISTENAI
*
* SPDX-License-Identifier: Apache-2.0
*/
/**
* @file pinmux.h
* @brief 引脚复用配置头文件
*
* 本文件由 LISA Pinmux Tool 自动生成
* 生成工具: https://tool.listenai.com/ls-pinmux-tool/
*
* 说明:
* - 包含所有外设 pinmux 函数的声明
* - 包含引脚别名宏定义(如果有设置)
* - 尽量避免手动修改该文件,建议统一使用工具生成
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
// Pin aliases
#define CAMERA_RST_PIN 0
#define PA_EN_PIN 1
#define AP_LOG_RX_PIN 2
#define AP_LOG_TX_PIN 3
#define CAM_HSYNC_PIN 10
#define CAM_VSYNC_PIN 11
#define CAM_PCLK_PIN 12
#define CAM_D0_PIN 13
#define CAM_D1_PIN 14
#define CAM_D2_PIN 15
#define CAM_D3_PIN 16
#define CAM_D4_PIN 17
#define CAM_D5_PIN 18
#define CAM_D6_PIN 19
#define CAM_D7_PIN 20
#define LCD_PWM_PIN 21
#define LCD_CS_PIN 22
#define LCD_CD_PIN 23
#define LCD_SPI_DATA_PIN 24
#define LCD_SPI_CLK_PIN 25
#define CAM_MCLK_PIN 26
#define LCD_TE_PIN 27
#define USB_DET_PIN 0
#define LED_PIN 1
#define CP_LOG_TX_PIN 2
#define POWER_EN_PIN 3
#define POWER_KEY_PIN 4
#define BAT_ADC_PIN 5
#define CHARGE_DET_PIN 8
#define LCD_RST_PIN 9
void lisa_adc_pinmux();
void lisa_capture_pinmux();
void lisa_dvp_pinmux();
void lisa_gpioa_pinmux();
void lisa_gpiob_pinmux();
void lisa_i2c0_pinmux();
void lisa_i2c1_pinmux();
void lisa_i2s0_pinmux();
void lisa_i2s1_pinmux();
void lisa_jtag_pinmux();
void lisa_pwm_pinmux();
void lisa_qspi_lcd_pinmux();
void lisa_rgb_pinmux();
void lisa_sdio_pinmux();
void lisa_spi0_pinmux();
void lisa_spi1_pinmux();
void lisa_spi2_pinmux();
void lisa_uart0_pinmux();
void lisa_uart1_pinmux();
void lisa_uart2_pinmux();
#ifdef __cplusplus
}
#endif

View File

@@ -0,0 +1,505 @@
{
"project": {
"id": 1,
"name": "ARCS_76PIN_MINI",
"sdk": "v0.1.0",
"soc": "LS2664",
"package": "QFN76"
},
"pinConfig": {
"PA00": {
"alias": "CAMERA_RST",
"function": "gpioa_00",
"instance": "GPIOA",
"peripheral": "GPIO",
"signal": "GPIO_A_00"
},
"PA01": {
"alias": "PA_EN",
"function": "gpioa_01",
"instance": "GPIOA",
"peripheral": "GPIO",
"signal": "GPIO_A_01"
},
"PA02": {
"alias": "AP_LOG_RX",
"function": "uart0_rxd",
"instance": "UART0",
"peripheral": "UART",
"signal": "RX"
},
"PA03": {
"alias": "AP_LOG_TX",
"function": "uart0_txd",
"instance": "UART0",
"peripheral": "UART",
"signal": "TX"
},
"PA10": {
"function": "vic_h_sync",
"peripheral": "DVP",
"instance": "DVP",
"signal": "VIC_H_SYNC",
"alias": "CAM_HSYNC"
},
"PA11": {
"function": "vic_v_sync",
"peripheral": "DVP",
"instance": "DVP",
"signal": "VIC_V_SYNC",
"alias": "CAM_VSYNC"
},
"PA12": {
"function": "vic_pixel_clk",
"peripheral": "DVP",
"instance": "DVP",
"signal": "VIC_PIXEL_CLK",
"alias": "CAM_PCLK"
},
"PA13": {
"function": "vic_pixel_data4",
"peripheral": "DVP",
"instance": "DVP",
"signal": "VIC_PIXEL_DATA4",
"alias": "CAM_D0"
},
"PA14": {
"function": "vic_pixel_data5",
"peripheral": "DVP",
"instance": "DVP",
"signal": "VIC_PIXEL_DATA5",
"alias": "CAM_D1"
},
"PA15": {
"function": "vic_pixel_data6",
"peripheral": "DVP",
"instance": "DVP",
"signal": "VIC_PIXEL_DATA6",
"alias": "CAM_D2"
},
"PA16": {
"function": "vic_pixel_data7",
"peripheral": "DVP",
"instance": "DVP",
"signal": "VIC_PIXEL_DATA7",
"alias": "CAM_D3"
},
"PA17": {
"function": "vic_pixel_data8",
"peripheral": "DVP",
"instance": "DVP",
"signal": "VIC_PIXEL_DATA8",
"alias": "CAM_D4"
},
"PA18": {
"function": "vic_pixel_data9",
"peripheral": "DVP",
"instance": "DVP",
"signal": "VIC_PIXEL_DATA9",
"alias": "CAM_D5"
},
"PA19": {
"function": "vic_pixel_data10",
"peripheral": "DVP",
"instance": "DVP",
"signal": "VIC_PIXEL_DATA10",
"alias": "CAM_D6"
},
"PA20": {
"function": "vic_pixel_data11",
"peripheral": "DVP",
"instance": "DVP",
"signal": "VIC_PIXEL_DATA11",
"alias": "CAM_D7"
},
"PA21": {
"alias": "LCD_PWM",
"function": "gpt_pwm_1",
"instance": "CH1",
"peripheral": "PWM",
"signal": "OUT"
},
"PA22": {
"function": "spi0_cs_n",
"peripheral": "SPI",
"instance": "SPI0",
"signal": "CS",
"alias": "LCD_CS"
},
"PA23": {
"alias": "LCD_CD",
"function": "gpioa_23",
"instance": "GPIOA",
"peripheral": "GPIO",
"signal": "GPIO_A_23"
},
"PA24": {
"function": "spi0_mosi",
"peripheral": "SPI",
"instance": "SPI0",
"signal": "MOSI",
"alias": "LCD_SPI_DATA"
},
"PA25": {
"function": "spi0_clk",
"peripheral": "SPI",
"instance": "SPI0",
"signal": "CLK",
"alias": "LCD_SPI_CLK"
},
"PA26": {
"function": "vic_clk_out",
"peripheral": "DVP",
"instance": "DVP",
"signal": "VIC_CLK_OUT",
"alias": "CAM_MCLK"
},
"PA27": {
"alias": "LCD_TE",
"function": "gpioa_27",
"instance": "GPIOA",
"peripheral": "GPIO",
"signal": "GPIO_A_27"
},
"PB00": {
"alias": "USB_DET",
"function": "gpiob_00",
"instance": "GPIOB",
"peripheral": "GPIO",
"signal": "GPIO_B_00"
},
"PB01": {
"alias": "LED",
"function": "gpiob_01",
"instance": "GPIOB",
"peripheral": "GPIO",
"signal": "GPIO_B_01"
},
"PB02": {
"alias": "CP_LOG_TX",
"function": "uart1_txd",
"instance": "UART1",
"peripheral": "UART",
"signal": "TX"
},
"PB03": {
"alias": "POWER_EN",
"function": "gpiob_03",
"instance": "GPIOB",
"peripheral": "GPIO",
"signal": "GPIO_B_03"
},
"PB04": {
"alias": "POWER_KEY",
"function": "gpiob_04",
"instance": "GPIOB",
"peripheral": "GPIO",
"signal": "GPIO_B_04"
},
"PB05": {
"alias": "BAT_ADC",
"function": "adc_ch3",
"instance": "CH3",
"peripheral": "ADC",
"signal": "IN"
},
"PB06": {
"function": "i2c0_sda",
"instance": "I2C0",
"peripheral": "I2C",
"signal": "SDA"
},
"PB07": {
"function": "i2c0_scl",
"instance": "I2C0",
"peripheral": "I2C",
"signal": "SCL"
},
"PB08": {
"alias": "CHARGE_DET",
"function": "gpiob_08",
"instance": "GPIOB",
"peripheral": "GPIO",
"signal": "GPIO_B_08"
},
"PB09": {
"alias": "LCD_RST",
"function": "gpiob_09",
"instance": "GPIOB",
"peripheral": "GPIO",
"signal": "GPIO_B_09"
}
},
"peripheralConfig": {
"ADC": {
"CH0": {
"IN": null
},
"CH1": {
"IN": null
},
"CH2": {
"IN": null
},
"CH3": {
"IN": "PB05"
},
"CH4": {
"IN": null
},
"CH5": {
"IN": null
}
},
"CAPTURE": {
"CH0": {
"IN": null
},
"CH1": {
"IN": null
},
"CH2": {
"IN": null
},
"CH3": {
"IN": null
},
"CH4": {
"IN": null
},
"CH5": {
"IN": null
},
"CH6": {
"IN": null
},
"CH7": {
"IN": null
}
},
"DVP": {
"DVP": {
"VIC_H_SYNC": "PA10",
"VIC_V_SYNC": "PA11",
"VIC_PIXEL_CLK": "PA12",
"VIC_CLK_OUT": "PA26",
"VIC_PIXEL_DATA0": null,
"VIC_PIXEL_DATA1": null,
"VIC_PIXEL_DATA2": null,
"VIC_PIXEL_DATA3": null,
"VIC_PIXEL_DATA4": "PA13",
"VIC_PIXEL_DATA5": "PA14",
"VIC_PIXEL_DATA6": "PA15",
"VIC_PIXEL_DATA7": "PA16",
"VIC_PIXEL_DATA8": "PA17",
"VIC_PIXEL_DATA9": "PA18",
"VIC_PIXEL_DATA10": "PA19",
"VIC_PIXEL_DATA11": "PA20"
}
},
"GPIO": {
"GPIOA": {
"GPIO_A_00": "PA00",
"GPIO_A_01": "PA01",
"GPIO_A_02": null,
"GPIO_A_03": null,
"GPIO_A_04": null,
"GPIO_A_05": null,
"GPIO_A_06": null,
"GPIO_A_07": null,
"GPIO_A_08": null,
"GPIO_A_09": null,
"GPIO_A_10": null,
"GPIO_A_11": null,
"GPIO_A_12": null,
"GPIO_A_13": null,
"GPIO_A_14": null,
"GPIO_A_15": null,
"GPIO_A_16": null,
"GPIO_A_17": null,
"GPIO_A_18": null,
"GPIO_A_19": null,
"GPIO_A_20": null,
"GPIO_A_21": null,
"GPIO_A_22": null,
"GPIO_A_23": "PA23",
"GPIO_A_24": null,
"GPIO_A_25": null,
"GPIO_A_26": null,
"GPIO_A_27": "PA27",
"GPIO_A_28": null,
"GPIO_A_29": null,
"GPIO_A_30": null,
"GPIO_A_31": null
},
"GPIOB": {
"GPIO_B_00": "PB00",
"GPIO_B_01": "PB01",
"GPIO_B_02": null,
"GPIO_B_03": "PB03",
"GPIO_B_04": "PB04",
"GPIO_B_05": null,
"GPIO_B_06": null,
"GPIO_B_07": null,
"GPIO_B_08": "PB08",
"GPIO_B_09": "PB09"
}
},
"I2C": {
"I2C0": {
"SCL": "PB07",
"SDA": "PB06"
},
"I2C1": {
"SCL": null,
"SDA": null
}
},
"I2S": {
"I2S0": {
"BCLK": null,
"LRCK": null,
"SDOUT": null,
"SDIN": null
},
"I2S1": {
"BCLK": null,
"LRCK": null,
"SDOUT": null,
"SDIN": null
}
},
"JTAG": {
"JTAG": {
"TCK": null,
"TMS": null,
"TDI": null,
"TDO": null
}
},
"PWM": {
"CH0": {
"OUT": null
},
"CH1": {
"OUT": "PA21"
},
"CH2": {
"OUT": null
},
"CH3": {
"OUT": null
},
"CH4": {
"OUT": null
},
"CH5": {
"OUT": null
},
"CH6": {
"OUT": null
},
"CH7": {
"OUT": null
}
},
"QSPI_LCD": {
"QSPI_LCD": {
"CS": null,
"CLK": null,
"IO0": null,
"IO1": null,
"IO2": null,
"IO3": null
}
},
"RGB": {
"RGB": {
"HSYNC": null,
"VSYNC": null,
"PCLK": null,
"DE": null,
"DR0": null,
"DR1": null,
"DR2": null,
"DR3": null,
"DR4": null,
"DR5": null,
"DR6": null,
"DR7": null,
"DG0": null,
"DG1": null,
"DG2": null,
"DG3": null,
"DG4": null,
"DG5": null,
"DG6": null,
"DG7": null,
"DB0": null,
"DB1": null,
"DB2": null,
"DB3": null,
"DB4": null,
"DB5": null,
"DB6": null,
"DB7": null
}
},
"SDIO": {
"SDIO": {
"CMD": null,
"CLK": null,
"DAT0": null,
"DAT1": null,
"DAT2": null,
"DAT3": null
}
},
"SPI": {
"SPI0": {
"CLK": "PA25",
"CS": "PA22",
"MISO": null,
"MOSI": "PA24",
"WP": null,
"HOLD": null
},
"SPI1": {
"CLK": null,
"CS": null,
"MISO": null,
"MOSI": null,
"WP": null,
"HOLD": null
},
"SPI2": {
"CLK": null,
"CS": null,
"MISO": null,
"MOSI": null,
"WP": null,
"HOLD": null
}
},
"UART": {
"UART0": {
"TX": "PA03",
"RX": "PA02",
"CTS": null,
"RTS": null
},
"UART1": {
"TX": "PB02",
"RX": null,
"CTS": null,
"RTS": null
},
"UART2": {
"TX": null,
"RX": null,
"CTS": null,
"RTS": null
}
}
}
}