Nuvoton开发流程 应用篇 1 -- Single Wire UART

Nuvoton开发流程 应用篇 1 -- Single Wire UART

大家平时用的比较多的是两线全双工模式,但是针对芯片管脚不足、Bootloader升级接口受限和节省通讯线成本等因素,往往希望有芯片能够支持单线UART传输模式。本篇主要介绍单线UART传输模式,目前新唐M0/M23/M4等内核产品,比如M031/M251/M460/M480等系列产品都支持单线UART传输模式,并且最高通信速率可以达到6Mbps。
 

一、 双线UART和单线UART对比


 

二、 单线UART硬件设计由于单线模式设定UART_RXD功能时,会被设定成输入模式,因此当两个M031用单线UART对接的时候,需要通过外部上拉电阻使总线维持高电平状态。

单线UART对单线UART的接线方式:



单线UART对双线UART的接线方式:


 

三、 UART单线半双工模式原理

UART控制器提供在UART功能模式下的单线半双工功能 (设置UART_FUNCSEL[2:0]为’100’来使能 UART单线功能)。单线总线空闲时保持RX状态。通过将数据写入TX缓冲区DAT(UART_DAT[7:0]),单线总线立即将总线RX状态转变到TX状态。传输结束后,单线总线状态从TX状态回到RX状态。 为了减少总线冲突问题,UART控制器支持流控制和位错误检测。nRTS在总线为保持TX状态时不激活 。UART默认状态为RX 模式,并且UART只会在ATOCTSEN (UART_INTEN[13])使能,nCTS 被取消激 活状态后,才转换为TX模式发送数据。在TX状态期间,UART控制器将监视总线状态。如果总线状态不等于UART控制器TX状态,则设置SWBEIF(UART_INTSTS[16])。 

注1:在写入TX缓存数据前,总线状态可以通过读RXIDLE(UART_FIFOSTS[29])来检测是否为空闲状态。总线冲突可能导致RX接收错误数据。 
注2:单线不支持自动流控制,因为自动流控制会在TX发送时自动激活nRTS。


四、 程序操作

1、 M031 SampleCode可以找到3个UART单线的例程

延伸阅读

共同关键字:

TWS

Nuvoton开发流程 中级篇 6 -- IAP Multi_Ap Jump

2、 管脚设置 将I/O模式更改成准双向模式 (Quasi-bidirectional Mode),使总线维持空闲状态,并设置UART_RXD管脚复用功能。

3、 单线模式设置 

4、 按照正常的UART收发数据的方式即可,详情客户参考官方例程操作。


五、 UART_115200bps_SingleWire_ISP升级

这个例程可以实现使用单线UART将程序从LDROM启动,并更新APROM程序。同时,官方也提供做的单线ISP升级工具。

  


这里重点提一下是官方例程做好的单线UART 只有115200bps的速率,之前提到M031是可以支持的最高6Mbps的,这里需要将修改三个地方即可。 
     
1、UART_115200bps_SingleWire_ISP 例程修改

   

2、ISP Programming Tool修改,可以使用Microsoft Visual Studio编译

       



修改完成重新编译烧录,在使用修改好的ISP进行连接更新程序,这里和常规的ISP-UART升级方式是一样的。
如果忘记的朋友,可以参考之前写的博文 :Nuvoton开发流程 初级篇 2 -- Bootloader

点此登录大大通,查看原文/留言/评论,了解更多详情!

  • 28
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值