SemiDrive E3 MCU ADC 简介

关键字 :E3SemiDriveADC

一、概述

本文将对 SemiDrive E3 系列 MCU 的 ADC 模块进行简要介绍,具体内容包括 ADC 模块的特性、ADC 模块的功能描述以及 ADC 驱动代码介绍等方面。

二、 E3 ADC 模块的特性

E3 系列 MCU ADC 模块主要包括以下特性:

  • 支持 12 位的分辨率
  • 支持最高 2 MHz 的采样率
  • 支持高达 8 个差分输入和16 个单端输入
  • 支持单独转换
  • 支持连续转换
  • 支持硬件触发采集
  • 支持连续采集模式下的通道调度
  • 支持转换结果 FIFO 操作
  • 支持同步和异步两种工作模式
  • 支持 DMA 操作
  • 支持模块的软件复位

三、E3 ADC 模块的功能描述

E3 系列 MCU 的 ADC 模块包含以下功能:

3.1 硬件触发控制模块(HTC)

该模块主要包括以下功能:

  • 跟外部的硬件触发生成器(HTG)握手
  • 接收 HTG 生成的信息并进行响应
  • 传输触发信息给 RCHT

 

3.2 硬件触发请求通道(RCHT)

该模块主要包括以下功能:

  • 获取 HTC 的触发请求和触发 ID
  • 获取 APB reg 中的 32 个入口转换命令
  • 传输命令配置给 SCH
  • 计算 ADC 转换结果的平均值

 

3.3 请求通道(RC)

该模块主要包括以下功能:

  • 包含内部定时器用于内部触发
  • RC 请求可以通过定时器触发或者软件触发

 

3.4 调度器(SCH)

该模块包括以下功能:

  • 对多个 RC 的转换请求进行仲裁
  • 支持两种工作模式:同步模式和异步模式
  • 可对每个转换请求选择相应的配置
  • 管理每个请求的转换序列
  • 发送转换结果给 FIFO 模块
  • 包含时间戳计数器
  • 生成参考时钟

 

3.5 监控器

该模块包括以下功能:

  • 监控模块由 8 个单次监控器和 1 个连续监控器组成
  • 监控器会对 ADC 转换结果进行监控
  • 支持三种监控事件:过阈值、欠阈值和阈值之间
  • 单次监控器在监测事件触发后生成 IRQ 请求
  • 连续监控器在监测到多个连续的监控事件后生成 IRQ 请求,事件的个数可以通过一个 6 位的可配置的事件计数器来配置

 

3.6 FIFO 控制模块

该模块包括以下功能:

  • FIFO 模块可以被禁用,当禁用时可以通过寄存器来读取转换结果
  • 当 FIFO 模块使能时,转换结果会送进 FIFO 中,其中低 12 位为转换结果,中间 9 位为通道信息,高位为时间戳信息。
  • FIFO 支持 16位、32位和 64 位模式
  • FIFO 的大小为 128 * 32位
  • 对于 32位模式,当 FIFO 满了以后,最新的数据会覆盖最早进入的数据
  • FIFO 支持突发读取,长度为 16 * 4 Byte
  • FIFO 支持 ECC 保护
  • 支持错误中断生成


3.7 DMA 控制

该 ADC 模块支持生成 DMA 请求,包括以下情况:

  • Sub-FIFO 满了
  • RC 请求转换完成

四、 E3 ADC 驱动代码的配置

下面结合 E3 ADC 的驱动代码来看看具体如何使用 ADC,文中的 SDK 代码版本为 PTG2.0,具体的例程为:E3_SSDK_PTG2.0_Source_Code\ssdk\boards\e3_gateway\driver_demo\adc\adc_Async_int

主函数如下:

                                                         图 5.1主函数代码

以下为 ADC 例程的代码:

                                            图 5.2 adc_async_int_demo 函数1

 

                                                  图 5.3 adc_async_int_demo 函数2

五、参考资料

1.《E3400_E3600_MCU_Technical_Reference_Manual_Rev00.05》,2022.09

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论