RH850P1X芯片学习笔记-A/D Converter (ADCF)

news2024/10/1 19:39:10

文章目录

    • Features of RH850/P1x-C ADCF
      • Number of Units
      • Register Base Address
      • Clock Supply
      • Interrupts and DMA
      • Hardware Reset
      • External Input/Output Signals
      • Virtual Channel
    • Overview
      • Functional Overview
      • Block Diagram
      • Physical Channels, Virtual Channels and Scan Groups
    • Registers
      • List of Registers
      • ADCF0ADSYNSTCR — AD Synchronization Start Control Register
      • ADCF0ADTSYNSTCR — AD Timer Synchronization Start Control Register
      • ADCFnVCRj — Virtual Channel Register j
      • ADCFnDRj — Data Register j
      • ADCFnDIRj — Data Supplementary Information Register j
      • ADCFnADHALTR — AD Halt Register
      • ADCFnADCR1 — AD Control Register 1
      • ADCFnMPXCURCR — MPX Current Control Register
      • ADCFnMPXCURR — MPX Current Register
      • ADCFnMPXOWR — MPX Optional Wait Register
      • ADCFnADCR2 — AD Control Register 2
      • ADCFnADENDP0 — A/D Conversion Monitor Virtual Channel Pointer
      • ADCFnSFTCR — Safety Control Register
      • ADCFnTDCR —Pin Level Diagnostic Control Register
      • ADCFnULLMTBR0 to 2 — Upper-Limit/Lower-Limit Table Registers 0 to 2
      • ADCFnECR — Error Clear Register
      • ADCFnULER — Upper-Limit/Lower-Limit Error Register
      • ADCFnOWER — Overwrite Error Register
      • ADCFnPER — Parity Error Register
      • ADCFnIDER — ID Error Register
      • ADCFnSGSTCRx — Scan Group x Start Control Register
      • ADCFnADTSTCRy — AD Timer y Start Control Register
      • ADCFnADTENDCRy — AD Timer y End Control Register
      • ADCFnSGCRx — Scan Group x Control Register
      • ADCFnSGVCSPx — Scan Group x Start Virtual Channel Pointer
      • ADCFnSGVCEPx — Scan Group x End Virtual Channel Pointer
      • ADCFnSGMCYCRx — Scan Group x Multicycle Register
      • ADCFnSGSRx — Scan Group x Status Register
      • ADCFnADTIPRy — AD Timer Initial Phase Register y
      • ADCFnADTPRRy — AD Timer Period Register y
      • ADCFnULLMSRx — Scan Group x Upper-Limit/Lower-Limit Table Select Register
    • Function
      • 正常AD转换操作示例
        • 多周期扫描模式
        • 连续扫描模式
      • 加法模式下正常A/D转换示例
      • 外部模拟多路复用器的操作示例
        • 使用外部模拟多路复用器示例(端口输出)
      • 同步挂起和恢复操作示例
      • 异步挂起和恢复操作示例
      • Example of A/D Timer Operation
      • Diagnostic Function
      • ADC conversion time
      • 模拟输入采样和扫描组处理时间
      • Hardware Trigger Functions
    • Operation
      • Initial Settings
      • Trigger Input Flow
    • Difference among P1M-C, P1H-C and P1H-CE

Features of RH850/P1x-C ADCF

Number of Units


ADC硬件由n表示

通道由m表示

数据寄存器和虚拟通道的数量由索引“j”标识,例如,数据寄存器j为ADCFnDRj

扫描组用字母“x”表示(x = 0到4)。

A/D定时器的数量由字母“y”表示(y = 3,4)。

Register Base Address

ADCF基址列在下表中。
ADCF寄存器地址是作为相对于单个基址的偏移量给出的。

Clock Supply

下表列出了ADCF的时钟供应。


一般ADC时钟为40M

注:只有当CLK_LSB = 8mhz - 40mhz时,才能保证电特性。

Interrupts and DMA


错误中断是下列中断的逻辑和。

  • 上限/下限比较错误
  • 覆盖错误
  • ID错误

Hardware Reset

下表列出了ADCF复位源。ADCF通过这些复位条件进行初始化

External Input/Output Signals

ADCF的外部输入/输出信号如下表所示

Virtual Channel

每个ADCF有虚拟通道,如表27.44所示。为每个虚拟通道设置要进行A/D转换的模拟通道和其他伴随信息。通过对每个扫描组中的起始虚拟通道指针和结束虚拟通道指针所指示的虚拟通道依次进行处理,可以对任意顺序的任意模拟通道进行A/D转换的扫描

Overview

Functional Overview

ADCF具有以下特性。

•先进的A/D转换器

分辨率:12位

A/D转换方法:逐次逼近法

转换速度:1.0μs

