1. HPM ADC EVK
1.1. 依赖SDK1.10.0
1.2. 概述
HPM系列MCU是来自上海先楫半导体科技有限公司的高性能实时RISC-V微控制器,为工业自动化及边缘计算应用提供了极大的算力、高效的控制能力。上海先楫半导体目前已经发布了如 HPM6700/6400、HPM6300、HPM6200、HPM5300、HPM6E00等多个系列的高性能微控制器产品。
HPM6700/6400系列微控制器内置3个12位和1个16位ADC控制器,HPM6300和HPM6200系列微控制器内置3个16位ADC控制器,HPM5300系列微控制器内置2个16位微控制器,HPM6E00系列微控制器内置4个16位微控制器,HPM6P00系列微控制器内置4个16位微控制器。其中12位ADC支持最高采样率5MSPS,16位ADC支持最高采样率2MSPS。支持读取、周期、序列、抢占多种采样模式,输入模式支持单端(12位,16位)和 差分输入(12位),并且支持可配置分辨率和采样周期数,以及DMA转换结果写入内存中。
针对HPM系列MCU高精度ADC,先楫半导体推出系列ADC EVK用于评估ADC性能,其中包含了ADC EVK硬件设计图纸,ADC EVK用户指南,ADC设计指南,以及ADC测试代码。旨在帮助用户实现最佳ADC性能。
1.3. 测试用例
1.3.1. adc16_sinad(16位ADC批量采样例程)
1.3.1.1. 概述
在该示例中,ADC16批量采样指定通道的若干数据并输出到串口终端。默认采样率为2MSPS。
采样后的数据导入科学计算软件中可用作sinad和thd分析。
1.3.1.2. 硬件支持
HPM5300:查看用户指南 HPM5300_ADC_EVK用户指南
HPM5300:查看硬件原理图 HPM5300_ADC_EVK_RevA
HPM5300:硬件工程路径见:(hpm_app/apps/adc/hardware/HPM5300_ADC_EVK_RevA-工程文件)
HPM62\6300: 查看用户指南 HPM62\6300_ADC_EVK用户指南
HPM62\6300: 查看硬件原理图 HPM62\6300_ADC_EVK_RevA
HPM62\6300: 硬件工程路径见:(hpm_app/apps/adc/hardware/HPM62\6300_ADC_EVK_RevA-工程文件)
HPM6750: 查看用户指南 HPM67500_ADC_EVK用户指南
HPM6750: 查看硬件原理图 HPM67500_ADC_EVK_RevA
HPM6750:硬件工程路径见:(hpm_app/apps/adc/hardware/HPM6750_ADC_EVK_RevA-工程文件)
HPM6E00: 查看用户指南 HPM6E00_ADC_EVK用户指南
HPM6E00: 查看硬件原理图 HPM6E00_ADC_EVK_RevA
HPM6E00:硬件工程路径见:(hpm_app/apps/adc/hardware/HPM6E00ADCEVKRevC-工程文件)
HPM6P00: 查看用户指南 HPM6P00_ADC_EVK用户指南
HPM6P00: 查看硬件原理图 HPM6P00_ADC_EVK_RevB
HPM6P00:硬件工程路径见:(hpm_app/apps/adc/hardware/HPM6P00ADCEVKRevB-工程文件)
1.3.1.3. 设备连接
连接PC USB到DEBUG Type-C接口
连接调试器到JTAG接口
连接信号源到信号输入SMA接口
信号源连接示意图如下:

信号源主板型号为PSIEVMTI,制造厂商为德州仪器 Texas Instruments
1.3.1.4. 端口设置
串口波特率设置为
115200bps,1个停止位,无奇偶校验位
1.3.1.5. 创建工程
windows下GUI工程构建

