前言


在上一章里,我们初步选择了主控芯片,确定了大体上的方案,接下来我们进入实际的设计环节。所谓原理图,就是电路图,它决定了芯片的引脚到底应该跟谁连接,如何去连接。每个芯片都有很多引脚,引脚与引脚的对应关系,我们一般称之为网表(NetLists)。前面我们已经知道,类似瑞芯微这种芯片厂家一般会提供几个现有的方案供我们参考。其实不光是芯片厂家,很多卖开发板的厂家在参考原厂的资料后也会设计出自己的板卡,并且同时会提供自己的原理图,比如香橙派,迅龙,友善等等。有些甚至不需要你购买他们的板卡,会直接挂在官网上供你参考,这真的要给他们点一个大大的赞。另外,还有一些科技发烧友,会在参考前两者的基础之上,设计出自己别具特色的板卡,并开源出自己的部分资料,同样我们也可以参考,只是可能需要你花一定的时间去寻找,还有一点值得注意的是,由于他们水平不一,可能导致他们设计的板卡存在一些小问题,这个可能需要你有一定的硬件功底去辨别。

好了,说完了资料的获取,我们先来看原厂的资料。


我们打开后就是上面的那张图,其中 01 就是通用设计参考,我们打开后里面会有芯片的相关参数,未使用的引脚如何处理,电力消耗,设计指南等等。我建议各位在动手之前仔细研读这里面的资料,相对来说还是比较清晰易懂的。

02 是 DDR 模板,正如前面我们说到的,DDR 内存和主控芯片的高速互联是很考验人技术和耐心的一件事。所以厂家贴心的为我们提供了设计模板,方便我们参考学习。但是对我们白嫖用户来说基本上用不了,因为厂家提供的工艺比较极限,没法支持嘉立创免费打板。

3,4,5 是三种应用场景的参考资料,AIoT 是人工智能物联网产品线的应用,对应的场景应该是智能音箱,电视盒子这种吧,具体不太懂。NVR 是网络录像机,对网络和存储有需要的可以参考这个文件。Tablet 对应着平板电脑产品线,主打人机交互和影音娱乐,另外会考虑电池供电的一些问题。当然了,硬件只是参考,不代表它只能做这些应用场景,具体还是得你去考量裁剪,缝合出你自己的一套东西。厂家会提供一些可选方案,供你去取舍。

最下方的表格和文档是说明文件,主要是文件目录和注意事项,没什么好说的。


原理图的构思和设计方法


任何事情想要成功,条理清晰是一个不可缺少的前置条件,对应到我们的设计中去就是分模块来设计。就拿我们比较熟悉的 STM32 单片机设计来说吧,单片机有最小系统,包括时钟,复位,电源等等。外面还有串口部分,比如常用的 USB 转串口 CH340 模块,另外还有一些传感器,比如 DS18B20 温度传感器模块,蜂鸣器模块等等。在嵌入式板卡里也是遵循同样的原理,由于嵌入式主控通常有几百甚至上千个管脚,我们再按照之前的做法把所有的成分都堆积在同一张图里是不可行的,不但结构混乱,而且万一出了什么错误排查起来也很费时间。所以,对原理图按照模块来分页是很有必要的,基于以上的原因,你可以看到很多官方的设计有几十页之多,比如下面这张 AIoT 的参考图,竟然有 72 页之多,每一页只有一个功能部分,这叫解耦。把复杂的系统拆分成一个一个的小模块


当然,我们可以看到图页后面有"Default"和"Opition"字样,前者代表默认,后者代表可选,你可以根据自己的像需求去裁剪,这会大大的减少我们硬件设计的工作量。

我们从哪里开始

我想先带大家快速过一下官方的原理图,体会一些设计的细节,而后开始讲解我们自己的设计,当然我不会面面俱到,所以有些细节还是要你自己动手去画来体会。



