
1、综述
在MPC5744P微控制器上有4个模拟数字转换器(ADC)模块。每个ADC由16个通道组成。采用12位连续近似寄存器(SAR)结构选择了特定的ADC集,允许在小于1us的情况下进行精确转换和采样。
为了在运行你的应用程序时允许温度读数,ADC0有一个用于温度传感器TSENS0,ADC1有一个通道用于温度传感器TSENS1。此外,所有四个ADCs都具有看门狗功能,可以将ADC结果与预先定义的级别进行比较,然后将结果存储在适当的ADC结果位置。
ADCs在两种不同的模式下运行:常规模式和运动控制模式。
常规模式特点:
•寄存器基于CPU的接口:每个通道的都有一个结果寄存器
•ADC状态机管理三个请求流:常规命令、硬件注入命令、软件注入命令
•软件和硬件注入之间的可选优先级
•16路模拟看门狗将ADC的结果与预定义的级别(低、高、范围)进行比较。
•DMA接口兼容
电机控制模式特点:
•仅触发模式
•四个的结果队列(1x16项、2x、1x4项)
•结果校准电路(左对齐,右对齐)
•32位的读模式,它允许16位部分中的通道ID
•DMA接口兼容
与四个ADCs集成的是两个交叉触发单元(CTUs)。每个交叉触发单元(CTU)都允许在用户选择的条件下自动生成ADC转换请求,而CPU干预最少。这些转换请求发生在所谓的CTU控制模式中,发生在PWM期间,用于动态配置。
下面的图表显示了四个不同的ADCs以及它们与设备上其他模块的交互。
所有四个ADCs只有两个可能的ADC供应:ADC0和ADC1。必须启用这两种设备才能使用ADC功能。
CTU接口
每个ADC都由CTU (在CTU控制模式)控制。在这种模式下,CTU可以通过发送ADC命令来控制每个ADC。在CTU控制模式下,CPU能够在ADC寄存器中写入,但是它不能启动新的转换。对于MPC5744P设备,CTU0是ADC0和ADC1的控制器,而CTU1则控制ADC2和ADC3模块。
eTimer接口
所有四个ADCs都允许一个外部触发源启动转换。该特性通过在ADC的主配置寄存器(MCR)中的注入外部触发器(JTRGEN)位启用。对于MPC5744P,这个外部触发特性连接到一个eTimer模块的定时器通道5,eTimer发送一个外部触发器事件。eTimer1连接到ADC0和ADC1,eTimer2连接到ADC2和ADC3模块。
DMA接口
对于每个ADC,可以在每个通道转换后执行DMA请求。、
FCCU接口
MPC5744P设备上的每个ADC都连接到故障收集和控制单元(FCCU),并具有创建关键和非关键错误的能力。关于这些错误的含义,请参阅“FCCU”一章。
ADC pin muxing管脚多路复用技术
ADC转换通道
参考电压 VDD_HV_ADRE0 和VDD_HV_ADRE1都必须启动。
两者都必须处于同一水平
ADC
模数转换器(ADC)使用连续的近似寄存器(SAR)体系结构,为广泛的应用程序提供精确和快速的转换。
ADC由以下组成:
•ADC数字接口(ADCD)。ADCD包含通过主机总线访问软件的配置、控制和状态寄存器。转换后的值存储在一个寄存器中,然后通过DMA或主机访问传输。
•ADC模拟硬macrocell(ADCA)。
模拟通道输入被输入到ADCA的输入中。每个通道都是在一个特定的时间内采样,并通过ADCA的数字模拟转换器(DAC)与数字代码产生的模拟电压进行比较。对ADCD进行比较结果,生成转换后的数字值
ADC时钟信号
ADC使用下列时钟信号:
•Bus clock—在ADCD上的总线时钟。用于访问寄存器和跨模块接口的操作时钟。
•AD_clk—该信号由总线时钟派生而来,它是ADCA和ADCD中的SAR控制器的操作时钟。
两个时钟之间的关系是由ADC_MCR[ADCLKSEL]字段的设置决定的。
•如果ADC_MCR[ADCLKSEL]是1,时钟信号是一样的
•如果ADC_MCR[ADCLKSEL]是0,AD_clk是总线时钟的一半
注意:
1.不管ADC_MCR[ADCLKSEL]字段的设置是什么,ADC时钟(AD_clk)的最大时钟速度是80MHz。
2.根据你的芯片的配置和时间的需要,MCR[ADCLKSEL]可能永远需要是1。
通道配置
可以通过以下方式配置ADC通道:
•通过编程转换计时寄存器(CTR),采样持续时间是控制的。
•可以对单独的屏蔽寄存器进行编程,以配置要转换的通道(这些寄存器中的每个位代表一个通道)。
•温度传感器(TSENS)和其他特殊通道(带隙、供应等)可在特定通道上使用。(查看可用的特定于芯片的配置。)
•模拟看门狗允许对来自输入通道的转换值进行连续的硬件监视。(查看可用的特定于芯片的配置。)
•电容自检测试
•预采样
开始转换
转换可以由软件或硬件发起。
ADCD有一个芯片上的交叉触发单元(CTU)接口,它也可以启动转换。
CTU的界面支持CTU的控制模式。
CTU触发的应用程序的一个例子就是当前的灯或led灯的控制回路。
使用一个芯片上的定时器模块作为触发源,CTU可以发起周期性的转换。
中断/DMA支持
ADCD为各种通道转换条件提供了对每种通道的中断/DMA支持。数据可以通过DMA传输
自测
ADCD可以通过各种自我测试定期检查ADCA的健康状况,并在可用的情况下将任何关键/非关键故障与芯片故障收集和控制单元(FCCU)联系起来。不同测试的严重性(关键/非关键)是可编程的。
特性:
•分辨率:12位
•最大速度:1M采样数/秒在80MHz
•16通道
•采样时间寄存器
•精密通道:
•0-15(ADC0)
•0-15(ADC1)
•0-4 10 14(ADC2)
•0-7 10-14(ADC3)
注意:温度传感器使用CTR1寄存器值
•操作模式:
•普通
•注入
•CTU
•正常模式支持单点/扫描(连续)
•注入模式支持单点
•预采样
•省电模式
•两个中断特性允许你在一个链中终止一个单通道或在普通的和注入的模式中终止一个完整的链
•每个通道都有一个专用寄存器用于转换结果和操作模式(正常的、注入的或CTU)
•模拟看门狗支持:
•多达16个模拟监管机构
•可配置的不同通道
•自动关闭时钟特性
•可编程的时钟预分频器(总线时钟除以2)
•CTU控制方式
•对每个通道的DMA支持
•中断条件:
•为正常的和注入的转换的单个通道的转换结束
•对于正常的和注入的转换的链的转换结束
•CTU转换结束
•看门狗阈值交叉
•软件启动校准
•自我测试功能
内存映射/寄存器定义
注意:对于保留的和超出范围的地址,将会有一个访问错误。特殊的例外是039Ch和03A4h的预留空间:不要在这些位置写或更改任何值,否则ADC可能会出现故障。
注意:查看特定于芯片的配置信息,因为并非所有的寄存器都可以在所有ADC实例中使用。
控制逻辑寄存器:
Control logic registers:
• Main Configuration Register (ADC_MCR)
• Main Status register (ADC_MSR)
• Interrupt Status Register (ADC_ISR)
• Channel Pending register 0 (ADC_CEOCFR0)
• Interrupt Mask Register (ADC_IMR)
• Channel Interrupt Mask Register 0 (ADC_CIMR0)
• Watchdog Threshold Interrupt Status Register (ADC_WTISR)
• Watchdog Threshold Interrupt Mask Register (ADC_WTIMR)
• Analog Watchdog Out of Range Register 0 (ADC_AWORR0)
DMA registers:
• DMA Enable register (ADC_DMAE)
• DMA Channel Select Register 0 (ADC_DMAR0)
Threshold registers:
这些寄存器用于存储用户可编程的低和高阈值12位值。这些记录包括:
• Threshold Register (ADC_THRHLRn)
Presampling registers:
• Presampling Control Register (ADC_PSCR)
• Presampling register 0 (ADC_PSR0)
Conversion timing registers:
• Conversion Timing Register 0 (ADC_CTR0)
• Conversion Timing Register 1 (ADC_CTR1)
Mask register: 这些寄存器用于编程在正常的和注入的转换过程中必须转换的输入通道。这些寄存器包括
• Normal Conversion Mask Register 0 (ADC_NCMR0)
• Injected Conversion Mask Register 0 (ADC_JCMR0)
Delay registers:
• Power Down Exit Delay Register (ADC_PDEDR)
Data registers:
内部通道的转换结果被加载到数据寄存器中。每个数据寄存器也提供关于相应结果的信息。这些寄存器从CDR0开始:
• Channel Data Register n (Precision Channels) (ADC_CDRn)
Self test registers:
• Self Test Configuration Register 1 (ADC_STCR1)
• Self Test Configuration Register 2 (ADC_STCR2)
• Self Test Configuration Register 3 (ADC_STCR3)
• Self Test Status Register 1 (ADC_STSR1)
• Self Test Status Register 2 (ADC_STSR2)
• Self Test Status Register 3 (ADC_STSR3)
• Self Test Status Register 4 (ADC_STSR4)
• Self Test Baud Rate Register (ADC_STBRR)
• Self Test Analog Watchdog Register 0 (ADC_STAW0R)
• Self Test Analog Watchdog Register 4 (ADC_STAW4R)
• Self Test Analog Watchdog Register 1A (ADC_STAW1AR)
• Self Test Analog Watchdog Register 1B (ADC_STAW1BR)
• Self Test Analog Watchdog Register 2 (ADC_STAW2R)
• Self Test Analog Watchdog Register 5 (ADC_STAW5R)
• Self Test Data Register 1 (ADC_STDR1)
• Self Test Data Register 2 (ADC_STDR2)
Other registers include:
• Calibration, BIST Control and status Register (ADC_CALBISTREG)
• Offset and Gain User Register (ADC_OFSGNUSR)
功能描述
转换
在powerup或重置之后,ADC位于电源关闭模式下,直到MCR[PWDN]字段被写入。
下面列出了一些配置,只有在断电模式下才可以使用,这些配置必须在退出电源关闭模式之前进行处理。
SAR控制器的时钟选择(AD_clk): MCR [ADCLKSEL]
在上述配置之后,通过将“0”写入MCR [PWDN],需要从省电模式中取出ADC,转换可以在以下模式中启动:
•正常
•注入
•CTU触发
1.1正常的转换
通常用于转换通道的转换模式称为正常转换。对可用的普通转换屏蔽寄存器NCMR (s)( (ADC_NCMRn)进行编程,选择通道(s)。每个通道都可以通过在NCMRn寄存器的相应字段中设置位来单独启用。
•NCMR0提供精确通道:
•0-15(ADC0)
•0-15(ADC1)
•0-4 10 14(ADC2)
•0-7 10-14(ADC3)
屏蔽寄存器(s)必须在启动转换之前进行编程,并且在所有选定通道的转换结束之前不能更改。转换总是从选择的最低的通道数开始,然后顺序到达最高的数字。
开始一个正常的转换
在编写了MCR和NCMR0n寄存器(s)之后,通过设置MCR[NSTART]位来启动一个正常的转换。
要通过外部触发器启动一个正常的转换,可以通过设置(MCR[TRGEN]位来启动外部触发器。一个程序的事件(根据MCR[EDGE]边缘位上升/下降)在正常的触发输入上启动转换。
在外部触发器上定义由MCR[EDGE]位(上升=1,下降=0)定义的活动边缘,将启动正常的转换。
1.2正常操作模式转换
有两种操作模式可用于正常转换:
•单次模式
•扫描模式
MCR[MODE]位确定在正常的转换过程中使用哪个模式。转换过程的第一阶段包括对模拟通道进行采样。下一个阶段是转换阶段,在这个阶段中,采样的模拟值被转换为数字,如下图所示。
单次模式
在单次模式(MCR[MODE] =0)中,在以下屏蔽寄存器(s)中指定的顺序转换只执行一次:
•NCMR0
在每次转换结束时,转换的数字结果存储在相应的数据寄存器中(CDRx、x=通道号)。
例如:通道A-B-C-D-E-F-G-H存在于设备中,通道B-D-E将被转换在单次模式。从B通道开始,接着是通道D和E的转换。在通道E的转换结束时,通道的扫描将停止。
当正常的转换开始时,MSR[NSTART]状态位会自动设置。与此同时,MCR[NSTART]被硬件重新设置,使软件可以预先规划一个新的转换开始。在这种情况下,新请求的转换在完成运行/当前转换之后开始。但是,为了简单和直接,建议在运行转换完成之后,为新的转换程序编写NSTART位。要知道运行链的转换的结束,应用程序将在重新设置MCR[NSTART]之前,等待链(ECH)中断或检查MSR NSTART的状态。
如果转换链是由外部触发器启动的,那么触发器输入将不会被ADC块观察到,直到当前的转换链完成。在链结束之后,下一个链可以被另一个硬件触发边界触发/触发。
扫描模式
在扫描模式(MCR[MODE] = 1)中,在NCMRn寄存器(s)中指定的n通道的顺序转换是连续执行的。在每次转换结束时,转换后的结果被存储到相应的数据寄存器中,就像在单次模式中那样。
当正常的转换开始时,MSR[NSTART]状态位会自动设置。与单次模式不同,MCR[NSTART]位在扫描模式下不会自动重置。当你需要停止扫描模式时,它可以被软件重置。在这种情况下,ADC完成当前链,在最后一次转换之后,重新设置MSR[NSTART]。
例如: 通道A-B-C-D-E-F-G-H存在于设备中,通道B-D-E将被转换在扫描模式下。MCR[MODE] = 1被设置为扫描模式。转换从通道B开始,接着是通道D和E的转换。在通道E的转换结束时,通道B的转换重新开始,接着是通道D和E的转换。这个序列不断重复,直到MCR[NSTART]被软件重新设置。
这个扫描链可以通过写入0到MCR[NSTART]来停止。当正在进行的链完成时,转换就停止了。
注意:如果转换是由一个外部触发器启动的,那么MCR[NSTART]没有设置,因此,一旦启动,停止扫描模式转换的唯一方法是将MCR[MODE]位设置为0。
转换结束
在这两种模式中,在每次转换结束时,如果在以下寄存器(s)中相应的屏蔽位启用,就会发出一个结束转换(EOC)中断。
• CIMR0
另外,EOC中断必须在IMR寄存器中启用。在所有在NCMRn寄存器(s)中选择的所有通道的转换完成后,转换操作被认为是完成的,ISR[ECH]就被设置了,并且发出了一个终止链中断(如果在IMR[ MSKECH]中启用)。在适当的CEOCFRn寄存器中对应的通道位被更新,以表明在各自通道的数据寄存器(CDRn)上有数据可用。如果在NCMRn寄存器(s)中没有选择通道,并且有一个转换触发器的开始,那么ISR[ECH]就会被设置,并且会立即发出一个ECH中断(如果启用了)。
注意:从正在进行的链中添加或移除通道:
(1)清除MCR[NSTART] 位
(2)在NCMRn中为所需的通道设置/清除屏蔽
(3)设置MCR[NSTART] 位
1.3注入转换:
注入的转换是可以在任何时间注入的转换链,包括进入正在进行的正常转换链。
为此,配置注入的屏蔽寄存器(s): • JCMR0
在正常的转换中,每个内部或外部通道都可以被单独选择,用于注入的转换。
JCMR0控制精确通道:
• 0 - 15 (ADC0)
• 0 - 15 (ADC1)
• 0 - 4, 10, 14 (ADC2)
• 0 - 7, 10 - 14 (ADC3)
注入的转换只能以单次方式运行,并且只能中断正常的转换。请注意,CTU的转换不能被注入的转换打断。在这种情况下,注入的转换将被丢弃。当将注入的链插入到正在进行的正常链时,正在正常的通道被挂起,并处理注入的通道请求。在完成注入链的最后一个通道之后,正常的转换从被挂起的通道恢复,如下图所示。
开始注射转换
通过设置MCR[JSTART]位来启动注入的转换,可以通过软件启动注入的转换;
当前的正常转换被暂停,注入的链被转换。
要通过外部触发器启动注入转换,可以通过设置MCR[JTRGEN]=1来启用外部触发。在注入触发器输入上的一个程序事件(根据MCR[JEDGE]位的上升/下降的边缘)启动注入的转换。
当注入转换开始时,MSR[JSTART]状态位会自动设置。与此同时,MCR[JSTART]位被重新设置,允许软件程序预先设定一个新的转换开始。在这种情况下,新请求的转换将在运行转换完成之后开始。
在每次转换结束时,都发出了注入转换结束(JEOC) 的中断(如果在IMR中有相应的屏蔽位),并且在链的末尾,会发出注入链(JECH)中断的结束(如果在IMR中相应的屏蔽位启用)。还设置了状态位ISR JECH。
如果所有注入的转换屏蔽寄存器的内容(JCMRn)是0(即:没有选择通道)中断JECH立即被发布以恢复正常的操作或转换模式。
在适当的CEOCFRn寄存器中对应的通道位被更新,以表明在各自通道的数据寄存器(CDR)中有数据可用。
一旦启动,注入的链转换不能被正常或其他注入转换中断。CTU的触发点具有更高的优先级;注入的转换具有较低的优先级。因此,只有一个CTU的触发器可以中断正在进行的注入转换。在这种情况下,注入的转换将被丢弃。
1.4终止转换
提供了两种不同的中止功能:
•单通道中止
•一个链终止
你可以通过设置MCR[ABORT]位来中止正在进行的转换。当前的转换被中止,并立即启动链的下一个通道的转换。中止操作可能需要1到4个周期的总线时钟根据转换的状态中止当前的转换。在任何转换的开始,在特定转换的结束时,当内部状态计数器发生变化时,中止被延迟最多3个周期,以使所有状态处于稳定状态。中止程序也不应该被编程,并且在程序的3个周期内进行编程,即MCR[NSTART]或MCR[JSTART]。从软件的角度来看,这可能不会产生很大的影响,因为在任何SoC下,下一个写访问只在最少3个时钟周期之后才会出现。
注意:用NSTART或JSTART在空闲状态下编程中止或终止链没有效果。
2.0 Crosstriggering Unit interface交叉触发单元接口
交叉触发单元(CTU)接口增强了ADC的注入转换能力。CTU包含多个事件输入,可用于从适当的事件配置寄存器中选择要转换的通道。下面的图中显示CTU/ADC接口。CTU生成一个触发器和一个要转换的通道号。为每个请求转换单个通道。执行转换后,ADC返回结果。
转换结果也保存在相应的数据寄存器中,如果被请求,它将与看门狗阈值进行比较。在CTU的转换过程中,也可以使用ADC的DMA和中断功能。
CTU的接口有一种操作模式,控制。
CTU接口是通过编程MCR[CTUEN]bit来实现的。
2.1 CTU Control mode
在CTU控制模式下,如果通过MCR CTUEN启用,CPU可以在ADC寄存器中写入,但不能启动转换。转换请求只能由CTU触发器生成。如果在CTU启用(MCR[CTUEN])时,需要进行正常的或注入的转换,那么它将被自动丢弃。
在CTU的触发下,ctu_numchannel被作为通道和CTU转换开始。在这一点上,MSR[CTUSTART]是自动设置的,除非通过重新设置MCR[CTUEN]来禁用CTU。
在校准结束时,必须请求CTU的转换。如果在校准过程中收到一个CTU的触发点,那么校准就会立即停止,以满足CTU的要求。在这种情况下校准将会失败。
如果在ctu_nextcmd信号之前收到另一个CTU触发器,那么新请求就会被丢弃。
3.0 ADC时钟分频器和采样时间设置
为控制ADCA,ADC的SAR控制器提供的时钟(AD_clk)必须满足频率和占空比的特定条件。最大可接受频率为80兆赫,其占空比为50%(±5%)。
AD_clk频率可以通过编程MCR[ADCLKSEL] bit来进行扩展。如果设置了这个位,则AD_clk频率与总线时钟相同。否则,adclk频率是总线时钟的一半。
只有当MCR[PWDN]=1时,MCR[ADCLKSEL]只能在省电模式下被写入。
采样时间由转换时间寄存器(CTRn)中的设置控制。
CTR0控制精确通道的采样时间:
• 0 - 15 (ADC0)
• 0 - 15 (ADC1)
• 0 - 4, 10, 14 (ADC2)
• 0 - 7, 10 - 14 (ADC3)
唯一的例外是温度传感器通道,它总是使用CTR1值。
4.0预采样:Presampling
Presampling允许ADC内部电容器在开始实际的模拟输入/转换之前,在一个已定义的水平上进行预充电或放电。这对于在最后转换的数据上重置信息(历史效果/偏移量)非常有用。在预采样过程中,ADC采样内部产生的电压,在采样期间,ADC采样模拟输入来自于垫板。
通过在适用的PSRn寄存器中设置相应的位,可以在一个单独的通道上启用或禁用预采样。
•PSR0控制精确通道
在为通道启用预采样后,正常的操作顺序是预采样+取样+对该通道的评价。
通过设置PSCR[PRECONV],可以绕过该通道的采样。当一个通道的采样被忽略时,预采样的电压就会被转换。
4.1预采样通道启用
通过对presampling寄存器(Presampling Control Register (ADC_PSCR)进行编程,可以选择presampling通道。这些用于模拟内部产生的电压的模拟开关。
根据表36-1中给出的PREVALx [x = 0,1,2]的值,可以从4个内部可用的电压中选择预压电压。
PREVALn字段与特定的通道相关联,如表36-2所示。
温度传感器通道是个例外。它可以用任何一个通道进行映射,但是它使用PREVAL1值来选择预采样的电压,因为它的物理属性可能与其他内部精度通道不同。
5.5可编程模拟看门狗
注意:
模拟看门狗和通道的数量可能会因芯片上的ADC实例而异。
请参阅特定于芯片的部分,了解每个实例中有多少可用的部分。
模拟看门狗用于确定转换的结果是否位于一个给定的警卫区域(如图36-7所示),分别由一个上下限和一个较低的阈值分别指定为THRH和THRL。
在选择通道的转换之后,在转换值和阈值值之间进行比较。如果转换值位于警卫区域外,则生成相应的阈值违规中断。
将比较结果存储为WTISR[ WDGxH]和WTISR [WDGxL],如下表所述。根据WTIMR [MSKWDGxL]和WTIMR[ MSKWDGxH]的屏蔽位,一个中断是在阈值违背时产生的。
对于每个监视者,都有一个阈值(低和高)寄存器(THRHLR)。每个通道的模拟监视程序可以通过编程CWENRn寄存器位地启用。
CWENR0控制着精确的通道:
• 0 - 15 (ADC0)
• 0 - 15 (ADC1)
• 0 - 4, 10, 14 (ADC2)
• 0 - 7, 10 - 14 (ADC3)
这些寄存器的可用性依赖于设备配置。
每个通道的阈值可以从最大的16个阈值寄存器中地选择(使用THRHLRx,(x=0..15)),由CWSELRx寄存器的WSEL_CHx字段(x=0..11)。
每个CWSELRx寄存器都包含8个连续通道的选择。CWSELR0包含8个WSEL_CH字段,用于0到7的通道。同样,CWSELR1是用于8到15的通道,等等。字段和寄存器的可用性取决于设备配置。
如果一个特定通道的转换值位于阈值值指定的范围之外,那么相应的位就会被设置在模拟看门狗超出范围寄存器(AWORR)的中。
例如,如果通道号12是在寄存器THRHLR3中的阈值被监视的,那么CWSELR1[WSEL_CH4]就需要用3来编程。通过在CWENR0寄存器中设置与第12通道对应的位,就可以完成启用。
一组阈值值(THRHLRx)可以连接到几个ADC通道。为通道选择的阈值值只需要在CWSELRx寄存器中编程一次。
5.6 DMA功能
直接内存访问(DMA)请求可以在每个通道的转换之后进行编程,通过在下列寄存器(s)中设置相应的屏蔽位
• DMAR0
在开始任何转换之前,DMA屏蔽寄存器必须被编程。DMA传输可以使用ADC_DMAE[DMAEN]位来启用。当DMAE[DCLR]位被设置时,DMA请求在读取使能DMA传输的寄存器的上被清除。
5.7 Interrupts
ADC产生以下可屏蔽的中断信号:
•结束转换中断(EOC)请求
•结束链中断(ECH)请求
•结束注入的转换中断(JEOC)请求
•结束注入的链中断(JECH)请求
•CTU的转换中断(EOCTU)请求
•看门狗阈值中断(WDGxL和WDGxH)请求
中断是在转换过程中生成的,用来表示事件,比如转换的结束,就像中断状态寄存器(ISR)的寄存器描述中所解释的那样。ISR和中断屏蔽寄存器(IMR)允许您检查和启用中断请求。
通过编程通道中断屏蔽寄存器(CIMR),可以在通道到通道上单独启用中断。
还提供了一个通道等待寄存器(CEOCFRn),以表示通道的度量已经完成。
模拟的看门狗中断由监视阈值中断屏蔽寄存器(WTIMR)启用,并且可以在监视阀值中断状态寄存器(WTISR)上检查状态。监视中断源为在WTISR中监视的每个通道设置两个字段,WDGxH和WDGxL。
特别是,EOC、ECH、EOCTU、JEOC和JECH中断线在同一条线上(OR-ed)组合在一起。EOC中断请求通过清除ISR[EOC]或所有的CEOCFR位来清除。JEOC中断请求通过清除ISR[JEOC]或所有的CEOCFR位来清除。EOCTU中断请求通过清除ISR[EOCTU]或所有的CEOCFR位来清除。同时,该算法的自测试终止与STSR1[WDG_EOA_S] 和 STSR1[WDG_EOA_C]相结合。
所有WDGxH和WDGxL请求都在第二行中进行组合。
第三行上的另一个中断是在STSR1中包含了WDSERR、WDTERR, ERR_S0,
ERR_S1, ERR_S2, and ERR_C的组合。
ISR寄存器包含中断等待请求状态。如果您想要清除特定的中断事件状态,那么将1写入相应的状态位将清除挂起的中断标志。(在这个写操作中,ISR寄存器的所有其他部分必须被编程为0。)
5.12转换数据处理
原始转换的ADC数据包含许多类型的错误,如偏移量、增益、直流偏置等。因此,为了生成没有错误的结果,在将原始转换的数据写到结果寄存器之前处理。误差校正过程在转换过程中,与在补偿计算和校准过程中产生的值进行了比较。这有助于减少最终的数据处理时间,因为只有一个添加/添加(2的补充)与转换并行执行。
6时钟频率
ADC内部模块设计用于处理一个80兆赫的时钟。因此,指定的速度可以满足这个时钟频率。如果时钟比这快,ADCA不能正常工作,ADC可能会出现故障。如果时钟变慢了,那么ADC的速度将会降低,但它将会正常工作。需要注意的是,采样时间的绝对值最大,而ADC的模拟部分可以支持。对于较慢的时钟,需要相应地设置采样时钟计数。
从其中一个输入源中,内部时钟是由两个PLL0和PLL1、pll0phi和pll1phi分别生成的。这两个时钟,以及XOSC和IRCOSC,可以根据辅助时钟选择器的配置来选择驱动系统外围设备。PLL0的PHI1输出也可以用作PLL1的时钟源。总共有7个时钟选择器,允许开发人员选择PLL参考时钟,使用的时钟源驱动各种系统外围设备,并选择一个时钟源来驱动CLKOUT信号以供外用。还有一个额外的时钟选择器,它专门用于系统时钟。
模块时钟选择器的每一个输出都有3个因数,这允许更多的时钟频率粒度,在给定的一组外围设备上,每个分区因子最多可达个。在选定的时钟分数表上,是时钟监视器单元(CMU),用来测试时钟的完整性,确保它们的频率保持在必要的操作范围内。如果5个CMUs中的任何一个检测到正在被监视的时钟信号,就会生成一个中断或系统重置,这取决于如何配置CMUs。
