小白自制Linux開發板 一. 瞎抄原理圖與亂畫PCB

淡墨青雲發表於2021-06-09

 

 因為墨雲是基於高中物理水平的電路知識來學習、而且此前也就玩過樹莓派、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場景與先烈。 (右下角為成功的小板)

 

 

 硬體資料包:

 下載

相關文章