当前位置: 首页 > news >正文

(一)硬件制作--从零开始自制linux掌上电脑(F1C200S) <嵌入式项目>

一、工作环境及项目简介

立创EDA:硬件原理图及PCB绘制。

全志F1C200S:F1C100S内置32MB DDR1内存,F1C200S内置64MB DDR1内存。

原理图:参考开源项目,详见墨云, 详见peng-zhihui。

核心板:四层。

底板:两层。

工具:烙铁、热风枪、焊锡膏、洗板水、各种电子元器件。


二、原理图设计

1、核心板

电源电路

在F1C200s的datasheet Allwinner_F1C200s_Datasheet_V1_1中可以得到推荐的运行环境,主要参考Typ,也就是典型值:

因此我们需要实现的电压有四个:1.1V、2.5V、3.0V、3.3V。

使用SY8088AAC SOT-23-5同步降压DC-DC稳压器,设置其外围的电阻搭配调整其输出电压(Vout = 0.6 * (1+Ra/Rb) ),使用其实现1.1V、2.5V、3.3V三个电压需求:

使用XC6206P302MR-SOT23的封装方式,输入电压5V ,输出需求电压3.0V:

电路设计如下图所示,根据墨云所说电感选用2.2uH功率电感,电感额定电流为2A。此处的5V电源来自底板的USB供电。下面电阻的搭配方式可以进行调节,只要满足输出的电压为需求电压即可

板对板连接器

板对板连接器选用可靠性较高的排针排母对。

复位电路

复位电路比较简单,不再赘述。

晶振电路 

晶振采用24MHz无源晶振,两个15pF电容滤波。

 

主控电路

主控电路主要参考墨云和稚辉君,相关链接见上方。主要从主控F1C200s中引出TF卡引脚(本文选用的系统加载电路)、音频、晶振、串口、复位、SPI、OTG、图像、一些GPIO等等。

 2、底板

串口转USB电路

选用CH340E芯片,注意某宝的芯片可能是拆机、复新芯片,如果串口通信失败,考虑芯片问题。至于下面的接线,墨云提到:“根据CH340E官方的原理图,当VCC接入5V的时候,V3 需要接一个100nf的电容,但是此处在V3直接接入5V,也可以工作。”,因此本文选择将VCC接入5V,将V3接入3.3V。

TF卡电路

TF卡作为本系统唯一的系统加载方式,具体接线方式如下所示,TF卡为自弹minTF卡,只要PCB和你的硬件匹配,其他全部相同。

USB扩展电路

​FE8.1(1扩4)是一个非常紧凑的高速4端口USB集线器控制器。此处我们仅使用其中两个,也就是将一个USB扩展为两个。

 WIFI电路

主要参考墨云的接线方式,暂未进行验证。

TFT屏幕

1.14英寸的IPS屏幕,某宝十几块钱,我这里加了一个接线端子,因为我留出了4.3寸屏幕(正点原子)的接口,防止干扰,我加了接线端子进行选择。

音频

在墨云的基础上,结合稚辉君,我添加了咪头和3.5mm耳机接口。

板对板连接器

和核心版的板对板连接器相对应,注意不要搞反了,否则可能导致短路,板对板连接器管脚分布和PCB布局有关,因为我未考虑到PCB布局,导致后面的布局较为困难,虽然核心板采用四层板,底板采用两层板,但布线还是花了很大功夫。

40Pin4.3寸屏幕

屏幕为4.3寸正点原子屏幕,采用FPC连接,接线端子管脚间距为0.5mm,由于我的焊接设备原因,焊接较为麻烦。


 三、PCB展示

Wood是我做的标志,之所以选用排针连接底板和核心板,是因为排针相较于金手指和BTB来说,可以重复拔插,更便于将一个核心板应用到其他底板上。

核心板(四层,挺漂亮哈)
底板

 四、实物展示

核心板
底板
焊接完成组装实物

相关文章:

  • 【node.js】fs\path\http模块的使用
  • 常见服务及其安全漏洞浅析(一)
  • (三分钟)速览传统边缘检测算子
  • Python解题 - CSDN周赛第19期 - 醉酒的狱卒
  • 【C语言】你对动态内存分配有多少了解呢
  • 【华为OD机试真题 java、c++】获得完美走位、完美走位【2022 Q4 100分】
  • 论文投稿指南——中文核心期刊推荐(地球物理学)
  • 如何保证接口幂等性?一口气说了12种方法!
  • MySQL高可用之主备同步:MySQL是如何保证主备一致的
  • YOLOv5更换骨干网络之 PP-LCNet
  • 环境变量?拿来把你!
  • 【柔性数组与局部性原理】
  • SCI论文解读复现【NO.3】MSFT-YOLO:基于变压器的改进YOLOv5钢表面缺陷检测(代码已复现)
  • 2022年度总结|我的CSDN成长历程
  • CSS基础总结(五)定位
  • python3.6+scrapy+mysql 爬虫实战
  • 分享的文章《人生如棋》
  • ECS应用管理最佳实践
  • Git初体验
  • Rancher如何对接Ceph-RBD块存储
  • SpiderData 2019年2月23日 DApp数据排行榜
  • 二维平面内的碰撞检测【一】
  • 翻译 | 老司机带你秒懂内存管理 - 第一部(共三部)
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 机器学习 vs. 深度学习
  • ------- 计算机网络基础
  • 面试遇到的一些题
  • 前嗅ForeSpider采集配置界面介绍
  • ​2021半年盘点,不想你错过的重磅新书
  • ​DB-Engines 12月数据库排名: PostgreSQL有望获得「2020年度数据库」荣誉?
  • #if #elif #endif
  • ()、[]、{}、(())、[[]]命令替换
  • (C#)一个最简单的链表类
  • (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作...
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (六)c52学习之旅-独立按键
  • .bat批处理(六):替换字符串中匹配的子串
  • .net 反编译_.net反编译的相关问题
  • .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖
  • /使用匿名内部类来复写Handler当中的handlerMessage()方法
  • @Autowired和@Resource装配
  • @value 静态变量_Python彻底搞懂:变量、对象、赋值、引用、拷贝
  • [ JavaScript ] JSON方法
  • []sim300 GPRS数据收发程序
  • []利用定点式具实现:文件读取,完成不同进制之间的
  • [20190401]关于semtimedop函数调用.txt
  • [Android]How to use FFmpeg to decode Android f...
  • [BZOJ 3531][Sdoi2014]旅行(树链剖分+线段树)
  • [C++]拼图游戏
  • [CLR via C#]11. 事件
  • [CSS]浮动
  • [FROM COM张]如何解决Nios II SBTE中出现的undefined reference to `xxx'警告
  • [ITIL学习笔记]之事件管理(2)
  • [Java] 什么是IoC?什么是DI?它们的区别是什么?
  • [js] 正则表达式