KL25 Reference Manual_Rev分享给大家学习
1.1.1 目的
本文档表述了飞思卡尔KL25 微控制器的特性、框架及程序模板。
1.1.2 适用读者
本文档适用于正在使用或即将使用KL25 微控制器的系统架构师和软件应用开发员。
1.2 约定
1.2.1 数字系统
下列后缀表示了不同的数字系统:
后缀 表示
b 二进制符号。例如,数字5的二进制表示为101b。二进制数字还可以用0b作为前缀表示。
d 十进制符号。十进制数字只有在出现混淆的情况下才使用该后缀。通常,十进制表示无需后缀。
h 十六进制符号。例如,数字60的十六进制表示为3Ch。十六进制数字还可以用0x作为前缀表示。
第2章 引言
2.1 概述
本章是 ARM® Cortex™-M0+的 Kinetis L系列 MCU及KL25 系列产品的概述。这也表示了本文涵盖的芯片可用模块是较为准确的描述。
2.2 Kinetis L系列
业内ARM Cortex-M0+内核的 MCU 具有低功耗及混合信号的处理能力,Kinetis L系列则是其中最具可扩展性的系列。KL系列因存储器容量、接口数量、封装形式等不同,有 5 个子系列。Kinetis L系列共用公共外设和引脚,提高了可移植性。允许可扩展性允许开发者标准化他们的最终产品、最大化可重用硬件和软件以及缩短进军市场的时间。
Kinetis L系列的共性如下:
具有 48MHz ARM Cortex-M0+内核频率
具有高速 12/16位模数转换器
除 KLx4/KLx2系列外,均具有12 位数模转换器
具有高速模拟比较器
除 KLx4 系列外,均具有触摸唤醒的低功耗触摸传感器
具有强大的定时器,包括电机控制等大多数应用
通信接口低功耗,如UART、SPI、I2C 等
电压供应范围:1.71V~3.6V,多功能低功耗模式支持独立操作
运行温度范围:-40~105 °C(CSP 包除外)
Kinetis L系列微控制器融合了最新的低功耗革新技术,具有高精度混合信号处理能力、宽广的互联性和人机接口。Freescale与 ARM的合作伙伴为每个MCU 系列提供良好的支持。KL0x 系列是 Kinetis L 系列中最初的产品,其引脚与 8 位 S08PT 系列兼容。
KL1x/2x/3x/4x各系列之间相互兼容,而且与基于ARM Cortex-M4 内核的 K系列兼容。
所有的 Kinetis L 系列包括强大的模拟、通信、实时性和控制外设,集成级别随着闪存容量和输入/输出引脚数量增加而提高。Kinetis L系列特性如下:
1、内核和框架:
(1)ARM Cortex-M0+内核性能可达48 MHz,同时可在内存中执行零等待状态。
1)单周期访问 I/O:比标准I/O 最大提高 50%,允许位触发、软件仿真协议响应外部事件。
2)双通道:减少指令周期数,更快的跳转指令、 执行 ISR 中断服务例程和减少功耗。
3)相对8位和16 位微控制器,减少了闪存、系统消耗和耗电量,使代码密度更为精简。
4)优化内存访问:访问可选周期,以降低耗电量。
5)完全兼容ARM Cortex-M0系列,与ARM Cortex-M3/M4 指令集子集兼容:允许重新利用现有的编译和调试工具
6)更精简的指令系统:56种指令、17个寄存器能够实现轻松编程,而且能够有效处理内存中8/16/32位数据。
7)线性的4GB地址空间去除分页,减轻程序复杂度。
8)有ARM 第三方系统支持:软件和工具帮助减少开发时间和开销。
(2)微型跟踪缓冲区:轻量跟踪方法允许快速错误识别和纠正。
(3)BME:对外围寄存器的操作,位操作技术与传统的读、修改、写技术相比,减轻代码量和周期数
(4)多达4通道的DMA服务,可用于外设和内存服务并减少CPU干预。
2、超低功耗:
(1)极端动态效率:性能是最接近的 8 位或 16 位竞争产品 CoreMark/mA 的 2 倍,32 位ARM Cortex-M0+内核采用飞思卡尔90nm薄膜存储器闪存技术。
(2)灵活多样的低功耗模式,包括新的门控时钟,该模式在要求最低功耗时通过关闭总线、系统时钟减少动态功耗
(3)在未唤醒内核下,UART、SPI、I2C、ADC、DAC、TPM、LPT 和 DMA 支持低功耗模式。
3、内存:
(1)内存空间可扩展,从8KB 闪存/1KB SRAM到256KB 闪存/32KB SRAM。
(2)为优化总线带宽和闪存执行操作内嵌了64B的缓存空间(KL02 系列只有32B)。
4、混合信号模拟:
(1)快速、高精度的 16/12 位模数转换器、12 位数模转换器和高速比较器。提供强大信号调节、转换和分析性能的同时降低了系统成本。KL02 系列没有 12 位数模转换器)
5、人机接口:
(1)可选的电容式触摸传感接口工作于所有低功耗模式下。
• Optional capacitive Touch Sensing Interface with full low-power support and minimal current adder when enabled
(2)段式 LCD
6、通信:
(1)所有UART 支持DAM传输,总线检测到数据也能触发传输,UART0 支持 4-32倍的采样速率。在STOP/VLPS 模式,也能运行异步传输和接收操作。
(2)最大支持两路SPI
(3)最大支持两路I2C
(4)支持全速USB OTG片上传输控制设备(带有片上收发器的全速USB OTG控制器)
(5)USB支持片上调节3.3V 到5V
(6)支持一路 I2S
7、可靠性和安全性
内部看门狗监控
8、定时控制器:
(1)强大的定时模块支持通用/PWM/电机控制功能
(2)可用于RTOS任务调度时基、ADC转换或定时的周期中断定时器
9、系统特性:
(1)GPIO支持引脚中断
(2)宽泛的工作电压:1.71V~ 3.6V,Flash 编程电压、模拟外设电压低至1.71V
(3)运行温度范围:–40℃~ 105℃
2.3 KL25 子系列简介
该芯片是增强版 Cortex-M0+ (CM0+)内核的高集成、超低功耗 32 位微控制器。子系列特性如下:
内核时钟高达48MHz,总线时钟高达24MHz
内存空间具有高达128KB 的闪存和 16KB 的 RAM
宽泛的工作电压:1.71V~ 3.6V,可对 Flash进行编程/擦除/读取操作32到 80 引脚的多种封装模式
运行温度范围:–40℃~ 105℃
该系列控制器更低功耗、更经济有效的特性为开发者提供了一个入门级 32 位芯片解决方案。该系列对于低成本、低功耗、高性能芯片应用提出了下一代MCU解决方案,该方案对那些成本敏感、待机时间长的便携式芯片是十分有价值的。
2.4.1 ARM Cortex™-M0+ 内核模块
表2-2描述了本芯片的可用内核模块。
2.4.2 系统模块
表2-3描述了本芯片的系统模块。
表2-3 系统模块
3.4.10.1 COP时钟
COP 的两个时钟输入是 1 kHz 时钟和总线时钟。
3.4.10.2 COP看门狗操作
当应用程序没有按照预期执行时,COP 看门狗会强制系统复位。应用软件必须定期
清零COP 计数器, 去防止系统被 COP 计数器复位 (当使能COP 计时器时)。如果应用程
序跑飞,未能在 COP 计数器超时之前复位,则将产生系统复位强制信号将系统恢复到应
用程序中的一个已知起点。
任何复位后,COP 看门狗都将被使能。如果应用程序不使用COP 看门狗,它可以通
过清除在SIM卡中的COPCTRL [ COPT ] 来禁用。
COP 计数器通过选定的超时期间向 SIM 的服务COP (SRVCOP) 寄存器的地址写入
0x55 和 0xAA (按此顺序)来复位。写不影响在 SRVCOP 寄存器中数据。一旦写序列
完成后, COP 超时周期将重新启动。如果程序无法在超时时间内执行此重新启动,则微
控制器将复位。此外,如果任何0x55 或0xAA 以外的值写入SRVCOP 寄存器,则微控制
器立即复位。
在SIM的COPCTRL COPCLKS ]字段中,选择用于COP 定时器的时钟源。时钟源选
项是总线时钟或内部的1 kHz时钟源。每个时钟源,有三个COPCTRL [ COPT ]控制的相
关的超时。表 3-23 总结了COPCLKS 和COPT位的控制功能。COP 看门狗默认操作是在
1 kHz时钟源和最长的超时作为该时钟源(2的10次方个循环) 。
总线时钟源选择后,通过设置在SIM的 COPCTRL [ COPW ]位来使窗口COP 操作可
用。在这种模式下,写入SRVCOP 寄存器以清除COP 定时器必须发生在选定的超时时间
的最后 25%。过早地写将立即复位芯片。当 1 kHz 时钟源选择,窗口COP 操作不可用。
的第一次写入到 SIM 的 COPCTRL 寄存器和任何系统复位后,COP 计数器都将被初
始化。后续写入到 SIM 的 COPCTRL 寄存器将不影响 COP 的操作。即使应用程序使用
COPT、 COPCLKS、 以及 COPW 位的默认设置来复位,用户也应在复位初始化锁定的
设置过程中去写write-once COPCTRL 寄存器。这种方法可以防止如果应用程序带来丢失
的意外更改。
写到 SRVCOP 寄存器的服务(清除) COP 计数器不应该被放置在中断服务例程(ISR)
中,因为ISR即使主应用程序失败也可以继续定期执行。
如果选择总线时钟源时,当微控制器在调试模式下或系统在停止模式(包括VLPS或
LLS )下时,COP 计数器不会递增。微控制器退出调试模式或停止模式后,COP计数器
恢复。
如果选择 1 kHz时钟源时, 在调试模式及停止模式(包括VLPS 或 LLS) 任一模式下,
COP 计数器都将被重新初始化为零。退出调试模式或停止模式后, 计数器从零开始计时。
无论选择的哪种时钟, 只要当芯片进入一个VLLSx 模式COP 都将被禁止。从VLLSx
模式唤醒芯片复位后, COP 将重新初始化并作为任何复位使能。
3.4.10.3 时钟门
该系列器件包含每个外设的时钟门控,也就是说,时钟的每个外设都可以明确地选通
或关闭,使用的时钟门控位在SIM模块内。
3.5.2.1 MCG和RTC中的OSC的操作模式
控制OSC块的最通常的方法是通过MCG的时钟源选择MCG_C1[CLKS] 和MCG_C2
的寄存器位来配置振荡器的频率范围、增益模式以及晶体或外部的时钟操作。OSC_CR也
控制着 OSC 的启动以及 EXTAL 和 XTAL 两个引脚的内部负载电容的配置。详细内容参
考 OSC 和 MCG 章节。
RTC_CR[OSCE]位对 MCG 和 OSC_CR 的启动功能有着重要的控制。当
RTC_CR[OSCE]设定好后,给 OSC 配置低频率、低功率,RTC_CR[SCxP]位撤销
OSC_CR[SCxP]位来控制内部电容配置。详细内容参考RTC章节。
3.6.1.4 Flash 模式
“Flash存储器章节”定义了两种操作模式—正常NVM模式和专用NVM模式。在这
个芯片中,flash 存储器只运行 NVM 的正常模式。所有 nvm专用模式的参考都可以被忽
略。
3.6.1.5 擦除所有的flash内容
除了软件,整个flash存储器可以通过SW-DP的调试端口设置MDM-AP CONTROL[0]
从flash存储器的外部进行擦除。设置MDM-AP CONTROL[0]指示批量擦除的命令被接收,
当批量擦除的命令完成时清除MDM-AP CONTROL[0]。
3.6.1.6 FTFA_FOPT寄存器
Flash 存储器的 FTFA_FOPT 寄存器允许用户在计算机启动的时候适配 MCU 的操作。
它的定义细节参见FOPT启动选择。
3.6.2 Flash存储器的控制器结构
该部分总结了芯片中的该模块是如何配置的。关于模块本身的全面描述,请参考它们
专门的章节。FMC 重新设定的配置细节参见MCM_PLACR寄存器的描述。
3.7.1.2 ADC上的DMA支持
应用中可能需要ADC 的连续采样,这会给CPU带来相当大的负荷。当ADC 以高速
进行采样时,为了得到更高的性能,ADC 支持 DMA 的请求功能。在转换完成后,ADC
能触发 DMA(通过DMA请求)。
3.7.1.3 ADC0连接/通道分配
注意
如下面的部分所示,每个 ADCx_DPx 输入和特定的 ADCx_DMx 输入可作为单向模
式的单向ADC通道。
3.7.2.1 CMP 实例化信息
该芯片包含一个高速比较器和 2 个可反相、正相 8 路输入多工器比较器。每个 CMP
输入通道都连接至多路复用器。其中两个通道连接至内部源,其他源支持多达6 个输入引
脚。该芯片的CMP 输入连接总结参见通道分配表。
CMP 也包含一个 64-电阻阶梯网络的 6 位 DAC,该电阻阶梯网络可为通过内部连接
到CMP 且需要参考电压的应用提供一个可选参考电压。
CMP 除在VLLS0模式,均可任意工作。
利于ADC的触发,CMP已经有几个模块至模块的内部连线,TMP 触发和UART IR
接口。CMP 模块内部连线详细信息请参阅 模块-模块章节。
CMP 不支持窗口比较功能且CMP_CR1[WE]必须清零。连接至模块的SAMPLE 输入
端为无效输入时,采样功能弱化。采样操作受限于总线时钟的分频(CMP_CR1[SE]=0)。
由于引脚数的限制,此芯片不支持CMP的pass through模式,故CMPx_MUXCR[PSTM]
必须清零。
3.7.2.4 CMP 触发模式
当CMP_CR1[TRIGM]置位,CMP 和6 位 DAC 子模块支持触发模式的操作。当使能
触发模式,触发事件将会初始化比较次序,该次序必须在执行CMP 操作和捕捉输出前使
能 CMP 和 DAC。在该芯片中,由 LPTMR 控制这两个阶段的次序。当 LPTMR 使能时,
LPTMR触发输出总是使能。第一个信号提供使能CMP 和DAC,同时置位TCF标志。根
据 LPTMR 配置,延时的第二个信号触发 CMP 捕捉比较的结果。在预分频的定时器模式
下,延迟等于1/2的预分频输出周期。旁路预分频时,延迟等于1/2的预分频时钟周期。
来自LPTMR的两个信号间的延时必须大于在数据手册中已定义的模拟比较器初始化
的延时。
6.2.2.1.1复位引脚过滤
引脚在 1kHz LPO 时钟和总线时钟中都可以使用该过滤。RPFC[RSTFLTSS],
RPFC[RSTFLTSRW], 和 RPFW[RSTFLTSEL]在 RCM 寄存器中设置控制;见 RCM 相关
章节。过滤器芯片上电复位以后与复位异步。上电复位时默认设置 RESET 引脚无滤波设
置。
对于所有的(如Stop,VLPS,LLS,VLLS3,和 VLLS1)LPO时钟仍然保持使能的stop
模式,LPO 基于数字过滤是唯一的可选时钟。过滤逻辑可以是开关到旁路操作或者继续
过滤操作,这些都取决于过滤器模式的选择。当进入VLLS0 模式,复位引脚过滤器是无效
的并且是被忽略的。
LPO 过滤器的过滤值计数固定是3。输入数据有一个2个周期的同步信号。这样,从
高到低或从低到高的转换需要5个周期。
6.2.2.2 低电平检测(LVD)
当给芯片提供多变的电压,芯片的低电平检测系统可以保护内存内容和控制MCU 系
统状态。系统由上电复位电路(POR)和低电压检测(LVD)电路组成。对于低电压检测
(LVD)电路,用户可选选择电压(高电压(VLVDH)或低电压(VLVDL))。 在正 常运
行、等待和停止模式下,低电压检测系统在正常运行、等待和停止模式下总是保持使能。
LVD 系统在VLPx、LLSx和 VLLSx 模式下总是保持禁止。
通过设置 PCM 的 LVDSC1[LVDRE]位为 1,LVD 可以在检测到低电压条件时产生复
位。当产生 LVD复位时,LVD 系统使MCU处于复位状态直到供应的电压大于LVD 低电
压阈值。LVD复位或POR时 SRSL[LVD]位被置位。
6.2.2.3 COP看门狗复位
看门狗定时器通过软件周期性的通信操作监视系统的操作。该通信通常称为服务性看
门狗。如果没有定时进行喂狗,看门狗将产生系统复位。COP 复位导致 SRS0[WDOG]位
被置位。
6.2.2.4 低漏唤醒(LLWU)复位
LLWU 模块为用户提供了用外部引脚和内部外设将MCU 从低漏模式下唤醒。LLWU
模块只有在低漏功耗模式下使用。在VLLSx 模式下,所有使能的输入LLWU 都可以产生
系统复位。
系统复位后,LLWU 会保持标识上一次的唤醒源的标志直到用户清该标志位。
注意:
LLWU 复位中外设模块的一些条件标志位会自动被清除。详见各个外设模块说明。
6.2.2.5 多功能时钟发生器时钟丢失(LOC)复位
MCG 模块支持一个外部的参考时钟。
如果MCG中的C6[CME]为1,时钟监视器使能。当外部参考压降低于floc_low or floc_high,
(由 MCG 中的C2[RANGE]位控制),MCU 复位。RCM的 SRS0[LOC]位为1代表该复位
源。
注意:
为了防止不可预测丢失时钟的复位事件,所有的时钟监视器在进入低功耗模式下(包
括 VLPR和 VLPW)之前必须禁用。
6.2.2.6 MCG –丢失锁定LOL复位
MCG 有一个PLL丢失锁定探测器。当MCG 配置为PEE或者锁定使能,该探测器使
能。如果 MCG_C8[LOLRE]位被置位并且 PLL 锁的状态位(MCG_S[LOLS0])变成 1,
MCU 复位。RCM_SRS0[LOL]位标志该复位源。
注意:如果芯片在任何停止模式下,该复位源不会产生任何复位。
6.2.2.7 停止模式的应答错误(SACKERR)
如果内核试图进入 stop 模式或者计算操作,该复位产生,但是不是所有模块的 stop
模式在 1kHzLPO 时钟的1025 个周期内。
如果一个错误产生,该模块可能并不应答进入 stop 模式。该错误也可能由外部时钟
输入一个模块中产生。
6.2.2.8 软件复位(SW)
NVIC 应用中断和复位控制寄存器的 SYSRESETREQ 位置位时会产生一个软件复位。
(参见 ARM 的 NVIC 文档寄存器详细说明,尤其 VECTKEY 位域要求说明)。置位
SYSRESETREQ可产生软件复位请求。除了调试模块,软件复位能重设系统大多数模块。
软件复位时RCM的 SRS1[SW]位被置位。
6.2.2.9 锁定复位(LOCKUP)
LOCKUP 会立即表明严重错误的内核软件产生的错误。在内核中系统硬件保护激活
时,一个不可恢复异常导致内核被锁。
LOCKUP 导致系统复位,亦使RCM的SRS1[LOCKUP]位被置位。
6.2.2.10 MDM-AP系统复位请求
通过设置 MDM-AP 控制寄存器中的系统复位请求位可以产生系统复位。通过 SWD
接口,此复位方式是的主要复位方法。直到该位被清,系统复位才停止。
当芯片从系统复位中唤醒,通过设置MDM-AP 控制寄存器中的内核保持复位位可以
控制正在复位的内核。
6.2.3 MCU复位
MCU 不同模块产生各种不同的复位。
6.2.3.1 POR上电复位
只有在上电复位的时候上电复位激发。将PMC 和RTC复位,也同样触发其他复位。
6.2.3.2 芯片非VLLS上电复位
非VLLS 芯片上电复位来自上电复位和LVD复位。复位部分SMC 和 SIM。同时 复
位了LPTMR。
在非VLLS 芯片上电复位同样引起以下复位:芯片上电复位,芯片非VLLS 复位,和
芯片复位(包括早期的芯片复位)
6.2.3.3 芯片上电复位
芯片上电复位断言芯片POR,LVD和 VLLS 唤醒复位源。它重设了复位引脚过滤寄存
器和SIM和MCG 的部分寄存器。芯片POR 同样产生芯片复位(包括早期的芯片复位)。
6.2.3.4 芯片非VLLS复位
通过复位引脚,芯片非VLLS 复位在除了 VLLS 唤醒源,其他复位都可以产生。它复
位了SMC,LLWU 和其他模块(该模块在VLLS 模式下保持上电)。
芯片非 VLLS 复位同样引起芯片复位(包括早期芯片复位)触发。
6.2.3.5 早期芯片复位
早期芯片断言所有的复位源。它复位了flash内存模块。它在 flash内存初始化开始之
前无效(“早于”芯片复位无效)。
6.2.3.6 芯片复位
芯片复位同样来自所有复位源,并且只有在flash初始化完成之后无效并且 引脚同样
禁止。该复位重置了现存的模块(该模块没有被其他复位所重置)。
6.2.4 复位引脚
对于所有的复位源(除了VLLS 唤醒),其他都通过复位引脚发生,复位引脚被MCU
拉低至少 128 总线时钟周期,直到flash初始化完成。
在 flash 初始化完成之后,复位引脚释放,并且内部芯片复位在复位引脚上拉之后失
效。一直按住外部复位引脚会延迟了内部芯片复位。
复位引脚通过置 RESET_PIN_CFG 选项位为 0,可以禁用。当该选项选中,在芯片上
电复位上升沿时,会有一个短暂的冲突区,在建立该选项的设置和在引脚处释放复位功能
之前设备驱动引脚输出低电平。
6.2.5 调试复位
以下部分详细描述了调试复位。
6.2.5.1 复位调试子系统
使用DP CTRL/STAT 寄存器的CDBGRSTREQ 位复位调试模块。但是,如下所述,
使用CDBGRSTREQ 位并没有复位所有调试相关的寄存器。
6.3.3 启动顺序
在上电时,片上稳压器会保持芯片处于POR 状态直到输入电压高于POR阈值。系统
会持续这个静止状态直到内部调节电压达到 LVD 标定的安全操作电压。复位控制逻辑器
控制一系列退出复位。
1. 系统复位保持在内部逻辑,复位引脚驱动为低电平, MCG 在使能默认的时钟模式。
2. 时钟使能(系统时钟,flash 时钟和任何没有时钟门控制的总线时钟复位后禁用)。
3. 内部系统复位逻辑持续保持拉高,但是flash 控制器停止复位并且在复位控制逻辑
持续将复位引脚拉低时,开始初始化操作。
4. 先将 NVM 选项中的复位序列字节读取并且存到 FTFA_FOPT 寄存器中。如果与
LPBOOT 相应的位,为备用时钟分频器复位值编程时,系统/内核时钟切换到较慢的时钟
速度。如果清FAST_INT位,flash初始化切换到慢速时钟会导致更长的恢复时间.
5. 当 flash初始化完成,复位引脚将被释放。如果复位引脚持续触发(如复位引脚一
个缓慢上升沿或者外部使能拉低),系统持续保持复位状态。一旦检测复位引脚的电平为
高,内核时钟使能,系统将退出复位状态。
6. 当系统退出复位时,处理器初始化堆栈,程序计数器(PC)和连接寄存器(LR)。
处理器从中断向量表 0 偏移处读取 SP(SP_main)。内核从中断向量表偏移 4 处读取 PC。
LR 设置为 0xFFFF_FFFF。CPU开始转到PC位置执行。
子系统复位遵从同样的复位顺序。
第7章 电源管理模块
7.1 简介
本章主要描述各种芯片电源模块,以及在这些模式下各个不同模块的功能。
7.2 时钟模块
该部分描述了该设备支持的多种时钟模块。
7.2.1 局部停止
局部停止是一种可替代 stop 模式的时钟选项,在 SMC 停止控制寄存器
(SMC_STOPCTRL)进行配置。STOP 模式只是一部分进入,在高能耗的情况下保留了
一些额外的功能使能。局部stop 模式能够从Run 模式或者VLP Run 模式进入。
当配置为 PSTOP2 模式,只有内核和系统时钟不可以用,总线时钟仍然使能。进入
Stop 模式后总线主机和总线从机由系统时钟起振,但是在RUN(或者VLP Run)模式下
总线从机由总线时钟起振。在 RUN(或者 VLP Run)模式下,MCG 时钟产生器和 PMC
片上稳压器仍然运行。退出PSTOP2,一个异步的来自总线主机或者总线从机(由系统时
钟驱动)的中断,或者一个同步的来自总线从机(由总线时钟驱动)的中断可以通过复位
初始化。一旦这样配置,DMA 请求(采用异步的 DMA 唤醒)能同样用于退出局部 Stop
模式(在DMA持续时间,在设备转回PSTOP2模式之前)。
当配置为PSTOP1,系统时钟和总线时钟都被禁止。所有的总线主机和总线从机进入
stop模式,但是MCG的时钟发生器和PMC的片上稳压器保持运行 (或者VLP Run)模式。
从PSTOP1 模式离开,一个来自总线主机或者从机的异步中断被复位初始化。一旦该配置,
在设备传送回PSTOP1之前在DMA传送周期内,一个异步DMA请求可以用来退出局部
Stop。
PSTOP1模式类似于STOP模式,但是耗能更高,唤醒速度更快。还可以保持所有的
MCG 时钟使能,这可以用于使一些异步外设可以在stop 模式下使能工作。
7.2.2 DMA唤醒
不管什么Stop模式下的DMA请求都可以用来唤醒设备。在计算操作, PSTOP, STOP
和VLPS 低功耗模式下,每个DMA通道都可以唤醒。
当在PSTOP,STOP 或者VLPS,检测到DMA 唤醒,设备将退出低功耗模式。它包括
储存片上稳压器和内部电源开关,使能MCG 中的时钟发生器,使能系统和总线时钟(不
是内核时钟)和阻塞发给总线主机和总线从机的 STOP 信号。唯一的不同是可以在 CPU
时钟失效时,CPU 将保持在低功耗模式下运行。
在计算操作中,DMA 唤醒将导致退出计算操作。这个包括使能时钟和阻塞发给总线
主机和总线从机的STOP模式信号。内核时钟仍然在计算操作中保持使能。
由于 DMA 唤醒将使能时钟和阻塞发给总线主机和停止总线从机的 STOP 模式信号,
软件方需要首先确保总线主机和从机并没有包含进DMA唤醒和发送器保持它在一个已知
的状态。在所选的模块中,可通过在进入低功耗模式之前或者通过设置 DOZE 使能位,
达到以上的目的。
一旦DMA请求将设备唤醒并且DMA 完成当前的传输,设备将回到原始的低功耗模
式。这包括请求所有非 CPU 总线主机进入 Stop 模式并且请求总线从机进入 Stop 模式。
在 STOP 和VLPS模式 MCG和PMC 将同样进入对应的模式。
注意:
如果被请求的DMA发送器不能产生DMA 请求,导致设备将保持在高功耗的状态直
到低功耗模式完全退出。
使能的 DMA 唤醒将停止进入低功耗模式,如果DMA 请求在stop 模式进入队列中声
明(或者如果请求在DMA 唤醒时再次进入)并且能引起SMC 设置Stop Abort标志位。
一旦DMA唤醒完成,进入低功耗模式将重新开始。
在 DMA 唤醒的中断将立即退出低功耗模式(对于计算操作时可选的)。
DMA唤醒可以由同步的DMA请求产生或者异步的DMA请求产生。在stop模式中,
并不是所有的外设能够产生异步DMA 请求,如果该外设能够产生同步的DMA请求并且
在 stop 模式下也支持异步中断,那么该外设可以产生一个异步的DMA请求。
7.2.3 计算操作
计算操作:是一种使 CPU 一直访问 SRAM 和 FLASH 读取端口,但将所有其他总线
主机和总线从机进入Stop模式的执行或者纯计算模式的操作。计算操作在RUN 模式或者
VLP RUN模式下都可以使能。
注意:
如果不先退出计算操作,无法进入任何stop模式。
因为计算操作重复使用 stop 模式逻辑(包括在总线从机之前禁用总线主机的进入),
任何总线主机或者总线从机可以在 stop 模式下保持使能,也能在计算操作下保持使能,
包括异步中断的产生和DMA请求。当在 run模式下使能计算操作,模块对总线主机和总
线从机的作用等同于stop模式。当在VLP RUN 模式下使能计算操作,模块对总线主机和
总线从机的作用等同于VLPS模式。尽管FLASH 寄存器接口禁用,MCG,PMC,SRAM和
flash 读取端口都不受计算操作的影响。
在计算操作时,AIPS 外设空间不可访问并且访问会产生总线错误。在计算操作时,
私有的外设空间仍然可以访问,包括 MCM,NVIC,IOPORT 和系统滴答。尽管可以通过
IOPORT访问GPIO寄存器,但GPIO 端口数据输入寄存器不能返回有效的数据,因为时钟
对于端口控制和中断模块无效。通过写入GPIO端口数据输出寄存器,可以控制GPIO端
口配置为输出引脚。
计算操作由 MCM 中的 CPO 寄存器控制,只可以 CPU 访问。设置或清 MCM 的
CPOREQ 位会进入或者退出计算操作。计算操作在探测到一个中断(该中断是用来服务
大部分中断的)可以配置为自动退出。只有内核系统中断(异常,包括NMI和系统滴答)
并且在不退出计算操作的情况下,任何边沿检测中断仍有效。
当进入计算操作, CPOACK状态位标志进入已完成。当在run模式下退出计算操作,
CPOACK 状态位立刻取反。当在 VLPRUN 模式下退出计算操作,退出将延时直到 PMC
控制电源消耗。这个延时通过检测 CPOACK 位来确定什么时候 AIPS 外设空间能够访问
并且不产生总线错误。
DMA唤醒在计算操作中可以使用并且DMA唤醒还会引起CPOACK状态位清零并且
AIPS外设空间在DMA 唤醒周期可以访问。在DMA唤醒完成后,设备恢复为计算操作模
式。
7.2.4 外设休眠
一些外设支持休眠模式,在低功耗模式下可以使用寄存器的某一位禁用外设。Flash
在外设休眠模式下通过SIM中的寄存器,同样可以进入低功耗的状态。
外设休眠是指在如下的操作中:
CPU 在等待模式
CPU在stop模式,包括进入序列 ①
7.2.5 时钟门
和在DMA唤醒阶段
CPU 在计算操作,包括进入序列和在DMA 唤醒阶段。
在 WAIT 或者 VLPW 模式下,外设休眠模式因此能用来禁用所选的总线主机或者从
机。在进入任何 stop 模式(或者计算操作)同样可以用于禁用总线从机,以此来代替等
待总线主机应答作为进入 stop 模式的顺序的一部分。最后,可以用来禁用选中的总线主
机或从机(该总线从机或主机在DMA 唤醒状态应该保持未激活状态)。
如果flash在WAIT 和 STOP 模式下不能访问,那Fash 休眠模式可用降低功耗,当执
行 flash 中的向量和代码将消耗稍长时间唤醒。在计算操作下执行代码或者SRAM中的向
量,同样可以用来减少电源消耗。
为了节省功耗,大部分模块的时钟可以通过设置SIM模块的 SCGCx 寄存器关闭。这
些寄存器比特位在复位之后清零;同时也会禁用相应模块的时钟。初始化一个模块之前,
需要先设置SCGCx寄存器的相应位来使能该模块的时钟。在关闭时钟之前,必须确保已
经禁用了模块。有关此部分的详细的资料请参见“SIM”的时钟分配章节。
7.3 电源模块
电源管理控制器(PMC)提供多种可选电源,用户可以根据不同的功能需求来选择
不同的模式以优化电源功耗。
根据用户对停止模式的需求,提供了多种模式,如:提供状态驻留,逻辑单元和存储
单元的部分掉电,或者完全断电;或关闭某些逻辑单元和存储单元电源;或关闭所有逻辑
单元和存储单元电源。 I/O 状态在所有模式操作中都会置高。下表比较可使用的电源模式。
每个运行模式都有对应的等待和停止的模式。等待模式和ARM的睡眠模式类似。停
止模式(VLPS,STOP)和 ARM 深度睡眠模式类似。当最大总线频率不是必须需要的时候,
极低功耗运行操作模式可以大大减少电源消耗。
CPU 有三种基本模式:运行、等待和停止。WFI 指令包含芯片等待和停止模式。芯
片通过运行、等待和停止三种模式的不同排列来实现低功耗。基本模式根据需要又细划分
了一些低功耗模式。
7.4 进入及退出电源模式
WFI指令激活等待和停止模式。处理器需要通过一个中断退出低功耗模式。对于LLS
和VLLS 模式下,只有 LLWU 产生的唤醒,NMI引脚或者RESET引脚可以作为唤醒源。
当NMI或者RESET引脚通过设置相应的FOPT位被禁止,那么这些引脚不可作为唤醒源。
通过复位来自VLLSx的唤醒流总是有效。
注意: WFE 指令对于进入低功耗模式有一定作用,但是这不是这个指令的真正用途。
可以参考ARM文档来获取更多的关于WFE 的指令信息。
在 VLLS 恢复,在代码执行开始后,I/O 引脚持续保持在静止状态,在未锁定 I/O 之
前,软件可以重新配置系统。RAM只有在VLLS3模式下受限。
7.5 低功耗下的模块操作
下表说明了芯片处于各种低功耗模式下每个模块的功能。但有一些例外的标准行为,
如计算机操作(CPO)和部分停止模式2(调试模块被分开讨论了,详细信息见低功耗下
的调试)。数据速率(例如 2MHz 和 1Mbps)代表最高频率或者最大数据传输率。另外,
以下是缩写的解释:
FF=所有功能,在VLPR 和 VLPW 模式,频率是有限制的,如果模块没有频率限制,
那么它的值是FF。
Async operation=交替时钟源完全功能,提供可选时钟保持使能。
static=模块寄存器状态以及相关联的内存会受限制;
powered=存储器电源被保留。
low power=内存在低功耗状态下强制保存内容。
OFF=模块断电;模块在复位状态下唤醒,对于时钟,OFF意味着禁用。
wakeup=模块可以作为芯片的唤醒源。
第8章 安全性
8.1 介绍
该设备基于 flash 模块选择的模式实现的。下面对 flash 安全和在非 flash 模块进行全
局的概述。
8.2 Flash 安全性
Flash模块基于 FSEC[SEC]位保存的状态提供了对MCU 的安全性信息。反过来, MCU
验证请求的安全性和对 FLASH 进行限制访问。在复位期间,flash 模块通过从 flash 配置
域的安全位读出的数据,初始化FSEC 寄存器。
注意:
安全性特征仅仅应用于外部访问:调试。CPU 访问 flash 是不会受 FSEC 的状态的影
响。
在非安全模式下,不管调试端口(SWD)还是执行用户代码,所有的 flash命令在可
编程的接口都是可以用的。当flash 处于加密状态下(FSEC[SEC]位置 00,01或者 11),只有
编程接口允许执行全部擦除操作。另外,在该模式下,调试端口不可访问内存地址。
8.3其他模块的安全性交互
Flash 安全性可以设置哪些资源可以访问。下面的章节描述了模块和flash 安全性设置
之间的交互和flash安全性对非 flash模块上的影响。
8.3.1安全性和调试的交互
当flash 加密时,SWD接口是不能访问MCU 的内存资源的。
尽管大部分调试功能被禁止,但是调试器还是可以通过写 FLASH 全部擦除位命令。
当内存保护时,仍然可以通过调试器全部擦除。
当全部擦除无效,通过调试器全部擦除是不可行的。
第9章 调试
9.1 介绍
该调试系统是基于ARM CorSight
TM1
9.2 调试端口引脚
结构,由于引脚的约束和其他可用的资源,该调
试系统可以配置为具有很高的灵活性的系统。
该系统提供从外部调试接口访问内存和寄存器,和基本的运行/停止控制以及 2 个断
点和 2个监视点。
只支持一种调试接口:
Serial Wire Debug(SWD)
在上电复位之后调试引脚默认使能为SWD功能。
9.3 SWD状态和控制寄存器
通过ARM调试访问接口(DAP),调试器可以访问状态和控制单元,在DAP总线上
的寄存器的作用如下图。在低功耗模式下恢复和经典的运行控制模式下,这些寄存器提供
了额外的控制和状态。这些状态寄存器位为调试器提供了一种更新内核的状态方法,该方
法不用初始化总线交叉开关,使得在调试阶段降低干扰。
这些 DAP 控制和状态寄存器是比较重要的,这些寄存器不在系统内存映射,它们只
能用 SWD 通过调试访问接口(DAP)访问。通过下表中列出的可用寄存器,MDM-AP
和调试端口1(DAP1)都可访问。
9.5 微型追踪缓冲区(MTB)
MTB 为 Cortex-M0+内核,提供简单的执行跟踪能力。当 MTB 使能,通过执行跟踪
接口,进入SRAM的可配置区域, Cortex-M0+处理器记录的编程流可以改变MTB记录。
随后,芯外调试器可以提取这些跟踪信息,这将允许重建的指令流跟踪。MTB 不包括任
何加载/储存数据跟踪能力和跟踪信息能力。
MTB同样类似一个简单的AHB-Lite SRAM控制器,另外提供了跟踪能力。系统总线
主机,包括处理器,可以通过 AHB-Lite 接口读取/写入访问所有的 SRAM,允许内存存
储程序和数据信息。 MTB同时将跟踪信息存储到SRAM并且允许总线主机访问存储内存。
MTB确保跟踪信息可以先于访问AHB-Lite接口写入 SRAM。
MTB包括跟踪控制寄存器为了配置和激发MTB功能。MTB支持通过MTB DWT 模
块的TSTART和 TSTOP 控制功能触发。
9.6 在低功耗模式下的调试
在低功耗模式下,调试模块保持静止或者断电。在低功耗模式期间,调试器不能获取
任何调试数据信息。所以调试模式保持静止,系统一旦退出低功耗模式,调试端口会恢复
功能。因此调试器逻辑是断电的,调试器在恢复的过程中会复位,而且一旦低功耗模式,
需要重新配置调试器。
9.7 调试&安全
当 flash 加密时, 为了防止取得加密的数据,调试端口功能被限制使用。在安全状态
下调试器仍可以访问状态寄存器而且可以设定设备的当前安全状态。对于一个加密的设备,
调试器只可以执行完全擦除操作。
39.3.2 发送器功能描述
本节介绍UART发送器的总体框图,以及专门用于发送中止和空闲字符的功能。
发送器输出(UART_TX)空闲状态默认为逻辑高电平,复位之后,紧跟着C3[TXINV]
被清除。发送器的输出通过设置 C3[TXINV]倒转。发送器通过设置 C2[TE]位启用。发送
器发出一个前导符,是一个完整的字符帧的空闲状态。之后发送器保持空闲状态,直到数
据在发送数据缓冲区中。通过写入到 UART 数据寄存器,程序将数据存储到发送数据缓
冲区中。
UART 发送器的核心元素是,根据在 C1[M]、C2[M10]和 BDH[SBNS]控制位的设置
的 10位到13 位长发送移位寄存器。本节的其余部分,假设C1[M], C2[M10]和BDH[SBNS
被清除,选择正常的8 位数据模式。在8 位数据模式下,移位寄存器持有起始位,8个数
据位,一个停止位。当发送移位寄存器对一个新的 UART 字符有效时,等待在发送数据
寄存器的值被转移到移位寄存器,同时波特率时钟同步,并发送数据寄存器空(S1[TDRE)
状态标志设置,以指示可能会被写入发送数据缓冲区UART_D 另一个字符。
当一个停止位被移出UART_TX引脚后,如果发送数据缓冲区中没有新的字符,发送
器设置传输完成标志位并且进入UART_TX高的空闲模式,等待传输字符。
写 0 到 C2[TE]中不会立即关闭发送器。必须首先完成当前正在发送的活动。这包括
正在发送中的数据字符,等待空闲字符和等待中止符。
39.3.2.1 发送中止与等待空闲
UART_C2[SBK]位发送中止符,原本是用来获得旧的打字接收器的信息。中止符是一
个完整的逻辑 0,10 位到 12 位包含开始和停止位的位时间的字符。13 个位时间的中断,
可以通过设置UART_S2[BRK13]启用。通常情况下,程序会等待UART_S1[TDRE]被设置
以显示消息的最后一个字符被移到发送移位寄存器中,写1,然后 写0到UART_C2[SBK]
位来发送中止字符。只要移位寄存器可用,就会将一个中止符排进要发送的队列。如果
UART_C2[SBK]保持为 1 时,当队列中的中止数据进入移位寄存器时,同步波特率时钟,
同时一个额外的中止字符被排队。如果接收设备是另一个飞思卡尔半导体UART,在所 有
数据位和帧错误(UART_S1[FE]= 1)出现时,中止符被接收为0。
当使用空闲线唤醒时,在两个信息之间唤醒任何休眠的接收器,一个完整的空闲(逻
辑 1)字符时间是需要。通常情况下,程序会等待 UART_S1[TDRE]设置为显示消息的最
后一个字符移到发送移位寄存器,然后写 0,然后写 1 到 UART_C2[TE]位。只要移位寄
存器可用,这个动作队列发送一个空闲字符。只要在移位寄存器中的字符没有完成而
UART_C2[TE]被清除,UART 发送器就不会释放UART_TX引脚的控制。
间隔字符的长度会受到 UART_S2[BRK13],UART_C1[M]和 UART_C4[M10]位的影
响,如下表所示。
39.3.3 接收器功能描述
在本节中,接收器的框图是对整体接收器的功能描述的一个引导。接着,用于重建接
收器的数据的数据采样技术被更详细地描述。最后,对接收器两个变化的唤醒功能做出解
释。
设置UART_S2[RXINV],接收器的输入被倒转。设置UART_C2[RE]位接收器被启用。
字符帧由一个起始位(逻辑0),8到 10 个数据位(MSB或LSB在前),一个或两个停止位
(逻辑1)组 成。9位或 10位数据模式的信息,请参阅为“8位, 9 位和 10 位数据模式” ①
当程序检测到接收数据寄存器满时(UART_S1[RDRF= 1),它通过阅读UART_D寄存
器,来从接收数据寄存器中得到数据。对于标志清空的详细信息请参阅“中断和状态标
。
在以后的讨论中,我们都假设UART配置成普通的8位数据模式。
当移位寄存器接收到停止位后,如果接收数据寄存器未满,数据字符被传输到接收数
据寄存器,且接收数据寄存器满(UART_S1 RDRF)状态标志设置。如果UART_S1[RDRF]
已经置位表明接收数据寄存器(缓冲区)已经满了,则溢出(OR)状态标志被置位,且
新的数据丢失。由于UART 接收器有双缓冲区,在UART_S1[RDRF]被设置后,程序有一
个完整字符的时间,将接收数据缓冲区中的数据读出,以避免接收器溢出数据丢失。
39.3.3.1 数据采样技术
UART 接收器,支持 4 倍和 32 倍的波特率时钟之间的过采样率。当 UART_RX 的串
行数据输入引脚上检测到下降沿,接收器根据过采样率开始采样逻辑电平。在3 个逻辑1
的样本后,下降沿被定义为逻辑 0 采样。过采样波特率时钟把位时间从 1 到 OSR(OSR
配置的过采样率)分为4至32段。当一个下降沿被定位,分别在(OSR/ 2),(OSR/ 2)
+1,(OSR/ 2) +2上采集样本,共采集3个样本以保证这是一个真正的开始位而不是噪音。
如果这三个样本中的至少两个是0,则接收器假定它是同步到接收的字符。在接收器被认
为是同步前,如果另一个下降沿被检测到,则接收机从第一分部重新启动采样。
然后接收器采样每个位时间,包括的起始位和停止位,在(OSR/ 2),(OSR/ 2)+1,
和(OSR/ 2)+2,以确定该位的逻辑电平。逻辑电平被解释为大多数位时间期间采取的样
本。当接收到的字符被传输到接收数据缓冲区时,如果样本在任何位时间,包括起始位和
停止位,字符帧的位与该位的逻辑电平不匹配时,噪声标志(UART_S1[NF])被设置。
当 UART 接收器被配置为波特率时钟的沿跳变采样时,在每个接收到的比特的数目
被变为双倍(从 1到OSR* 2)。然后采样开始数据位从OSR, OSR1和OSC2 中采样得到。
沿跳变的采样时钟为4 倍到 7 倍过采样率并且对较高的过采样率来说是可选的。
下降沿检测逻辑持续的检测下降沿。如果检测到一个下降边缘,采样时钟同步到位时
间(除非重新同步已被禁用)。这提高了在存在噪声或不匹配的波特率情况下的接收机的
可靠性。它并不能提高最坏的情况下分析,因为在字符帧中的任何地方,有一些字符不具
有任何额外的下降沿。
在一个帧错误的情况下,假设接收的字符不是中止符,一个下降沿的采样逻辑被填充
3个逻辑 1,则之后几乎可以立即检测到新的起始位。
39.3.3.2 接收器唤醒操作
接收器唤醒是一种硬件机制,它允许 UART 接收器可以忽略用于不同的 UART 接收
器的消息字符。在这样的系统中,所有的接收器判断每个消息的第一个字符,并且它们尽
快确定该消息是不是为不同的接收器,并写逻辑1 到接收器唤醒控制位UART_C2[RWU]。
当 RWU 位被置位且 UART_S2[RWUID]位被置位时,与接收器相关联的状态标志(除空
闲位 IDLE 外)被禁止,从而消除了软件处理不重要的消息字符的开销。在一个消息的结
尾,或在下一个消息开始处,所有的接收器自动地将 UART_C2[RWU]置为 0,从而所有
39.3.3.2.1 空闲线唤醒
当唤醒被清除时,接收器被设置为空闲线唤醒。在这种模式下,当接收器检测到空闲
线的一个满字符时间,UART_C2[RWU]自动清零。UART_C1[M]和 UART_C4[M10]控制
位选择 8 位到 10 位数据模式并且 UART_BDH[SBNS]位选择 1 位或 2 位停止位数字,以
此来确定需要多少空闲位时间来构成一个完整的字符时间。因为包含开始位和停止位,所
以共需要 10至13 位的时间。
当 UART_C2[RWU]为 1, ART_S2[RWUID]为 0时,不设置的UART_S1[IDLE]标志,
但空闲状态能唤醒接收器。当UART_S1[RDRF]标志被设置并产生一个中断(如果中断被
启用),接收器唤醒并等待下一个消息的第一个数据字符。当 UART_S2[RWUID]为 1 时,
无论UART_C2[RWU]为0或1,任何空闲的条件设置UART_S1[IDLE]标志并产生中断(如
果中断被启用)。
空闲线类型(UART_C1[ILT)控制位,它选择两种方式中的一种来检测空闲线。当
UART_C1[ILT]被清零,空闲位在起始位或停止位或字符结束时的逻辑 1 位之后开始,一
直计数到一个完整的空闲字符时间结束。当UART_C1[ILT]被置位,空闲位计数器在停止
位时间后才启动,所以空闲检测不受到前一消息的最后一个字符中的数据的影响。
39.3.3.2.2 地址标志唤醒
当设置唤醒时,接收器被设置为地址标志唤醒。在此模式下,当接收器检测到一个接
收字符的 MSB为逻辑“1”时,UART_C2[RWU]自动清零。
地址标志唤醒允许信息包含空闲字符,但需要将最高有效位保留为地址帧使用。在接
收到停止位之前,地址帧中的 MSB为逻辑“1”时,将清除UART_C2[RWU]位,并设置
UART_S1[RDRF]标志。在这种情况下,即使接收器在大多数字符时间里处于休眠状态,
MSB集的字符仍可以被接受。
39.3.3.2.3 匹配地址操作
当 UART_C4[MAEN1]或 UART_C4[MAEN2]位被置位时,匹配地址操作被使能。在
这个功能中,通过UART_RX 引脚接收的帧与逻辑紧接停止位之前的逻辑1 的位置被认为
是一个地址,并且与相关联的 MA1 或 MA2 寄存器进行比较。如果比较匹配,帧只传输
到接收缓冲区,并且UART_S1[RDRF]被置位。
随后接收到的所有的数据帧中停止位之前的逻辑0的位置,被认为是与该地址相关联
的数据,并转移到接收数据缓冲器。如果没有明显的地址匹配时,则没有传输到接收数据
缓冲,逻辑零位的位置和之后的所有帧紧接停止位也被丢弃。如果UART_C4[MAEN1]和
UART_C4[MAEN2]位都无效①,接收机正常工作和接收的所有数据被传输到接收数据缓冲
器。
MA1和 MA2寄存器中的匹配地址的操作与以上功能相同。
•如果只有一个UART_C4[MAEN1]和UART_C4[MAEN2]有效 ②,标记的地址仅与相
关联的匹配寄存器进行比较,并且只有当匹配时,数据才传送到接收数据缓冲区。
•如果UART_C4[MAEN1]和UART_C4[MAEN2]都有效,标记的地址和两个匹配寄存
器进行比较,并且只有当都匹配时,数据才被传送。
39.3.4 额外的UART功能
以下部分展示了UART 的额外功能。
39.3.4.1 8位、9位和10位数据模式
UART系统,发送器和接收器,可以通过设置UART_C1[M]成为9位数据模式,或通
过配置 UART_C4[M10]成为 10 位数据操作模式。在 9位数据模式中,UART 数据寄存器
的最高有效位的左侧是第9 位,在 10 位模式,是第10 个数据位。对于发送数据缓冲器,
这些位被存储在 UART_C3 的 T8 和 T9 中。对于接收器,这些位存放在 UART_C3[R8]和
UART_C3[R9]中。
为了能够一致的写发送数据缓冲区,在写 UART_C3[T8]、UART_C3[T9]之前先写
UART_D。
如果要被发送的新的比特字符的第九和第十位与前一个字符是相同,就没有必要再次
写T8 和T9。当数据被从发送数据缓冲器传送到发送移位寄存器,T8和 T9中的值是在同
时从UART_D复制到移位寄存器。
9位数据模式通常用于奇偶校验,可以允许8位的数据加上第九位的奇偶校验,或用
于地址标志唤醒,所以第九位也可以作为唤醒位。10 位数据模式通常用于奇偶校验和地
址标志唤醒,从而第九位可以作为唤醒位,第 10 位作为奇偶校验位。在自定义的协议,
第九和/或第十位,也可以作为软件控制标记。
39.3.4.2 循环模式
当 UART_C1[LOOPS]被置位时,在同一个寄存器的 UART_C1[RSRC]位选可以择循
环模式(UART_C1[RSRC]= 0)或单线模式(UART_C1[RSRC]=1)。循环模式独立于在外
部系统中的连接,有时用于检测软件,帮助隔离系统问题。在此模式下,发射机的输出在
内部连接到接收器输入并且UART 不可使用UART_RX 引脚。
39.3.4.3 单线操作
当 UART_C1[LOOPS]被设置,在同一个寄存器的 RSRC 位可以选择循环模式
(UART_C1[RSRC]=0)或单线模式(UART_C1[RSRC]=1)。单线模式实现半双工串行连
接。接收器在内部连接到发射器的输出UART_TX引脚(UART_RX引脚不使用)。
在单线模式中,UART_C3[TXDIR]位控制着 UART_TX 引脚的串行数据的方向。当
UART_C3[TXDIR]被清零,UART_TX 引脚作为 UART 接收器和发射器的输入暂时从
UART_TX 引脚断开,从而一个外部设备可以发送串行数据到接收器。当
UART_C3[TUXDIR]被置位时,UART_TXD 引脚被发射器作为输出脚,内部环回连接被
禁用。因此导致接收器不能接收由发射机发送出去的字符。
39.3.5 中断和状态标志
UART系统产生三个独立的中断,从而减少需要用软件来隔离的中断的数量。一个中
断与发射器的TDRE 与TC 事件对应。另一种中断与接收器的RDRF,IDLE,RXEDGIF,
和 LBKDIF事件对应。第三个中断用于OR,NF,FE,和PF事件发生错误的状况。每10
个这样的中断源可以被本地中断使能掩码单独屏蔽。当本地掩码被清除,以禁止产生中断
请求时,该标志可以通过软件查询。
UART发送器有两个状态标志,这两个状态标志可以选择性的产生硬件中断请求。发
送数据寄存器状态为空(UART_S1[TDRE])表示在发送数据缓冲区有空间可以写另一个
发送字符到UART_D。如果发送中断使能(UART_C2[TIE])位被置位,当UART_S1[THERE]
被置位,就会请求一个硬件中断。发送完成(UART_S1[TC]=1)表明传输器完成了对所
有数据、前导符、间隔字符的发送,并且伴随着UART_TX,处于无效电平。此标志常常
使用在有调制解调器的系统中,以用来确定当前关闭调制解调器是否安全。如果发送完成,
中断使能(UART_C2[TCIE])位被置位,当UART_S1[TC]被设置,一个硬件中断被请求。
不同于硬件中断的是,如果相应的 UART_C2[TIE]或 UART_C2[TCIE]本地中断屏蔽被清
除,软件轮询可以用来监测UART_S1[TDRE]和UART_S1[TC]状态标志,。
当程序检测到接收数据寄存器满时(UART_S1[RDRF]=1),它通过读取 UART_D,
从接收数据寄存器得到的数据。通过读UART_D,UART_S1[RDRF]标志被清除。
IDLE 状态标志包含逻辑,以防止当在较长的一段时间内UART_RX 接收线保持空闲
状态时重复置位。写 1 到的 UART_S1[IDLE]标志,可清除 IDLE。当 UART_S1[IDLE]已
被清除后,只有在接收器接收到至少一个新的字符,并且已经设置 UART_S1[RDRF]时,
UART_S1[IDLE]才能被重新设置。
如果接收到的字符里检测到相关的错误,会导致UART_S1 [RDRF]被设置,同时,错
误标志、噪音标志(UART_S1[NF])、帧错误(UART_S1[FE])和奇偶校验错误标志
(UART_S1[PF]),都在同一时间被置位。在溢出情况时,这些标志都不被设置。
当一个新的字符准备从接收移位寄存器传输到接收数据缓冲区时,如果
UART_S1[RDRF]已经被设置,则溢出标志(UART_S1[OR])被置位来代替数据,且连同
与数据相关的NF,FE 或 PF条件丢失。
在任何时候, UART_RX 的串行数据输入引脚上活跃的 边缘,会使
UART_S2[RXEDGIF]标志置位。通过写1 到UART_S2[RXEDGIF]标志,它被清除。此功
能依赖于接收器被使能(UART_C2[RE]=1)。
D7(TDRE)—发送数据寄存器空标志。当发送数据从发送数据缓冲区转移到发送移
位寄存器时,TDRE被复位,为缓冲区的新数据腾出空间。要清除TDRE:在 TDRE置位
情况下,读UART_S1,之后写UART数据寄存器(UART_D)。TDRE=0,发送数据寄存
器(缓冲区)满;TDRE=1,发送数据寄存器(缓冲区)空。
D6(TC)—发送完成标志。该位与 UART0 中大部分一样。不一样的部分:UART1
与UART2模块下, TC自动除之前还需要满足一些条件,需要在TC被置位下,读UART_S1。
之后的清除操作与UART0模块下的一样。
D5(RDRF)—接收数据寄存器满标志。当数据从接收移位寄存器转移到接收数据寄
存器(UART_D)中时,RDRF 被置位。在 RDRF 被置位情况下,读 UART_S1,之后再
读数据寄存器(UART_D)可以清除RDRF。RDRF=0,接收数据寄存器空;RDRF=1,接
收数据寄存器满。
D4(IDLE)—空闲线标志。当 UART 接收线路空闲时,IDLE 被置位。当 ILT 被清
除,在开始位之后接收器开始计数空闲位的时间。如果接收字符全1,这些位的时间和停
止位的时间达到完整的字符的逻辑高,10或 11 位(根据 M控制位决定)的时间,需要的
接收器检测到空闲线。当ILT 被置位,在停止位之后接收器才开始计空闲线时间。接收器
检测空闲线时,在结束的前一个字符的停止位和逻辑高位时间不计入完整的字符的逻辑高
接收器所需的时间。
若要清除 IDLE,可以在 IDLE 置位的情况下读UART_S1,然后读 UART数据寄存器
(UART_D),则 IDLE 被清除。 IDLE 清除之后,只有当接收器收到一个新的字符且RDRF
被置位后,IDLE 才可以被重置。IDLE 只被设置 1 次,即使接收线保持长时间的空闲。
IDLE=0,无空闲线被检测;IDLE=1,有空闲线被检测。
D3(OR)—接收溢出标志。大部分与UART0相同。不同的是:如果要清OR,则在
OR 被置位的情况下,读UART_S1,并且之后读UART 数据寄存器(UART_D)。OR=0,
无溢出;OR=1,接收溢出(新的数据丢失)。
D2(NF)—噪音标志。接收器使用的先进的采样技术,该技术需要获取接收的 7 个
开始位中的样本和3个数据位与停止位中的样本。如果数据帧中的任意该样本与其他样本
不相符合,则 NF 与 RDRF 一同被置位。如果要清 NF,则在 NF 被置位的情况下,读
UART_S1,并且之后读UART数据寄存器(UART_D)。NF=0,无噪声被检测到;NF=1,
UART_D接收到的字符数据中检测到噪声。
D1(FE)—帧错误标志。大部分与UART0 相同。不同的是:如果要清FE,则在 FE
被置位的情况下,读UART_S1,并且之后读UART数据寄存器(UART_D)。
D0(PF)—奇偶校验错误标志。大部分与 UART0 相同。不同的是:如果要清 PF,
则在PF被置位的情况下,读UART_S1,并且之后读UART 数据寄存器(UART_D)。
40.2.6 UART状态寄存器2(UARTx_S2)
该寄存器包含一个只读状态标志。
该寄存器介绍大部分与 UART0 一致。不同的是:当 LBKDE 位被置位,帧错误被抑
制,中止检测的阈值由 10位变为 11位,防止作为 LIN 中止符号的0x00 数据字符的误检
测。
D7(TDMAS)—发送器DMA选择。如果TIE①被置位,TDMAS将配置发送数据寄存
器空标志位(TDRE②
40.3 功能描述
),来形成中断或者DMA请求。说明:如果UART_C2[TIE]被清零,
那TDRE DMA和TDRE中断信号在TDRE标志置位时无效,并且无视TDMAS的状态。如果
TIE和TDMAS同时被置位,然后UART_C2[TCIE]必须被清零。并且UART_D在服务一个
DMA请求时不能被写入。TDMAS=0,如果TIE和TDRE标志位被置位,TDRE中断信号触
发中断服务例程;TDMAS=1,如果TIE被置位而且TDRE标志位被置位,TDRE DMA请求
信号将会请求一个DMA传输器。
D6,保留位,只读。值恒为0。
D5(RDMAS)—接收完成 DMA 选择。如果 RIE 被置位,RDMAS 将配置接受数据
寄存器满标志位(RDRF),来形成中断或者DMA 请求。说明:如果RIE 被清零,那RDRF
DMA和RDRF中断信号在RDRF标志置位时无效,并且无视RDMAS的状态。 RDMAS=0,
如果RIE 和RDRF标志位被置位,RDRF中断请求将触发中断服务例程。RDMAS=1,如
果 RIE 被置位而且RDRF标志位被置位,RDRF请求信号将触发一个DMA传输器。
D4~D0,只读,值恒为0。
UART 在 MCU 和远程设备之间(包括其他 MCU)支持全双工,异步,NRZ 串行通
信和波特率发生器,发送器和接收器模块。UART包括波特率发生器,发送器,接收器模
块。UART 发送器和接收器独立地操作,尽管他们使用相同的波特率发生器。MCU 监控
UART的状态,传送写的数据,处理收到的数据。下面描述UART的每个模块。
UART通信需要发送器和接收器,这两个模块都需要从独立的时钟源获取波特率,使
得他们的波特率相同 ①
40.3.2 发送器功能描述
。所允许的波特率偏差取决于接收器对于起始位边沿的同步和位采
样是如何进行的。
MCU 在下降沿,再次同步到位边界。最坏的情况下,每帧的 10 或者 11、12 位不传
输,以至于在波特率中不匹配的误差被累积起来,从而对整个字符时间造成影响。在整个
总线时钟被晶振驱动的FreescaleUART系统,对于 8位数据格式被允许的波特率不匹配要
控制在±4.5%,对 9 位数据格式被允许的为±4%。尽管波特率分频因子的设置不能产生
一直匹配的标准波特率,它常常允许有一点偏差,不妨碍通信。
该节大部分与UART0相同。
与 UART0 不同的是:UART1、UART2 发送器的核心元素是,根据在 UART_C1[M]
与 UART_BDH[SBNS]控制位的设置的 10、11 或 12 位长的发送移位寄存器。UART1、
UART2选择正常的8位数据模式,是通过清除UART_C1[M],UART_BDH[SBNS]。
与 UART0不同的是: UART1、 UART2中写0到UART_C2[TE]是将引脚变为通用I/O
引脚,而不是UART0中的关闭发送器。
40.3.2.1 发送中止与等待空闲
该节大部分与UART0相同。
与 UART0 不同的是:UART1、UART2 的中止符是一个完整的逻辑 0,10 位包含开
始和停止位的位时间的字符。
比 UART0 多的功能描述是:有一种可能就是移位寄存器完成当前工作,如果当
40.3.3 接收器功能描述
该节大部分与UART0相同。
与 UART0 不同的是:字符帧由一个起始位(逻辑 0),8 个数据位(LSB 在前),一
个或两个停止位(逻辑1)组成。
与 UART0不同的是:UART1、UART2中无 10位数据模式,只有8、9位数据模式。
40.3.3.1 数据采样技术
该节大部分与UART1相同;
与UART0不同的是:UART1、UART2接收器的采样频率采用16x的波特率时钟。
与UART0不同的是:UART1、UART2的 16x 波特率时钟把位时间分为16 段,分别
标记为 UART_D[RT1]~UART_D[16]。
与 UART0 不同的是:UART1、UART2 对于开始位的判断,采样的样本位为
UART_D[RT3],UART_D[RT5],UART_D[RT7]上采集样本;对于逻辑电平的判断采样的
是 UART_D[RT8],UART_D[RT9],UART_[RT10];而 UART0 中对起始位和逻辑电平的
判断都是用的(OSR/ 2),(OSR/ 2)+1,和(OSR/ 2)+2。
与 UART0 不同的是:UART1、UART2 接收器中无“在接收器被认为是同步前,如
果另一个下降沿被检测到,则接收机从第一分部重新启动采样”此概念。
与 UART0不同的是:UART1、UART2中增加了以下概念。“对于起始位来讲,如果
UART_D[RT3],UART_D[RT5],UART_D[RT7]上采集样本为 0,那么即使_D[RT8],
UART_D[RT9],UART_[RT10]上采集的是1,起始位也被认为是1。”
与 UART0 不同的是:UART1、UART2 无“接收器被配置为波特率时钟的沿跳变采
样”的概念。
与 UART0不同的是:UART1、UART2 中增加了以下概念“在一个帧错误的情况下,
直道帧错误标志 UART_S1[FE]被清之前,接收器都被禁止接收任何新的字符。接收移位
寄存器仍然工作,但当 UART_S1[FE]保持置位时,一个完整的字符无法转移到接收数据
缓冲区。”
40.3.3.2 接收器唤醒操作
对UART1、UART2 接收器唤醒的逻辑概念描述与UART0相同,不做解释。
40.3.3.2.1 空闲线唤醒
大部分与UART0相同。
与 UART0 不同的是:UART1、UART2 是通过 UART_C1[M]来控制 8 位或 9 位数据
模式。而UART0中是通过UART_C1[M]和UART_C4[M10]来控制8位或10位数据模式。
所以UART1、UART2中一个完整的字符时间要10或11或12 位时间(包括起始位),而
UART0中要 10到 13位时间(包括起始位)。
40.3.3.2.2 地址标志唤醒
大部分与UART0相同。
与 UART0不同的是:UART1、UART2清除UART_C2[RWU]位的条件是接收器检测
到 1 个或两个接收到的字符中,UART_DBH[SBNS]=1,MSB 位为逻辑 1 时,
UART_C2[RWU]自动清除。而在 UART0中,只要检测到一个接收到的字符的MSB 位为
逻辑 1时UART_C2[RWU]即自动清除。
40.3.4 中断和状态标志
大部分逻辑概念描述与UART0 相同。
与 UART0不同的是:UART_S1[RDRF]标志位的清除方法不同。UART1、UART2 中
清 UART_S1[RDRF]是通过在 UART_[RDRF]置位的情况下读 UARTxS1,之后再读
UART_D来清除 RDRF。
与 UART0不同的是:IDLE 标志位的清除方法不同。UART1、UART2 中清 IDLE 是
通过在UART_S1[IDLE]被置位的情况下,读UARTxS1,之后再读UART_D来清除IDLE。
与UART0不同的是:UART1、UART2中增加了以下概念:“当使用轮询时,该序列
很自然的满足了正常过程中的用户程序。如果硬件中断被使用,UARTxS1 必须在中断服
务例程(ISR)中被读取。通常情况下,这是在ISR中完成从而来检测接收是否错误,所
以顺序可以自动满足”。
40.3.5 DMA操作
在发送器中,TDRE 标志和 TC 可以配置为维护一个 DMA 传输请求。在接收端,标
志 RDRF、IDLE、LBKDIF可以配置为维护一个DMA 传输请求。下面的表显示了配置位
的设置,要求要配置每个标记为DMA 操作。
当一个标志配置为一个DMA请求,它相关的DMA请求断言,当标志被设置。当RDRF
或空闲标志 IDLE 被配置为一个 DMA 请求,清除机制对于先读取 UART_S1 随后读
UART_D,并不会清除相关的标记。DMA 请求依然会有效,直到收到一个 DMA 操作完
成的指示。当收到这个指示,该标记位和相关的 DMA 请求标志位会被清除。如果 DMA
操作未能消除情况,必会造成DMA请求产生另一个请求。
40.3.6 额外的UART功能
40.3.6.1 8位、9位数据模式
逻辑原理与UART0 大致相同。
与 UART0 不同的是:UART1、2 无 10 位数据模式,且是通过设置 UART_C1[M]来
配置为 9 位数据模式的。对于发送数据缓冲器,这些位被存储在 UART_C3[T8](UART0
存放在T8,T9中) 。对于接收器,这些位存放在UART_C3[R8](UART0存放在R8,R9
中) 。
40.3.6.2 停止模式操作
在处于所有的停止模式下,UART模块的时钟都将停止。在stop3④模式下,没有UART
模块寄存器会受到影响。因为时钟停止了,只有在停止和VLPS⑤
40.3.6.3 循环模式
模式下,只要一退出停止
模式,UART模块就会立即恢复。当有字符正在发送或接收时,软件必须确保UART不会
进入停止模式。
完全与 UART0 相同,此外,在此模式下,UART1、UART2 中的接收引脚恢复到普
通 I/O 口引脚。
40.3.6.4 单线操作
完全与 UART0 相同,此外,在此模式下,UART1、UART2 中的接收引脚恢复到普
I/O
42.4.3 使能TSI模块
TSI 模块可以再运行时实现全部的功能,等待和低功耗模式。TSI_GENCS[TSIEN]必
须被置位来使能在运行和等待模式下的 TSI 模块。当 TSI_GENCS[STPE]位被置位,这便
允许TSI模块在低功耗模式下工作。
42.4.4 软件和硬件触发模式
TSI 模块允许软件或硬件触发来开始一次扫描。当一个软件触发被使能
(TSI_GENCS[STM]位被清零),TSI_GENCS[SWTS]位必须置 1 从而开始扫描电极通道,
该通道由 TSI_DADT[TSICH]决定。当一个硬件触发被使能(TSI_GENCS[STM]位被置 1),
TSI_GENCS[SWTS]位清零,TSI将不会开始扫描直到硬件触发达到时。硬件触发因MCU
配置的而形式多样,总的说来,RTC 溢出也可以作为一个事件。详细的内容请参考芯片
配置章节。
42.4.5 扫描次数
TSI提供多重扫描功能。扫描的次数是由TSI_GENCS[NSCN]位来表示。扫描次数可
以是 1 到 32.之间任意的数。TSI_GENCS[NSCN]位被置零,则采用单独扫描模式。16 位
计数器累加所有扫描值直到 NSCN 时间扫描完成并且使用者可以通过读
TSI_DATA[TSICNT]来取得该累加值。当 DMA 传送被使能,计数器值可以被 DMA 引擎
读取出来。
42.4.5 时钟设置
TSI模块有着双重晶振架构。在普通的应用中,参考晶振时钟是TSI模块唯一的时钟
源。通过使用一个 16 位的计数器,参考时钟是用来测量电极晶振的。参考晶振的频率是
由当前电流源所决定的。具体情况可以参考电源流的章节。
输出的电极晶振频率实现由TSI_GENCS[PS]位进行分频,分频值可变,最大值是128
分之一。
42.4.7 参考电压
论是电极晶振和参考晶振,TSI模块提供了一个内部参考电压。内部参考电压可以工
作在低功耗模式下,甚至当MCU校准器部分断电,作为低功耗触摸感应很理想。
充放电不同的电压是可配置的,通过设置 TSI_GENCS[DVOLT]位。下表展示了所有
的电压差配置。请注意该表格不适用于噪声模式,详见噪声模式章节。
42.4.8 电流源
TSI 模块支持八种不同的电流源从 500nA 到 64μA。TSI_GENCS[EXTCHRG]位决定
了电极晶振的电流,以便对外部电极充放电。TSIGENCS[REFCHRG]位决定了参考晶振的
电流,而且取决于适用哪个内部参考时钟。小电流源将会用更多的时间充放电,更适合探
测高精度的变化。大电流源花费更少的时间,被用来给大电极充电而且耗电更少。
TSI_GENCS[CURSW]位允许电流源交换,以便参考晶振和电极晶振使用相反的电流
源。当 TSI_GENCS[CURSW]被设置并且当前的电流源交换的TSI_GENCS[EXTCHRG]位
和 TSI_GENCS[REFCHRG]位仍然控制着相应的电流源,即是,TSI_GENCS[EXTCHRG]控
制当前参考晶振并且TSI_GENCS[REFCHRG]控制电极晶振电流。
42.4.9 扫描结束
作为一个扫描开始,[SCNIP]位设置表示扫描正在进行。当扫描完成后,[EOSF]位置位。
在[EOSF]被清零之前, TSI_DATA[TSICN]中的值必须被读出。如果 TSI_GENCS[TSIIEN]
位被置位而 TSI_GENCS[DMAEN]没有被置位,一个中断是提交给CPU 运行后处理立即。
如果它是运行在低功耗模式下,中断也可以是可选的唤醒单片机执行ISR。当DMA功能是
通过设置 TSI_GENCS[TSIIEN]和 TSI_GENCS[ESOR]而被使能,只要扫描完成后,一个
DMA 传输请求会对DMA 控制器的数据移动,一般来说,DMA 引擎将获取 TSI 转换结果从
TSI_DATA寄存器、存储到其他内存空间,然后刷新TSI扫描通道指数(TSI_DATA[TSICH])
为下一个循环做准备。当DMA 传输完成之后,TSI_GENCS[EOSF]会被自动清除。
42.4.10 超出范围中断
如果被使能,当触发条件到达时,TSI 会立即扫描 TSI_DATA[TSICH]中的电极,在
GENCS[TSIIE]位置位并且GENCS[ESOR]位清除时,GENCS[OUTRGF]标志产生一个TSI
中断请求。 根据这个配置,在扫描结束之后, TSI会把扫描结果存放在TSI_DATA[TSICHT],
如果GENCS[OUTRGF]被设置了,并且TSI_DATA[TSICHT]值超出 TSI_THRESHLD 寄存
器的值就会发出一个中断请求。例如,如果在低功耗模式下,电极电容值不改变,那么将
不会引起中断。不过,这种中断模式并不支持噪声的模式,
42.4.11 从低功耗模式中唤醒MCU
在低功耗模式,一旦通过TSI_GENCS[STPE]和TSI_GENCS [TSIIE],TSI可以通过单片
机的低功耗模式(停止、VLPS、VLLS 等)的上下限范围内的扫描完成或中断来唤醒 CPU,
也就是说,如果 TSI_GENCS[ESOR]被置位,最后的扫描完成唤醒 CPU,反之,溢出中断唤醒
CPU。
42.4.12 DMA功能支持
只有当TSI_DATA[DMAEN]被置位时, DMA传输使能。一个DMA传输请求被允许,
当TSI_GENCS[EOSF]、TSI_GENCS[ESOR]和TSI_GENCS[TSIIE]被置位。然后芯片内直
接存储器存取控制器检测这个请求和之间传输数据的内存空间和TSI寄存器空间。在数据
转移时,DMA DONE 被允许用来自动清除 TSI_GENCS[EOSF]位。这个函数通常是使用
DMA 控制器在一个扫描结束事件中从 TSI_DATA[TSICNT]得到转换结果,然后刷新通道
指数(TSI_DATA[TSICH])触发器为下一个寻坏做准备。DMA 功能不可用于单片机在停止
模式。
42.4.13 噪声检测模式
噪声检测模式下的电路配置如下图。这个模式可以检测接触时产生的较大的EMC噪
声。我们通过MODE[3:0]来设置这个检测模式。
在噪声检测模式,参考晶振的变化只有它的输出将传入计数器2,并且该计数器将通
过设置NSCN.2 ^(PS)得到最大值。 这样说明晶振可以决定噪声检测模式的持续时间。
这个模块的外部晶振也是可以改变的,而不是靠一个晶振电路实现射频振幅检测。这
个幅度检测的阈值由DVOLT 位来设置。
下图的Vmid电压值是受一系列串联电阻来调控的,其值等于V (mid) = (V(vp)+V(vm))
用一下的算法来确定噪声水平:
(1)初始化 Rs = maxrs;Dvolt = minDv(设置其他配置)
(2)执行一个噪声循环。
(3)如果TSIcounter < 3,请转到第8 步
(4)如果Rs = minrs,转到步骤 6。
(5)减少价值的rs转到步骤2
(6)如果Dvolt = maxDv,去结束
(7)Dvolt增加价值。设置Rs = maxrs。 转到步骤2
(8)如果 minrs Rs >,(减少值Rs、去结束)
(9)Rs = maxrs,减少Dvolt的值。
(10) 最终得到的值和Dvolt。
噪声检测模式的一个例子如下图所示。如图 TSI 是在电容模式下工作直到 30μs 的时
候,我们把他改变成噪声检测模式。在此模式下,触摸电容板块的偏差在 0.815 V 之内,
并且此触摸电容板内的所有交流波形是由一个噪声源外部集成电路触发形成的。
规律如下图所示,在噪声检测模式下,clkref 输出的峰值,检测到的峰值数量都可以被计
数统计或者直接数字模块使用。clkext的输出有着内部晶振输出,这些输出值可用于设置
最大噪声检测的时间窗口。
以下的波形图展示了在噪声检测模式下的两个操作:
•V(vp)和V(vm)阈值发生了 34.4μs的改变。
•由于这种这些串联电阻改变了,所以振幅的噪声波形也发生变化,其电阻值范围是
184 kΩ(iext < 2:0 > = 011)和 32kΩ(iext < 2:0 > = 101)。
42.4.13.1 自动噪声模式
该模式通过对 MODE[3:2]=11(噪声模式 3)来设置。在这种模式下阈值递增时,内部
IP 即使达到极点,也不会有影响噪声电压阈值。
如下图所示,阈值比较输出计数器和 DVOLT 控制位的值都增加了的话,DVOLT 阈
值也会相应的增加。该寄存器的四位设置为1111(= 15),计数器将会停止在这个最大值上。
完整的pdf格式文档51黑下载地址(共577页):
KL25 Reference Manual_Rev[3](中文译本).pdf
(13.61 MB, 下载次数: 59)
|