因为墨云是基于高中物理水平的电路知识来学习、而且此前也就玩过树莓派、Esp8266之类的开发板,水平基础趋近于零,所以在写这个系列的时候抱着记录的心态、还望不足之处还望大佬们指正。

《论语》说:见贤思齐焉。所以现在墨云现在又开始瞎折腾了

为啥突然想做嵌入式开发呢,因为看见了下面两位牛人

【稚晖君】

https://www.bilibili.com/video/av65365123/

【在名片上运行的Business Card Linux】

https://www.ithome.com/0/465/952.htm

所以躁动的心开始蠢蠢欲动。

先定个小目标:

  设计一个没啥作用,但是可以运行Linux的小板。

样子大概长这样:

  

所以有了初步想法,那开始吧

1. 工具与芯片说明

立创EDA:电路图与PCB设计工具,本次硬件部分设计全部使用立创EDA完成

F1C100s :全志的一款基于Arm的小型Soc,自带32MB的内存,其升级版F1C200s为64MB内存,因为其极其便宜(当然最近因为芯片涨价影响),可以运行Linux,最典型的基于该芯片的荔枝派开发板。

CH340E:USB转串口通信芯片,是作为与外界通信的唯一接口 、CH340E个头小、外围电路少,使用简单。

原理图:先后参考了(baipiao)了Licheepi Nano、Business LinuxCard、LiShanwenGit(https://www.oshwhub.com/LSW12315)立创开源广场的一系列项目

2.原理图说明

电源管理

电源部分使用USB方式供电,输入电压为5V,这里供电部分和串口电路共用相同USB端口。

通过查询F1c100s数据手册:

通过综合分析,我们可以大概把电源分为4类

Vdd-Core:1.1V

Vcc-Dram:2.5V

AVCC : 3.0V

UVCC/VCC-IO/TV-AVCC/TTL:3.3

这里主要使用 SY8088AAC 同步降压DC-DC稳压器,为SOT32-5的封装方式,通过使用外围电阻调整输出电压。

公式为:

Vout = 0.6 * (`1+Ra/Rb) 

而AVCC使用XC6206P302MR-SOT23的封装方式,输入5V  输出为3.0V

因为 AVCC为模拟电源电压,为了避免引入电源干扰,通常需要把把模拟电路与数字电路分开隔离开(这个地方解释可能不对,欢迎指正)。

电源部分的原理图如下:

电压输入输出端都使用滤波电容进行处理,使用还要接入2.2uH的功率电感,注意一定要用功率电感,电流要求可以达到1A以及以上的才行

这个板子使用0805的功率电感,建议最好使用CD32类型的绕线功率电感。

核心原理图

对于核心部分的原理图如下,因为本次电路设计主要以验证为主,所以并没有做太多的外设电路。

除了常规的核心、外围、DRAM工单引脚,核心部分还引出了

1. TF卡引脚,作为本板子唯一的系统加载电路,这是必须的

2.晶振,使用规格为24Mhz的有源晶振、加两个15pf的负载电容

3.串口调试 作为板子与外界唯一交互的通道,这个也是必须的,然而在做这个成功的给自己挖坑了。

4.LED灯,这是这个板子唯一的外设,也是用来学习驱动开发的第一步。

5.dram_vref、Var1、Var2 这是必须要接的、外围电路,我也不知道的干啥的 ~_~…

6.USB OTG 也是作为一个通信接口来使用,通过这个接口可以为板载Flash下载程序,但是因为本板没有做Flash,所以目前唯一的作用就是放到验证fel是否可以调通。

7.复位按钮

挖坑点

一直以来认为发光二极管也是二极管,所以就有下面的设计(乱画),于是后来感觉板子没问题,但是就是串口死活不显示数据、在众多大佬的帮助下,才发现了这个其妙(naocan)

的接线方法,于是将两个发光二极管位置放了两个0欧的电阻,一下子就成功调通了。

对于芯片电源输入端的滤波电容与Dram_vref接线如下:

对于滤波电容简单的说法就是,对于供电端的电压,因为电路设计或者外界干扰等等,其实不是完美的电压,总会存在高频或是低频的噪声,而用小容量的电容就可以降低这些干扰。

常规的容值就是 10uf 、1uf、100nf

通信电路

我们在核心原理图中看到了引出的串口线路,而串口的接口如下:

 

显然在你看看你超博的笔记本机身,并没有发现这个接口,偶尔还有一些老的笔记本上面可以看到类似的接口,对不起——那是显示屏的VGA接口。

那我们如何使用串口传输的信息呢,我们需要一个USB转串口的芯片,usb转串口的芯片很多,这里选择 CH340E 这个型号,因为其很小,接线也方便。

原理图如下:

前面提到,这个板子共用了电源与TTL共用了一套设计,也就是是说USB线插上就可以启动小板,并且开始进入串口调试。

原理图中的U5是一个自恢复保险丝。

这里需要注意一下:

根据CH340E官方的原理图,当VCC接入5V的时候,V3 需要接一个100nf的电容,但是此处在V3直接接入5V,也可以工作。

实际使用的时候最好不要这样做。

TF卡接口

和电脑主机在BIOS选择启动方式一样, F1C100s 支持多种方式的系统加载机制比如通过SPI接口加载Flash芯片中的镜像,或者通过TF卡接口加载镜像。

这里使用TF卡作为启动源,这样做是因为

1.TF卡容量可以自己控制。

2.系统烧写调试方便

这部分电路相对简单,原理图如下:

OTG 与唯一的外设LED灯

3.PCB绘制

PCB尺寸为42mm*29mm ,可以说非常小了,为了便于焊接,所有容阻都是用0805的封装方式

电源走线为14mil ,信号线为8mil

4.PCB焊接

焊接PCB是一项手艺活,尤其是QFN方式封装的F1C100s 更是难到发指,还好借助焊台和热风枪,完美的完成了焊接,当然放大镜、洗板水是不可缺少的。

并且因为板子时长需要在手上把玩(盘PCB)。所以选择了无铅稀浆进行焊接。

效果如下:

成功运行Linux,

因为还没开始着手做Linux移植,暂时使用LicheePi 的镜像,下一节开始做Linux的移植。

5. 后记

事实上世界上从来没有所谓轻易的成功,对于初次玩PCB的小白更是如此,现在这个小板能成功也是经历三四个月,五六次打板才成功的。以下是早期的趟雷PCB场景与先烈。 (右下角为成功的小板)

硬件资料包:

下载

小白自制Linux开发板 一. 瞎抄原理图与乱画PCB的更多相关文章

  1. 小白自制Linux开发板 二. u-boot移植

    上一篇:小白自制Linux开发板 一. 瞎抄原理图与乱画PCB  中我们做了一个小型而没用的开发板,用的是Licheepi Nano的镜像,那从本篇开始我们开始自己构建它的灵魂吧. 我们都知道,PC在 ...

  2. 小白自制Linux开发板 三. Linux内核与文件系统移植

    上一篇完成了uboot的移植,但是想要愉快的在开发板上玩耍还需要移植Linux内核和文件系统. 1.Linux内核 事实上对于F1C100S/F1C200S,Linux官方源码已经对licheepi ...

  3. 小白自制Linux开发板 八. Linux音频驱动配置

    不知不觉小白自制开发板系列已经到第八篇了,本篇要配置的是音频驱动,也算是硬件部分的最后一片了,积攒的文章也差不多全放完了,后续更新可能会放缓,还请见谅. 对于F1C200s是自带了多媒体处理功能的,所 ...

  4. 小白自制Linux开发板 四. 通过SPI使用ESP8266做无线网卡

    本文章基于 WhyCan Forum(哇酷开发者社区) https://whycan.com/t_4149.htmlhttps://whycan.com/t_5870.html整理而成. 为了尊重原作 ...

  5. 小白自制Linux开发板 九. 修改开机Logo

    许久不见啊,今天我们继续来修改我们的系统. 通过前面的几篇文章我们已经能轻松驾驭我们的开发板了,但是现在都是追求个性化的时代,我们在开发板上打上了自己的Logo,那我们是否可以改变开机启动的Logo呢 ...

  6. 小白自制Linux开发板(第二季 V3s篇) 一. 换个核心再来一次

    1.前言 大家心心念念(个人认为)的小白自制开发板全新系列正式来了,之前我们使用全志的F1C200s芯片制作了一个小电脑,众所周知,调试很艰难,坑也很多,以至于墨云到现在还是没找到对应的补救方案,为了 ...

  7. 小白自制Linux开发板 番外篇 一 modprobe加载驱动问题(转载整理)

    使用modprobe加载驱动 转载地址:https://blog.csdn.net/qq_39101111/article/details/78773362 前面我们提到,modprobe并不需要指定 ...

  8. 小白自制Linux开发板 六. SPI TFT屏幕修改与移植

    本文章参考:https://www.bilibili.com/read/cv9947785?spm_id_from=333.999.0.0 本篇通过SPI接口,使用ST7789V TFT焊接屏(13p ...

  9. 小白自制Linux开发板 七. USB驱动配置

    本文章基于https://whycan.com/t_3087.htmlhttps://whycan.com/t_6021.html整理 F1c100s芯片支持USB的OTG模式,也就是可以通过更改Us ...

随机推荐

  1. PKI/CA与证书服务

    目录 PKI CA RA LDAP目录服务 CRL证书作废系统 数字证书 证书验证 证书撤销 证书更新 PKI系统的构成 PKI PKI(Public Key Infrastructure)公钥基础设 ...

  2. 12.PHP_PDO数据库抽象层

    PDO数据库抽象层 其实也就是说,为了方便PHP项目各种数据库切换的方便以及代码兼容性,再各种数据库上又封装了一层,做成了统一的接口,方便数据库使用和切换. PDO链接mysql数据库: <?p ...

  3. 神经网络与机器学习 笔记—多层感知器(MLP)

    多层感知器(MLP) Rosenblatt感知器和LMS算法,都是单层的并且是单个神经元构造的神经网络,他们的局限性是只能解决线性可分问题,例如Rosenblatt感知器一直没办法处理简单异或问题.然 ...

  4. Listview滑动时不加载数据,停下来时加载数据,让App更优

    http://blog.csdn.net/yy1300326388/article/details/45153813

  5. 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第n次落地时,共经过多少米?第n次反弹多高?(n<=10)

    单纯考逻辑 题目: 一球从100米高度自由落下,每次落地后反跳回原高度的一半:再落下,求它在第n次落地时,共经过多少米?第n次反弹多高?(n<=10) 输入描述: 一行,一个整数n (1< ...

  6. java之Map和Collection

    java中保存对象的容器可分为两类: 1.Map.Map是以键值对的形式来保存一组对象,可以通过键来查找值. 2.Collection.用来保存独立对象的序列.Collection又可分为三种类型: ...

  7. JMeter关联陌生又熟悉

    JMeter关联是什么 JMeter关联,这几个字看着可能会有点陌生,实际上却是工作中经常会做的一件事情,尤其是接口自动化,它指的是把一个接口的响应作为另一个接口的参数,从而把接口关联起来. JMet ...

  8. Govern Service 基于 Redis 的服务治理平台

    Govern Service 基于 Redis 的服务治理平台(服务注册/发现 & 配置中心) Govern Service 是一个轻量级.低成本的服务注册.服务发现. 配置服务 SDK,通过 ...

  9. 【BUAA软工】Beta阶段测试报告

    项目 内容 班级:北航2020春软件工程 博客园班级博客 作业:Beta阶段测试报告 测试报告 发现的bug Beta阶段的bug [已解决]CPP项目无法进行调试 [已解决] 注册界面注册后不能够自 ...

  10. 在ZOHO企业网盘中如何快速搜索文件?

    现在越来越多的企业采用企业网盘来存储文档和资料,而且现在市面上的企业网盘各种各样.在使用企业网盘过程中,很多用户会问到企业网盘中如何快速搜索文件的问题.但是无论是"标签"功能还是普 ...