从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