当前文档版本为 NDK-v0.7.0,您可以访问当前页面的 开发中 版本以获取最近可能的更新。

ADC

1 功能概述

本例程演示如何使用 ADC HAL Driver 实现读取芯片VBAT电压、芯片温度、以及一个外部通道电压。

2 环境准备

  • 硬件设备与线材:

    • PAN107X EVB 核心板底板各一块

    • JLink 仿真器(用于烧录例程程序)

    • USB-TypeC 线一条(用于底板供电和查看串口打印 Log)

    • 杜邦线数根或跳线帽数个(用于连接各个硬件设备)

  • 硬件接线:

    • 将 EVB 核心板插到底板上

    • 使用 USB-TypeC 线,将 PC USB 插口与 EVB 底板 USB->UART 插口相连

    • 使用杜邦线将 EVB 底板上的 TX 引脚接至核心板 P16,RX 引脚接至核心板 P17

    • 使用杜邦线将 JLink 仿真器的:

      • SWD_CLK 引脚与 EVB 底板的 P00 排针相连

      • SWD_DAT 引脚与 EVB 底板的 P01 排针相连

      • SWD_GND 引脚与 EVB 底板的 GND 排针相连

  • PC 软件:

    • 串口调试助手(UartAssist)或终端工具(SecureCRT),波特率 921600(用于接收串口打印 Log)

3 软件代码介绍

由于 ADC 模块硬件一份,通道却是多个,软件操作多通道的时候不可避免的出现竞争,为了避免冲突,pan_hal_adc 引入了信号量来解决这个问题。

HAL_ADC_GetValue(ADC_HandleTypeDef *pADC, void *value);

HAL_ADC_GetValue 函数只能在线程执行,不能在中断函数执行

4 编译和烧录

例程位置:<PAN10XX-NDK>\01_SDK\nimble\samples\peripheral\adc_read_multiple_channels\keil_107x

双击 Keil Project 文件打开工程进行编译烧录。

5 例程演示说明

  1. 烧录完成后,芯片会通过串口打印初始化 Log:

    Try to load HW calibration data.. DONE.
    - Chip Info         : 0x1
    - Chip CP Version   : 255
    - Chip FT Version   : 6
    - Chip MAC Address  : E11000000FF8
    - Chip UID          : 6D0001465454455354
    - Chip Flash UID    : 4250315A3538380B005B7B4356037D78
    - Chip Flash Size   : 512 KB
    
  2. 观察 log,周期打印 温度,电压,以及一个外部通道1,如下图温度是28.656721 ,电压是3.295V, 外部通道 CH1 是浮空状态

    [15:50:00.934]收←◆CH1 get
    
    [15:50:00.977]收←◆CH1 value->>371.938324
    
    [15:50:01.934]收←◆temperature get
    battery start get
    
    [15:50:02.036]收←◆battery value->>3295 mv
    temperature value->>28.656721
    

5 RAM/Flash资源使用情况

PAN107x:

Flash Size:  19.82k
RAM Size:  7.50 k