- 回答:
当UART波特率在内部时钟上运行时,八个内部时钟组成一位。对启动位而言,用前四个内部时钟执行取样。对数据位而言,用中心内部时钟进行一次取样。当UART波特率由外部时钟发生,16个内部时钟组成一位。
什么是UART的波特率容差?
- 回答:
波特率容差在2% 到3%之间。
当UART接收错误出现时,错误标记没有被清除。可能造成什么情况?
- 回答:
如果在中断程序中中断因子没有被清除,中断可能继续出现。
想了解启动位是如何被接受并检测的。
- 回答:
UART启动位被检测出处于低电平。之后,当引脚保留八个UART运行时钟(波特率时钟1/16)的低电平时,UART启动位作为启动位接受。但是,在UART启动位被接受之前,在引脚内测出高电平,UART启动位不会作为启动位接受。启动位重新检测从之后的低电平引脚开始。
有可能传输和接收9位数据吗?
- 回答:
在多处理器模式中,模拟/数字转换位可以被用来传输9位数据,但是不能被用来接收9位数据。但是,可以用软件配类的方法来检测基偶校验误差。MB90590 和MB90390可以传输、接收9位数据,因为它们提供D9位(回答者:Fujitsuka)。
• 我想了解使用内部定时器(PPG)时,如何计算波特率。
- 回答:
异步通讯(异步)(1/16) × 1/(PPG周期) CLK 同步: 1/(PPG 周期) 每个PPG模式和UART比特率时钟资源的关系。
- 8位PPG二通道独立模式
PPG周期("H" 级+ "L" 级)被用作比特率时钟源。 - 16位PPG模式
在PPG 0通道和PPG 1通道后设置的周期 ("H" 级+ "L" 级)已经被连接作为比特率时钟源。 - 8位预比例器+8位PPG1 通道模式
PPG1通道边的设置周期("H" 级+ "L" 级)被用作比特率时钟源。PPG0通道边的设置周期被用作PPG1通道计数钟。
- 8位PPG二通道独立模式
我想在定时器中设置UART转换率。你们建议使用哪个定时器(PPG0还是PPG1)?(针对MB90570系列)
- 回答:
在UART定时器中设置传输率的时候,PPG被使用。在PPG1中设置UART 0/1。有两个输出引脚(PPG0 和 PPG1),但是即使PPG0 被设置输出还是不能激活。
如果用内置的波特率发生器来进行接收操作,会接受到2字节数据,而不是1字节数据(16接收时钟不断被输出)为什么?
- 回答:
如果使用内置的波特率发生器,数据被写入SODR寄存器来执行接收操作。因此,确认一下除了接收操作,数据是否被写入SODR寄存器,包括诸如“在传输激活前”的情况。
SIO/UART外部输入时钟的最大频率为多少?
- 回答:
SIO/UART外部输入时钟的最大频率取决于器件,因此请参阅各器件数据手册的SIO/UART定时。(在大多数情况下,最大的频率为8tcp。把内部工作频率除以8得到最大频率)
当UART接收操作(REX=0)在UART接收中无效,会出现怎样的情况?
- 回答:
当UART接收操作(REX=0)在UART接收中无效。UART接收会在接收数据的接收过程完成后停止。
当UART接收操作(TEX=0)在UART传输中无效,会出现怎样的情况?
- 回答:
当UART接收操作(TXE=0)在UART接收中无效。UART传输会在SODR寄存器中的数据传输之后停止。
当UART和时钟同步SIO一起使用,时钟被外部输入时,如果正在接收的位移时钟停止,会出现怎样的情况?
- 回答:
当UART和时钟同步SIO一起使用,时钟被外部输入时,如果正在接收的位移时钟停止,内部位移时钟也会停止,维持在这种状态,直到下个时钟被输入为止。当你想在不使用从0 开始的重启位的情况下,重启UART(因为UART没有该重启位)时,有必要从端口输入其余时钟。这是因为没有清除位移时钟计数器的方法。
数据接收和数据传输能否分别在时钟同步模式中运行呢?
- 回答:
在时钟同步模式中,数据传输和数据接收可以同时运行。因此,如果你只要执行接收操作的时候,你应该禁止传输引脚。
我想知道UART通讯线路执行GND 固定时的操作。(当CPU的RX引脚为“低”固定状态)是不是即使错误标记清除,在GND 固定时的错误标记仍然会被设置很多次?或者错误标记只在检测到启动位下降沿的时候被反映?
- 回答:
当UART的RX引脚处于“低”短状态,UART宏输出成帧误差。这种错误应该用"IO_UMC0.bit.RFC."来清除。在RFC清除之后,成帧误差被清除,但是RX引脚被继续留在“低”状态。当启动位再次被检测后,UART重新启动。在UART启动之后,根据STOP位的定时,成帧误差重新被输出,导致出现中断。
手册指出即使数据只在CLK同步模式中被接收,哑元传输数据应该被写入SODR1寄存器为什么?
- 回答:
在CLK同步模式中,将哑元传输数据写入SODR1寄存器,可以使其接收8位数据。在这种情况下,内部和外部时钟都要求写入哑元数据。为了不断接收数据,应该在每次8位数据被接收的时候,写入哑元数据(当数据被接受时,数据从发送引脚处输出)。
手册中指出TDRE的重启值被设置为 “1”,因此传输中断请求在TIE被设置为 “1”的时候出现。这是什么意思? 这是否意味着如果当TRRE为“1”时,传输中断被激活,会出现传输中断请求?
- 回答:
是的,完全正确。当没有数据被存储在SODR内,会出现UART传输中断。因此,如果当没有数据写入SODR时,传输和传输中断被激活,传输中断就会出现。
UART接收无效后接收激活继续,FFH这样一个非预期的数值被存储在接收数据的第一个字节。而正常的数值(预期数值)被存储在第二个字节以及后面的字节。
- 回答:
造成这种情况的原因是UART接收被禁止,同时16位重装定时器的计数器运行停止(CNTE=0)在波特率时钟源使用16位重装定时器的情况下被设置。设置16位重装定时器持续运行(CNTE=1)。
UART0被使用时,传输数据被写入寄存器的时间和START位被传输的时间之间的时间间隔在传输率的1位宽度内变化。为什么?(针对:MB90F548G)
- Answer:
- UART0: UART0取样时钟是1/8的传输率时钟,但是除了该取样时钟,还有用于数据传输的传输时钟((T = 1-位传输率脉宽)可供使用。数据和该时钟同步传输,因此会出现该传输率1-位脉宽的偏移。
- UART1: UART1取样时钟是1/16的传输率时钟。数据和该时钟同步传输,因此会出现1/16脉宽的离差。
手册中解释UART0的章节指出接收操作在重启放弃之后被启动,除非SIN0输入引脚被固定为 "1"。为什么?(针对:MB90540G/ 545G系列)
- 回答:
在重启被放弃后,UART0相关的寄存器的初始值是根据CLK同步和传输速率而激活的(将内部运算频率除以4获得时钟:波特率发生器)。接收激活位难以获得,SINO引脚为 “L”,因此启动位被检测,成帧误差出现,因为停止位是“L”。当SINO引脚持续为 “L”,重复操作不断重复。在UART1中,这种症状不会出现,因为预比例器停止,接收被禁止。
当UART执行互联CPU通讯时,什么电流会流到互连线中?
- 回答:
UART输入是CMOS输入,所以输入电流不流动。(例外情况:输入泄漏电流流动)
为执行2 Mbps串行输入/输出通讯,我想安装一个电容器来测量辐射噪音。流入微控制器的电流是否会影响串行输入/输出通讯?最多可以安装多大的电容器?
- 回答:
通常,使用100 pF 或200 pF ,但是不会影响单片机。也可以使用1,000pF,不会造成任何问题。当超过1,000 pF的电容器被使用时,你应该计算流入单片机的电流,并检查保险。
如果传输和接收无效时,通讯时钟被给出,在UART传输中断完成后SOT0引脚处于 “L”状态,SOT0引脚会在第九个时钟内从“L”状态变成“H”状态(针对:MB90650A系列)。
- 回答:
当传输和接收被禁止,时钟也会被传输到传输开关。当时钟第八次被传输,传输开关被设置为"FFH."。该值也被传输到输出末级的闭锁。当后来外部时钟即使只传输一次,输出引脚变为 “H”。