电子产品从设计到制作流程我以前写的东西,都是某个项目中的一个小片段知识点。对于曾经遇到过类似问题的人,看过之后就会感觉很有用。如果之前没有遇到过,可能看过之后就忘记了,也可能看了也不明白写的什么意思。 这篇文章我将会以一个实例来叙述一个产品的完整制作过程。即使这个实例不是你感兴趣的,也一定要看下去。因为这其中涉及到了很多的电子设计基础知识点,涉及到了模拟电子和数字电子方面的很多知识。然而,任何一个电子产品都是基础知识点的融合,那种很花哨的招式一般是用不上的。 我坚信,即使你现在工作了好几年了,在这个产品的设计中用到的某些知识,你不一定遇到过。所以,这篇文章不仅仅是适合初学者!多数人看了都会从中受益。 既然是要说一个完整的制作过程,就需要先从需求开始说起。 需求:发动机数字转速表(数码管显示) 发动机的转速信号传感器一般有三种:磁电、霍尔、光电。磁电用的最多,我们这里也是要做磁电的转速表。 磁电传感器有两条线,出来的信号是正弦波,这个正弦波的幅值和频率都是随着转速的增加而增加。转速越快,幅值越大,频率越高。在转速低的时候,幅值可能只有几十个mV,转速大的时候,幅值可能会有15V。频率一般是从0到几千赫兹。 在拿到需求以后,我们一般会把这些需求转化为我们电子类的专业术语表示。做过项目的都知道,客户说的,我们可能听不懂,而我们说的,客户可能也听不懂。所以在需求沟通的时候,就需要坐下来谈谈,电话里边是很难说清楚的。 拿电子专业术语来说,我们要做的这个产品,就是:正弦波频率计。 需求搞明白了,就可以进入设计选型阶段了。设计选型阶段,主要靠的是行业经验和设计经验。 这里,我们产品的外壳选择用标准的5135外壳,便于安装到教具的台架面板上,数码管选用0.56寸的,因为这种外壳用0.56寸的数码管很合适,空间占用比例很好。(5135外壳每个售价1.5元左右,0.56寸的数码管是2元左右。) 5135外壳配套的电路板尺寸为3.68*6.9,比较小,所以我们尽量用小封装的电子元器件。我们暂定只要有贴片封装的,都用贴片的,电阻电容选用0805封装的。 因为汽车的转速信号最大是8000转,一般我们也就是在1000~3000转之间使用。所以我们选择4位的数码管,用芯片TM1620驱动。TM1620是天微电子的一款数码管驱动芯片,SOP20封装,这个芯片与单片机采用SPI接口,只需要占用单片机的3个引脚,就可以用单片机控制显示任何数字了。(TM1620每个售价0.9元左右。) 汽车上的所有用电设备,一般都是蓄电池供电,蓄电池的电压是12V左右,如果教具上面不需要安装汽车的蓄电池,一般用12V的开关电源供电。所以我们要做的这个产品,是用12V供电的。 为了避免电源电压波动对电路造成的影响,我们选择9~36V输入、5V输出的电源芯片XL1509-5.0,该芯片为SOP8封装。(XL1509-5.0每个售价1元左右。) 信号处理原理是:把正弦波整形为方波,然后交给单片机测量频率,单片机再负责把这个频率显示到数码管上。这其中,我们要显示的是转速,测到的频率和转速可能不是一个数,有可能是由一定的比例关系,所以还需要单片机运算一下,为了方便兼容各种车型,我们增加一个校准按钮。 正弦波整形为方波,人们一般的使用方法是使用比较器或者施密特触发器,就是把信号的一条线接GND,另一条线作为输入。如下图所示: 但是,我们不能直接使用这种方法。因为,在使用原车ECU的情况下,如果你把信号的其中一个引脚接GND,将会引起ECU报故障。(这一点,完全是行业经验。) 为了避免上述情况,我们用三运放构成的仪表放大电路缓冲一下正弦波信号,该电路为差分输入、单端输出,正好适合我们现在的应用。 信号的两条线分别从VIN1和VIN2进入,最后从VOUT输出。我们使用SOP8封装的MCP6002,这个芯片是轨到轨输出。什么是轨到轨?我以前的公众号也发过一篇文章介绍。这个功能可以避免由于输入电压过大引起的信号翻转失真。(MCP6002每个0.7元左右。) 单片机我选择SOP16封装的STC15W408AS,这个单片机内部有比较器,可以用来给正弦波整形。自带的捕获功能,专门用来测量脉冲信号,可以减少代码量。(STC15W408AS每个售价2.8元左右。) 基本思路就是这些,具体的细节问题,我们在画电路板的时候再介绍。 接下来进入原理图设计环节。 说到画板,有些人使用AD,有些人使用Pads,有些人使用Cadence,有些人使用Kicad......。为了方便所有的人,这里我使用easyeda,它的好处是不用你电脑上装软件,因为它是使用浏览器编辑的。画好的板子,我也会提供给大家,大家用浏览器就可以打开了,如果需要,可以一键生成gerber文件发到工厂做板子。 电源部分 因为电路中的单片机、TM1620、MCP6002和数码管都是5V供电,所以我们选择使用XL1509-5.0芯片,输入电压可以从9V到36V。 在XL1509的手册上,已经给出了它的经典电路图,上图也是按照手册上的图接的。不过,很多人想知道其中的原理,下面我就详细的介绍一下。 D2使用普通二极管M7,它就是直插元件IN4007的贴片版本。它的作用是防止电源反接,当你一不小心把电源正负接反了,也不会烧坏电路板。 C1和C3的作用是电源滤波,就是去除输入电源噪声的。C1不一定必须使用220uF,使用100uF或者470uF都是可以的。C3使用10nF或者100nF都可以。关键是C1和C3的耐压值必须要大于给电路板供电的电源电压。 L1使用68uH的电感。作用是滤除电源5V输出的噪声。 D1是肖特基二极管B5817W,在这里的作用是续流。因为DC-DC芯片是开关电源原理,二极管是在芯片中的MOS管关断的时候起一个续流作用,电流从二极管流过,再从电感输出。 显示部分 我们使用TM1620的共阴极接法驱动数码管。 TM1620驱动4位数码管,所以只接GRID1~4,不接GRID5和6。SEG1~8用来驱动数码管的A~F~DP段位。STB、CLK、DIN连接到单片机的任意3个引脚。C4用来滤除噪声。
共阴数码管型号FJ5461AH。 信号处理部分 我们要做的电路是三个运放构成,一个MCP6002里边有两个运放,所以我们使用两个MCP6002。 这种三运放构成的仪表放大器,可以用在很多产品上,使用最多的,是对传感器小信号的放大。这是一种典型的电路形式。U3.1和U3.2是电压跟随器,U4.1是差分放大电路,实际上也是个减法器电路。电路的放大倍数=R6/R5=100倍。 很多人还会好奇跟随器前面的电阻R1和D3。D3的作用是当输入电压高于VDD的时候保护运放的输入级。在MCP6002内部,还有一个二极管,是保护输入电压低于VSS的时候保护输入级。R1的作用有两个,一个是限制输入到输入级的电流,另外一个是在输入电压大于VDD的时候,限制输入到D3上的电流。(R2、D4的原理和R1、D3一样。) 你可能注意到了R4下边的REF这个网络标号,因为我们使用MCP6002的单电源供电方式,所以需要在R4的下边接1/2的VDD,以便获得全部的信号。如果MCP6002的供电方式是双电源供电,那么REF这个地方是接GND的。 我们使用下面的电路给REF提供2.5V的电压。 这是一种非常常见的给单电源运放提供1/2VDD电压的一种方法,大家首先要熟记,然后听我给你们解释。 如果我不用这个跟随器,而是直接用两个10K电阻分压连接到REF那个地方,那实际上,REF处的电压肯定不是2.5V,因为它将会与R3、R4一起参与组成串并联的电阻网络一起分压输入电压,REF将会是一个随着输入电压变化的电压。用专业一点的话来说,就是R8、R9分压后得到的2.5V电压输出阻抗太大。所以,我们接一个电压跟随器,运放的输出阻抗很小,几乎为零点几欧姆。到时候,REF的电压将不会受到输入电压的影响,很好的保持2.5V不变。 你也可以用一个电压基准芯片,比如REF3125。但是这样会增加成本,而且多一个元器件,多占用一点PCB面积,我们本来很小的电路板,还是少放点东西比较好。因为我们刚才在信号处理电路中使用的U4实际上只使用了一个运放,还剩下一个运放,所以正好拿它来做REF的电压提供,两全其美。 主控部分 |