一、时钟配置
AG32 无需手动配置 PLL,时钟树系统自动生成,用户仅需在 VE 配置文件填写两项参数,系统初始化自动生效:
外部晶振:支持 4M~16M(默认 HSE 外部晶体)
系统主频:最高 248M,以芯片 datasheet 为准
拓展场景可选用:内部振荡器(误差≤5%)、外部有源晶振、CPLD 主频输入,复杂时钟需求参考官方《AG32时钟的配置与限制》。

二、管脚配置(AG32核心特色)
1. 核心特性:信号与管脚完全分离
传统芯片管脚与功能固定绑定,AG32 支持任意外设信号映射到任意可配置管脚,极大优化 PCB 布线、提升管脚利用率,小封装芯片可实现多外设功能。
2. 配置方式
在 VE 文件中直接映射:信号线名称 PIN_xx,示例:
GPIO0_0 PIN_2
UART1_UARTTXD PIN_3
SPI0_SCK PIN_4
3. 不可配置管脚
电源、地、时钟、RESET、BOOT0 固定功能;ADC、USB 管脚默认专用,未启用时可复用为普通 IO。具体封装管脚定义参考《AG32_pinout 系列表格》,标注 IO 标识的管脚均可自由配置。
三、GPIO 使用指南
1. 资源说明
内置 80 个 GPIO,分为 GPIO0~GPIO9 共10组,每组8个(BIT0~BIT7),命名规则:GPIO组号_位号(如 GPIO0_0)。
2. 核心规则
GPIO 信号线必须在 VE 文件映射物理 PIN 脚,代码操作才能生效,范围内可任意映射。
3. 基础配置(输入/输出)
输出(LED):VE 映射管脚 → 代码初始化 → 调用高低电平/翻转函数。
输入(按键):VE 映射管脚 → 可在 board.asf 配置内部上拉/下拉 → 开启中断读取电平。
4. 高级配置
上拉/下拉:在 asf 文件配置寄存器参数
引脚复用:默认 IO 模式,外设功能需调用 GPIO_AF_ENABLE;JTAG 引脚默认功能固定,需手动关闭才可做普通 IO
OD开漏模式:VE 或 asf 文件二选一配置,模拟I2C推荐asf配置
驱动电流:默认8MA,支持4/8/12/16MA,asf文件配置
5. 常用API
高低电平控制、输入输出模式设置、中断开关与清除、引脚复用切换。
四、定时器分类与使用
1. MTimer(系统定时器)
RISC-V 原生64位定时器,替代 SysTick,用于系统时基、任务调度。通过 mtime/mtimecmp 寄存器比较触发中断,支持自定义定时周期,默认中断函数MTIMER_isr。
2. BaseTimer(基础定时器)
2个硬件定时器(TIMER0/1),各含2组独立寄存器,共4路可用定时通道。支持16/32位位宽、1/16/256分频、单次/循环定时,自带独立中断函数。
3. GpTimer(通用高级定时器)
共5路,类似STM32高级定时器,支持定时、PWM输出、边沿/中心对齐波形、输入捕获、DMA波形输出,每路4个独立通道,需VE管脚映射方可输出硬件波形。
五、常用外设极简配置
1. UART(5路:UART0~UART4)
UART0 默认日志打印,其余可自由使用。支持波特率配置、FIFO缓存、中断收发、DMA收发。核心流程:VE映射管脚 → 初始化参数 → 收发数据,支持自定义中断与DMA搬运。
2. I2C(2路:I2C0/I2C1)
主模式、半双工、支持多主从、自带应答机制。流程:VE管脚映射 → 时钟使能 → 收发数据,无设备应答会阻塞等待。
3. CAN(1路CAN0)
VE映射管脚 → 开启时钟与中断 → 配置参数 → 发送数据、中断接收数据。
4. SPI(2路:SPI0/SPI1)
仅主机模式,支持1/2/4线通讯。分为FLASH专用驱动与通用SPI驱动,支持DMA传输,新版SDK完善通用收发、双向同步传输功能。
5. ADC/DAC/CMP
依赖芯片默认 CPLD 模拟IP,支持3路ADC、2路DAC、双通道比较器。无需管脚映射,开启宏定义即可使用,支持循环采集,可自定义裁剪模拟功能。
6. USB
集成 tinyUSB,支持 Device/Host/OTG 模式,默认支持 CDC串口+MSCU盘,可拓展HID、MIDI。USB管脚固定不可改,支持工程移植自定义配置。
7. MAC以太网
支持 MII/RMII 接口,集成 LwIP 协议栈,可搭建网页服务。使用时需配置PHY地址、管脚映射,电脑端匹配对应IP即可通讯。
六、看门狗与RTC
1. 看门狗WDOG
递减计数复位,支持中断预警。中断时间为单周期,复位时间为2倍周期,支持重启状态检测,需定时喂狗防止系统复位。
2. RTC实时时钟
仅支持32768 LSE时钟,断电备用电源独立运行。支持秒中断、溢出中断、闹钟中断,自带16组备份寄存器,可存储断电保留数据,常用于计时、低功耗唤醒。
七、外部中断三种模式
GPIO中断:功能最全,支持边沿触发,优先推荐使用
EXT_INT(8路):低电平触发,无自动清中断,引脚需上拉
Local_INT(4路):来自CPLD高电平触发,无信号缓存,需软硬件应答交互防丢失
八、低功耗休眠模式
Sleep:基础休眠
Stop:电流5.5mA,CPLD可正常运行
Standby:超低功耗5uA,3.3V断电、CPLD关闭;支持WDOG/RTC闹钟/WAKEUP引脚上升沿唤醒
九、CPLD自定义Logic配置
三种工程配置规则(platformio.ini):
无需模拟功能:仅配置 board_logic.ve
使用默认ADC/DAC模拟IP:配置 board_logic.ve + ip_name = analog_ip
自定义CPLD功能:配置 board_logic.ve + ip_name + logic_dir
支持自研CPLD逻辑,拓展芯片外设功能,适配定制化硬件需求。
十、中断系统要点
默认非中断嵌套,开启宏可支持高优先级嵌套;MTime定时器属于CLINT中断,其余外设均为PLIC中断;所有中断向量、默认中断函数SDK已内置,用户仅需使能中断、配置优先级即可使用。