0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【S32K 进阶之旅】LPUART 模块介绍与应用

大大通 2023-03-29 14:27 次阅读

一、 S32K144 LPUART 介绍

1. LPUART 模块特性

低功耗通用异步收发器(Low Power Universal Asynchronous Receiver/Transmitter, LPUART)支持带有DMA 接口功能的基本UART,和x4 到x32 的过采样波特率,支持LIN 主从操作。该模块在Stop 和VLPS 模式提供的时钟保持启用时,仍可保持功能。

在S32K144 中有如下三个LPUART 模块:



S32K144 LPUART模块具备以下特点:

  • 全双工,标准的非归零(non-return-to-zero, NRZ)格式
  • 编程的波特率(13 位数模转换器)与可配置的比率从x4 到x32 的过采样
  • 发送和接受波特率可以异步操作到总线时钟:
    • 波特率可以配置独立的总线时钟频率
    • 支持在Stop 模式下操作
  • 中断,DMA 或者拉起操作
    • 发送数据寄存器为空,发送完成
    • 接收数据寄存器满
    • 接收溢出,奇偶校验错误,帧错误,噪声干扰
    • 闲置接收器检测
    • 接受引脚边缘有效
    • 支持LIN的中断检测
    • 接收数据匹配
  • 硬件奇偶校验生成和检查
  • 可编程的7-bit,8-bit,9-bit 或10-bit 的字符长度
  • 可编程的1-bit 或者2-bit 停止位
  • 3 种接收器唤醒方法:
    • 闲置线唤醒
    • 地址标记唤醒
    • 接收数据匹配
  • 自动地址匹配,减少中断服务程序(ISR)开销
    • 地址标志匹配
    • 闲置线地址匹配
    • 地址匹配开始和结束
  • 可选的13-bit 终止字符生成/11-bit 终止字符检测
  • 可配置的空闲长度检测,支持1, 2, 4, 8, 16, 32, 64 或128 空闲字符
  • 可选的发送器输出和接收器输入极性
  • 硬件流控制支持RTS(request to send)和CTS(clear to send)信号
  • 可选的4 归零变换(return-to-zero-inverted, RZI)格式,可编程脉宽
  • 独立的FIFO 收发结构:
    • 可独立配置水印的收发请求
    • 如果接收FIFO 不是空的,在可配置的闲置字符长度后,可以选择让接收器声明请求

2. LPUART运行模式

S32K144运行模式

工作状态

Run Mode

正常工作

Stop Mode

时钟使能则保留功能(可产生中断)

Wait Mode

等待模式(DOZEEN 位置1时)

Debug Mode

保留功能


3. LPUART 发送/接收器结构框图


LPUART 发送器部分示意图



LPUART 接收器部分示意图

4. LPUART 寄存器映射

以下寄存器用来控制波特率,选择LPUART 选项,报告LPUART 状态,收发数据等。访问有效内存映射之外的地址将产生总线错误。查询寄存器请参考《S32K144 Reference Manual,Page -1092》



LPUART寄存器映射地址


二、 S32DS LPUART 例程简介与应用

下面我们以S32DS 开发环境中自带的例程LPUART_s32k144为例。

1. 例程导入

  • 打开S32 Design Studio,点击:“File”->“New”->“S32DS Project from Example”。



  • 在弹出的窗口选取S32K144 目录下的LPUART_s32k144 例程,点击“Finish”。


  • 点击左上角“Build”按钮,编译例程。



  • 注意: “\r”是回车,“\n”是换行,windows 系统中每行结尾应按<回车><换行>的顺序,即“\r\n”。需要将例程主函数中所有的“\n\r”改为“\r\n”,否则串口工具显示输出字符串将不会换行,出现错误格式。


2. 例程简介

  • LPUART 例程介绍

此例程实现了一个简单的UART 9600 波特率的数据从COM 端口传到电脑。不包含FIFOs 中断和DMA。在此评估板上可以使用OpenSDA(micro USB),板上UART 信号可以通过USB 接口传输。通过串口调试工具(例如安信可串口调试助手)可以发送并查看接收到的信息

  • 例程框图


