本帖最后由 古来夏 于 2024-10-24 17:34 编辑

敏矽微ME32F103 Demokit 测评报告

一、开发板基本检测

取到开发板后,首先测试VDD和GND等电源引脚是否因为生产过程中或者其他原因造成短接,防止电源上电后,不良(下称NG)部分会对电路中元器件造成不可逆损坏。特别是MCU一类对电源范围敏感的元器件。

二、开发板下载说明

173330nll7jq0pk6djaakn

参考原理图中的相关说明,实物可以按照上图中的SWD下载方式进行程序下载,实测兼容市面上的ARM下载工具。(当然若有条件,最好的是,推荐使用敏矽微原厂的下载烧录工具。)

173330luz3srp9au3rkwma

将例程demo led pc4,烧录按上述接线通过SWD方式烧录到MCU内部,如上图中现象(PC4指示灯闪烁),说明程序烧录工序基本无问题,可认为芯片正常工作,可以进行相关的测评示例工程代码编写。

三、测评示例及其结果

申请敏矽微ME32F103 Demokit是希冀于可以进行项目的国产化替代。项目中一个关键的环节和功能是,MCU作用微控制处理器的同时,使用内部的ADC模块测量4~8路模拟量,并将采集到的数据进行滤波后,将数据以特定编码形式通过UART传输到其他设备中。

查阅ME32F103_datasheet_20220804.pdf,需要调用到相关的功能:TIM、ADC、DMA、UART。

评测任务:采用DMA+ADC方式采集8路模拟信号,并定时将数据汇总后通过串口打印输出到PC中。

在例程lib文件夹中,可以找到demo adc dma例程,进入该例程进行结合数据与编程手册,对对应的部分进行学习:

173330atp77goqsfthoogs

在数据手册中,ADC章节中,选定要操作的8个AD通道,刚好A/D转换结果寄存器也有8个,可以一一绑定。

173331agzrev5rgur3xduu

按照10.4操作的章节描述,在代码对ADC部分进行配置:

173331rjxpfipajois4yds

首先选定A/D通道,这一步相当于将内部ADC通道连接到外部PIN脚:

173331m7xsmx8snnfpx7xp

然后对ADC外设功能进行配置和初始化:

173332sf9i3fnhnqyahey8

由于笔者本次计划用DMA来自动传输DR寄存器内部的数据到对应的内存中,因此还需要对ADC的中断信号对DMA进行使能:

173332tmtkkwzuc26011qk

接着就可以进行DMA通道的相关配置:

173332ngmbyne4jjqnwk9w

在代码中,首先进行DMA初始化,并判断是否启用DMA使能成功,若是,进行下一项配置,

173333pys80p0rdzqrddxp

173333xnza1nyz7yuouvu1

配置完成后,就可以正常使用ADC+DMA功能了,在主程序中,进行ADC软件触发:

173333kz1172eu6neh9g7z

在DMA中断回调服务函数中,对DMA相关计数位清零恢复到配置状态:

173333br3aywasa5aelb8a

通过上述SWD方式烧录该demo到MCU中,可以观察到输出:

173333s2bdtbu23wlww6cs

还需要对数据进行简单转码再输出会更加直观:

173333dq2o22a0ol9ia9e9

对数据进行标定和换算,使用杜邦线将对应两个通道的PIN连接到板载的电源上,进行简单验证:

173335svk9vuumdj0lwvuv

Demo的示例中使用到的换算函数:

173335jiwfempwheemeq66

另外温馨提示,由于案例内,CxLLI指向了空,因此程序中DMA是仅仅运行一次的,如果需要循环DMA,还需要单独配置。

关于该DMA+ADC改后完整的Demo案例您可以通过联系我获取。