windows下命令行工程构建
请参考 HPM5300_ADC_EVK用户指南
1.3.1.6. 运行现象
当工程正确运行后,串口终端会输出如下信息:
==============================
hpm5300evk clock summary
==============================
cpu0: 360000000Hz
ahb: 180000000Hz
mchtmr0: 24000000Hz
xpi0: 114285714Hz
==============================
hpm_sdk: 1.4.0
----------------------------------------------------------------------
$$\ $$\ $$$$$$$\ $$\ $$\ $$\
$$ | $$ |$$ __$$\ $$$\ $$$ |\__|
$$ | $$ |$$ | $$ |$$$$\ $$$$ |$$\ $$$$$$$\ $$$$$$\ $$$$$$\
$$$$$$$$ |$$$$$$$ |$$\$$\$$ $$ |$$ |$$ _____|$$ __$$\ $$ __$$\
$$ __$$ |$$ ____/ $$ \$$$ $$ |$$ |$$ / $$ | \__|$$ / $$ |
$$ | $$ |$$ | $$ |\$ /$$ |$$ |$$ | $$ | $$ | $$ |
$$ | $$ |$$ | $$ | \_/ $$ |$$ |\$$$$$$$\ $$ | \$$$$$$ |
\__| \__|\__| \__| \__|\__| \_______|\__| \______/
----------------------------------------------------------------------
This is an ADC16 demo for sinad test:
[16:21:03.612]收←◆adc data buff is full, buffer start addr:80014. end addr:88010
Ch: 3 val: 59604 0%
Ch: 3 val: 59611 0%
Ch: 3 val: 59615 0%
Ch: 3 val: 59622 0%
Ch: 3 val: 59621 0%
Ch: 3 val: 59620 0%
Ch: 3 val: 59608 0%
Ch: 3 val: 59617 0%
Ch: 3 val: 59619 0%
Ch: 3 val: 59626 0%
Ch: 3 val: 59619 0%
Ch: 3 val: 59619 0%
Ch: 3 val: 59619 0%
Ch: 3 val: 59615 0%
Ch: 3 val: 59625 0%
Ch: 3 val: 59608 0%
Ch: 3 val: 59617 0%
Ch: 3 val: 59621 0%
Ch: 3 val: 59620 0%
Ch: 3 val: 59625 0%
Ch: 3 val: 59628 0%
Ch: 3 val: 59622 0%
Ch: 3 val: 59616 0%
Ch: 3 val: 59608 0%
Ch: 3 val: 59612 0%
Ch: 3 val: 59625 0%
Ch: 3 val: 59612 0%
Ch: 3 val: 59625 0%
Ch: 3 val: 59615 0%
Ch: 3 val: 59617 0%
Ch: 3 val: 59617 0%
Ch: 3 val: 59619 0%
1.3.2. adc16_inl_dnl(ADC批量采样数据并写入U盘例程)
1.3.2.1. 概述
在该示例中,ADC16批量采样指定通道的若干数据并写入U盘中。默认采样率为664KSPS。
采样后的数据导入科学计算软件中可用作inl和dnl等静态特性分析。
1.3.2.2. 硬件支持
HPM6750:查看硬件原理图 HPM6750_ADC_EVK_RevA
HPM6750:查看用户指南 HPM6750_ADC_EVK用户指南
HPM6750:硬件工程路径见:(hpm_app/apps/adc/hardware/HPM6750_ADC_EVK_RevA-工程文件)
1.3.2.3. 设备连接
连接PC USB到DEBUG Type-C接口
连接调试器到JTAG接口
连接U盘到USB0接口
连接信号源到信号输入SMA接口
信号源连接示意图如下:
信号源主板型号为PSIEVMTI,制造厂商为德州仪器 Texas Instruments
注意:U盘需要格式化成FAT32格式

1.3.2.4. 端口设置
串口波特率设置为
115200bps,1个停止位,无奇偶校验位
1.3.2.5. 创建工程
windows下GUI工程构建

windows下命令行工程构建
请参考 HPM6750_ADC_EVK用户指南
1.3.2.6. 运行现象
当工程正确运行后,串口终端会输出如下信息:
==============================
hpm6750_adc_evk clock summary
==============================
cpu0: 648000000Hz
cpu1: 648000000Hz
axi0: 200000000Hz
axi1: 200000000Hz
axi2: 200000000Hz
ahb: 200000000Hz
mchtmr0: 24000000Hz
mchtmr1: 24000000Hz
xpi0: 133333333Hz
xpi1: 400000000Hz
femc: 166666666Hz
display: 74250000Hz
cam0: 59400000Hz
cam1: 59400000Hz
jpeg: 200000000Hz
pdma: 200000000Hz
==============================
hpm_sdk: 1.4.0
----------------------------------------------------------------------
$$\ $$\ $$$$$$$\ $$\ $$\ $$\
$$ | $$ |$$ __$$\ $$$\ $$$ |\__|
$$ | $$ |$$ | $$ |$$$$\ $$$$ |$$\ $$$$$$$\ $$$$$$\ $$$$$$\
$$$$$$$$ |$$$$$$$ |$$\$$\$$ $$ |$$ |$$ _____|$$ __$$\ $$ __$$\
$$ __$$ |$$ ____/ $$ \$$$ $$ |$$ |$$ / $$ | \__|$$ / $$ |
$$ | $$ |$$ | $$ |\$ /$$ |$$ |$$ | $$ | $$ | $$ |
$$ | $$ |$$ | $$ | \_/ $$ |$$ |\$$$$$$$\ $$ | \$$$$$$ |
\__| \__|\__| \__| \__|\__| \_______|\__| \______/
----------------------------------------------------------------------
--------------------------------------------------------------------
- Host example
- if you find any bugs or get any questions, feel free to file an
- issue at https:/*github.com/hathach/tinyusb
--------------------------------------------------------------------
This Host demo is configured to support:
- RTOS = None
- Mass Storage
USB0 Host Mass Storage Demo
A MassStorage device is mounted.
USB 3.0 ProductCode rev 2.00
Disk Size: 122800 MB
Block Count = 251494400, Block Size: 512
FatFs mount succeeded!
The USBHost.txt is open.
write udisk...
write udisk...
write udisk...
write udisk...
...(此处省略)
Write the USBHost.txt file done with 10200samples!
Direcotry Path: /
File Name: USBHost.txt