3. 例程设计思路

  • 初始化系统晶振(SOSC)为8MHz,系统时钟为80MHz,RUN 模式80MHz
  • 禁止看门狗
  • 初始化端口引脚:
  • PORT C模块时钟使能
  • PTC6,PTC7:配置为LPUART_RX,LPUART_TX
  • 初始化LPUART1:
  • 使能时钟源为SOSC_DIV2_CLK
  • 配置波特率:9600 波特,1 个停止位,8 个字符位
  • 不使用终端,DMA 或匹配特征
  • 配置LPUART1 控制:使能发送器,接收器,无极性,8 位字符
  • 发送两个字符串:
  • 每个字符串发送的判断:如果发送数据准备状态位置1,将字符写入数据寄存器
  • 回传收到的字符:
  • 发送提示字符'>'
  • 等到RDRF 标志位被置1,然后读取字符
  • 发送回读取到的字符

三、 例程效果演示

  1. 我们使用S32K144 EVB (LQFP-100)评估板连接电脑,接线方式如图。OpenSDA(micro USB)串口通信


  1. 注意哪个COM 端口是OpenSDA,例如:COM4。注:串口号可在“计算机管理”->“设备管理器”->“端口”中查看。


  1. 打开串口通信工具,根据例程设置“串口号:COM4”“波特率:9600”,点击打开串口。



  1. 点击“Debug”按钮。进入例程Debug页面。
  1. 点击运行程序
  1. 按钮,在终端模拟器中“发送”中输入任意单个字符,观察接受窗口数据内容。S32K144 EVB开发板接收到输入的单个字符并回传。

四、 参考文献

[1] S32K144 Reference Manual.pdf,NXP

[2] S32K1xx Series Cookbook.pdf,NXP

[3] S32K1xx Series Reference Manual.pdf,NXP

[4] S32K144_IO_Signal_Description_Input_Multiplexing,NXP

[5] PS32K144HFT0VLLT-datasheet.pdf,NXP

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    146

    文章

    16939

    浏览量

    350034
  • NXP
    NXP
    +关注

    关注

    60

    文章

    1267

    浏览量

    183007
  • 恩智浦
    +关注

    关注

    14

    文章

    5819

    浏览量

    106430
  • S32k144
    +关注

    关注

    1

    文章

    7

    浏览量

    1876
