
基于Arm Cortex-M7内核,主频高达750MHz,并配备了高速大容量内存架构,旨在以"超高算力"与"实时通信"能力,为伺服控制、数字电源、智能家居(885478)等下一代智能装备提供核心硬件基础。
性能铁三角:750MHz内核、高速存储与零等待访问
GD32H7系列MCU主频高达750MHz,配备最高2MB执行闪存、8MB存储闪存及1.2MB SRAM。其最大亮点在于集成了640KB可与CPU同频运行的紧耦合内存(TCM),实现了指令与数据的零等待执行,显著提升高实时任务与复杂算法的处理效率。
灵活存储与强大扩展接口
该系列产品配备2个支持200MHz时钟频率的OSPI接口,可高效连接多种外部存储器。同时,其集成的16/32位EXMC模块支持直接对接外部SDRAM与FPGA,大幅扩展了系统内存容量与数据处理带宽。
GD32H78E/77E系列:集成EtherCAT的运动控制核心
此子系列集成了EtherCAT从站控制器,同步周期(883436)精度达62.5微秒,满足工业自动化、机器人等领域对时序一致性的严苛要求。它还配备了全面的高性能编码器接口,原生支持多摩川、EnDat 2.2等主流工业编码器协议,为伺服驱动器与机器人控制器提供一站式解决方案。
GD32H789/779系列:高性能通用芯片
该子系列内置14-bit ADC与高性能数字滤波器,可外接高精度Sigma-Delta ADC,形成完整的高精度模拟解决方案。其核心外设资源丰富,包括图形处理加速器、TFT-LCD接口、2个10/100Mbps以太网接口、3个CAN-FD接口以及高速USB接口等,适用于复杂应用。
全方位构建安全屏障
GD32H7系列构建了从硬件到软件的全栈安全体系,支持安全启动、安全调试、代码保护与安全升级。芯片内置硬件加密模块(CAU、HAU),支持AES、SHA等多种算法,并集成真随机数发生器。该系列MCU STL已获得德国莱茵T V IEC 61508 SC3功能安全认证,助力客户符合多项行业安全标准与法规。
封装信息与产品获取
该系列MCU提供BGA176/100、LQFP176/144/100等5种封装类型。样品及技术资源可通过兆易创新(HK3986)官网申请,产品预计于2026年6月正式量产。
首次推出的GD32H7一共3个型号,H737,H757,H759,仔细对照了一下手册发现H737和H757除了CAN基本一模一样,前者只支持CAN 2.0,后者支持CAN FD;而H759定位偏高端,只有LQFP176和BGA176两种封装,所以就选了100脚的GD32H737VMT6。
仔细对照了一下引脚,和STM32H750VBT6基本是一样的,LQFP176和BGA176封装支持内置DCDC,只要外接功率电感就可以;但144脚和100脚的不行,只能用内置LDO,电流大不少,这样还不如用外置DCDC了。画个小开发板,原理图如下,VCC和VCORE用两片便宜的SY8088,分别提供3.3V和0.9V电压。

这东西支持OCTOSPI了,顺便加一片32M的OCTOSPI SRAM,选了IS66WVO32M8DALL-200BLI,注意要选BLL后缀的,工作电压3.3V的型号。GD32H737的OCTOSPI缺了DQSM信号, (也可能是我学习不到位?) 估计这个OCTOSPI SRAM跑不到全速, 先试试再说. BGA就不挑战自己手焊了, 还是交给JLC贴好吧.
成品板如下:

下一步, 把环境搭起来, 官方库还是国产厂商的一贯德性, 只提供了keil和iar的启动文件, 没有gcc的. 没办法, 前面的初始化部分照着stm32h750的抄吧, 后面的中断向量表得用它自家的, 格式改成gcc的. 然后是配置时钟, 官方库里的system_gd32h7xx.c只有直接操作寄存器的配法, 想自由一点? 还得手写, 对照库函数逐行改一遍, 改好的SystemInit函数如下:
void SystemInit(void)
{
SCB_EnableDCache();
SCB_EnableICache();
nvic_vector_table_set(NVIC_VECTTAB_FLASH, 0x0);
rcu_deinit();
rcu_osci_on (RCU_HXTAL);
rcu_osci_stab_wait(RCU_HXTAL);
RCU_APB4EN |= 0x01; // keep
syscfg_tcm_wait_state_enable();
rcu_ahb_clock_config (RCU_AHB_CKSYS_DIV2);
rcu_apb4_clock_config (RCU_APB4_CKAHB_DIV2);
rcu_apb3_clock_config (RCU_APB3_CKAHB_DIV2);
rcu_apb2_clock_config (RCU_APB2_CKAHB_DIV1);
rcu_apb1_clock_config (RCU_APB1_CKAHB_DIV2);
rcu_pll_input_output_clock_range_config(IDX_PLL0, RCU_PLL0RNG_4M_8M, RCU_PLL0VCO_192M_836M);
rcu_pll_source_config (RCU_PLLSRC_HXTAL);
rcu_pll0_config(4, 150, 1, 2, 1); // 注意! 我的板上是16M的晶振, 所以是16/4*150=600M. 25M晶振的话应该是25/5*120=600M.
rcu_pll_clock_output_enable(RCU_PLL0P | RCU_PLL0Q | RCU_PLL0R);
rcu_osci_on (RCU_PLL0_CK);
rcu_osci_stab_wait(RCU_PLL0_CK);
rcu_system_clock_source_config (RCU_CKSYSSRC_PLL0P);
while(rcu_system_clock_source_get() != RCU_SCSS_PLL0P);
}
之后是配置串口, 不知道为什么, 这个USART特别容易出现ORERR, 折腾N次之后把波特率从常用的500k降到115.2k, 能用了, 先凑和用着吧.
下一步, 超频测试, 把上面的倍频数从150往上加, 160, 显示主频640M正常. 然后680M正常, 720M正常, 800M, 880M, 960M, 1000M, 1080M终于不运行了. 往下降, 1040M, 能运行但不稳定, 会卡死, 再降到1000M, 似乎稳定了. 这个超频幅度感觉还行. 1G主频时输入5V电流大概168mA, 摸上去稍微有点温热; 降回600M, 电流只有90mA多点, 平均电流0.16mA/MHz, 也还不错.
最后是dhrystone测试. 600M主频, -O3优化时1371DMIPS, 2.29DMIPS/MHz, 比之前测试STM32H750的1412DMIPS稍差一点, 也可能是之前那次的测试有问题? 有空再试试. 超频到1GHz时则达到了2286DMIPS, 遥遥领先, 达到了24M的STC8A8K64SA的1000倍以上.
和x86 CPU对比, 则是大体相当于1.2GHz的P3, 或者1.7GHz的P4 (没看错, P4的同频性能只有P3的2/3左右).