一、单线UART和双线UART对比 通过这个图表我们可以清楚地了解单线UART和双线UART的区别及各自的优缺点。 单线UART和双线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控制器支持流控制和位错误检测。在保持TX状态时,nRTS不会激活总线。UART的默认状态为RX模式,只有在ATOCTSEN(UART_INTEN[13])使能的情况下,当nCTS取消激活状态后,才会转换为TX模式发送数据。在TX状态期间,UART控制器将监测总线状态。如果总线状态与UART控制器的TX状态不相符,则会设置SWBEIF(UART_INTSTS[16])。
注1:在写入TX缓存数据前,总线状态可以通过读RXIDLE(UART_FIFOSTS[29])来检测是否为空闲状态。总线冲突可能导致RX接收错误数据。 注2:单线UART不支持自动流控制,因为自动流控制会在TX发送时自动激活nRTS。
四、程序操作1. 单线UART例程位置在新唐Nuvoton M031的 SampleCode可以找到3个UART单线的例程  3个UART单线的例程位置
2. 管脚设置 将I/O模式更改成准双向模式 (Quasi-bidirectional Mode),使总线维持空闲状态,并设置UART_RXD管脚复用功能。 
管脚设置
3. 单线模式设置
单线模式设置
4. 按照正常的UART收发数据的方式即可,详情客户参考Nuvoton新唐官方例程操作。
五、UART_115200bps_SingleWire_ISP的升级UART_115200bps_SingleWire_ISP这个例程可以实现使用单线UART将程序从LDROM启动,并更新APROM程序。同时,官方也提供做的单线ISP升级工具。 单线ISP升级工具
这里温馨提示一下,官方示例中提供的单线UART仅支持115200bps的传输速率。然而,正如前文所述,M031系列实际上能够支持高达6Mbps的最高速率。实现这一点,只需对以下三个方面进行调整。 1. UART_115200bps_SingleWire_ISP 例程修改 UART_115200bps_SingleWire_ISP 例程修改
2. ISP Programming Tool修改,可以使用Microsoft Visual Studio编译 修改ISPLdCMD.cpp
完成修改后,请重新编译并烧录固件。使用已修改的ISP进行连接,更新程序的步骤与常规的ISP-UART升级方法相同。
|