•支持五个扫描组

每个ADCF有5个扫描组。扫描设置可以独立地为每个扫描组。

•两种扫描模式

每个ADCF有两种扫描模式。

多周期扫描模式:指定扫描次数。

连续扫描模式:无限制地重复执行扫描。

•区间功能

ADCF可以通过使用扫描组3和4中配备的A/D定时器在任何周期中启动扫描组。这将启用插入间隔的扫描

•A/ d转换增值功能

ADCF对一个通道顺序执行两次或四次A/D转换,并将相加结果存储在数据寄存器中。可以为每个虚拟通道设置添加计数。

利用这一结果可以得到移动平均滤波器的效果。然而,此功能并不总是确保A/D转换精度得到提高。

•扩展的物理通道

每个ADCF可以通过使用外部模拟多路复用器扩展物理信道。(可用通道为an0006和AN1I00。)

•虚拟通道概念

虚拟通道数大于物理通道数。

每个虚拟通道可以自由分配给每个物理转换通道

•数据寄存器

提供了与虚拟通道相对应的数据寄存器

•为每个扫描组启动触发器

硬件触发器和软件触发器可以启动每个扫描组的处理。只有扫描组3和4可以通过A/D定时器触发开始处理

•异步/同步挂起和恢复功能

对扫描组的处理可以中断正在进行的对另一个扫描组的处理。优先事项如下:

SG0 < SG1 < SG2 < SG3 < SG4 (SG: Scan group)

SG4优先级最高

如果一个高优先级SG的请求正在处理中,而一个低优先级SG正在处理中,那么在正在进行的虚拟通道处理停止后,低优先级SG将挂起(同步挂起)或在正在进行的虚拟通道处理后立即停止(异步挂起),然后执行高优先级SG的处理。高优先级SG处理完毕后,低优先级SG暂停的虚拟通道处理恢复

也可以设置为:当高优先级SG中断SG0处理时,发生异步挂起;当高优先级SG中断非SG0的低优先级SG时,发生同步挂起。

•支持扫描结束中断和DMA传输

每个扫描组可以产生一个中断请求到INTC,并激活DMAC,每次处理由虚拟通道指针结束或虚拟通道结束所指示的虚拟通道。

•模拟转换电压可设置

A0VREFH引脚和A1VREFH引脚可用于设置模拟转换的电压范围。

•丰富的安全功能

ADCF具有丰富的安全功能,包括A/D转换电路诊断功能、引脚级诊断功能、断线检测、模拟选择正常检查、数据寄存器上限/下限检查、数据寄存器奇偶校验、数据寄存器覆盖检查、数据寄存器读取和清除功能

Block Diagram

Physical Channels, Virtual Channels and Scan Groups

每个物理通道m是指一个外部A/D转换器输入ANnIm。

从应用软件的角度来看,虚拟通道就是A/D转换器通道。

虚拟通道数j大于物理通道数m。

每个虚拟通道j可以通过其虚拟通道寄存器ADCFnVCRj的GCTRL[4:0]位分配给每个物理通道

任意数量的连续虚拟通道可以组合为五个扫描组之一SGx, x = 0到4。

参数定义扫描组的虚拟通道集

•扫描组x启动虚拟通道指针ADCFnSGVCSPx.VCSP[5:0]

•扫描组x结束虚拟通道指针ADCFnSGVCEPx.VCEP[5:0]

虚拟通道的转换结果存储在ADCFnDRj寄存器中。

每个32位ADCFnDRj寄存器存储两个连续的虚拟通道j和(j+1)的结果。

转换结果也存储在数据补充信息寄存器ADCFnDIRj (j = 0 ~ 35)中。这个寄存器包含一些关于转换的附加信息。

•扫描组x虚拟通道:j = 4 ~ 9

•虚拟到物理通道分配:


在扫描组x的转换开始触发后,第一个虚拟通道ADCFnVCR4,即分配的物理通道ANnI01进行转换,并将结果存储在ADCFnDR4.DR4[15:0]中。

下一个转换结果为ADCFnDR4.DR5[15:0]。

内部扫描指针是递增的,并移动到下一个虚拟通道。

Registers

List of Registers

ADCF0ADSYNSTCR — AD Synchronization Start Control Register

ADCF0ADSYNSTCR是一个8位的只写寄存器,控制ADCF0和ADCF1的每个扫描组同时开始A/D转换。寄存器位总是读为0。


ADSTART:启动ADCF0和ADCF1扫描组的A/D转换。

ADCFn SGx启动条件:

对于ADCFn的SGx,当SGACT为0,ADSTARTE为1时,将1写入ADSTART

对于ADSTARTE已设置为1的扫描组(ADCF0和ADCF1),同时开始A/D转换。

