天天看点

APM32F103C8T6与STM32兼容性测试

    近几个月以来,STM32价格疯涨、缺货,国内很多公司不得不转而采用国产单片机的方案。这次涨价对国产芯片是一次机遇,可以趁机笼络不少客户。但对于工程师来说,换芯片就意味着软硬件重新设计,不过好在对于一些用量大的芯片,很多国内的厂商可以做到与STM32硬件兼容,可以直接替换。部分厂家甚至软件也兼容,不用做任何修改。

今天就来测试一款与STM32F103C8T6兼容的国产单片机:APM32F103C8T6。之所以选这款是朋友推荐的,据说软硬件兼容性不错。手头上只有一块之前的板子,只能对部分功能进行测试。

测试方法:两块板子,分别焊接两种芯片,采用STM32CubeMX编程,Jlink下载调试程序。首先在STM32的板子上测试功能正常后,再将程序直接烧写到APM32进行测试。测试结果如下:

外设 测试项目 测试结果
Systick定时器 1ms中断 正常
内部flash读写 读写 正常
GPIO 基本输入输出 正常
外部中断 正常
串口 查询方式收发 正常
中断收发 正常
DMA收发 正常
定时器 PWM输出 正常
基本定时中断 正常
输入捕获 正常
ADC 单通道采样 正常
多通道采样 正常
软件触发采样 正常
定时器触发采样 正常
DMA采样 正常
移植FreeRTOS 上述外设测试 正常
SEGGER_RTT功能 打印数据 正常

    只测试了部分功能,可以看到测试结果比较客观,STM32的程序可以直接在APM32上运行。另外,在论坛里看到网友说国产单片机的ADC性能要比STM32差很多,主要是实际分辨率,这里也进行了进一步的测试。首先两个板子分别采样同一个外部电源进行对比,如下:

APM32F103C8T6与STM32兼容性测试

    可以看到,两个芯片采样值波动相差不大。波动值有将近30,之所以比较大,是因为板子上本没有AD采样部分,所有没有对模拟电路做任何处理,AD输入端口也没有任何滤波。

    再将两个板子采样内部参考电压Vrefint通道进行比较,测试结果如下:

APM32F103C8T6与STM32兼容性测试

    可以看到APM32的波动在4以内,STM32的波动在5以内,基本也差不多。

    本次只测试了部分外设的功能,比较满意。由于电路板没有预留其它接口,SPI以及比较复杂的USB功能没有进行测试,以后有机会再进行测试。

    写在最后:

    不得不承认,STM32确实是一款比较成功的芯片,除了它的高性价比(涨价之前),还有其比较完善的开发工具和生态,希望这次涨价潮尽快过去,不要步AVR的后尘。也希望国产芯片能够越来越好。

APM32F103C8T6与STM32兼容性测试