收藏 人收藏

    评论

    相关推荐

    快来围观:S32K344 VCU项目开发随笔~

    二、引脚配置此实例选择串口13进行配置:三、外设配置添加外设:配置串口信息1:配置串口信息2(回调函数):中断外设配置:配置完毕后更新代码。四、部分代码展示/***@briefUART_13回调函数**该函数作为LPUART_13的中
    的头像 发表于 07-26 08:11 351次阅读
    快来围观:<b class='flag-5'>S32K</b>344 VCU项目开发随笔~

    基于S32K3的ECU参考设计集成电池管理方案

    S32K396/376 BMS-EVB板现已供货,同时S32K39 / 37 / 36系列芯片将于今年6月正式上市。相关的集中式电芯监控参考设计板也已上市。
    发表于 04-26 10:59 468次阅读

    STM32G031J6的LPUART发送导致系统复位怎么解决?

    单片机型号是G031J6MX,其中LPUART是单发送模式。发现LP串口一发送数据,系统就重启,因为LPUART的这个引脚和NRST是同一个引脚,还是怀疑自己配置的问题,请朋友们来帮忙看看有个可能是什么原因
    发表于 04-15 06:41

    stm32L072芯片LPUART1接收发送失败的原因?怎么解决?

    使用stm32扩展库开发L072系列时发现,初始化LPUART1后,所得到得波特率与电脑实际接受不符,且只有波特率在9600以上,串口才不会进入溢出中断。但接受数据仍然不对,初始化如下: void
    发表于 04-09 07:46

    关于STM32L051C8T6芯片LPUART+DMA接收问题求解

    STM32L051C8T6芯片低功耗串口LPUART+DMA。 我用STM32CUBEMX 生成了程序LPUART以及UART2串口+DMA的程序。 重新写了RxCpltCall函数里面有回显功能
    发表于 03-28 07:05

    请问STM32G473VET6的LPUART1能和USART1能同时使用吗?

    STM32G473VET6的LPUART1能和USART1能同时使用吗?
    发表于 03-22 07:00

    RK3568驱动指南|驱动基础进阶篇-进阶5 自定义实现insmod命令实验

    RK3568驱动指南|驱动基础进阶篇-进阶5 自定义实现insmod命令实验
    的头像 发表于 02-20 14:10 608次阅读
    RK3568驱动指南|驱动基础<b class='flag-5'>进阶</b>篇-<b class='flag-5'>进阶</b>5 自定义实现insmod命令实验

    基于 NXP S32K311 评估板的方案

    该方案是以 NXP S32K311 芯片为主控制器的评估板方案,S32K311 是基于 ARM Cortex-M7 的嵌入式应用微控制器,有 64 KB 的 Dflash、1 MB 的 Pflash
    的头像 发表于 02-18 11:22 704次阅读
    基于 NXP <b class='flag-5'>S32K</b>311 评估板的方案

    全志R128 SDK HAL 模块开发指南之 LPUART

    LPUART 模块介绍 LPUART 驱动主要实现设备驱动的底层细节,并为上层提供一套标准的 API 接口以供使用。 模块配置 配置路径如下
    发表于 02-02 10:04

    RK3568驱动指南|驱动基础进阶篇-进阶8 内核运行ko文件总结

    RK3568驱动指南|驱动基础进阶篇-进阶8 内核运行ko文件总结
    的头像 发表于 01-31 14:58 1085次阅读
    RK3568驱动指南|驱动基础<b class='flag-5'>进阶</b>篇-<b class='flag-5'>进阶</b>8 内核运行ko文件总结

    S32K 进阶之旅】 NXP S32K3 以太网 RMII 接口调试(1)

    大联大世平集团推出了一款基于NXP车规级MCUS32K344的开发板——花名“Cavalry”,它使用BGA257封装的32位ArmCortex-M7S32K344作为主控芯片,在69.6
    的头像 发表于 01-18 08:26 2117次阅读
    【<b class='flag-5'>S32K</b> <b class='flag-5'>进阶</b><b class='flag-5'>之旅</b>】 NXP <b class='flag-5'>S32K</b>3 以太网 RMII 接口调试(1)

    一块板即轻松搞定!| TH244A001 - 32位Arduino开发资源进阶介绍(2)

    一块板即轻松搞定! TH244A001 - 32位Arduino开发资源进阶介绍(2) 在前一篇文章中\"TH244A001 - 32位Arduino开发资源进阶介绍(1
    发表于 01-12 11:54

    芯圣SDK工具 让开发更方便——HC89S103K6

    SDK-HC89S103K6是基于HC89S103K6设计的快速开发工具。SDK-HC89S103K6由HC89S103K6微控制器的主控板和HC-LINKV4.0仿真烧录器两部分组成
    的头像 发表于 01-10 10:33 455次阅读
    芯圣SDK工具 让开发更方便——HC89<b class='flag-5'>S103K</b>6

    PS-1220S插拔力试验机:力学世界的探秘之旅

    PS-1220S插拔力试验机:力学世界的探秘之旅
    的头像 发表于 01-05 09:08 465次阅读
    PS-1220<b class='flag-5'>S</b>插拔力试验机:力学世界的探秘<b class='flag-5'>之旅</b>

    S32K146的hard fault问题解决方案

    最近有个客户使用S32K146的产品在量产之后出现了三个售后件,ABBA测试之后的结果表明失效现象跟着S32K146走;同时客户反馈说试着将其中一个售后件重新烧录程序,S32K146又正常工作了。结合这两种情况,
    的头像 发表于 11-22 11:35 2195次阅读
    <b class='flag-5'>S32K</b>146的hard fault问题解决方案