ADCF0ADTSYNSTCR — AD Timer Synchronization Start Control Register

ADCF0ADTSYNSTCR是一个8位的只写寄存器,控制ADCF0和ADCF1的每个A/D定时器计数操作的同时开始。寄存器位总是读为0。


ADTSTART:启动ADCF0和ADCF1的A/D计时器的计数操作。

ADCFn的SGx启动条件:

对于ADCFn的A/D定时器x,当ADTACT为0并且ADTSTARTE为1时,1被写入ADTSTART。

对于ADTST已设置为1的(ADCF0和ADCF1的)A/D计时器,同时启动计数操作。

注:x=3,4

ADCFnVCRj — Virtual Channel Register j

ADCFnVCRj是一个32位可读/可写寄存器,用于每个虚拟通道

PUE, PDE:Pull-Up/Down resistor

00:关闭上拉电阻和下拉电阻

01:使能下拉电阻。电阻在采样时间内使能。

10:使能上拉电阻。电阻在采样时间内使能。

11:禁止设置。

CNVCLS[2:0]:转换类型

0H:正常A/D转换

3 h:诊断

4H:加法模式的普通A/D转换

5H:与MPX的正常A/D转换

6H:带加法模式MPX的普通A/D转换

除上述情况外:禁止设置

ADIE:使能虚拟通道结束中断

0: SGx中虚拟通道j的虚拟通道末端不输出ADInx

1: ADInx是SGx中虚拟通道j的虚拟通道端输出

ADCFnSGCRx中的ADIE与ADCFnVCRj中的ADIE是独立的。


GCTRL[4:0]:一般控制

将GCTRL[4:0]中不使用的位写为0。

CNVCLS[2:0]=0时,GCTRL[4:0]表示对应的物理通道

CNVCLS[2:0]=3时,GCTRL[4:0]表示诊断电压

CNVCLS[2:0]=4时,GCTRL[4:0]表示对应的物理通道,ADDNT指定的计数适用于添加的数量

CNVCLS[2:0]=5时,GCTRL[4:0]表示设置MPX通道。

指定要传输到外部模拟多路复用器的MPX值。

中断请求(INTADCFnMPX)或DMA请求由GCTRL[4:0]输出,在虚拟通道开始时转移到ADCFnMPXCURR。

在DMAC中断或启动后,通过将ADCFnMPXCURR传输到I/O端口的PyDR或PyMDR,可以将MPX值传输到外部模拟多路复用器。
CNVCLS[2:0]=6时,GCTRL[4:0]表示设置MPX通道。ADDNT指定的计数适用于添加的数量

ADCFnDRj — Data Register j

该寄存器为32位只读寄存器,用于存储对应的A/D转换结果

转换结果ADCFnVCR (j + 1)存储在高16位,ADCFnVCRj的转换结果存储在低16位。

ADCFnDRj格式取决于ADCFnADCR2的DFMT设置和ADDNT设置(when CNVCLS[2:0] = 4H, 6H).

当读取ADCFnDRj或ADCFnDIRj且RDCLRE为1时,将ADCFnDRj清除为0000H。


DFMT=0时表示小数,符号位S一直为0

DFMT=1时表示整数,符号位S一直为0
当CNVCLS[2:0] = 4H, 6H时,ADDNT中的格式设置有效。

如果CNVCLS[2:0]不是4H, 6H,格式为“convert once”。

ADCFnDIRj — Data Supplementary Information Register j

ADCFnDIRj是一个32位只读寄存器,用于存储ADCFnDRj的补充信息和A/D转换值。为每个虚拟信道提供ADCFnDIRj。当读取ADCFnDRj或ADCFnDIRj而RDCLRE设置为1时,ADCFnDIRj被清除为0000 0000H。无论RDCLRE设置如何,当读取ADCFnDRj或ADCFnDIRj时,WFLG被清除。此寄存器必须始终作为32位数据读取。ADCFnDRj是从16个低位中读取的


WFLG:写标志

1:设置条件

A/D转换值存储在ADCFnDRj中

0:清除条件

读取ADCFnDRj或ADCFnDIRj。

PRTY:奇偶校验
ADCFnDRj的奇偶校验位(偶校验)。
ID[4:0]:包含转换通道的物理通道信息。

ADCFnADHALTR — AD Halt Register

ADCFnADHALTR是一个8位的只写寄存器,用于停止ADC。寄存器位总是读为0。


HALT:所有扫描组和AD定时器停止并初始化,ADC变为空闲状态,写1进入halt状态

ADCFnADCR1 — AD Control Register 1

ADCFnADCR1是一个用于ADC公共控制的8位可读/可写寄存器。


SUSMTD [1:0]:暂停的方法

当高优先级扫描组中断低优先级扫描组时,这些位选择挂起方法

