自制电子相机(1)硬件基础
对于自制相机的硬件知识点的记录
其他相关文章
硬件基础
这篇文章主要是记录一下硬件方面的基础知识点。
为什么需要分多组电源引脚
我们知道一般的IC元器件通常只有两个电源引脚,一个是Vcc或Vdd,另一个是Gnd或Vss。但是现在的MCU通常却有多组电源引脚,这是什么原因呢?
通过下面可以看到,这个芯片包含了5组。
之所以这样设置的原因有:
- 如果只设置一组的话会导致电流在芯片内部的路径过长:
对于频率高的电路,VDD电流会在高频突变(因为频率越高,需要的电流越大),这时候路径上产生的感抗会阻碍电流的变化,路径越长感抗越大,从而对电流的阻碍作用就会更明显,进而导致芯片网络中的电压变化,这样就会影响MCU系统的正常工作。
对于低频或者直流电路,路径长其影响不大。所以早期的低频MCU,只有一个VDD。多组VDD可以减少电感效应(电感并联总电感变小,路径变短电感也越小)。
MCU的模拟外设比如ADC通常是独立的电源VDDA,这是因为ADC需要尽可能干净的电源以保证转换结果的准确性,独立一路可以避免受到其他电源噪声的干扰。
多种电压要求。有时,芯片的不同部分会以不同的电压运行。一个典型的例子是低压内核和高压 I/O。内核使用较低的电压来降低功耗而 I/O 以更高的电压运行,以便更好地与外部电路连接。这时也需要分出来多组供电,常见的是复杂的SOC芯片。
多组VDD相比单个VDD,一个VDD引脚上经过的电流会减小,这样引脚不必承受过高的电流,增强可靠性。
各种“地”之间有何区别
在电子电路中,“地”是一个重要的概念。其被作为是相应种类的器件电路的零电平参考点。
主要的“地”有:
直流地:直流电路“地”,零电位参考点。
交流地:交流电的零线。应与地线区别开。
功率地:大电流网络器件、功放器件的零电位参考点。
模拟地:放大器、采样保持器、A/D转换器和比较器的零电位参考点。
数字地:也叫逻辑地,是数字电路的零电位参考点。
“热地”:开关电源无需使用工频变压器,其开关电路的“地”和市电电网有关,即所谓的“热地”,它是带电的。
“冷地”:由于开关电源的高频变压器将输入、输出端隔离;又由于其反馈电路常用光电耦合器,既能传送反馈信号,又将双方的“地”隔离;所以输出端的地称之为“冷地”,它不带电。
信号接地:设备的信号接地,可能是以设备中的一点或一块金属来作为信号的接地参考点,它为设备中的所有信号提供了一个公共参考电位。
有单点接地,多点接地,浮地和混合接地。
- 单点接地是指整个电路系统中只有一个物理点被定义为接地参考点,其他各个需要接地的点都直接接到这一点上。在低频电路中,布线和元件之间不会产生太大影响。通常频率小于1MHz的电路,采用一点接地。
- 多点接地是指电子设备中各个接地点都直接接到距它最近的接地平面上(即设备的金属底板)。
在高频电路中,寄生电容和电感的影响较大。通常频率大于10MHz的电路,常采用 多点接地。浮地,即该电路的地与大地无导体连接。『 虚地:没有接地,却和地等电位的点。』其优点是该电路不受大地电性能的影响。
浮地可使功率地(强电地)和信号地(弱电地)之间的隔离电阻很大,所以能阻止共地阻抗电路性耦合产生的电磁干扰。其缺点是该电路易受寄生电容的影响,而使该电路的地电位变动和增加了对模拟电路的感应干扰。
一个折衷方案是在浮地与公共地之间跨接一个阻值很大的泄放电阻,用以释放所积累的电荷。注意控制释放电阻的阻抗,太低的电阻会影响设备泄漏电流的合格性。
下图总结了为什么要划分数字地和模拟地:
https://zhuanlan.zhihu.com/p/400824869
总的来说就是:减少数字电路和模拟电路之间的干扰,提高电路的可靠性。
“地”的 图像
电源引脚有哪些
关于旁路电容和去耦电容
在电子电路中,去耦电容和旁路电容都是起到抗干扰的作用,电容所处的位置不同,称呼就不一样了。对于同一个电路来说,旁路(bypass)电容是把输入信号中的高频噪声作为滤除对象,把前级携带的高频杂波滤除,而去耦(decoupling)电容也称退耦电容,是把输出信号的干扰作为滤除对象。
旁路电容
所谓旁路电容其实就是利用了电容对于直流电的阻断,对于交流电的让行的特点,使用一个电容来吸收高频噪声的。如下图所示的,旁路电容可以给高频的信号一个短路,让其直接回到电源中防止其影响后面的IC
等等电路。
去耦电容
这个电容的作用是去耦,就是去掉耦合。耦合就是联系:
一般大小为100nf +10uf并联,电容并联会使得容值加大。
或者是多个100nf
的电容并联。如下图所示:
通过上图可以看到,去耦电容的位置接近于IC
芯片,其作用有
- 去耦,防止由于
IC
出现的波动对于前面电路的影响 - 作为一个“水库”,存储电荷,在
IC
需要的时候给IC
放电。
使用一个例子来说明:
你可以把总电源看作水库,我们大楼内的家家户户都需要供水,这时候,水不是直接来自于水库,那样距离太远了,等水过来,我们已经渴的不行了。实际水是来自于大楼顶上的水塔,水塔其实是一个buffer的作用。
如果微观来看,高频器件在工作的时候,其电流是不连续的,而且频率很高,而器件VCC到总电源有一段距离,即便距离不长,在频率很高的情况下, 阻抗Z=i*wL+R,线路的电感影响也会非常大,会导致器件在需要电流的时候,不能被及时供给。
而去耦电容可以弥补此不足。
这也是为什么很多电路板在高频器件VCC管脚处放置小电容的原因之一 (在vcc引脚上通常并联一个去藕电容,这样交流分量就从这个电容接地。)有源器件在开关时产生的高频开关噪声将沿着电源线传播。去耦电容的主要功能就是提供一个局部的直流电源给有源器件,以减少开关噪声在板上的传播和将噪声引导到地
二者的区别
去耦:去除在器件切换时从高频器件进入到配电网络中的RF能量。去耦电容还可以为器件供局部化的DC电压源,它在减少跨板浪涌电流方面特别有用。
旁路:从元件或电缆中转移出不想要的共模RF能量。这主要是通过产生AC旁路消除无意的能量进入敏感的部分,另外还可以提供基带滤波功能(带宽受限)。
下图可以看到,二者在电路中位置的不同:
我们经常可以看到,在电源和地之间连接着去耦电容,它有三个方面的作用:
是作为本集成电路的蓄能电容;
是滤除该器件产生的高频噪声,切断其通过供电回路进行传播的通路;
三是防止电源携带的噪声对电路构成干扰。
不管是去耦还是旁路,其在电路中都是并联的。旁路时,被并联的是障碍物,去耦时,被并联的是功能区
stm32的最小系统板
对于stm32来说,有一些电路是芯片运行所必须的:
- 电源电路
- 保险电路
- 电压转换电路
- 电源接口电路(USB、TYPEC等等)
- 时钟电路(晶振)
- 复位电路(启动模式)
- 自动下载电路
- 存储电路(在最小电路中这个是不需要的,但是一般都不是最小电路。这个部分的信息可以去这里找到
- TODO
- 调试电路
下面将基于 STM32 单片机(F1 系列)展开讲解。
背景
学嵌入式,我们一般从单片机学起。学单片机,不能只学软件,硬件知识也要跟上。软硬件相结合的设计,才是真正优秀的设计。
谈及单片机的硬件设计,我们会先将其浓缩为最小系统,即能实现最基础的功能的最简化设计。以 STM32(F1 系列)单片机为例,最小系统无非是这几部分:电源、复位、时钟、启动模式、下载调试。
电源
STM32 的电源有以下几种类型:
电源开关
不管是 PCB板 都需要电源开关,但是这个开关需要注意要选择特殊的开关,否则会导致电流无法通过。
上面这张图显示了一种电源开关的时候,需要注意稳压芯片的 SW
引脚其实就是用来连接开关用的
主电源(VDD / VSS)
主电源指的是标记为 VDD1、VDD2… 的引脚。
每个引脚必须加一个 100nF 的滤波电容,且尽量靠近引脚放置,此外需要一个 10uF 的钽电容公用。
后备电源(VBAT)
VBAT 引脚可用于电池供电。如果不用,可以与 VDD 连接在一起。VBAT 也需要一个 100nF 电容滤波。
可参考以下的电源选择电路:
ADC 电源(VDDA / VSSA)
为了提高转换精度,ADC 设备可以从这里取电。一般将 VDDA 通过一个电感后, 与 VDD 相连接。
若不用到 ADC,可将 VDD,VDDA,VREF+(如果有的话) 接在一起,并对地接 1uF 钽电容 + 10nF 陶瓷电容滤波。
电源引脚的设置
在stm32中有很多不同种类的电源,如何处理这些电源成为原理图绘制的一个问题。
其中一般只有一下引脚需要特殊的连接:
VDD:整个引脚的作用一般是当作某个芯片的供电引脚
VDDA:stm32中的数据手册规定,整个引脚必须连接在VDD上,其作用一般是给某个芯片正电压(模拟)。并且必须使用一个电感或者磁珠来将二者隔离开,这是因为VDD是数字电源,而VDDA是模拟电源。
VCC:这个引脚的作用一般是当作整个电路的输入电压
VSS:整个引脚就是数字信号的GND
VSSA:整个引脚就是芯片的负电压(数字),这个引脚必须连接VSS,这是数据手册中规定的。其接线方式如下所示:
VBAT:VBAT = 1.8~3.6V:当关闭VDD时,(通过内部电源切换器)为RTC、外部32kHz振荡器和后备寄存器供电。所以一般这个需要单独一个电源进行供电,当然也可以直接接到VDD上,但是这样就失去了其独特的效果。
VBAT
常见的接法如下图所示:- 使用一个肖特基二极管来整流,改图的主控为
stm32f407VGT6
- 使用锂电池来提供
VBAT
其实就是使用了电池情况下的接线情况,下图的主控为stm32f407ZET6
:
- 下面这个接线方式和第一种其实是一样的,其主控为
stm32f103ZET6
。
- 使用一个肖特基二极管来整流,改图的主控为
VREF+:这个引脚一般作为ADC基准参考电压(正),这个引脚只有在引脚数大于等于100以上时才会有。下图展示了该引脚的接法:
当VREF+没有接在VDDA上时:
当VREF-接在了VDDA上时:
注意,这里的电容必须时质量好的陶瓷电容。
一般接法如下:
这个接法没有遵照上面手册中提到的,但是也可以正常工作。
还有一种按照手册中的接法:注意图中的
GNDA
就是VSSA
。
VREF-:这个引脚是ADC基准参考电压(负),注意,只有在封装为
UFBGA176
是才会有。如果有这个引脚,直接将其接到GND
上,同VSSA
一起。VCAP_1和VCAP_2这两个引脚直接连上电容后接地。一般接法如下:
调试电路
这类其实不需要额外算一种模块,主要就是通过:
- 放置
LED
灯的方式来判断是否有电 - 在各个电源处放置测试点,方便对于是否有电进行测试。
复位电路
由上可知,NRST
是低电平有效,所以接线如上所示。
还有一种接法:
因为 STM32 内部有上拉电阻(这里没有使用上拉电阻,但是有些人也会加上一个上拉电阻,因为他们认为stm32内部的上拉电阻并不可靠),所以外部只接 100nF 电容 + 按键即可:
上电时,CPU 处于复位状态,此时电容充电,NRST 引脚电位持续拉低,当电容充满电后,NRST 电位变为高电平,此时 CPU 退出复位模式,进入正常运行状态。当按钮被按下时,电容被短路清空电量,按钮松开后重新充电,触发复位。
根据官方设计指南,电容选取 100nF 即可,以保证 NRST 低电平持续的时间满足 CPU 复位的最小脉宽要求,能正常触发复位。
如果不需要手动复位功能,也可以略去按键。
时钟
如上图,STM32 的时钟分以下几种:
- HSI:高速内部时钟,是内部的 RC 振荡器,频率为 8MHz
- HSE:高速外部时钟,可接石英 / 陶瓷谐振器,或者接外部时钟源,频率范围为 4MHz~16MHz
- LSI:低速内部时钟,RC 振荡器,频率为 40kHz. 独立看门狗的时钟源只能是它,同时它也可以作为 RTC 的时钟源
- LSE:低速外部时钟,接频率为 32.768kHz 的石英晶体。LSE 是给 RTC 用的时钟源
- PLL:锁相环倍频输出,其时钟输入源可选择为 HSI/2,HSE 或 HSE/2. 倍频可为 2~16 倍,但是输出频率最大不得超过 72MHz
从稳定性上考虑,我们在设计的时候一般使用外部晶振作为时钟源。一般选取 8MHz 晶振作为 HSE,便于倍频(一般倍频到 72MHz);选取 32.768kHz 晶振作为 LSE,RTC 使用便于分频(32768 是 2 的 15 次方,可以得到精准的时间)。
至于晶振的选用,有源的精度高,无源的成本低,一般无源就足够了。
如果选用无源晶振,则需要在两端要加上起振电容,滤除晶振波形中的高频杂波。容值可选 10 ~ 40pF。这个容值手册中没有明确规定,具体多少可以看晶振的手册。
晶振输入输出引脚之间可加一个 1M 的电阻,产生负反馈,保证放大器工作在高增益的线性区。同时还起到限流作用,防止反相器驱动过载损坏晶振。
启动模式配置
一般将 BOOT0 引脚下拉(串接 10K 电阻再接地),BOOT1 任意 即可。
如果需要模式切换,也可以参照以下的设计:
启动模式详见 STM32 的启动模式
下载调试接口
首先我们需要知道现在主流的调试接口有哪些:
- SWD
- JTAG
其中JTAG
的功能如下:
- 下载器,即下载软件到FLASH里。
- DEBUG,跟医生的听诊器似的,可探听芯片内部小心思。
- 边界扫描,可以访问芯片内部的信号逻辑状态,还有芯片引脚的状态等等。
JTAG根本没有标准的接口定义,甚至每家公司定义都不一样,推丸菌罗列了4种接口定义,有ARM公司的定义,有ST公司的定义等等,仅供大家参考。深入理解TMS/TCK/TDO/TDI等信号。下图为常见的几种定义(大部分采用ARM 20PINS的标准)
从上图可以看出,不同的公司有自己的定义。一般使用最多的是ARM公司的20PI的定义
SWD
的主要的引脚定义如下:注意,SWD和JTAG所用引脚的作用是差不多的。
- VRef:目标板参考电压信号。用于检查目标板是否供电,直接与目标板VDD联,并不向外输出电压;
- GND:公共地信号;
- SWDIO:串行数据输入输出,作为仿真信号的双向数据信号线,建议上拉(高速下载时一定需要上拉);
- SWCLK:串行时钟输入,作为仿真信号的时钟信号线,建议下拉(高速下载时一定需要下拉);
- SWO:串行数据输出引脚,CPU调试接口可通过SWO引脚输出一些调试信息。该引脚是可选的;
- RESET:仿真器输出至目标CPU的系统复位信号。该引脚可选,建议选择上,因为ULINK是一定需要该管脚的,使得仿真器能够在连接器件前对器件进行复位,以获得较理想的初始状态,便于后续连接仿真。
调试接口一般使用SWD
或者是JTAG
,前者的优势是需要的引脚少,后者优势为下载速度更快,更加稳定。
使用SWD接口的原理图
四根线的SWD
接法是STM32最小系统用的最多的方式,体积小。不过还是建议选择五线SWD。
一般我们用 SWD 接口(接线少,方便),直接引出 SWDIO,SWCLK,VCC,GND 即可。
不需要添加外部上拉/下拉电阻,因为 STM32 内部已经有集成了。
五根线的SWD
接法如下所示:
使用JTAG接口的原理图
这个是20pi
接口图
使用JTAG
的接法比使用SWD
的接法速度更快,并且稳定性也更好。
总结
以上就是 STM32(F1 系列)最小系统的电路设计。更加详细的内容,可以跳转下面的官方文档和相关文章。
PCB板之间的连接
- 焊接方式: 该方式优点是简单、成本低、可靠性高,可以避免因接触不良而造成的故障;缺点是互换、维修不方便。
- PCB导线焊接该方式不需任何接插件,只要用导线将PCB板上的对外连接点与板外的元器件直接焊牢即可。
- PCB排线焊接两块 PCB板之间采用排线连接,既可靠又不易出现连接错误
- PCB之间直接焊接此方式常用于两块印制板之间为90度夹角的连接。
- 插接件连接方式:在比较复杂的仪器设备中,常采用插接件连接方式。不仅保证产品批量生产的质量,降低系统成本,还为调试、维修提供了方便。
- 印制板插座: 在比较复杂的仪器设备中,经常采用这种连接方式。该方式是从PCB板边缘做出印制插头,插头部分按照插座的尺寸、接点数、接点距离、定位孔的位置等进行设计,使其与专用插座相配。
- 标准插针连接:该方式用于PCB板的对外连接;通过标准插针将两块PCB板连接时,一般呈平行或垂直状态,容易实现批量生产。
stm官方提供的手册
st实际上提供了非常多的参考手册,这不仅仅有编程手册和数据手册还包括:
- 笔记文档(AN)
- 勘误手册(ES)
- 编程手册(PM)
- 数据手册(DS)
- 参考手册(RM)
- 闪存编程手册(Flash Programming Manual
- 内核编程手册(Cortex-M Programming Manual)
- 用户手册(User Manual)一般是对某个软件库的说明文档。
- 工具软件
注意在官方网页中,不同的手册有不同的字母开头。
https://www.cnblogs.com/armfly/p/13026991.html
数据手册怎么看
一般我们只需要关注数据手册中的:
- 第二章,规格说明。这一章的主要作用是给原理图的绘制提供参考和帮助有
- 第三章,引脚定义。这一涨啊主要也是对于原理图的绘制有作用
- 第五章,电气特性。这个主要是对于各引脚可以承受的电压范围,各种时序之间的时间长短设置。
需要注意的是,上面的章节数可能随着不同的芯片而不同
参考资料
https://mp.weixin.qq.com/s/XAM3G57q2F1J60Za8K8iIg
https://murata.eetrend.com/article/2019-09/1003054.html
https://ez.analog.com/cn/other/f/forum/96956/thread
STM32F1 系列单片机硬件设计方法
STM32 硬件设计
STM32 时钟系统
AN2586 应用笔记-STM32F10xxx 硬件开发使用入门》
AN2867 应用笔记-ST 微控制器振荡器电路设计指南》