原理图部分使用的画幅尺寸为A4,建议大家从原始工程导出PDF然后打印查看。
2.1 Power Architecture Block
本页是庐山派-K230开发板的电源架构块图,重点考虑了这三路电源输入,提高了灵活性和适应性,可以适合多种工作场景和设备环境;做了过压,过流和防倒灌保护,提供全面的保护,降低操作失误时造成的损坏;排针的5V既支持5V输入,也可对外供电,可以自动切换的双向供电,保证了多输入供电时的自动管理;采用了DCDC降压方案,可以将8V-24V转换为5V,适用广泛的电压输入范围,适用于使用3S及以上的锂电池或外部大电压供电的场景。
2.2 Power SUPPLY USB AND PIN
图中上半部分是TYPE-C接口,既可以供电,也可以数据交互。两个CC脚都接入了5.1K的下拉电阻,具体为什么可以去看看TYPE-C规范文档。如果是A口供电的话不焊接这两个5.1K下拉电阻是OK的;当用C口供电时,没有这两个下拉电阻,开发板将不会被供电。K230有两个USB,在开发板上,USB0
用作DEVICE
设备来和CanMV上位机进行交互。USB1
用作HOST
等待后续接入以太网或者U盘,这里的TYPE-C
连入了K230的的USB0。
再往右看有很多二极管标志的元件是一个来自 BORN(伯恩半导体) 的ESD保护器件,同时还内置了一个钳位二极管。他与右边的MT9700就可以实现下面的这些保护。
- USB数据口静电防护:可以看到USB数据的D+和D-接到了防护器件的IO上。可以看到静电防护部分就是由多个二极管指向同一个地来实现的。在正常条件下这些二极管是不导电的,但在遇到高电压时会导通,将电流迅速导向地线。他们就是用来响应高电压尖峰的,ESD事件的持续时间非常短,通常在纳秒级别。保护器件能够在极短的时间内响应,从而保护电路不受瞬间高电压的影响,保护了我们的芯片管脚和电脑USB接口。
- 钳位(过压)保护:上图的ESD保护器件内置了一个钳位二极管,在正常电压条件下,钳位二极管处于高阻态,对电路的正常工作几乎没有影响。当电路中的电压超过钳位二极管的设计激活电压时,器件迅速从高阻态转变为低阻态。在低阻态时,钳位二极管允许电流流过,从而将过高的电压“钳位”在一个安全的水平。
- 过流保护:
MT9700
是西安航天民芯推出的一款低成本、低功耗的电子负载开关,具备过热保护、限流保护(通过外部电阻R1设置电流大小),这里我选择的电阻值是3.4kΩ
,其计算公式为Iset(A)=6.8KΩ/Rset(KΩ)
,考虑到后面还会搭配屏幕扩展板,电流较大,这里限制为2A。
左下角实现了排针5V的限流输入,和USB输入一样,设置MT9700的过流保护为2A。用了一个非门来默认使能MT9700,只要电脑USB没有对开发板供电,排针过来的电就可以供给下一级。
右下角实现了排针5V的限流输出,考虑到K230本身也要消耗电流,所以这里的限流改成了1A,这样的设计既保证了K230芯片及其周边电路的稳定供电,又避免了因电流过大而导致的潜在风险,确保了整个电路系统的安全可靠运行。
2.3 Power SUPPLY 8-24V
这里是DCDC降压,可以把8-24V输入的电压降为5V给后续电路使用,这里使用了和泰山派一致的GH1.25-2P带锁座子,用户连入供电线后不会轻易脱落,座子背面也引出了可接大电流的2.54间距焊盘,可以直接焊接排针使用,也可以直接焊线供电。
这里使用的DCDC芯片为TPS54302DDCR
,最高支持28V的输入,这里标注最大24V是为了留出余量,确保在输入电压波动或瞬时过压的情况下,电源系统仍能稳定工作,不会因电压过高而损坏。这样的设计提高了电源系统的可靠性和鲁棒性,同时也延长了DCDC芯片的使用寿命,建议大家在使用时不要供超过24V。
可以实现以下这些保护:
- 过压保护:通过在电源输入端串联一个钳位二极管(D3)来实现。在正常电压条件下,钳位二极管处于高阻态,对电路的正常工作几乎没有影响。当电路中的电压超过钳位二极管的设计激活电压时,器件迅速从高阻态转变为低阻态。在低阻态时,钳位二极管允许电流流过,从而将过高的电压“钳位”在一个安全的水平。
- 过流保护:利用自恢复保险丝(F1)来检测和控制电流。当电路中的电流超过保险丝的额定值时,保险丝会呈高阻态,切断电源供应。在正常工作条件下,自恢复保险丝的电阻很低,允许电流正常流过。当流过自恢复保险丝的电流超过其额定电流时,由于电流过大导致的热量会使PTC热敏电阻器迅速升温。随着温度的升高,PTC热敏电阻器的电阻会增加,这是因为它们是正温度系数元件,即电阻随温度升高而增加。电阻的增加导致通过自恢复保险丝的电流显著减少,从而限制了电流,防止过流对电路造成损害。当过流条件消除,电路中的电流下降,自恢复保险丝开始冷却,其电阻值会逐渐降低,最终恢复到低电阻状态,允许电流再次正常流过。大家可以自行做个小实验,当电路正常工作时,用热风枪对着自恢复保险丝吹,自恢复保险就会生效了。
- 防反接保护:当电源正确输入时,二极管(D3)不会被导通。当供电电源接反时上图中二极管D3的接地脚就变成了正极,自恢复保险丝左边的网络标号
8V-24V_IN+
就变成了负极。那么这个钳位二极管(D3)就会导通,所有的电流就会都加在自恢复保险丝上面,又因为没有负载,此时自恢复保险丝流过的电流将远远大于2A,此时自恢复保险丝生效,变成高阻态,从而避免电源反接时对开发板造成损坏。
2.4 Power-0V8-1V1-1V8-3V3
上图中的中部是四路DCDC降压,将输入的电压(5V)转化为多个不同的输出电压,包括0.8V、1.1V、1.8V和3.3V,这里采用的降压芯片都是TLV62569DBVR
。这四路的电路结构都是一样的,重点就是调整反馈电组的阻值和电感的容量。
以0.8V降压为例,C13,C14用于滤除输入电压中的噪声和纹波,确保输入电压的稳定性;R12默认把DCDC芯片的使能脚拉高,5V有输入供电,0.8V就立马输出;L2为一体成型电感,和降压芯片共同配合工作储存和释放能量,平滑输出电流,减少纹波,保证输出电压的稳定性;R13和R14与DCDC降压芯片的反馈引脚(FB)相连,决定输出电压的大小。电阻值的选择决定了输出电压的分压比,从而调节输出电压,计算公式如本图上方公式所示。
上图中的每个电源输出都都有一个测试点,如TP9,TP10等。这些测试点主要是为了工程师在调试时进行电压测量,也可以作为后续制作测试架时的测试点使用,结合各种自动测试工具,就可以方便的批量量产了。大家在实际使用检查开发板问题时也可以用万用表测量这些地方的电压是否正常。
左下角的U11是一个LDO,给芯片的RTC和ADC部分供电。U12为一个电子功率开关,当OUT0输出高电平时PRE_VDD_5V
就可以供给VDD_5V
,从而让系统后级供电。这里的OUT0时有K230芯片的PMU模块来控制的,K230设计有PMU功能,可通过INT管脚检测外部事件,然后触发OUT输出,如检测外部按键长按后,OUT控制总电源的使能完成系统上电。不需要PMU功能可直接将VDD1V8_RTC和系统1V8接到一起即可。生效的前提条件是:VDD1V8_RTC供电,提供32.768khz晶振,INT0设计为长按3s后OUT0输出高电平,INT4设计为检测到上拉,OUT0立即输出高电平。可以看后续电路原理图,本开发板只用到了INT4,给INT4做了上拉处理,所以当开发板上点时,如果低速晶振和RTC供电正常,K230的PMU模块就会控制VDD_5V
上电。
需要注意的是,这里除了0.8V电压在使能脚处没有电容,其他三路都有电容,主要是为了让其他三路延迟上电来满足K230的上电需求,官方硬件文档中对上电时序要求如下:
VDD0P8_CORE上电必须早于VDD1P8、VDDIO3P3_0到VDDIO3P3_5的IO接口上电,AVDD0P8_MIPI上电必须早于AVDD1P8_MIPI,AVDD1P8_RTC不晚于AVDD1P8_LDO,其余顺序无要求。
当VDD_5V被供电时,0.8V的降压芯片直接使能并输出了,而其他三路还需要等待EN脚的电容充满电才会对下一级电路供电,就可以满足上述的供电时序要求。
2.5 K230 BOOT
上图中左上角为本开发板的时钟电路,晶振电路是数字电路中非常重要的部分,可以为我们的系统提供稳定的时间基准。这里的时钟电路包括两个不同频率的时钟源:
- 低速晶振32.768kHz晶振(Y1):这个晶振提供一个低频时钟,用于RTC(实时时钟)。周围的电容(C41、C42)是用于匹配晶振的负载电容,保证时钟的稳定性。
- 高速晶振24MHz晶振(Y2):这个晶振为主系统提供一个高频时钟源,用于主处理器的运行。C43、C44也是负载电容,确保24MHz时钟的稳定输出。NC的电阻R25是预留用来做反馈电阻的,实际电路中未贴。
左边部分的R32和C46组成了一个上电自动复位电路,目的是在系统上电时生成一个短暂的复位信号(低电平复位),以确保系统芯片能够从一个已知的初始状态启动。具体来说,它能够在电源开启的瞬间,自动为芯片提供一个低电平的复位信号,保证系统在正确的状态下运行。
R32:电阻,通常用于拉低复位引脚,在电路上电后,确保复位信号保持足够的时间。
C46:电容,初始上电时起到储存电荷的作用,并随着时间逐渐充电,导致复位信号从低电平慢慢升高到高电平。
主要工作原理如下:
上电瞬间:
- 当电源刚接通时,电容
C46
的初始状态是未充电的,就是说它在该瞬间表现为一个短路状态。此时,复位引脚RSTN
通过R32
和C46
被拉低到地电位(GND),产生一个低电平复位信号。这就是“复位”状态,系统芯片因此进入复位状态,避免在上电时出现混乱状态。电容充电(芯片复位状态):
- 随着时间的推移,
C46
通过电阻R32
开始充电。电容的充电时间由RC时间常数(τ = R32 * C46)决定,在这里大概是10ms。随着电容的充电,复位引脚的电压逐渐上升,当达到足够的高电平时,系统复位信号解除,芯片退出复位状态,开始正常工作。复位信号消失:
- 当
C46
充满电后,复位引脚的电压升至接近电源电压,复位信号变为高电平,系统正常运行。这个高电平是通过R32
维持的,确保复位引脚在正常运行时保持在高电平状态。
再往右边看,这里的R33,R34,R37,R38用来选择K230的启动模式:
BOOT0 = 0, BOOT1 = 0:SPI Nor Flash启动。
BOOT0 = 0, BOOT1 = 1:eMMC启动。
BOOT0 = 1, BOOT1 = 0:SPI Nand启动。
BOOT0 = 1, BOOT1 = 1:SD卡启动。
立创庐山派目前只支持SD卡启动,BOOT0和BOOT1都是被拉高的,R37和R38默认不贴装。
右边部分就是K230芯片部分了,这里有个小细节就是在G8引脚(AVSS)用了一个0欧姆把GND和AGND连起来了,并且并联了一个X7R材质的电容。GND是数字电路的地,AGND是模拟电路的地。把它们通过一个0欧姆电阻连接的主要目的是为了控制接地点,确保模拟信号和数字信号的电流回路分开,来减少噪声干扰,同时确保整个系统有共同的参考电位。
这部分也涉及到了WIFI,USB,音频等电路的引脚分配,这里就不再赘述了。
2.6 K230 GPIO
这部分就是K230的引脚了,VDDIO_BANK控制了每组引脚的高电平,可以看到这些引脚的IO电平都是3.3V的,大家在使用时需要注意不要接入高于3.3V的电压,否则可能会损坏开发板。
2.7 K230 GPIO PINOUT
上图中的左上角是本开发板的ADC引出,主要考虑到K230的ADC仅支持最高1.8V的输入电压。为了避免用户在使用过程中意外将超过1.8V的电压输入ADC,从而导致芯片损坏,这里并未将ADC接口直接引出到标准的GPIO排针上,而是采用了FPC排线座来引出ADC信号。这一设计主要是防止用户在使用排针接线时可能发生的错误接线,比如不小心将3.3V或更高电压接入ADC。
具体来看,本庐山派开发板提供了4路ADC输入,大家在做小项目时可以从这里接入两个电位器摇杆。
树莓派的GPIO引脚分配已经成为单板计算机(SBC)领域的一个通用标准,在全球范围内获得了广泛的开发者和爱好者的支持与认可。兼容这一标准的引脚分配不仅让硬件和软件开发变得更加便捷,还意味着现有的硬件资源、模块和外设能够实现无缝集成,大大提升了开发效率和系统兼容性。
在原理图的左侧中间部分,可以看到一个标准的40针GPIO(通用输入输出)引脚排列,该排列与Raspberry Pi(树莓派)的40引脚GPIO接口一致。包括5V电源、3.3V电源,以及多个地线(GND)引脚。同时,GPIO引脚还为用户提供了丰富的通信接口,涵盖了I2C、SPI、UART等标准协议。
这种兼容树莓派GPIO引脚分配的设计显著降低了开发者的学习曲线。开发者无需重新学习或适应新的引脚布局,对于那些已经熟悉树莓派引脚分配的用户,可以迅速上手,不仅节省了开发时间,还避免了频繁查阅文档或进行引脚映射的麻烦。同时兼容这一标准还大大增强了开发板硬件的通用性和扩展性。市面上现有的大量树莓派外设和扩展板都可以直接与该开发板连接使用,无需额外的适配或调整。用户可以轻松找到成熟的扩展模块来进行功能扩展,从而加速项目的原型设计和开发进程。这种广泛的硬件兼容性使得该开发板成为一个多功能、高扩展性的开发平台,适合从入门级项目到复杂应用的广泛使用场景,同时我们的三路CSI摄像头也都兼容了树莓派ZERO的定义和间距,能用于树莓派5和树莓派ZERO的摄像头理论上也可以用于庐山派,当然后续还需要软件适配,不过只要硬件适配,以后可以轻松支持。
左下角是我们开发板上额外引出的一个串口/IIC通信接口,这一物理接口为GH1.25-4P带锁接口,具有良好的物理连接稳定性,确保在设备连接过程中不会因震动或意外拔出而导致连接松动或数据传输中断。用户可以根据具体的应用需求灵活配置该接口,既可以将其配置为串口2,用于与外部设备进行标准的串行通信(UART);也可以将其配置为IIC2,用于通过I2C总线与其他设备进行双向通信。
2.8 K230 POWER
这部分都没啥好说的,都是些电容及芯片供电引脚。
2.9 LPDDR4
本页原理图主要是K230和DDR-LPDDR4的连线图,连接了数据线,地址总线,命令控制信号和时钟信号。需要注意的是左边K230的引脚后面还标注了芯片内部的走线长度,在进行PCB布局(LAYOUT)时,必须将这些内部走线长度计算在内,以确保时序和信号完整性。
2.10 LPDDR4 POWER
本页主要是LPDDR4的供电,主要就是各种去耦电容,在布局时尽量让每对供电脚附近都有去耦电容。
2.11 CSI INTERFACE
本页是庐山派K230开发板的摄像头接口引出,其中CSI2摄像头是我们的默认摄像头,它在板子上是立式的0.5mm间距的FPC座。剩下两个都是卧式的0.5mmFPC座。这三个摄像头均兼容树莓派5和树莓派zero的CSI接口。
K230支持两种组合,一种三路摄像头:2lane+2lane+2lane,另一种是两路摄像头:2lane + 4 lane( 这个4lane固定是 CSI0+CSI1组合)。支持三路输入,是K230芯片的特色。从使用场景上, 三个lane是适用于三路摄像头场景,比如车辆前后摄像检测+驾驶仓内一路。
我们板子上是这三个摄像头都是2line的,大家后续如果有更大分辨率及更高帧率的摄像头要求,可以将CSI0和CSI1合成一个4lane线通过外部扩展板组合起来驱动一个高分辨率HDR摄像头,比如说IMX335 4K HDR,
为了提高可扩展性和可靠性,本开发板在PCB LAYOUT 走线时也将CSI0和CSI1做了等长处理。
2.12 DSI INTERFACE AND TP
左上角是屏幕的背光驱动电路,可以简单把他当成一个恒流源。
LCD_EN
可以是一个使能电平,也可以是PWM信号。使能电平只能控制屏幕的亮灭,使用PWM信号时可以调节屏幕背光的平均亮度,通过改变PWM信号的占空比(就是高电平时间和整个周期时间的比值)。
芯片FB脚连接了两个电阻,FB脚的阻值决定了驱动芯片的最大输出电流,这里采用两个0603封装的电阻主要是为了 方便大家焊接 和 通过两个电阻组合出不常用的阻值。FB脚通过这部分电阻来检测通过屏幕背光LED的电流,并将此电流值反馈给驱动芯片。驱动芯片根据反馈电流与设定值进行比较,从而调整输出,使之维持恒流状态。这里两个电阻默认是贴两个3.6欧姆的,按照他的计算公式I(led)=0.2V/R(cs)
,这里设定的最大电流是111mA,一般驱动大尺寸(10寸以上)的屏幕就需要设置为100MA以上的驱动电流,这里是为了兼容泰山派,和泰山派共用一款3.1寸屏幕扩展板,我们默认适配的屏幕扩展板上面是自带一个适配小屏幕的驱动电流的。这样处理可以让我们的板子既能驱动大屏幕,也能驱动小屏幕。
同时,我们目前选用的这个31p屏幕接口的MIPI线序,是可以直接接入市面上常见的大屏幕的(小屏幕一般没有这个接口,需要转换),也就是说理论上大屏幕不需要额外的扩展板就可以直接接入我们的DSI接口进行驱动,当然还需要软件适配一下。
左下角是我们开发板的触摸接口引出,和泰山派的线序和位置都是兼容的,这里的I2C默认贴了两个4.7KΩ上拉电阻,这样屏幕或者屏幕扩展板那边就不需要有上拉电阻了;3V3供电处也有两个电容来保持供电电压的稳定;同时,考虑到FPC接口可能会经常插拔,所以这里给四个信号脚都加入了双向TVS来抑制静电。
右边是MIPI-DSI接口,与泰山派的接口线序和位置都保持一致,这个接口的定义也是参考了市面上常见的MIPI大屏,这也体现了我们的对兼容性的追求,尽量让用户可以直接使用常见的屏幕,让用户在使用过程中可以直接连接市面上常见的MIPI大屏,无需进行额外的适配或修改。不过我们在设计时为了让我们的板子更精致,第一款配套屏幕是3.1寸的MIPI屏,它只比我们的板子大一点。
2.13 WIFI
这部分是板子WIFI部分的原理图,左上角是两种天线引出方式,既兼容了陶瓷天线,也兼容了IPEX天线座引出。板子默认是使用板载陶瓷天线的,虽然信号会差一点,但是使用更优雅,没有拖拖拉拉的天线。当用户需要信号更强或者装了外壳需要把天线引出时就可以将R62的0Ω电阻拆下来焊接到R60上,在RF1上接入高增益的天线就可以正常使用外置天线了。
右下角的L8,C180,C181等不实际贴装,是为了预留来兼容不同的WIFI模块,板子上默认贴装的是RTL8189,同时也兼容AP6212,只需要把缺的物料补焊上就可以了。
2.14 DBG AUDIO KEY LED
左上角是板子的电源指示灯和板载RGB灯:电源指示灯只要3V3有电就会亮,可以让用户初步判断供电是否正常;右边的RGB灯可以由用户控制,分别接入了三路不同的引脚,可以看到这三路RGB灯的限流电阻阻值都是不同的,这是因为这三种颜色的LED灯正向压降是不一样的,为了平衡这三种LED灯的亮度所以用了三种不同的阻值。
中间是板子上的三个按钮,从上往下分别是复位按钮,BOOT0按钮(在上电前按下可以进行USB烧录),用户按键(支持用户自定义功能)。
右边是两个串口引出:当用户使用Linux+RT-Smart
固件时,串口0被小核linux
占用,串口3被大核RT-Smart
占用;当用户使用最新版本的CanVM固件(2024年9月15日之后的固件),他内部是RT-Smart only
,小核不占用串口资源,串口0被大核RT-Smart
占用,串口3可以正常被用户调用。
左下角是我们的3.5mm耳机接口引出和板载麦克风。
2.15 TF CARD OR SDNAND
这部分是本庐山派开发板存储运行固件的部分:提供了两种存储固件的方式,默认会贴装带自锁的TF卡座,用户可以自行选择容量更大,速度等级更高的TF卡来存储固件。下方则是一种贴片TF卡,也叫SD NAND
或NAND FLASH
,在原理图中选用的是2G大小的MKDV16GCL-STP。当然这两个不能同时使用,毕竟他们用的都是同一条SDIO信号线,同时在PCB LAYOUT 时,贴片TF卡的焊盘在TF卡座下方,这两者是不能同时使用的。
增加这个贴片TF卡主要是为了提高开发板的稳定性,考虑到TF卡座接口在工作时(比如用户做小车,无人机等可能会有剧烈震动的场景)容易受到震动影响造成接触不良,同时增加一个SD NAND的焊盘接口,方便追求高可靠性的用户使用。
2.16 USB TYPE-A HOST AND BEEP
左上角是USB HOST的限流控制芯片,这里的电阻设置为11.3KΩ,也就是I(set)=6.8KΩ/11.3KΩ≈600mA,当从USB HOST输出的电流超过600mA时就会进行保护。
左下角是实际的USB HOST接口了,就是常见的USB2.0母口,和泰山派上用的是一样的,考虑到可能需要经常插拔,这里也给信号脚添加了双向TVS保护,来降低静电直接打坏芯片。
右边就是我们的板载无源蜂鸣器了,蜂鸣器可以将电信号转化为声音信号,可以向用户提供声音反馈或者警报信号。 蜂鸣器从构造类型上有电磁式和电压式两种,从驱动方式上来说有无源(由外部方波驱动)和有源(由内部驱动,外部给电就行)两种,这里选择的是无源电磁式贴片蜂鸣器,工作电压2-4v,频率4000Hz,这里的频率是指他在这个频率下的声音最响。大家可以用这个蜂鸣器来做人机交互的提示,也可以用不同的PWM来驱动这个蜂鸣器来播放简单的纯音调音乐。
D15在这里的主要作用是保护这个驱动的MOS管,因为蜂鸣器和电机一样是一个感性元件,也就是说它的电流是不能瞬变的。必须有一个续流二极管提供续流。如果没有这个续流二极管,停止给蜂鸣器供电的时候在蜂鸣器两端会有反向感应电动势,产生高达几十V的尖峰电压,很有可能损坏驱动电路。 R89:限流电阻,防止电流太大损坏芯片的PWM输出引脚。R90就是一个简单的下拉电阻了。
2.17 SCREW HOLES AND POGO PIN
那四个螺丝孔是支持M3螺栓的,内径为3.2mm,和我们的泰山派,梁山派,天空星等都是兼容的。右边是我们的大焊盘测试点,间距为2.54mm,既可以直接焊接线材,亦可以直接焊接排针。引出了多种供电和信号,方便大家使用和DIY。这里引出了USB5V,PIN5V和8V-24V的供电,亦提供了串口3,串口0,串口2(同时也可以复用为IIC2),音频信号的引出。