同步挂起:如果高优先级SG的请求存在,而低优先级SG正在处理,则在正在进行的虚拟通道处理完成后,暂停低优先级SG的处理,然后执行高优先级SG的处理。高优先级SG处理完毕后,恢复低优先级SG暂停的虚拟通道处理。

异步挂起:如果在处理较低优先级的SG时存在来自较高优先级SG的请求,则正在进行的虚拟信道处理将立即挂起,然后执行针对较高优先级的SG的处理。在完成针对较高优先级SG的处理之后,恢复针对较低优先级SG的暂停的虚拟信道处理。

0H:同步挂起

1H:当高优先级SG中断SG0时,异步挂起

当高优先级SG中断低优先级SG(SG0)除外时,同步挂起



2H:异步挂起

3H:禁止设置

ADCFnMPXCURCR — MPX Current Control Register

ADCFnMPXCURCR是一个控制ADCFnMPXCURR格式的寄存器


MSKCFMT0:MSKC格式规范

ADCFnMPXCURR的MSKC[3:0]格式

0: MSKC[3:0] = 0000

1: MSKC[3:0] = 1111

ADCFnMPXCURR — MPX Current Register

ADCFnMPXCURR是一个32位只读寄存器,用于存储外部模拟多路复用器的MPX值。


MSKC[3:0]:根据上面的MSKCFMT0配置

MPXCUR[3:0]:当前MPX值

当ADCFnVCRj中CNVCLS[2:0]设置为5H或6H的虚拟通道启动时,ADCFnVCRj中的GCTRL[3:0]被转换为MPXCUR[3:0]

ADCFnMPXOWR — MPX Optional Wait Register

ADCFnMPXOWR是一个寄存器,它指定要插入外部模拟多路复用器的等待时间。


MPXOW:MPX可选等待

这些位指定在ADCFnVCRj中CNVCLS[2:0]为5H或6H的虚拟通道启动后,在A/D转换开始之前插入的等待时间。

ADCFnADCR2 — AD Control Register 2

ADCFnADCR2是一个用于ADCF公共控制的8位可读/可写寄存器。


DFMT:数据格式

0: Signed定点格式

1:表示有符号整数格式

ADDNT:添加计数选择

0:加两次

1:加4次

该寄存器仅在CNVCLS[2:0]为4H, 6H时有效。

ADCFnADENDP0 — A/D Conversion Monitor Virtual Channel Pointer

ADCFnADENDP0是一个8位的可读/可写寄存器,它选择一个虚拟通道输出A/D转换时序到ADENDn


ENDP[5:0]:A/D转换监视器虚拟通道指针

当由ADCFnADENDP0选择的虚拟通道启动时,高电平从ADEND引脚输出。当ADCFnADENDP0选择的虚拟通道结束时,输出低电平

ADCFnSFTCR — Safety Control Register

ADCFnSFTCR是一个用于安全控制的8位可读/可写寄存器。


RDCLRE:读取和清除使能

0:未通过读取ADCFnDRj或ADCFnDIRj,清除ADCFnDRj和ADCFnDIRj

1:通过读取ADCFnDRj或ADCFnDIRj,清除ADCFnDRj和ADCFnDIRj

ULEIE:上限/下限错误中断使能

0:禁用

1:启用

OWEIE:Overwrite错误中断使能

0:禁用

1:启用

PEIE:奇偶校验错误中断启用

0:禁用

1:启用

IDEIE:ID错误中断使能

0:禁用

1:启用

ADCFnTDCR —Pin Level Diagnostic Control Register

ADCFnTDCR是一个控制引脚电平诊断的8位可读/可写寄存器。


TDE:引脚电平诊断使能

0:关闭引脚电平诊断。

1:使能引脚电平诊断。

当TDE设置为1时,所有模拟引脚与输入缓冲区断开连接。

当TDE设置为0时,所有模拟引脚都连接到输入缓冲区。

当TDE设为1时,电压固定在TDLV[1:0]规定的电平上。

在这种状态下执行A/D转换并检查A/D转换值可以诊断从模拟引脚到ADCF的路径

TDLV[1:0]:引脚电平诊断

0H:偶数物理通道组向AnVSS放电,奇数物理通道组向AnVCC充电。

1H:偶数物理通道组向AnVCC充电,奇数物理通道组向AnVSS放电。

2H:偶数物理通道组向AnVSS放电,奇数物理通道组向1/2*AnVCC充电。

3H:偶数物理通道组充电到1/2*AnVCC,奇数物理通道组放电到AnVSS。

ADCFnULLMTBR0 to 2 — Upper-Limit/Lower-Limit Table Registers 0 to 2

