【开源直播】手把手教你用全志XR32芯片DIY一个自己的开发板(一:电路与PCB绘制)
-
XR32
【XR32】:完整型号【XR32F429】
是全志推出MCU芯片,听名字就知道,对标的是某tm/某sp32,可以用来做各自小板子、小车车、小电子设备、实验装置等等等
XR32F429 基于主频最高可达 192MHz 的高性能 ARM Cortex-M4F 32 位 RISC 内核。 Cortex-M4F 内核具有一个浮点单元 (FPU) 单精度,它包含所有 ARM 单精度数据处理指令和数据类型。 它还实现了一个内存保护单元 (MPU),可实现应用程序安全性。 它支持集成的 832KB SRAM 和 2MB 闪存 ROM。 它还包括许多外设,包括 UART、TWI、SPI、I2S、DMIC、PWM、IrDA (T/R)、CSI、SDIO 和辅助 ADC。
The XR32F429 devices are based on the high-performance ARM Cortex-M4F 32-bit RISC core operating at frequency up to 192MHz. The Cortex-M4F core features a Floating Point Unit (FPU) single precision which all ARM single-precision data-processing instructions and data types. It also implements a memory protection unit (MPU) which enables application security. It supports an integrated 832KB SRAM and 2MB Flash ROM. It also includes many peripherals, including UART, TWI, SPI, I2S, DMIC, PWM, IrDA (T/R), CSI, SDIO and auxiliary ADC.
芯片特性
-
集成高性能ARM Cortex-M4F内核,并配备832KB SRAM和16Mbit Flash
-
集成硬件加解密引擎,保障数据传输与存储的安全
-
集成度高,集成UART,SPI,I2C,PWM,ADC,SDIO,IrDA,I2S,DMIC,CSI等丰富的接口
-
平台
- ARM Cortex-M4F内核,最高192MHz运行频率
- 内置832KB SRAM
- 支持低功耗RTC模式
- 集成2Kbit efuse
- 6mm x 6mm 52pin QFN封装
-
加解密引擎
- 支持AES ECB/CBC/CTR,128/192/256位秘钥
- 支持DES/3DES
- 支持MD5/SHA/SHA256/CRC16/CRC32/PRNG
-
外设
- 2路SPI,3路UART,2路I2C,1路SDIO,IrDA
- 8路PWM,8路ADC,GPIO若干
- 1xI2S,1xDMIC,1xCSI
-
电源
- 单电源输入,宽电压范围2.7V-5.5V支持
- 集成200mA 3.3VLDO,可用于外设供电
- 内置DC-DC和LDO供内部电路使用
- 支持低电检测
- 支持系统关机/休眠状态唤醒
-
时钟
- 24MHz XTAL
- 32768低频时钟
-
其他
- 工作温度-40~85℃, 存储温度-40~135℃
- ESD HBM ±4000V,CDM ±800V
楼主目前得到了XR32的全球独家权限,准备基于该芯片做一个开发板。所有软硬件将全部开源,方便后面的同学参考学习。
从0开设DIY一个自己的开发板,并适配代码让它跑起来,应该是每个嵌入式工程师入门的入门之路吧,希望大家通过跟着我们操作走一遍,可以摸清入门的路~
楼主目前普通本科物联网专业大二在读,相信我能完成的内容各位同学们都能完成。芯片框图:
硬件:
本项目将使用立创EDA进行进行原理图设计和PCB layout(因为它免费而且不用下载适合学生朋友使用)
XR32的封装库后续会建好在立创EDA上直接开源,大家可以直接调用
个人立创硬件开源平台主页:https://oshwhub.com/GloomyGhostXR芯片后面会放到全志系的淘宝店上销售,价格人民币一位数。同时也准备放到立创商城,大家下单打板就能直接调立创商城里的货,这样就不用寄来寄去了(和立创商城的人沟通中)。
软件
使用全志官方支持的FreeRTOS系统,适配自己做的开发板,代码全部开源,github/gitee双边同步
github地址:https://github.com/YuzukiHD/XR32SDK
gitee地址:https://gitee.com/GloomyGhost/xr32-sdk芯片资料
XR32 datasheet:XR32F429C2_Datasheet_V1.2.pdf
XR32 User_manual:XR32F429C2_User_Manual_V1.0.pdf硬件参考资料
XR32参考设计原理图.7z
XR32封装库.7z
XR32参考设计原理图AD版本.zip
XR32F429C2 LCEDA封装 -
-
项目计划
- 一个大概5cm*2cm的小型开发板
- 板载电源灯与点灯必备IO灯
- 板载USB转UART
- 一个复位按键一个下载按键
- TF卡槽
- SPI Flash
- 摄像头CSI的FPC接口
- 板形为通孔+邮票孔外围(差不多是这样↓)
电路设计
原理图设计
封装设计
首先设计XR32F429C2的原理图封装,封装已经上传立创eda,链接:XR32F429C2 LCEDA封装
绘制芯片外围电路
外围电路主要包括三部分
- 电源
- 退耦、滤波电容
- 辅助电路、时钟
首先来电源和电容
查阅芯片手册的
Power Management
章节,得知芯片内置了几路LDO,一路DCDC,只需要给芯片供电5V就可以使用了。再参考一下EVB的电路设计
GPIO就先这样拉出来,不做细分处理。
对于时钟,查看数据手册
Clock
章节,有可以看到XR32F429有两个时钟,一个高速时钟一个低速时钟。其时钟控制图框如下。可以看到低速时钟有两个时钟源,一个内置RC震荡电路,一个外部晶振。因为低速时钟为32.768k正好是2的15次方,其主要是给系统RTC与低功耗模式使用的,对RTC或者对低功无需求可以舍去低速晶振。高速时钟支持24MHz, 26Mhz, 40MHz 或者 52MHz 的晶振。这里就选择24MHz的2016封装的晶振(正好全志的大部分Linux芯片也是24MHz)。
在这里因为是开发板,所以两个时钟都画上。每个晶振时钟脚加一个电容作为起振电容。
最后一个辅助电路,用户按键。程序跑飞了的RESET键,下载程序的UPGRADE键。
首先是RESET键,找了一圈居然没找到EN和RST引脚,查看了文档才发现叫做
CHIP_PWD
下载按键就不好弄了,数据手册没有见到描述的部分,看了一下EVB的电路图,这咋还献祭了PB2和PB3。
于是进行了一下搜索,在Github找到了
XR871_Quick_Start_Guide-CN
这个手册
里面描述了下载的全部过程。
那现在就需要做出一个选择了,PB2和PB3是JTAG的数据口,如果直接拉低了可能会导致JTAG无法使用。便折中了一下,PB3接口通过电阻拉低,如果需要使用JTAG则将电阻移除即可。
电阻选用0603封装方便拆焊
绘制板子的用户IO
计算了一下,一共有31个GPIO+一个RESET需要引出,于是使用两列双18Pin穿孔+邮票孔封装。
先画原理图封装,很简单
再画PCB封装,也很简单,两个焊盘一个长方形一个圆形,制版的时候把边框层放到白线就好了。
然后原理图里面对面放好
然后生成PCB,大概摆放一下元件
渲染一下看看,有内味了
USB转串口用的是人见人爱的CH340N,配上TypeC接口,CH340N没货了也可以用CH343P,不过这里就不用了。原理图把它们两个都画上。
((整了个活,CH340N和CH343P的复用焊盘
TF卡槽,USB,摄像头FPC连接器和其他小东西
大概设计(整活)了一下,这样层叠式设计。
PCB摆放一下位置,开始拉线
其中先先不在原理图中绑定邮票孔IO对应的引脚,先把PCB的线拉出来,再按照线的位置去修改引脚
比如这里,PB5对应H1 16, PB4对应H1 15
就在原理图中把两个引脚确定下来
TF卡槽
这里使用SDIO 1连接TF卡槽 1bit模式,只需要给CMD上拉,SDIO 0因为被CSI占用了所以就不使用了。
当然,TF卡是可以带电拔插的,所以需要加上ESD器件,USB因为需要插上USB才上电所以这里就省略了。
USB
USB当然是TypeC接口了,CC线下拉两个电阻,关于TypeC的接线可以参考这篇文章:Type C 的 CC 到底该怎么C
摄像头FPC
摄像头需要三路供电,分别是1V2,2V8,3V3。这里使用两个LDO作为两路供电。
SPI Flash
没啥好说的,F1C100S板子上抄过来。
其他小东西
给UART加上了指示灯,烧录的时候会闪一闪
加了一颗RGB灯,点灯吃灰一条龙
PCB设计
大概布局了一下下,并且把IO的线,供电,时钟的线连上了
3D渲染看看
飞线消消乐中.........
画一下IO丝印
然后第一版就画完了QuQ
-
打样焊接
打样
打样的板子做了一些调整,加宽了外圈就不用出半孔费了QuQ
打样打样~~~
Pinout
-
板子到货啦,调试后发现的问题做出的修改
-
删除UPG使用的上拉电阻电容
-
UART保留CH340N,TX改为电源灯(主要是绿灯太暗了给的电阻小所需电流较大导致UART强上拉)
-
TF卡使用全上拉
-
修改版型使其适合拼版
-
-
目前存在的问题
- 芯片的CSI是一个怎样的接口,支持什么摄像头?【已解决】
-
前排小板凳占座打卡~
-
如果价格个位数的话,片内SRAM和FLASH比较大,这个价格很给力。
-
XR32F4 Arm Cortex-M4 192MHz,对标STM32最高性能的档次STM32F4了
-
板载那颗USB转uart串口芯片现在很贵,大概要10块钱一颗,还搞不到货
-
@yuzukitsuru 在 【开源直播】手把手教你用全志XR32芯片DIY一个自己的开发板 中说:
目前存在的问题
- 芯片的CSI是一个怎样的接口,支持什么摄像头?
CSI是全称是CMOS Serial Interface,CSI接口通常从CMOS Sensor、Video Encoder和其它视频输出设备收集数据。你可以看芯片的规格书,在CSI的介绍篇章,可以看到下面的信息:
从上面的介绍我们可以知道,它支持的是一个8bit的并口,市场上寻找支持8bit并口输出的、内置isp的YUV CMOS sensor即可。 -
@chengwei_peng 有没有具体的摄像头型号可以参考一下的?
-
@yuzukitsuru ov2640这一类的摄像头应该能满足
-
@randolph 那太好了
-
@yuzukitsuru 在 【开源直播】手把手教你用全志XR32芯片DIY一个自己的开发板 中说:
@chengwei_peng 有没有具体的摄像头型号可以参考一下的?
dvp摄像头都是这个标准,用24p的座子就可以了。源码里移植了0308和OV7670的摄像头驱动,可以挑一个喜欢的。
-
那我可以用小座子这种然后dvp接法了
不错
-
@yuzukitsuru
这种厚度的座子我喜欢 -
好东西,跟着大佬一起学!
-
更新最新状态:板子已经发出去打板了,在等嘉立创(限电了
-
@xiaowenge 然后jlc周末服务器宕机了
-
胜利在望
-
@randolph OV2640我之前在STM32用while的方法(阻塞)读图片, 粗暴但不科学, 有没有更好的建议?
-
@aldfaaa 是用的F1裸奔吗,我记得f1好像没有DCMI接口,可能F4有DCMI接口读起来好一点?
-
@yuzukitsuru 学习了,谢谢,请问一下pinout的图片使用什么软装制作的呢,
-
@wen_123 inkscape
-
CH340N taobao应该有卖
是不是板子要焊好了 催更催更 -
@bedrock 刚发货
-
到货啦到货啦
-
-
传送门
第二集:
【开源直播】手把手教你用全志XR32芯片DIY一个自己的开发板(二:PCB焊接调试)
https://bbs.aw-ol.com/topic/1154/share/2 -
-
-
-
@yuzukitsuru 请教图一是用什么软件绘制的呀?
Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号