不过我个人认为,只搞电路设计的人不需要关心单片机怎么编程,但是搞单片机编程的人一定要熟悉电路。 您不需要自己设计电路,但必须了解微控制器项目的各个方面。 了解该电路的原理足以保证设计的程序稳定、鲁棒。
例如,如果在微控制器系统中使用EEPROM存储芯片,则EEPROM芯片的SCL和SDA为开漏输出,需要外部上拉电阻。 假设电路板上EEPROM芯片的SCL和SDA拉高。 如果忘记焊接电阻或者电阻坏了,此时将无法调试EEPROM。 如果此时电路设计者不在,而单片机程序员又不熟悉EEPROM的原理,他就会遇到麻烦:因为他不了解电路。 一旦熟悉了,你就会一遍又一遍地寻找程序的原因。 但程序显然没有问题。 该程序在其他项目中一直运行正常。 为什么在这个板上不起作用?
还有一点是,一般对于带有单片机的电路板,电路功能是否正常都需要编写一定的验证程序来测试电路板的性能。 仅电路设计人员无法使用万用表和示波器等工具来验证电路。 好和坏。
综上所述,单片机程序员必须熟悉电路原理,才能设计出正确的程序。
从本文开始,我们将简单研究一下单片机开发中常用的电路。
1、单片机常用电路
1-晶振电路
在早期的单片机(如经典的51单片机)系统中,外部晶振是必须的(当然也可以外接时钟脉冲,但很少使用),因为单片机的运行必须依赖于稳定的时钟脉冲。时钟脉冲。 不过,随着技术的发展,现在很多单片机都集成了内部时钟,所以在一般应用中,不需要外接晶振电路。 但由于内部时钟容易受到外部干扰,因此在严格的要求下仍然需要晶振电路。
图1是典型的单片机外部晶振电路。
图1 单片机晶振电路
该电路不仅有一个晶振,还有两个电容。 这两个电容的作用是什么?
这两个电容器一般称为“匹配电容器”或“负载电容器”或“谐振电容器”。 这两个电容加入到晶振电路中,以满足谐振条件。 一般采用外接电容,使晶振两端的等效电容等于或接近负载电容。 只有连接合适的电容才能满足晶振的启动要求,晶振才能正常工作。
负载电容值按下式计算:
如果负载电容不能满足要求,晶振的频率一般会出现偏差。 严重时晶体将无法振荡。 在电路设计中,应尽可能满足晶振的负载电容要求,使晶振能够最佳地工作。 负载电容计算公式如下:
CL = C1*C2 / (C1+C2) + CS
CL是晶振的负载电容值,一般通过查阅晶振的数据手册得到。 CS为电路板的寄生电容,一般为3~5pF,且C1=C2,则公式可简化如下:
CL=C1/2+CS
一般来说,增大负载电容值会导致振荡频率降低,减小负载电容值会导致振荡频率升高。
晶振电路2
我们有时会看到如图2所示的晶振电路。
图2 不带并联电阻的晶体振荡器电路
在该电路中,另一个电阻连接到晶体振荡器。 为什么是这样?
这个电阻实际上是一个反馈电阻,用来方便晶振的启动。 对于COMS来说,这个电阻的阻值可以在1M以上。 对于TTL来说,视情况而定。 最好的办法就是看芯片的数据手册,确认芯片晶振电路内部是否有电阻。 如果没有,最好在电路设计时加上。
晶振电路3
图3是有源晶振电路。
图3 有源晶振电路
有源晶振的常见用法:1脚悬空,2脚接地,3脚接输出,4脚接电压。 有源晶振不需要CPU内部振荡器,连接方法也比较简单(主要目的是对电源进行滤波,通常采用电容和电感组成的PI滤波网络,在输出端加一个小阻值电阻)端过滤信号),不需要复杂的配置电路。 与无源晶振相比,有源晶振的缺点是其信号电平是固定的,需要选择合适的输出电平。 它们灵活性较差,而且成本较高。