ADCFnULLMTBR0-2为32位可读/可写寄存器,用于设置A/D转换值的上下限。通过ADCFnLLMSRx中的ULS[1:0]指定ADCFnULLMBR0到2中的任何一个


ULMTB[15:0]:上限表

这些位指定A/D转换值的上限值。当满足以下条件时,设置ULE(上限/下限错误)。

ULMTB[15:0] < A/D转换值

无论ADCFnDRj的格式如何,ULMTB[15:0]格式都是带签名的定点格式。如果ADCFnDRj格式选择有符号整数格式,则将ADCFnDRj格式替换为有符号定点格式,然后比较值。注意,ULMTB[15]和ULMTB[0]总是固定为0。

LLMTB[15:0]:下限表

这些位指定A/D转换值的下限。当满足以下条件时,设置ULE(上限/下限错误)。

LLMTB[15:0] > A/D转换值

LLMTB[15:0]格式是带签名的定点格式,与ADCFnDRj格式无关。如果ADCFnDRj格式选择有符号整数格式,则将ADCFnDRj格式替换为有符号定点格式,然后比较值。注意LLMTB[15]和LLMTB[0]总是固定为0。

ADCFnECR — Error Clear Register

ADCFnECR是一个控制错误清除的8位只写寄存器。寄存器位总是读为0.


ULEC:上限/下限错误清除,写1清除

OWEC:Overwrite错误清除,写1清除

PEC:奇偶校验错误清除,写1清除

IDEC:ID错误清除,写1清除

ADCFnULER — Upper-Limit/Lower-Limit Error Register

ADCFnULER是一个8位只读寄存器,表示上限/下限错误


ULE:超上限或超下限

ULECAP[5:0]:上限/下限错误捕获

捕获发生上限/下限错误时的虚拟通道

ADCFnOWER — Overwrite Error Register

ADCFnOWER是一个8位的只读寄存器,表示覆盖错误


OWE:Overwrite错误标志

OWECAP[5:0]:错误时对应的虚拟通道

ADCFnPER — Parity Error Register

ADCFnPER是一个表示奇偶校验错误的8位只读寄存器。


PE:校验错误

PECAP[5:0]:校验错误时对应的虚拟通道

ADCFnIDER — ID Error Register

ADCFnIDER是一个8位的只读寄存器,表示ID错误。

IDE:ID错误标志

IDECAP[5:0]:ID错误时对应的虚拟通道

ADCFnSGSTCRx — Scan Group x Start Control Register

ADCFnSGSTCRx是一个8位的只写寄存器,控制扫描组x的开始。寄存器位总是读取为0。


启动扫描组x的条件:当SGACT = 0时,将值1写入SGST

ADCFnADTSTCRy — AD Timer y Start Control Register

ADCFnADTSTCRy是一个8位的只写寄存器,控制AD定时器y的开始。寄存器位总是读取为0。


启动A/D定时器y的条件:当ADTACT = 0时,将值1写入ADTST

ADCFnADTENDCRy — AD Timer y End Control Register

ADCFnADTENDCRy是一个8位的只写寄存器,控制AD定时器y的结束。寄存器位总是读取为0。


完成A/D定时器y的条件:当ADTACT = 1时,将值1写入ADTEND

ADCFnSGCRx — Scan Group x Control Register

ADCFnSGCRx是一个控制扫描组x的8位可读/可写寄存器。


ADSTARTE:扫描组同步启动启用

0:禁用ADSTART。

1:使能ADSTART。

SCANMD:扫描模式

0:表示多周期扫描模式

1:连续扫描模式

在多周期扫描模式下,扫描可以按照ADCFnSGMCYCRx指定的次数重复进行

在连续扫描模式下,重复扫描没有次数限制。

ADIE:扫描结束中断启用

0:扫描SGx结束时不输出ADInx。

1:在扫描SGx结束时输出ADInx。

TRGMD[0]:触发模式

0H:关闭SGx的触发输入。

1H:选择SGx_TRG硬件触发器作为SGx的触发器输入。

当x=3,4时


ADTSTARTE:AD定时器同步启动使能

0:禁用ADSTART。

1:使能ADSTART

TRGMD[1:0]:触发模式

0H:关闭SGx的触发输入。

未使能AD定时器x的触发输入。

1H:选择SGx_TRG硬件触发器作为SGx的触发器输入。

未使能AD定时器x的触发输入。

2H:选择AD定时器触发器x作为SGx的触发输入。

未使能AD定时器x的触发输入。

3H:选择AD定时器触发器x作为SGx的触发输入。

选择SGx_TRG硬件触发器作为AD定时器x的触发器输入。

ADCFnSGVCSPx — Scan Group x Start Virtual Channel Pointer

ADCFnSGVCSPx是一个8位的可读/可写寄存器,它指定了一个虚拟通道的开始指针。


