从SXX32F103移植到AT32F403A
MG0007
从SXX32F103移植到AT32F403A
前言
本应用笔记旨在帮助您分析从现有的SXX32F103器件移植到AT32F403A器件所需的步骤。本文档收
集了最重要的信息,并列出了需要注意的重要事项。
要将应用程序从SXX32F103系列移植到AT32F403A系列,用户需要分析硬件移植、外设移植和固件
移植。
支持型号列表:
支持型号
AT32F403Axxxx
2020.08.11
第 1 页
版本 1.0.6
www.arterytek.com
从SXX32F103移植到AT32F403A
目录
AT32F403A 与 SXX32F103 异同 ............................................................................ 6
相同点概述 ............................................................................................................... 6
差异点概述 ............................................................................................................... 6
快速替换 SXX32F103 芯片 ...................................................................................... 8
快速验证兼容性 ........................................................................................................ 8
BSP 工程替换步骤 .................................................................................................... 8
AT32F403A 兼容性解析 ........................................................................................ 10
功能增强 ................................................................................................................. 10
FPU 的 ARM® 32 位的 Cortex®-M4F ........................................................................ 10
安全库区保护 .............................................................................................................. 10
高频 PLL 设定 ............................................................................................................. 10
预分频器扩增 .............................................................................................................. 11
内存容量扩展 .............................................................................................................. 11
加挂 SPI 闪存(SPIM 功能) .......................................................................................... 12
扩增 SDIO2 ................................................................................................................. 12
扩增 I2C3 .................................................................................................................... 13
扩增 SPI4 .................................................................................................................... 13
扩增全双工 I2S ........................................................................................................... 13
扩增 USART 和 UART ................................................................................................ 13
扩增 CAN2 .................................................................................................................. 14
支持 CAN 与 USB 同时使用 ....................................................................................... 14
32 位定时器 ................................................................................................................ 14
SPI1 复用为 I2S1 ........................................................................................................ 14
USBDEV 缓冲区 ........................................................................................................ 14
扩增 48MHz HSI 支持 USB 外设 ................................................................................ 15
HSI 自动时钟校准 ACC .............................................................................................. 15
64PIN 封装支持 XMC ................................................................................................. 15
支持闪存 CRC 校验 .................................................................................................... 15
2020.08.11
第 2 页
版本 1.0.6
www.arterytek.com
从SXX32F103移植到AT32F403A
高速 GPIO .................................................................................................................. 16
扩增 DMA 弹性映像请求功能 ..................................................................................... 17
外设使用区别 .......................................................................................................... 19
高频下 PLL 切换导致程序挂起或 hard fault ................................................................ 19
内部温度传感器 .......................................................................................................... 19
ADC 要求较长的采样时间 .......................................................................................... 20
GPIO 5V 容忍管脚兼容 .............................................................................................. 20
BOOT0 自带下拉电阻 ................................................................................................. 20
Standby 模式下自动使能 PA0 引脚下拉电阻 .............................................................. 20
使用 USB 模块时系统时钟频率须不小于 12MHz ....................................................... 21
USB 双缓冲区 SW_BUF 和 DTOG 区别 .................................................................... 21
USB_DP 存在内部上拉电阻 ....................................................................................... 21
DAC 输出有毛刺 ......................................................................................................... 21
Flash sector erase 更长.............................................................................................. 21
SDIO 在发生 RX over run 之后接收数据异常............................................................. 22
I2S 从机在特定条件下使能会导致通讯数据错误且无法自动恢复............................... 22
GPIO 在 50MHz 配置下高频输出时存在过冲现象 ...................................................... 22
使用 ADC 双模式时,程序卡在判断 CAL 控制位为零的循环中 ................................. 22
使用 WWDG 中断时,无法清除 EWIF 标志 ............................................................... 23
STOP Mode 下无法停掉 MCO 输出 ........................................................................... 23
Systick 中断异常唤醒执行 WFE 进入的 Stop Mode ................................................... 24
USART 智能卡模式下接收数据异常 ........................................................................... 24
版本历史 ................................................................................................................ 25
2020.08.11
第 3 页
版本 1.0.6
www.arterytek.com
表目录
从SXX32F103移植到AT32F403A
表 1. SXX32F103 与 AT32F403A 差异概述 ......................................................................................... 6
表 2. BSP 替换步骤概述 ....................................................................................................................... 8
表 3. SPI 闪存支持类型表 .................................................................................................................. 12
表 4. EXT_SPIF_GRMP[2:0]为[000]时引脚支持 ............................................................................... 12
表 5. EXT_SPIF_GRMP[2:0]为[001]时引脚支持 ............................................................................... 12
表 6. SXX32F103/403A GPIO toggle 最大速度性能测试 .................................................................. 16
表 7. 文档版本历史 ............................................................................................................................ 25
2020.08.11
第 4 页
版本 1.0.6
www.arterytek.com
图目录
从SXX32F103移植到AT32F403A
图 1. 403A 在 192MHz 主频下 GPIO 最快翻转速度波型 ................................................................... 16
图 2. 403A 在 72MHz 主频下 GPIO 最快翻转速度波型 ..................................................................... 17
图 3. SXX32F103 在 72MHz 主频下 GPIO 最快翻转速度波型 .......................................................... 17
图 4. VSENSE 对温度理想曲线图 .......................................................................................................... 20
图 5. USB 双缓冲区使用说明 ............................................................................................................. 21
2020.08.11
第 5 页
版本 1.0.6
www.arterytek.com
从SXX32F103移植到AT32F403A
AT32F403A 与 SXX32F103 异同
AT32F403A 系列微控制器基本兼容 SXX32F103 系列,同时强化许多功能的关系,有些许地方与
SXX32F103 不同,详述于本文档。
相同点概述
管脚定义:相同封装管脚定义相同。为扩增的外设作管脚复用定义延伸
寻址空间:内存与寄存器逻辑地址相同。扩增的外设占用SXX32保留空间
函数库文件:函数库相同。部分头文件依照强化功能优化
编译工具:完全相同,例如Keil, IAR
差异点概述
系统
内核
系统时钟
表 1. SXX32F103 与 AT32F403A 差异概述
AT32F403A
Cortex-M4 并支持 DSP 指令及浮点运算单
元 FPU
主频 240MHz,APB1 与 APB2 总线皆为
120MHz
13 ms
8 ms
8 ms
启动
重置
Standby 唤醒
SRAM 容量
加挂 SPI 闪存 支持加挂 SPI flash 为 SPIM,最高达
扩充模式可达 224KB
SXX32F103
Cortex-M3
主频 72MHz, APB1 36MHz, APB2
72MHz
2.5 ms
-
50 us
96KB
无支援
系统存储器
(System
Memory)
选择字节
(Option Byte)
闪存 16-bit 写
入时间
闪存页擦除时
间
闪存整片擦除
时间
16M Bytes
全系列 18KB,比 SXX32F103 多支持以
依型号分 6KB/2KB
下功能:
1. USB DFU 方式的 ISP 烧写
2. 对 SPIM 进行 ISP 烧写
3. 对闪存内容进行 CRC 校验
48 Bytes, 扩增以下设定功能:
16 Bytes
1. SRAM 模式设定
2. 4 Bytes 自定义字段(例如开发商 ID)
3. 8 Bytes SPIM 加密钥匙
50 μs
50 ms
0.8 s (AT32F403AxC)
1.4 s (AT32F403AxE)
2.8 s (AT32F403AxG)
52.5 μs
40 ms
40 ms
2020.08.11
第 6 页
版本 1.0.6
www.arterytek.com
从SXX32F103移植到AT32F403A
AT32F403A
外设
安全库区保护 支持
备份寄存器
全系列支持 42 组半字节备份寄存器
多一组 I2C
多一组 SPI4
多一组 SDIO2
支持 USART6/UART7/UART8
SPI1 可支持 I2S 功能
48PIN 有 I2S
I2S2/3 支持全双工
支持 CAN2
支持
支持
支持
扩增 I2C
扩增 SPI
扩增 SDIO
扩增 USART 和
UART
SPI1 支援 I2S
I2S 支援
扩增 CAN2
支持 CAN 与
USB 同时使用
扩增 48MHz
HSI 支持 USB
外设
HSI 自动时钟
校准 ACC
XMC
支持闪存 CRC
校验
高速 GPIO
扩展储存接口
32 位定时器
TMR2, TMR5 为 32 位定时器
USB 缓冲区
正温度系数
可扩充为 768 Byte
ADC
2Msps (max ADCCLK=28MHz)
ADC 触发事件 支持 TMR1, TMR8 及 TMR15
温度传感器
电气
电压范围
环境温度 TA
内核电压
ESD 参数
运行模式
睡眠功耗
停机功耗
待机功耗
2.6V~3.6V
-40°C~+105°C
1.2V
HBM:5KV, CDM:1000V
37.1 mA @ 72MHz
31.8 mA @ 72MHz
1.4 mA
5.7 uA
SXX32F103
无
中、小容量系列仅支持 10 组
I2C1/2
SPI1/2/3
SDIO1
不支持 USART6/UART7/UART8
SPI1 仅为 SPI 功能
48PIN 无 I2S
不支持全双工 I2S
不支持 CAN2
不支持
不支持
不支持
GPIO 挂在 APB 总线上
144PIN 并且 256KB 闪存以上才支
持总线输出
皆为 16 位
512 Byte
1Msps (max ADCCLK=14MHz)
无 TMR15
负温度系数
2.0V~3.6V
-40°C~+85°C
1.8V
HBM:2KV, CDM:500V
51 mA @ 72MHz
29.5mA @ 72MHz
25 uA
2.1 uA
1. 不支持CF卡和SRAM
2. 2个片选
3. 不支持外部中断
64 引脚封装支持 8 位 LCD 并口屏用
支持
1. 支持CF卡和SRAM
2. 4个片选
3. 支持2个外部中断
不支持
不支持
GPIO 挂在 AHB 总线上
64PIN 以上及支持总线输出(XMC)
2020.08.11
第 7 页
版本 1.0.6
www.arterytek.com
从SXX32F103移植到AT32F403A
快速替换 SXX32F103 芯片
快速验证兼容性
步骤一:解焊SXX32F103,换成AT32F403A对应型号
步骤二:使用雅特力ICP, ISP或KEIL, IAR下载SXX32F103 HEX文件或BIN文件。
步骤三:如果有需要, 下载SXX32F103 HEX文件或BIN文件以外的资料或进行系统校正。
步骤四:查看程序能否正常运行。
骤五:如果系统时钟源采用HSE, 为了确保量产稳定性, 请修改时钟初始化源代码, 方法如下:
打开 system_at32f4xx.c 找到当前的系统时钟频率配置函数,如 168MHz 函数:
static void SetSysClockTo168(void)
然后按如下方式配置自动顺滑频率切换功能
/* Wait till PLL is ready */
while((RCC->CR & RCC_CR_PLLRDY) == 0)
{
}
*((unsigned int *)0x40021054) |= (0x30);// 开启自动滑顺频率切换功能
/* Select PLL as system clock source */
RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW));
RCC->CFGR |= (uint32_t)RCC_CFGR_SW_PLL;
/* Wait till PLL is used as system clock source */
while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS) != (uint32_t)0x08)
{
}
//此时不需再等待 200us
*((unsigned int *)0x40021054) &=~ (0x30); //关闭自动滑顺频率切换功能
步骤六:其他问题快速排查请参考3.2 外设使用区别
步骤七:如果经过上述步骤后程序仍无法正常运行, 请参考本文件其他章节, 或连络代理商及雅特
力科技技术支持人员协助解决。
BSP 工程替换步骤
六种应用情形概述如下
序
号
1
2
3
4
使用什么 BSP/Pack 开发
是否使用
AT32F403A 新功能
处理方法
表 2. BSP 替换步骤概述
AT32F403A BSP/Pack
是/否
1. 结合3.2 外设使用区别修改对应程序
SXX32F103 BSP/Pack
SXX32F103 寄存器操作
SXX32F103 BSP + AT32
Pack
否
否
否
1. 参考2.1在系统时钟切换之前开启时钟顺滑模式
2. 参考2.1在系统时钟切换之后关闭时钟顺滑模式
3. 结合3.2 外设使用区别修改对应程序
1. 参考2.1在系统时钟切换之前开启时钟顺滑模式
2. 参考2.1在系统时钟切换之后关闭时钟顺滑模式
3. 结合3.2 外设使用区别修改对应程序
1. 参考2.1在系统时钟切换之前开启时钟顺滑模式
2. 参考2.1在系统时钟切换之后关闭时钟顺滑模式
3. 修改FPU设置
4. 结合3.2 外设使用区别修改对应程序
2020.08.11
第 8 页
版本 1.0.6
www.arterytek.com