我们看一下上面这张逻辑框图,图还是比较简单易懂的,主控通过各种总线连接到不同的外设上。其中有些我们用不到,比如 VGA 输出,MIPI 等等,我们完全就可以删掉。


电源域


在这里需要给各位朋友讲一下电源域这个事情,对于我们的处理器而言,芯片上集成了非常多的小模块用于和外界设备通信,通信的方式也多种多样,为了最大化的减少芯片面积,很多不同的功能都是通过同一组引脚输出的,为什么我们要强调这个组呢?因为对高速的信号来说,一般都有很多的功能线,比如时钟线,地址线,控制线等等(有些是差分信号的形式)。这些不同的功能很多时候对应着不同的电压,需要我们根据实际情况设置引脚的电压,这组引脚的电压就是手册里提到的电源域。就对我们 RK3568 来说,引脚电压一般有 3.3V 和 1.8V 两种。如果你把 1.8V 接到了使用 3.3V 的信号脚上可能会导致信号传输异常,而反过来你把 3.3V 接到了使用 1.8V 的管脚上,可能会烧坏芯片,所以这些需要我们提前考虑到。

对电源分区还有三个好处,一是隔绝一些干扰,比如 USB 和 PCIE 都需要一个 1.8V 输入,我们通过磁珠和电容构成两个 LC 滤波器将一路电源转化成两个独立的电源来防止噪声通过电源耦合到另外一个器件中去。另外,假如我们的系统需要做低功耗相关的休眠应用,我们就需要在休眠期间主动关闭一些用不到的设备,这时候,分别控制的好处就显现出来了,方便对各个模块做不同的处理。第三个,也是比较重要的一点,就是上电时序。对于大部分的处理器而言,上电的顺序是有先后要求的,不能随意来,比如下图就是 RK3568 的时序要求图

手册里是这么说的,这个怎么理解呢?不同模块之间是有调用关系的,如果你调用了一个未初始化的模块,可能会导致系统初始化卡死或崩溃(如果你确实不需要这个功能,可以在内核中把他禁用掉)。


电源框图


上面这张电源框图,看起来眼花缭乱,其实很简单。左上角是 12V 的电源输入,分为了两路,其中左边的一路通过一个 DCDC 电路分配给了 RK809,右边 12V 分给了几个独立的 DCDC 输出不同的电压。我们先来说 RK809,RK809-5 是瑞芯微专门给 RK356X 系列处理器定制的专用电源管理芯片,内部结构除了上图所示的 5 个 DCDC 降压变换器(BUCK)和 9 个线性稳压器(LDO)外,还有一个音频解码器兼功率放大器,可谓是一芯多能了。需要注意的是 RK809 内部的 BUCK 和 LDO 性能,输出电压范围,电流大小都是不一样的,最好建议你按照官方的设计来,防止出现一些奇奇怪怪的问题。由于 CPU 需要的电流比较大,所以官方原理图用了一个专门的 DCDC 芯片,RK860,同样的他还有一个兼容版 TCS4525,二者在封装上是完全一样的,不清楚能不能直接用。这两个主要的电源芯片都是通过 I2C 总线和处理器通讯的,同时具有中断,睡眠等信号,而音频是通过 I2S 总线连接到处理器。


下一张图是官方原理图设置的电源域



需要注意的是,某些引脚是不允许随便设置的,比如上面的 PMUIO0 和 1 这两个一个只能 1.8V 另一个只能 3.3V,如果你有设备需要接在这两组管脚的某个 IO 上时,需要特别留意,尽量避开,或者要加电平转换电路,否则可能会导致功能异常。

下一张图给我们展示了引脚重映射相关功能


引脚重映射功能是为了方便我们布线,通过内部的交换矩阵,可以很方便的将某一个功能映射到另一组引脚上(比如M0,M1,M2)。当然这个在修改的同时也要在设备树同步修改。


CPU 逻辑,时钟,复位(看门狗)



