hmp5301芯片主频高达300Mhz,16位ADC,性能用来做高性能FOC驱动太合适了,申请了一块开发板来测试ADC性能。
先晒晒开发板照片,紫色PCB,沉金工艺,用料不错。
下载好官方SDK相关资料,开搞。
1\打开sdk_env_v1.5.0/start_gui.exe,点击“Generate”生成工程。
打开hpm_sdk\boards\hpm5301evklite\pinmux.c文件,修改对应ADC输入IO引脚PB13。
打开hpm_sdk\samples\drivers\adc\adc16\src\adc16.c文件,修改输出ADC数值输出格式——方便在串口上位机vofa+图形化显示。
另外把串口波特率115200改为921600,以更快速率传输数据。
2、点击“open console with build path”,输入 ninja 编译。
3、通过串口下载程序。按住SW2,用type-c线给开发板上电,再松开SW2,开发板进入download模式。
3、打开官方下载工具hpm_manufacturing_gui.exe,点击连接按钮。
连接成功后入下图。选择刚刚生成的hpm_sdk\samples\drivers\adc\adc16\hpm5301evklite_flash_xip\output\demo.bin程序文件,然后点击“烧写按钮”。
烧写成功后,用跳线帽短接PB13引脚到GND。
打开串口上位机软件 Vofa+,按复位按键运行程序。
在下方输入2,点击“发送”进入“2. Period mode”
采集15s,可以看到ADC最大波动141,ADC参考电压3.3V,16位,每一位为0.00005V,最大波动0.007V。
可以看到数值波动比较大,分析原因:
由于5V DCDC降压得到3.3V后,经0Ω电阻给ADC模块VANA和参考电压VREFH供电,开关噪声较大,导致ADC模块本身噪声,因此。
200Ω磁珠替代R31滤波,结果如下,最大值127,有一点改善。
查找官方资料,《HPM系列MCU高精度ADC之误差分析和设计指南》,建议高性能ADC采样还是建议在ADC输入增加一个高PSRR的低压差稳压器(LDO)以提高系统的PSRR,开发板没有预留这个元器件,后面有空需要自己画PCB在做测试。