VCSP[5:0]:启动虚拟通道指针

这些位选择要开始扫描的虚拟通道。

当SGx启动时,执行从ADCFnSGVCSPx到ADCFnSGVCEPx的虚拟通道处理。

ADCFnSGVCEPx — Scan Group x End Virtual Channel Pointer

ADCFnSGVCEPx是一个8位的可读/可写寄存器,它指定了一个虚拟通道的结束指针。


VCEP[5:0]:结束虚拟通道指针

这些位选择扫描要结束的虚拟通道。

当SGx启动时,执行从ADCFnSGVCSPx到ADCFnSGVCEPx的虚拟通道处理。

ADCFnSGMCYCRx — Scan Group x Multicycle Register

ADCFnSGMCYCRx是一个8位的可读/可写寄存器,用于指定多周期扫描模式下的扫描次数。


MCYC[7:0]:这些位指定在多周期扫描模式下的扫描次数

扫描次数= MCYC[7:0] + 1

ADCFnSGSRx — Scan Group x Status Register

ADCFnSGSRx是一个8位的只读寄存器,表示扫描组x的状态。


SGACT:扫描组状态

0: SGx暂挂没有转换。

1:有一个转换在SGx待处理。

如果该位为1,则SGx的状态为以下任意一种:

•触发器请求被搁置

•转换正在进行中

•由于发生更高优先级的转换,转换被搁置

当x=3,4时

ADTACT:A/D定时器状态

0: A/D定时器x处于空闲状态。

1: A/D定时器x运行

ADCFnADTIPRy — AD Timer Initial Phase Register y

ADCFnADTIPRy是一个32位可读/可写寄存器,用于设置A /D定时器y的初始相位。


ADTIP[20:0]:A/D定时器初始相位

这些位设置A/D定时器y的初始相位。

(1) A/D定时器y启动后,ADCFnADTIPRy被加载到A/D定时器y,定时器倒计时。

(2) A/D定时器y变为0后,输出A/D定时器触发器y一个周期;ADCFnADTPRRy被加载到A/D定时器y,定时器再次倒数。

之后重复过程(2)

ADCFnADTPRRy — AD Timer Period Register y

ADCFnADTPRRy是一个32位可读/可写寄存器,用于设置A /D定时器y的周期


ADTPR[20:0]:A/D定时器周期

ADCFnULLMSRx — Scan Group x Upper-Limit/Lower-Limit Table Select Register

ADCFnULLMSRx是一个控制扫描组x的8位可读/可写寄存器。


ULS:上限/下限表选择

0H:不检查上限和下限。

1H:在ADCFnULLMTBR0中检查上限和下限。

2H:在ADCFnULLMTBR1中检查上限和下限。

3H:在ADCFnULLMTBR2中检查上限和下限。

在ADCFnDRj中存储A/D转换值时,使用ULS[1:0]选择的上限/下限表检查上限和下限。

Function

正常AD转换操作示例

多周期扫描模式

下图是使用普通A/D转换模式(CNVCLS[2:0]h = 0)对多周期扫描模式下的扫描组0进行2周期扫描转换4个虚拟通道的操作示例。

连续扫描模式

图27.5是使用正常A/D转换模式(CNVCLS[2:0] = 0H)转换连续扫描模式下扫描组0的四个虚拟通道的操作示例。

加法模式下正常A/D转换示例

图27.6显示了在加法模式下使用普通A/D转换(CLVCLS[2:0] = 4H)为扫描组0转换4个虚拟通道的操作示例。

外部模拟多路复用器的操作示例

下面展示了使用MPX模式(CNVCLS[2:0] = 5H)的正常A/D转换或使用MPX模式的加法模式(CNVCLS[2:0] = 6H)的正常A/D转换的外部模拟复用器的操作示例。

使用外部模拟多路复用器示例(端口输出)

同步挂起和恢复操作示例

图27.8显示了一个高优先级时同步挂起和恢复操作的示例
SG中断低优先级的SG。


SG0还在执行过程中SG2触发,则SG0的此通道先执行完,然后执行SG2,再接着执行SG0的后面的通道

异步挂起和恢复操作示例

图27.9显示了一个更高优先级时异步挂起和恢复操作的示例
SG中断低优先级的SG。

SG0的通道1还在执行过程中SG2触发,则SG0停止转换,切换到SG2转换,完成后重新执行SG0对应的通道转换

Example of A/D Timer Operation

A/D定时器计数基于内部ADC时钟ADCFCLK。

Diagnostic Function

ADCF具有以下诊断功能。

•PIN电平诊断功能

•SAR-ADC诊断功能

•开路和断路检测

ADC conversion time

下表显示了不同内部时钟频率下的ADC转换时间。有关更多细节,请参阅时钟章节。