CPU部分没什么好说的,注意晶振并联的1M电阻不可缺少,如果缺少的话晶振可能不会起振,切记。另外晶振串联的22欧电阻也不建议删掉,防止信号幅度过高。右边的TSADC_SHUT是温度过高的时候重启保护芯片。


DDR 复用


为了节省芯片引脚和适配更多的内存芯片,所以厂家设计了DDR复用,很多芯片都有这种设计。RK3568兼容从DDR3到LPDDR4X的多种芯片类型,由于芯片电路设计和接口的不同,所以芯片的连接也有很大的不同,在设计时,你必须按照厂家的提示正确连接,否则可能导致芯片损坏。


存储器,启动顺序,两种恢复模式


RK3568支持从多种介质引导固件,何谓引导?这里不得不简单介绍一下ARM处理器的启动方式。就拿RK3568举例,下面是我随便找的一张官方启动路径介绍。

大概的过程是这样的,在我们主控芯片的内部集成了一小块专为启动设计的只读存储器(BROM),存放着一段特定的启动代码,他会在上电的一瞬间被加载到内存中去,首先会完成一系列初始化操作,配置CPU,关闭看门狗,初始化时钟,初始化外部存储器等等,接着,他会按照特定的顺序从各个启动介质中(NOR,NADN,EMMC,SD等)搜寻可启动的ID Block代码,一旦找到可执行的代码,BROM就会把其中的一部分(SPL)首先加载到片内的小容量SRAM中,之后,CPU将会完成外部大容量DDR存储器的初始化,这时候就可以准备读取完整UBOOT到外部DDR中去了,接着就可以加载内核,启动我们的LINUX系统了。这个过程十分复杂,我只是简单的叙述了一下,这一部分我们暂时不会深入去涉及。


现在思考两个问题,到底主控芯片如何确定到底优先去哪个存储介质启动呢?一般主流芯片有两种方案,一种是芯片有一个或多个引脚,通过检测这些引脚的上拉或者下拉状态来选择。另一种是写死在芯片里面,他按照一定的顺序去一个一个的尝试,直到能启动为止。我们的RK3568就属于后者,他是按照下面的顺序来启动的。

由上面的流程图可知,芯片的启动顺序为SPI NorFlash->SPI NandFlash->NandFlash->EMMC->SD卡

如果都没找到启动介质,那就由芯片内部的代码初始化USB端口,等待程序烧录,这也就是所谓的MaskRom模式。在这个模式下,你用USB线连接板子和电脑,安装驱动,打开瑞芯微刷机工具,就会提示发现一个MASKROM设备。

除了这种情况下,当你使用EMMC时上电前短接D0引脚到GND,使用SPI存储器时短接CLK到GND同样也会触发MASKROM模式,如果你是一个经常接触手机刷机的玩家,这就是所谓的“深度刷机模式”或者说“救砖模式”。

还有另一种恢复模式,当你在启动时短接SARADC的第0个端口(相当于按下REC键),芯片将进入一种恢复模式,在这个模式下,你可以对固件做一些升级等,但是不会修改Bootloader部分。

综上所述,两种模式的对比如下表所示。


元器件支持列表 AVL


需要注意的是,在你设计自己的原理图时,不是所有的器件都能被芯片识别的,比如DDR,EMMC,WIFI模块等等,厂家会根据市场上常见的一些芯片做针对性的优化和设计,所以建议你使用这些型号,否则可能会出现一些奇奇怪怪的问题。优先推荐你用别人用过的物料,尽量选一些大厂。

使用立创EDA设计原理图

  1. 善用网络标签
  2. 检查电源树
  3. 多部位器件注意位号


下一篇,我们讲PCB 设计那些事。


项目链接:https://oshwhub.com/hhbv/rk3568b-router


#2025年度项目秀# #DIY设计##嘉立创PCB##技术干货#


#2025年度项目秀#
#DIY设计#
#嘉立创PCB#
#技术干货#
嘉立创PCB

还没有评论,抢个沙发!