首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

Silicon Labs EFM32系列 LPUART应用指南

Silicon Labs EFM32系列 LPUART应用指南

EFM32 系列LEUART使用指南
简介: 本指南目的在于说明如何使用EFM32微控制器的低能耗 UART (LEUART?) 模块。即使在器件处于深度休眠模式EM2的情况下,LEUART 也能进行全功能UART通信。与智能中断功能及灵活的DMA 相结合,可实现简单且节能的串行通信。
* 在低功耗模式下可使用DMA进行数据传输;
* 9600波特率下接收数据仅消耗150nA电流;
* 使用32.768kHz作为模块时钟源时拥有完整UART功能;
* 可配置的接收数据匹配功能;
* 可工作于EM0~EM2模式。
目录
1 LEUART 原理........................................................................................................................... 3
1.1 一般原理 ......................................................................................................................... 3
2 LEUART 配置........................................................................................................................... 4
2.1 帧、传输和奇偶校验 ..................................................................................................... 4
2.2 时钟源 ............................................................................................................................. 4
2.3 波特率 ............................................................................................................................. 5
2.4 DMA集成 ........................................................................................................................ 5
2.5 脉冲发生器和扩展器 ..................................................................................................... 5
2.6 中断 ................................................................................................................................ 6
2.7 冻结模式和低频域同步 ................................................................................................. 6
2.8 DMA集成 ........................................................................................................................ 6
2.9 GPIO和引脚分配 ............................................................................................................ 6
1 LEUART 原理
LEUART:Low Energy Universal Asynchronous Receiver/Transmitter,低功耗通用异步收发器,是EFM32片上低功耗外设,能够在满足极低功耗的同时提供串口通信功能。
1.1 一般原理
EFM32的LEUART是一个独特的低功耗UART,能在极为苛刻的功耗预算下提供双向通信。仅需一个32.768 kHz 的时钟源即可实现波特率高达9600的UART通信。这意味着EFM32的LEUART可在深度休眠模式EM2下工作,在消耗极低能量的情况下等待接收到来的UART帧。当一个UART帧被LEUART完全接收时,CPU可被快速唤醒。还可以选择用DMA将多个帧传送到存储器中,然后再唤醒CPU。LEUART还具有处理更高层通信协议的能力。例如,可以选择阻塞进入的帧,直到检测到一个可配置的起始帧;还可以选择检测一个可配置的信号帧 (例如用于指示一次传输结束)。 与接收过程一样,在EM2模式,可直接从CPU逐帧发送数据,也可以通过DMA来发送较大的帧组。EFM32 LEUART包含支持异步串行通信所需要的所有硬件,因而需要最少的软件干预,而且消耗极低的能量。 LEUART的优势在于能工作在EM2模式,此时大多数其他模块都出于节能考虑而被关断。低能耗串行通信选项与不需要CPU干预即可读写存储器的DMA能力相结合,为系统设计人员在低能耗应用中使用EFM32提供了宽泛的功能。
2 LEUART 配置
2.1 帧、传输和奇偶校验
LEUART使用帧来进行数据传输。一个 LEUART 帧由1个起始位、8或9个数据位、1个可选的奇偶校验位和1个或2个停止位组成 (见图2.1 )。一次传输由一个起始位启动,起始位将数据线从空闲的高电平状态拉为低电平。此后,数据位和奇偶校验位被依序发送,直到帧传输被停止位结束,停止位将数据线保持在高电平。然后,数据线或者进入其高电平空闲状态,或者发送一个新的起始位。当一个帧已准备好要被发送时,它被从发送寄存器传送到移位寄存器,数据位在移位寄存器中被逐位发送,最低有效位在先。可将整个帧格式反相,(例如)以允许使用低电平作为空闲状态。 在数据位结束后可以选择添加奇偶校验位来实现简单的错误检测。有3种不同的奇偶校验模式:无校验、偶校验和奇校验。奇偶校验位的产生和校验都由硬件完成,有中断标志用于指示在帧中是否检测到奇偶校验错误。所希望的帧格式在所选LEUART的初始化期间设置。Emlib 提供一个初始化函数来定义使用LEUART进行串行通信时所需要的全部设置。通信通道的所有使用方都必须在通信帧格式上完全一致。有关LEUART寄存器和功能的详细信息,请参见器件的参考手册。
2.2 时钟源
像EFM32微控制器中的其他低能耗外设一样,LEUART可由三个不同的时钟源驱动,即低频RC振荡器(LFRCO)、低频晶体振荡器(LFXO)和高频内核时钟2分频(HFCORECLK_LE/2)。HFCORECLK_LE本身可由高频RC振荡器(HFRCO)、高频晶体振荡器(HFXO)或上述任何一个低频振荡器驱动。这种时钟选择的灵活性为系统设计人员使用LEUART功能提供了更宽范围的可能性。这意味着除了在低能耗的EM2模式下使用一个低频时钟源工作外,LEUART还可以在需要更多UART通信通道的情况下作为UART的补充。不过,为使LEUART达到高于9600的波特率,所选时钟源必须是HFCORECLK_LE/2,该选项不能在EM1-EM0模式下使用。
2.3 波特率
所选的LEUART时钟源定义了能通过LEUART获得的波特率。在标准低能耗工作模式,LEUART能基于32.768 kHz的时钟提供300 ~ 9600的波特率。有关支持哪些波特率的详细信息,请参见器件的参考手册。Emlib包含一些用于计算可用波特率、获取当前波特率以及设置波特率的方法。如果选择HFCORECLK_LE/2作为LEUART的时钟源,则可以获得更高的波特率,但这也意味着LEUART将不能工作在EM1以下的模式,因而需要消耗更多的能量。此外,由于需要有一个高频时钟运行,所以UART和USART也都是可用的。
2.4 DMA集成
LEUART在EM2模式下具有全功能的DMA支持。与LEUART结合使用时,DMA是一个非常强大的工具,可以最小化CPU的干预。 ? LEUART可被配置为在发送缓冲器为空或发送缓冲区和移位寄存器均为空时向DMA请求数据。 ? LEUART 可被配置为在接收缓冲器为满时请求DMA读取数据。 ? 当在接收寄存器中检测到一个有奇偶校验错误的帧时,LEUARTn_CTRL寄存器中ERRSDMA位可被置1,不向DMA发出读请求。 当MCU工作在EM2模式时,为了执行DMA传送,必须将DMA控制器上电。对于读操作,如果LEUARTn_CTRL中的RXDMAWU被置位,则上电过程是自动完成的;对于写操作,如果LEUARTn_CTRL中的TXDMAWU被置位,该上电过程也是自动完成的。为确保DMA控制器在低能耗模式仍能与LEUART进行数据传送,必须正确配置这些位。在EM2模式,DMA使用HFRCO运行,所以该高频振荡器也被自动唤醒和关断。在使用DMA处理LEUART之前,还必须正确使能和配置DMA。有关如何初始化一次LEUART和DMA之间的交互的详细信息,请参见所提供的软件示例和器件的参考手册。
2.5 脉冲发生器和扩展器
LEUART在发射器输出端有一个可选的脉冲发生器,在接收器输入还有一个可选的脉冲扩展器。脉冲发生器和扩展器可以将LEUART的输入和输出格式从NRZ变为RZI。来自脉冲发生器的脉冲的宽度可被配置为31.25 μs ~ 500 μs。在波特率为2400或更低的情况下,脉冲发生器还能产生与IrDA物理层规范兼容的RZI脉冲。
返回列表