模拟输入采样和扫描组处理时间

ADCF具有嵌入式采样保持电路。当ADCFnSGCRx的SGST位设置为1且扫描组开始延迟时间(tD)过去后,ADC执行采样,然后开始顺序比较转换处理。

扫描组处理时间tSG包括扫描组开始延迟时间tD (Scan group processing time)、采样时间tSPL (sampling time)、顺序比较转换处理时间tSAR (sequential compare conversion processing time)和扫描组结束延迟时间tED (Scan group end delay time)。

Table27.43, Scan Group Processing Time,显示扫描组处理时间

在多周期扫描模式下,当i =虚拟通道数,j =多周期数时,扫描组处理时间tSG (scan group processing time)的计算公式如下:

tSG = tD + (tSPL + tSAR) × i × j + tED

连续扫描模式下的第一周期扫描:tD + (tSPL + tSAR) × i

连续扫描模式下的第二次及后续扫描:(tSPL + tSAR) × i

Hardware Trigger Functions

对于每个扫描组x,提供一个触发输入SGx_TRG,启动相应扫描组通道的转换

扫描组转换触发信号SGx_TRG可以由几个来源产生:

•扫描组SG0至SG4

外部触发信号adtrn。

有关连接触发信号的详细信息,请参见Section 26, Peripheral Interconnect(PIC).

•扫描组SG3 ~ SG4

SG3、SG4可通过A/D定时器启动

AD时间可以通过PIC的触发信号启动

外部触发信号ADCFnTRGx通过数字噪声滤波器来消除噪声和信号故障。

Operation

Initial Settings

Trigger Input Flow

ADCF的A/D转换启动触发器包括硬件触发器、软件触发器和A/D定时器触发器。扫描组x (x = 0 ~ 4)支持ADSTART和SGST指定的软件触发(SG0到SG4), SGx_TRG (x = 0到4)的硬件触发器,以及A/D定时器触发器(SG3和SG4)。

Difference among P1M-C, P1H-C and P1H-CE


P1H-C只有32路ADC通道

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1362639.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【airsim】python控制airsim

使用airsim 1.8.1编译完成&#xff0c;进过block项目在cpp测试后&#xff0c;开始踩坑使用python。 使用AirSim\PythonClient\setup.py或者pip安装airsim。 python setup.py install或者 pip install airsim此时&#xff0c;windows电脑的环境信息 (air_py38) D:\code\Gith…

UV胶水与聚氯乙烯PVC材料的塑料粘接,效果如何?

UV胶水可以与聚氯乙烯PVC很好地粘接。 PVC是一种常见的塑料材料&#xff0c;UV胶水通常对PVC具有良好的粘接性能。UV胶水可以在紫外线照射下迅速固化&#xff0c;形成坚固的粘接&#xff0c;因此通常被用于PVC制品的粘接和修复。 UV胶水与PVC粘接的优点&#xff1a; 1. 快速固…

Java并发集合详解

第1章&#xff1a;引言 大家好&#xff0c;我是小黑&#xff0c;在这篇博客中&#xff0c;咱们将一起深入探索Java中的并发集合。多线程编程是一个不可或缺的部分&#xff0c;它能让程序运行得更快&#xff0c;处理更多的任务。但同时&#xff0c;多线程也带来了一些挑战&…

Linux 编译安装 Nginx

目录 一、前言二、四种安装方式介绍三、本文安装方式&#xff1a;源码安装3.1、安装依赖库3.2、开始安装 Nginx3.3、Nginx 相关操作3.4、把 Nginx 注册成系统服务 四、结尾 一、前言 Nginx 是一款轻量级的 Web 服务器、[反向代理]服务器&#xff0c;由于它的内存占用少&#xf…

独立式键盘控制步进电机实验

#include<reg51.h> //包含51单片机寄存器定义的头文件 sbit S1P1^4; //将S1位定义为P1.4引脚 sbit S2P1^5; //将S2位定义为P1.5引脚 sbit S3P1^6; //将S3位定义为P1.6引脚 unsigned char keyval; //储存按键值 unsigned char ID; …

etcd基本介绍

etcd基本介绍 ETCD是SoreOs公司发布的一个分布式的、高可用的、key-value存储的数据库。基于Go语言实现&#xff0c;k8s中也使用了ETCD作为数据库。主要用于共享配置和服务发现。相对于zookeeper采用的Paxos&#xff0c;ETCD采用的是Raft算法&#xff0c;该算法具备的性能更佳…

Hadoop集群三节点搭建(二)

一、克隆三台主机&#xff08;hadoop102 hadoop103 hadoop104&#xff09; 以master为样板机克隆三台出来&#xff0c;克隆前先把master关机 按照上面的步骤克隆其他两个就可以了&#xff0c;记得修改ip和hostname 二、编写集群同步脚本 在/home/attest/ 创建bin目录&…

