hmp5301芯片主频高达300Mhz,16位ADC,性能用来做高性能FOC驱动太合适了,申请了一块开发板来测试ADC性能。

先晒晒开发板照片,紫色PCB,沉金工艺,用料不错。

000040odwuorh8008807ez

下载好官方SDK相关资料,开搞。

1\打开sdk_env_v1.5.0/start_gui.exe,点击“Generate”生成工程。

000040pzm4te427z4g8242

打开hpm_sdk\boards\hpm5301evklite\pinmux.c文件,修改对应ADC输入IO引脚PB13。

000040ctmtvtshkn0303ms

打开hpm_sdk\samples\drivers\adc\adc16\src\adc16.c文件,修改输出ADC数值输出格式——方便在串口上位机vofa+图形化显示。 000041ih8pei8emn7gnnzg

另外把串口波特率115200改为921600,以更快速率传输数据。

2、点击“open console with build path”,输入 ninja 编译。

000041yep85on2y27pegzc

3、通过串口下载程序。按住SW2,用type-c线给开发板上电,再松开SW2,开发板进入download模式。

3、打开官方下载工具hpm_manufacturing_gui.exe,点击连接按钮。

000041yy915y9y59915fym

连接成功后入下图。选择刚刚生成的hpm_sdk\samples\drivers\adc\adc16\hpm5301evklite_flash_xip\output\demo.bin程序文件,然后点击“烧写按钮”。

000129f9jfz7ft8q79qn7f

烧写成功后,用跳线帽短接PB13引脚到GND。

000129pnj3jnunhu2fnfh2

打开串口上位机软件 Vofa+,按复位按键运行程序。

在下方输入2,点击“发送”进入“2. Period mode”

000130iqshq6nhfzpkvwvz

采集15s,可以看到ADC最大波动141,ADC参考电压3.3V,16位,每一位为0.00005V,最大波动0.007V。

000133sry4k1py4zcrrrfz

可以看到数值波动比较大,分析原因:

由于5V DCDC降压得到3.3V后,经0Ω电阻给ADC模块VANA和参考电压VREFH供电,开关噪声较大,导致ADC模块本身噪声,因此。

000133c6zytovhhnzhthzh

200Ω磁珠替代R31滤波,结果如下,最大值127,有一点改善。

000133e2jfmxx0g5n0f2fg

查找官方资料,《HPM系列MCU高精度ADC之误差分析和设计指南》,建议高性能ADC采样还是建议在ADC输入增加一个高PSRR的低压差稳压器(LDO)以提高系统的PSRR,开发板没有预留这个元器件,后面有空需要自己画PCB在做测试。