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

news/2024/9/8 4:32:23/

一、工作环境及项目简介

立创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来说,可以重复拔插,更便于将一个核心板应用到其他底板上。

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

 四、实物展示

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


http://www.ppmy.cn/news/8976.html

相关文章

【华为OD机试真题2023 JAVA】寻找关键钥匙

华为OD机试真题,2023年度机试题库全覆盖,刷题指南点这里 寻找关键钥匙 知识点字符串编程基础正则表达式排序 时间限制:1s 空间限制:256MB 限定语言:不限 题目描述: 小强正在参加《密室逃生》游戏,当前关卡要求找到符合给定 密码K(升序的不重复小写字母组成)的箱子,并…

BEV视觉3D感知算法梳理

1. 基于BEV空间的自动驾驶感知任务 最近,基于BEV空间下的感知任务已经涌现出了众多优秀算法,并在多个自动驾驶公开数据集(KITTI,Waymo,nuScenes)上取得了非常不错的成绩。根据自动驾驶汽车上安装的传感器类…

自动驾驶专题介绍 ———— 摄像头

文章目录介绍工作原理实现功能分类按通信协议区分按不同感光芯片按像元排列方式介绍 摄像头可以采集汽车周边的图像信息,跟人类的眼睛最为接近。摄像头可以拥有较广的视场角、较大的分辨率,还可以提供颜色和纹理等信息。这些信息对于实现自动驾驶功能是存…

软件测试[用例篇]

一. 回顾测试用例 1.测试用例基本要素 测试用例(Test Case)是为了实施测试而向被测试的系统提供的一组集合。 这组集合包含:测试环境、操作步骤、测试数据、预期结果等要素。 2.测试用例好处 测试用例可以提高测试效率(可以减…

Docker简介

Docker官网链接: http://docker.p2hp.com/问题:我们开发的嵌入式项目基本是基于虚拟机下的ubuntu的,如果每一个项目要求的系统版本、库版本、交叉编译工具链等不一样,我们就需要为每一个项目安装一个对应的ubuntu,这既…

linphone android sdk 源码下载编译

前言 前面的有写过Android 使用Linphone SDK开发SIP客户端相关的文章, 在后续的开发过程中, 为了更深入了解linphone, 便尝试下载SDK源码自行编译. 关于linphone这里不作过多介绍, 可以参考前面的文章. Linphone-SDK 是一个将 Liblinphone 及其依赖项捆绑为 git 子模块的项目&a…

c++动态内存管理

1.回顾c语言中的动态内存管理 在c语言中,我们想要动态开辟一段空间,需要使用malloc,calloc,realloc几个函数 void* malloc (size_t size); //在堆上申请size个字节的空间void* calloc (size_t num, size_t size); //第一个参数是…

Qt常用快捷键汇总

文章目录Win:常规界面Ui设计界面Linux差异:Win: 常规界面 F1 打开帮助 F2 跳到声明/定义 F3 普通查找的查找下一个 Linux:Ctrl G F4 切换.h/.cpp文件 F5 调试运行程序 F6 高级查找的查找下一个 F9 设置/取消断点 F10 单步调试 F11 进入函数…

STK异常场景介绍

本文介绍两种STK异常场景。 SMSC不能通过STK refresh命令更新终端插入带有STK应用的SIM卡,进入STK应用,选择”refresh SMSC”,然后进入短信设置,查看短信中心号码并没有更新。 关键Log MSG_ID_SAT_FILE_CHANGE_IND Local_Parameter --> Len = 256, Addr = 0x62B8F66C sa…

高级IO-多路转接

高级IO 以前的都是拷贝接口。write什么的就是将字符串拷贝到发送缓冲区中。 应用层等待接收缓冲区填写数据的过程算是IO吗?算 IO等待拷贝数据; 真正的IO的过程就是拷贝的过程。比如等待鱼上钩的时候也算是钓鱼(adj),当把鱼拿上来的时候也…

Vlan的原理与配置

传统以太网的问题 规模大了,之后导致性能也很差,广播会增加 解决:用Vlan,不受地域限制,同一Vlan内的设备才能直接进行二层通信 实验 首先配置以上vlan与电脑ip 配置IP之后可以进行ping命令测试刚开始是连通的&#x…

【C语言】你对动态内存分配有多少了解呢

🏖️作者:malloc不出对象 ⛺专栏:《初识C语言》 👦个人简介:一名双非本科院校大二在读的科班编程菜鸟,努力编程只为赶上各位大佬的步伐🙈🙈 目录前言一、什么是动态内存分配二、为什…

JVM垃圾回收器-ParNew回收器:并行回收

文章目录学习资料垃圾回收器ParNew回收器:并行回收学习资料 【尚硅谷宋红康JVM全套教程(详解java虚拟机)】 【阿里巴巴Java开发手册】https://www.w3cschool.cn/alibaba_java JDK 8 JVM官方手册 垃圾回收器 ParNew回收器:并行回…

网络编程概述

作者:~小明学编程 文章专栏:JavaEE 格言:热爱编程的,终将被编程所厚爱。 目录 网络编程嵌套字 UDP DatagramSocket API DatagramPacket API InetSocketAddress API 基于UDP实现服务端 代码: 分析:…

蓝桥杯寒假集训第五天(子串分值和)

没有白走的路,每一步都算数🎈🎈🎈 题目描述: 输入一个字符串,然后计算所有连续子串中没有重复字母的个数 输入描述: 第一行: 一个字符串 输出描述: 所有子串中没有…

14---实现文件上传和下载(头像上传功能)

1、建Files表 接下来开始完成文件管理的内容,首先是数据库建Files表 DROP TABLE IF EXISTS file;CREATE TABLE file (id int(11) NOT NULL AUTO_INCREMENT COMMENT id,name varchar(255) DEFAULT NULL COMMENT 文件名称,type varchar(255) DEFAULT NULL COMMENT 文…

数字调制系列:如何理解IQ ?

最近在筹划写一系列关于数字IQ 调制的短文,以帮助初学者能够更好地理解和掌握。虽然IQ 调制技术已经非常广泛地应用于各种无线通信应用中,但是究其细节,仍有很多人存在疑惑,尤其对于初学者。作者从事测试工作多年,对IQ…

深入理解Linux网络:第三章-内核是如何与用户进程协作的

本章主要讲用户进程接收并处理数据,主要是介绍,同步阻塞和多路IO复用方案。 同步阻塞 一个进程维护一个链接,同时为了等待数据到来需要阻塞进程,还要切换进程上下文。 创建Socket进入内核态,开始 recv data没有当前s…

代码随想录算法训练营No7 |LeetCode454.四数相加II 383. 赎金信15. 三数之和18. 四数之和

哈希表2今天开始哈希表第二天做题&#xff0c;今天感觉有点难度&#xff01; 454.四数相加II 给你四个整数数组 nums1、nums2、nums3 和 nums4 &#xff0c;数组长度都是 n &#xff0c;请你计算有多少个元组 (i, j, k, l) 能满足&#xff1a; 0 < i, j, k, l < nnums…

Java 并发编程知识总结【五】

6. 线程中断与 LockSupport 6.1 线程中断机制 大厂&#xff08;蚂蚁金服&#xff09;面试题&#xff1a; 什么是中断&#xff1f; 首先&#xff0c;一个线程不应该由其他线程来强制中断或停止&#xff0c;而是应该由线程自己自行停止。所以&#xff0c;Thread.stop, Thread.…