美文网首页
Nordic52810 uarte

Nordic52810 uarte

作者: 昨天剩下的一杯冷茶 | 来源:发表于2020-08-06 16:59 被阅读0次

    原文
    https://blog.csdn.net/libin55/article/details/101770888
    本人是转发的,原文在上面。

    一、前言

    Nordic52810串口外设手册命名为 UARTE,直译的意思就是带EasyDma的通用异步收发器
    52810仅一路UARTE0外设,应用中如果需要多路串口进行通信的话,可以重新映射到任意的GPIO引脚上,实现异步的串口切换(无法同时进行多路收发)

    二、工作原理详解

    UARTE功能特点

    • 全双工
    • 硬件流控制
    • EasyDMA
    • 高达1Mpbs波特率

    UARTE原理框图

    如下图,RXD输入信号通过FIFO经由EasyDMA输出到RXD缓存中,输出反之EasyDMA读取TXD缓存,调制后经由TXD引脚发送

    原理框图

    数据发送

    如下图

    • TXD.MAXCNT计数器中存放了需要发送的数据长度,使能STARTTX任务后即开始进行发送(将会生成一个TXSTARTTED指示开始发送)
    • 每发送一个字节后,会触发一个TXDRDY事件
    • 当数据发送完成后(MAXCNT)将会生成ENDTX事件
    • 使能STOPTX任务后,串口发送停止时将会触发一个TXSTOPPED事件
    • 当UARTE发送器停止时,如果尚未生成ENDTX事件,UARTE将显式生成ENDTX事件
    • 如果启用了发送流控CTS,当CTS被停用时传输将自动挂起,当CTS再次被激活时将继续传输
    在这里插入图片描述

    数据接收

    EasyDma将串口接收的数据传到数据缓存中,如下图

    • RX缓存地址通过RXD.PTR寄存器指定
    • RX缓存大小由RXD.MAXCNT寄存器配置,当RX缓存填满后将会触发ENDRX事件
    • RXD每接收一个字节数据,将会产生RXDRDY事件
    • RXD.AMOUNT寄存器指示有多少数据已经被搬移到RAM中
    在这里插入图片描述

    三、寄存器

    • SHORTS [5-6]:地址偏移0x200,ENDRX_STARTRX写1开启DMA接收任务,ENDRX_STOPRX写1停止接收任务
    • INTEN [0-2/4/7-9/17/19-20/22]:中断控制寄存器,写0禁用中断,写1使能中断
    • INTENSET:中断使能寄存器,写1使能中断,写0无效
    • INTENCLR:中断禁用寄存器,写1禁止中断,写0无效
    • ERRORSRC:错误状态寄存器,当串口异常触发时,可读取该寄存器(帧错误、校验错误),写1可进行清状态
    • ENABLE:写1使能串口,写1禁用串口
    • PSEL.RTS[0-4]: RTS映射寄存器,将串口RTS信号关联到指定的引脚
    • PSEL.TXD[0-4]:TXD映射寄存器,将串口TXD信号关联到指定的引脚
    • PSEL.CTS[0-4]:CTS映射寄存器,将串口CTS信号关联到指定的引脚
    • PSEL.RXD[0-4]:RXD映射寄存器,将串口RXD信号关联到指定的引脚
    • BAUDRATE[0-31]:波特率控制寄存器(1200baud - 1Mbaud)
    • RXD.PTR:接收数据制作
    • RXD.MAXCNT:接收缓存数据大小
    • RXD.AMOUNT:接收数据长度
    • TXD.PTR:发送数据指针
    • TXD.MAXCNT:发送缓存数据大小
    • TXD.AMOUNT: 发送数据长度
    • CONFIG: 配置寄存器,配置校验与硬件流控

    https://blog.csdn.net/qq_33784286/article/details/104899319
    还有参考这篇文章。

    相关文章

      网友评论

          本文标题:Nordic52810 uarte

          本文链接:https://www.haomeiwen.com/subject/wuhtdktx.html