基于SSM的《数据库系统原理》课程平台

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是 目录…

Matlab:遗传算法,模拟退火算法练习题

1、遗传算法 &#xff08;1&#xff09;遗传算法是一种基于自然选择原理和自然遗传机 制的搜索&#xff08;寻优&#xff09;算法&#xff0c;它是模拟自然界中的生命进化机制&#xff0c;在人工系统中实现特定目 标的优化。遗传算法的实质是通过群体搜索技术&#xff0c;根据…

西电期末1024.数值信息报表

一.题目 二.分析与思路 考点重复&#xff0c;这里介绍一种新的处理方法&#xff0c;以前用找最值时用排序加结构体记录数据位置&#xff0c;用数组记录一串数据使用&#xff0c;西卡西&#xff0c;我们只是找最值&#xff0c;就可以打擂台处理&#xff0c;加上位置就行&#x…

Linux 的引导与服务控制

一 开机启动过程 bios加电自检-->mbr-->grub-->加载内核文件-->启动第一个进程 1 bios加电自检 检测硬件是否正常&#xff0c;然后根据bios中的启动项设置&#xff0c;去找内核文件 2 mbr 因为grup太大,第一个扇区存不下所有的grub程序&#xff0c;所以分为…

【C/C++】开源串口库 CSerialPort 应用

文章目录 1、简述2、效果图2.1、命令行&#xff08;不带GUI&#xff09;2.2、GUI&#xff08;这里用的Qt&#xff09; 3、串口硬件知识普及4、核心实现4.1、Qt的pro文件4.2、main文件4.3、SSerialPort类4.3.1、头文件4.3.2、源文件 4.4、Linux下的CMakeLists.txt 1、简述 本文…

ruoyi若依 @DataScope(deptAlias = “d“, userAlias = “u“)不生效问题

DataScope注解不生效问题记录 问题&#xff1a;DataScope(deptAlias "d", userAlias "u")不生效问题原因排查&#xff1a;解决方案&#xff1a;结果&#xff1a;完美解决 问题&#xff1a;DataScope(deptAlias “d”, userAlias “u”)不生效问题 原因…

MDPI期刊word模版下载

先打开该网站 找到Manuscript 就能下载到word文件了

吴恩达深度学习l2week2编程作业—Optimization Methods(最新中文跑通版)

到目前为止&#xff0c;您一直使用渐变下降来更新参数并将成本降至最低。在本笔记本中&#xff0c;您将获得一些更先进的优化方法的技能&#xff0c;这些方法可以加快学习速度&#xff0c;甚至可能使您获得更好的成本函数最终值。拥有一个好的优化算法可能是等待几天与只需几个…

解决使用localhost或127.0.01模拟CORS失效

解决使用localhost或127.0.01模拟CORS失效 前言问题发现问题解决 前言 CORS (Cross-Origin Resource Sharing) 指的是一种机制&#xff0c;它允许不同源的网页请求访问另一个源服务器上的某些资源。通常情况下&#xff0c;如果 JavaScript 代码在一个源中发起了 AJAX 请求&…

HAL——定时器

学习目标 掌握定时器I配置方式掌握定时器占空比输出 学习内容 需求 以PA5对应的LED4为例&#xff0c;我们做一个呼吸灯的效果。 我们采用TIMER1进行实现&#xff1a; Timer配置 配置Timer通道输出 配置周期和分频计数 psc为分频系数&#xff0c;这里的值需要写入到寄存器中…

HAL——SPI

学习目标 掌握SPI配置方式掌握SPI读写操作 学习内容 需求 SPI配置 打开SPI1,选中全双工模式。观察下方自动生成的引脚&#xff0c;是否和自己开发板引脚对应。 修改引脚&#xff0c;来动右侧芯片引脚视图&#xff0c;找到开发板对应引脚&#xff0c;进行修改。

Linux 目录结构及其说明

Linux 操作系统遵循一种标准的目录结构&#xff0c;称为 Filesystem Hierarchy Standard&#xff08;文件系统层次结构标准&#xff09;&#xff0c;其定义了不同目录的用途和内容。 浅蓝色文字 /&#xff08;根目录&#xff09;&#xff1a; /根目录是整个文件系统的起点&…

学习Go语言Web框架Gee总结--http.Handler(一)

学习Go语言Web框架Gee总结--http.Handler http-base/go.modhttp-base/main.gohttp-base/gee/gee.gohttp-base/gee/go.mod 网站学习来源&#xff1a;Gee 代码目录结构&#xff1a; http-base/go.mod //指定当前模块的名称为 "example" module example//指定当前模…