Edgi-Talk_ADC 示例工程

中文 | English

简介

本示例工程基于 Edgi-Talk 平台,运行于 RT-Thread 实时操作系统,用于演示 ADC(模数转换器) 的使用方法。 通过本工程,用户可以快速体验 ADC 数据采集与处理功能,为后续开发模拟信号采集应用提供参考。 运行时,蓝色指示灯周期性闪烁,表示系统已正常启动并运行。

1. ADC概述

ADC(Analog-to-Digital Converter) 是将连续的模拟信号转换为离散的数字信号的器件或模块,是现代数字控制系统、信号处理和测量系统中的核心部件。

  • 功能:把电压、电流等连续信号转换为数字值,以便微控制器(MCU)、DSP 或 FPGA 进行处理。

  • 重要指标

    • 分辨率(Resolution):ADC输出的数字位数,表示可区分的电平数。Edgi为 12位,即 2^12 = 4096 个不同电平。

    • 采样率(Sampling Rate):ADC每秒采样次数,影响可捕捉的信号频率范围。

    • 输入范围(Input Range):ADC能处理的模拟电压范围。

    • 精度(Accuracy):表示ADC输出与实际输入信号的接近程度,受噪声、非线性、偏移误差影响。

2. ADC工作原理

ADC通常分为几个阶段:

  1. 采样与保持(Sample & Hold, S/H)

    • 将连续变化的模拟信号在采样瞬间固定,保证后续转换过程中信号不变。

  2. 量化(Quantization)

    • 将模拟信号划分为离散电平,每个电平对应一个数字编码。

    • 12位ADC将输入电压范围分为 4096 个电平,量化精度可以表示为:ΔV = VREF / 4096。

  3. 编码(Encoding)

    • 将量化后的电平转换成二进制形式输出,例如 12 位 ADC 会输出一个 0~4095 的二进制值。

硬件说明

连接接口

alt text

BTB座子

alt text

MCU引脚

alt text

实物图位置

alt text

软件说明

  • 工程基于 Edgi-Talk 平台开发。

  • 使用 RT-Thread 作为操作系统内核。

  • 示例功能:

    • ADC 初始化与采样

    • LED 指示灯闪烁

    • ADC 采样结果通过串口打印

  • 工程结构清晰,便于用户理解 ADC 驱动与 RT-Thread 线程机制。

使用方法

编译与下载

  1. 打开工程并完成编译。

  2. 使用 板载下载器 (DAP) 将开发板的 USB 接口连接至 PC。

  3. 通过编程工具将生成的固件烧录至开发板。

运行效果

  • 烧录完成后,开发板上电即可运行示例工程。

  • 蓝色指示灯 每 500ms 闪烁一次,表示系统调度正常。

  • ADC 采样电池电压数据会通过串口打印,示例输出如下:

    Value is: 3.123 V
    Value is: 3.125 V
    ...
    

注意事项

  • 如需修改工程的 图形化配置,请使用以下工具打开配置文件:

    tools/device-configurator/device-configurator.exe
    libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/design.modus
    
  • 修改完成后保存配置,并重新生成代码。

启动流程

系统启动顺序如下:

+------------------+
|   Secure M33     |
|   (安全内核启动)  |
+------------------+
          |
          v
+------------------+
|       M33        |
|   (非安全核启动)  |
+------------------+
          |
          v
+-------------------+
|       M55         |
|  (应用处理器启动)  |
+-------------------+

⚠️ 请严格按照以上顺序烧写固件,否则系统可能无法正常运行。


  • 若示例工程无法正常运行,建议先编译并烧录 Edgi_Talk_M33_Blink_LED 工程,确保初始化与核心启动流程正常,再运行本示例。

  • 若要开启 M55,需要在 M33 工程 中打开配置:

    RT-Thread Settings --> 硬件 --> select SOC Multi Core Mode --> Enable CM55 Core