你了解MCU的技术原理吗?MCU为何会产生复位?
扫描二维码
随时随地手机看文章
对于电子电器专业的朋友来说,MCU是十分熟悉的器件之一。在充分运用MCU的情况下,我们能够打造出诸多实用设备。为增进大家对MCU的认识,本文将对MCU的技术原理以及导致MCU产生复位的原因予以介绍。如果你对MCU具有兴趣,不妨继续往下阅读哦。
一、MCU的技术原理
MCU同温度传感器之间通过I2C总线连接。I2C总线占用2条MCU输入输出口线,二者之间的通信完全依靠软件完成。温度传感器的地址可以通过2根地址引脚设定,这使得一根I2C总线上可以同时连接8个这样的传感器。本方案中,传感器的7位地址已经设定为1001000。MCU需要访问传感器时,先要发出一个8位的寄存器指针,然后再发出传感器的地址(7位地址,低位是WR信号)。传感器中有3个寄存器可供MCU使用,8位寄存器指针就是用来确定MCU究竟要使用哪个寄存器的。本方案中,主程序会不断更新传感器的配置寄存器,这会使传感器工作于单步模式,每更新一次就会测量一次温度。
要读取传感器测量值寄存器的内容,MCU必须首先发送传感器地址和寄存器指针。MCU发出一个启动信号,接着发出传感器地址,然后将RD/WR管脚设为高电平,就可以读取测量值寄存器。
为了读出传感器测量值寄存器中的16位数据,MCU必须与传感器进行两次8位数据通信。当传感器上电工作时,默认的测量精度为9位,分辨力为0.5 C/LSB(量程为-128.5 C至128.5 C)。本方案采用默认测量精度,根据需要,可以重新设置传感器,将测量精度提高到12位。如果只要求作一般的温度指示,比如自动调温器,那么分辨力达到1 C就可以满足要求了。这种情况下,传感器的低8位数据可以忽略,只用高8位数据就可以达到分辨力1 C的设计要求。由于读取寄存器时是按先高8位后低8位的顺序,所以低8位数据既可以读,也可以不读。只读取高8位数据的好处有二,第一是可以缩短MCU和传感器的工作时间,降低功耗;第二是不影响分辨力指标。
MCU读取传感器的测量值后,接下来就要进行换算并将结果显示在LCD上。整个处理过程包括:判断显示结果的正负号,进行二进制码到BCD码的转换,将数据传到LCD的相关寄存器中。
数据处理完毕并显示结果之后,MCU会向传感器发出一个单步指令。单步指令会让传感器启动一次温度测试,然后自动进入等待模式,直到模数转换完毕。MCU发出单步指令后,就进入LPM3模式,这时MCU系统时钟继续工作,产生定时中断唤醒CPU。定时的长短可以通过编程调整,以便适应具体应用的需要。
二、MCU为何会产生复位
在调试MCU时,经常会遇到复位的情况。要找到复位的原因,我们就需要了解到有哪些因素会导致MCU复位。
1.外部输入复位
当我们改变MCU的reset引脚的电平,并保持一段时间,就可以复位MCU。
外部输入复位是重启MCU最有效的方式了。
2.上电复位(LVD)
我们发现MCU不接外部复位电路,也能正常启动起来,这就是上电复位在发挥作用。
如下图,当电源电压达到POR释放电压后,MCU开始内部初始化,一定时间后开始执行用户程序。
当然,如果电源电压掉到了POR检测电压以下时,MCU会被复位住。
3.低电压复位(LVD)
当我们希望MCU不在某一电压以下运行时,开启LVD是一个很好的选择。
当电源电源下降到LVD检测电压以下时,MCU会被复位住。
当电源电压上升的LVD释放电压以上时,MCU会被释放,重启运行。
4.看门狗复位(WDT)
当MCU因为干扰等因素导致进入死循环,这个时候需要一种机制让MCU重新启动,这种机制就是看门狗。
在开启看门狗后,如果不及时喂狗,那么它将毫不犹豫的复位MCU,使其重新开始执行用户程序。
5.系统时钟复位
如果系统时钟的设置,使MCU进入死锁状态,那么就会发生系统时钟复位。
6.修整数据复位
低电压复位(LVD)的检测值是可以由用户的选择的。
根据用户选择,得到修整数据,从而调整电阻梯以形成不同电压的比较值。
如果这个修整数据因为噪声等原因发生改变,那么将发生修整数据复位。
以上便是此次小编带来的“MCU”相关内容,通过本文,希望大家对MCU的技术原理以及MCU产生复位的原因具备一定的了解。如果你喜欢本文,不妨持续关注我们网站哦,小编将于后期带来更多精彩内容。最后,十分感谢大家的阅读,have a nice day!