那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

DIY個人的Linux開發板教程

全志在線 ? 來源: 立創開源硬件平臺 ? 2024-01-07 09:52 ? 次閱讀

項目作者:FanHuaCloud

作者簡介:大佬已在硬創社開源了近50款開發板,動手能力極強,于去年年底開始接觸學習Linux,并由全志V3s、F1C200S等芯片開始上手DIY個人的Linux開發板。

7131d102-abac-11ee-8b88-92fbcf53809c.jpg

本項目是基于全志F1C200S設計的開源屏幕開發板,設計的目標是提供一個低成本、超迷你且適合Linux開發的平臺,特別是針對屏幕接口的支持。

項目簡介

開發板板載16M nor flash,主控芯片采用F1C200S,內置64M DRAM。同時附帶USB Host接口以及USB type-c口,以及CH340串口轉USB芯片,用于開發調試使用。

7154df12-abac-11ee-8b88-92fbcf53809c.png

開發板2D預覽圖

由于芯片功能繁多,開發板設計也相對復雜,為了教會大家自己DIY開發板,作者將開發板設計的硬件部分按功能拆分為了10個不同的知識點,來對開發板整體設計進行全面介紹和詳細講解電路原理

全志F1C200S主控

全志F1C200s是一款高度集成、低功耗的移動應用處理器,支持高清視頻解碼,包括H.264、H.263、MPEG 1/2/4等格式,同時還具備音頻編解碼器和I2S/PCM接口,適用于多媒體音視頻設備。

芯片基于ARM 9架構,并SiP了DDR,這樣的配置使其外圍電路在設計時會非常簡單,非常適合作為入門級的Linux開發板。該部分原理圖如下圖所示:

71717c1c-abac-11ee-8b88-92fbcf53809c.png

F1C200S主控原理圖

1SVREF用于給DRAM提供參考電壓,該部分所需電壓為VCC_DRAM/2

22VCC_DRAM為DRAM供電,電壓為2.5V

3VCC_IO為GPIO供電,電壓為3.3V

4VCC_CORE為核心供電,電壓為1.2V

5AVCC模擬供電,該部分非常重要,不接會導致USB Host無法枚舉設備,同時需要注意該引腳供電范圍為2.5V-3.1V,不可以使用3.3V供電,會導致內部電路損壞。

6X1為24M晶振,為芯片提供時鐘信號,采用22pF負載電容

SDMMC接口

SDMMC接口用于接入Micro SD卡,系統啟動時,可以從SD卡中加載U-Boot,內核,RootFS,實現Linux啟動。

719255ea-abac-11ee-8b88-92fbcf53809c.png

SDMMC接口原理圖

如上圖所示,相關線路說明如下所示:

1CLK: SDMMC時鐘,每個時鐘周期傳輸一個命令或數據位。頻率可在0至25MHz之間變化。SD卡總線管理器可以自由產生0至25MHz的頻率,沒有任何限制

2CMD: 命令傳輸線,命令通過該CMD線串行傳輸

3D0~D3:數據通過這些數據線傳輸

4按照SDMMC規范,SDMMC線路還需要增加10K上拉電阻,如果沒有可以會影響數據傳輸,本原理圖中R7-R11即上拉電阻。同時,為了保證電源質量,增加了C22濾波電容

5SHELL引腳為SDMMC連接器固定引腳,此處接地處理,CD引腳用于探測SD卡是否插入,這一塊懸空未使用

CH340串口轉USB

此電路用于用戶連接系統調試中斷使用,其功能為將TTL串口轉換為USB接口,使得用戶可以在電腦中連接該串口進行調試。

需要注意的是,由于F1C200S的UART0接口(PE0/PE1引腳)被觸摸的I2C接口占用,所以本開發板將CH340的串口連接到了F1C200S的UART1(PA2/PA3引腳)上,后續編譯U-Boot和內核時我們需要相應的修改代碼。

71b2822a-abac-11ee-8b88-92fbcf53809c.png

71c12b22-abac-11ee-8b88-92fbcf53809c.png

CH340串口轉USB原理圖

如上圖所示,該部分除了串口轉USB外,還兼顧了系統的供電。

1用戶通過Type-C線纜連接該調試口后,將同時為開發板供電

2板上的5.1K電阻用于雙頭Type-C線纜識別從機,為其供電

3如果R12,R13不焊接會導致使用雙頭Type-C線時板子沒有供電

4D2為TVS瞬態抑制二極管用于保護PCB板上元件,防止靜電擊穿原件

三路DC-DC接口

該部分主要為主控芯片提供供電,采用SY8089A1AAC,單路最大輸出電流2A。

71eaaf4c-abac-11ee-8b88-92fbcf53809c.png

三路DC-DC接口原理圖

1SVREF用于給DRAM提供參考電壓,該部分所需電壓為VCC_DRAM/2

22VCC_DRAM為DRAM供電,電壓為2.5V

3VCC_IO為GPIO供電,電壓為3.3V

4VCC_CORE為核心供電,電壓為1.2V

5AVCC為模擬供電,該部分非常重要,不接會導致USB Host無法枚舉設備,同時需要注意該引腳供電范圍為2.5V-3.1V,不可以使用3.3V供電,會導致內部電路損壞。

6X1為24M晶振,為芯片提供時鐘信號,采用22pF負載電容。

在該模塊中,我們使用了2520電感,與普通的電感相比,體積更小,但是2520電感在DCR(即直流電阻)參數上,會比普通的電感大一點,電感值的計算公式可以參考下方:

72010e54-abac-11ee-8b88-92fbcf53809c.png

DCDC電流電感值計算公式

1L為計算出的電感容量

2Vout為降壓芯片輸出電壓

3L為計算出的電感容量

4Vin為降壓芯片輸入電壓

5Fsw為芯片開關頻率,SY8089取1.5Mhz,也就是1500000Hz

6Iout,max為最大輸出電流

如下圖所示,本開發板電感值直接參考SY8089數據手冊文檔,折中后取1.5Uh:

72113de2-abac-11ee-8b88-92fbcf53809c.png

電源模塊在電路中的接線

SY8089典型應用以及電容電感選型表

芯片的反饋電阻控制著芯片的輸出電壓,可以參考下方公式計算:

72219534-abac-11ee-8b88-92fbcf53809c.png

SY8089芯片反饋電阻計算公式

1Rh為上端分壓電阻阻值

2Rl為下端分壓電阻阻值

30.6V指的是芯片的Vfb,也就是反饋電阻

4Vout即最終的電壓輸出值

5在這里,我們需要確定Rl和Vout,然后將其代入公式,計算出Rh

6為了最大限度地減少輕負載下的功耗,最好為 RH 和 RL 選擇較大的電阻值。強烈建議 RL 使用 10k 到 200k 之間的值

AVCC 3V LDO

該部分用于AVCC 3V供電,使用XC6206 3V LDO,位號為U10,由于較為簡單,此處不在詳細說明。

SPI Nor Flash

Nor Flash為F1C200S芯片提供了第二種啟動方式。

1上電后,F1C200S首先從內部BROM(芯片內置,無法擦除)啟動

2首先檢查 SD0 有沒有插卡, 如果有插卡就讀卡 8k偏移數據,是否是合法的啟動數據, 如果是BROM 引導結束, 否則進入下一步

3第二步:檢測SPI0 NOR FLASH是否存在, 是否有合法的啟動數據, 如果是BROM 引導結束, 否則進入下一步

4第三步:檢測SPI0 NAND FLASH 是否存在, 是否有合法的啟動數據, 如果是BROM 引導結束, 否則進入下一步

5最后,因為找不到任何可以引導的介質,系統會進入usb fel模式,此時可以使用USB燒錄

此處SPI Nor Flash可以同時兼容Nand Flash,不過目前裸機資料基本上都是以SPI Nor Flash為基礎,所以此處焊接了W25Q128JVEIQ 128Mbit(16Mbyte)SPI Nor Flash。

72474f72-abac-11ee-8b88-92fbcf53809c.png

W25Q128JVEIQ原理圖

1R4為上拉電阻(F1C200S內部也存在上拉電阻,可以不焊),防止未供電時芯片錯誤寫入數據

2C16為濾波電容

3SW2為FEL模式開關,將SPI_MISO短路到地后,F1C200S將無法檢測到SPI Nor Flash,從而進入USB Fel模式,此時可以松開按鍵,燒錄內容至SPI Nor Flash

4/WP為SPI Nor Flash保護引腳,低電平有效,有效時無法寫入數據

5/HOLDor/RESET為SPI Nor Flash保持或者復位輸入引腳。

6最后,因為找不到任何可以引導的介質,系統會進入usb fel模式,此時可以使用USB燒錄

外部IO接口

此處引出了未使用的IO,用戶可連接其他設備,C35為濾波電容,用于保證電源質量,該部分引腳功能可以參考下圖(來源:芯片數據手冊14/15頁):

7261232a-abac-11ee-8b88-92fbcf53809c.png

外部IO接口引腳功能

USB OTG/USB TYPE-C

該部分連接到了芯片的DP/DM引腳,為芯片的USB接口。

USB Type-C用于USB Fel模式燒錄系統,無供電輸入/輸出能力。

USB OTG處可用于連接其他USB設備,帶5V輸出,當然也可以接雙頭USB Type-A線纜用于USB Fel模式。

728b9420-abac-11ee-8b88-92fbcf53809c.png

72a161ce-abac-11ee-8b88-92fbcf53809c.png

USB OTG/USB Type-C原理圖

需要注意的是,開發板中沒有連接ID線(ID線用于識別USB模式),所以在編寫設備樹時,我們需要強制指定USB模式為主機或從機

背光驅動

該部分用于驅動RGB屏幕背光,標準40Pin RGB屏幕基本采用串聯背光,由于本身開發板供電只有5V,所以我們需要使用背光驅動芯片升壓到合適的電壓,來驅動屏幕背光。

同時,背光驅動芯片采用恒流控制,可以避免電流過大導致背光LED燒毀,該部分原理圖如下所示:

72bdfbae-abac-11ee-8b88-92fbcf53809c.png

背光驅動原理圖

1C19 C20為濾波電容,C19電容的耐壓需要特別考慮,一般的RGB屏背光電壓基本在18V以上(白光LED壓降3V*6串),過低的電容耐壓會導致電容損壞

2BL_CTR為芯片背光控制引腳,此處直接接入了上拉,再開發時可以將BL_CTR引腳接入F1C200S的PWM引腳上,這樣可以靈活控制屏幕亮度,同時,有恒流驅動的存在,控制亮度時,背光也不存在明顯的頻閃

3L1 為升壓電路的電感,按照要求一般取10uh或22uh即可,不需要使用公式詳細計算,但是需要注意電流不能超過電感額定電流

R5為芯片的反饋電阻,用于調節輸出的電流,計算公式可參考下方:

72cd99ce-abac-11ee-8b88-92fbcf53809c.png

反饋電阻計算公式

此處我們選擇20ma,所以R1=0.25/0.020(Ω) = 12.5Ω,就近取12Ω。

72e3ab24-abac-11ee-8b88-92fbcf53809c.png

屏幕數據手冊線路原理圖

如上圖,下方說明了LED為2并5串,額定電流為40ma,我們為了保險,選擇了20ma,亮度會有所損失。

40Pin RGB/觸摸接口

此處參考屏幕數據手冊即可,由于F1C200S只支持RGB565,RGB666,此處使用RGB666,屏蔽了RGB三色的低2位,這樣最終色彩影響比較小,同時,F1C200S內置色彩抖動,可以更加接近RGB888效果。

其中需要注意的是,CTP_SDA/CTP_SCL最好加上拉電阻,此處選用了內部上拉,所以并沒有加電阻,該部分原理圖如下所示:

73053870-abac-11ee-8b88-92fbcf53809c.png

RGB/觸摸接口原理圖

開發環境搭建

使用VSCode的DeviceTree插件,我們可以實現設備樹文件的代碼高亮,編輯c語言代碼。

安裝VSCode后,我們開始安裝設備樹插件,再商店中搜索DeviceTree插件,點擊安裝安裝即可:

73257c16-abac-11ee-8b88-92fbcf53809c.png

同理,推薦讀者同時安裝中文漢化,搜索CN,參考下圖安裝即可,安裝后按照要求重啟VSCode即可使用。

734c1b32-abac-11ee-8b88-92fbcf53809c.png

打開安裝好的Ubuntu 18.04虛擬機,將需要分區的SD卡插入電腦USB口,并右鍵點擊VMware右下角的USB存儲器圖標,點擊連接,將SD卡連入虛擬機。具體操作過程如下圖所示:

73691e1c-abac-11ee-8b88-92fbcf53809c.png

點擊桌面左下角圖標,進入所有應用,然后搜索GPartd,可參考下圖:

737be34e-abac-11ee-8b88-92fbcf53809c.png

此時需要輸入密碼,輸入用戶密碼,提權到root用戶,如下圖所示:

7390644a-abac-11ee-8b88-92fbcf53809c.png

接著在右上角選擇我們需要格式化的SD卡,默認為/dev/sda,這個是我們虛擬機的系統盤,我們需要切換到SD卡,此處一定要小心,sdb不一定是我們的sd卡。

完成切換后,右鍵點擊如圖所示位置,點擊“卸載”,接著點擊“刪除”按鈕刪除SD卡中原有分區,最后點擊確定,確認刪除,具體過程可以參考下圖。

73a81716-abac-11ee-8b88-92fbcf53809c.png

73c0abc8-abac-11ee-8b88-92fbcf53809c.png

73d466e0-abac-11ee-8b88-92fbcf53809c.png

接著開始創建分區,首先創建boot分區,用于u-boot讀取設備樹、內核等文件,我們需要在分區前方空出一定的空間,用于u-boot以及SPL程序存放,如下圖所示,首先點擊左上角按鈕,創建新分區,然后按照下圖創建boot分區。

73e888dc-abac-11ee-8b88-92fbcf53809c.png

73fe39ca-abac-11ee-8b88-92fbcf53809c.png

此處為U-Boot以及SPL預留了1Mib的空間,完全足夠存放這些程序。

接著創建rootfs分區,我們將剩下的空間全部作為rootfs,文件系統選擇ext4,如下圖所示:

74152108-abac-11ee-8b88-92fbcf53809c.png

最后點擊保存,確認后生效,拔出SD卡備用,操作可參考下圖:

7438e25a-abac-11ee-8b88-92fbcf53809c.png

71491254-abac-11ee-8b88-92fbcf53809c.png

開源資料獲取

作者適配的U-Boot目前使用了master分支的U-Boot并給出了移植指南。由于后續master分支代碼可能會存在更新,所以移植指南使用了最近的一個U-Boot版本來指導復刻打開發者進行修改和配置,編譯出自己的U-Boot。

745d88b2-abac-11ee-8b88-92fbcf53809c.gif

本項目所有資料均已開源,軟硬件都開源了,其中軟件開源了:UBoot、Kernel、Buildroot:測試鏡像下載地址等……。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 處理器
    +關注

    關注

    68

    文章

    19407

    瀏覽量

    231169
  • Linux
    +關注

    關注

    87

    文章

    11345

    瀏覽量

    210383
  • 串口
    +關注

    關注

    14

    文章

    1557

    瀏覽量

    77033
  • 開發板
    +關注

    關注

    25

    文章

    5121

    瀏覽量

    98189
  • 全志
    +關注

    關注

    24

    文章

    250

    瀏覽量

    53250

原文標題:將開發板設計拆解為10個部分,教你DIY屬于年輕人的第一塊Linux開發板

文章出處:【微信號:gh_79acfa3aa3e3,微信公眾號:全志在線】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    基于全志V3S芯片DIY Linux開發板

    簡介:大佬已在硬創社開源了近50款開發板,動手能力極強,于去年年底開始接觸學習Linux,并由全志V3s、F1C200S等芯片開始上手DIY個人L
    的頭像 發表于 01-15 09:37 ?2893次閱讀
    基于全志V3S芯片<b class='flag-5'>DIY</b> <b class='flag-5'>Linux</b><b class='flag-5'>開發板</b>

    大二學生DIY RISC-V開發板,獲阿里批量采購訂單

    D1s芯片(阿里平頭哥C906 RISC-V核)設計,可用于方案評估、方案預研和個人DIY,可應用于游戲機、智能商顯、智能中控等產品形態。作者將開源開發板的全部設計資料。開發板將提供的
    發表于 04-24 09:55

    FPGA開發板DIY腳本文件

    本資料是FPGA開發板DIY 腳本文件。
    發表于 09-29 11:29 ?73次下載

    嵌入式開發板_iTOP-4412開發板linux系統存儲空間

    [入式開發板]4412開發板linux 系統存儲空間的修改
    發表于 02-29 16:58 ?13次下載

    新手學習嵌入式Linux和Android開發板推薦

    一,確定目標,linux是一個非常非常大的概念。想全部吃透是不可能的。理想的說,搞懂linux,就可以做所有工作。個人更傾向于說想做什么樣工作,需要側重學linux的哪部分。二,選擇
    發表于 11-01 17:36 ?15次下載
    新手學習嵌入式<b class='flag-5'>Linux</b>和Android<b class='flag-5'>開發板</b>推薦

    如何配置和操作Linux驅動程序開發板

    本文檔概述了利用Linux開發板Linux 內核開發驅動程序的基礎知識,并簡單介紹了如何配置和操作 Linux 驅動程序
    的頭像 發表于 02-15 13:36 ?3126次閱讀
    如何配置和操作<b class='flag-5'>Linux</b>驅動程序<b class='flag-5'>開發板</b>

    利用Linux開發板為TLV320ADC5120開發Linux內核驅動的方法

    利用Linux開發板為TLV320ADC5120開發Linux內核驅動的方法
    發表于 10-28 11:59 ?0次下載
    利用<b class='flag-5'>Linux</b><b class='flag-5'>開發板</b>為TLV320ADC5120<b class='flag-5'>開發</b><b class='flag-5'>Linux</b>內核驅動的方法

    STM32 Linux開發板推薦 ,入門進階必備!

    推薦一款適合入門進階學習的Linux開發板:華清遠見FS-MP1A開發板(STM32MP157開發板開發板介紹 FS-MP1A
    發表于 10-22 09:22 ?1次下載

    STM32+Linux開發板應用手冊

    STM32 WIFI Linux 安卓智能控制開發板應用手冊
    發表于 12-21 11:04 ?3次下載

    fpga開發板linux開發板區別

    FPGA開發板Linux開發板是兩種不同的硬件開發平臺,各自具有不同的特點和應用場景。在以下的文章中,我將詳細介紹FPGA開發板
    的頭像 發表于 02-01 17:09 ?2429次閱讀

    linux開發板和單片機開發的區別

    硬件架構 Linux開發板和單片機開發在硬件架構上有很大的區別。Linux開發板通常基于ARM、x86或其他處理器架構,具有較高的處理能力和
    的頭像 發表于 08-30 15:30 ?1214次閱讀

    linux開發板如何編譯curl

    Linux開發板上編譯 curl 庫通常涉及到幾個步驟,包括準備開發環境、下載源代碼、配置編譯選項以及執行編譯和安裝過程。以下是一個基本的指南,幫助你在Linux
    的頭像 發表于 08-30 15:33 ?788次閱讀

    linux開發板與樹莓派的區別

    定義和用途 Linux開發板Linux開發板是一種基于Linux操作系統的嵌入式開發板,通常用
    的頭像 發表于 08-30 15:34 ?1140次閱讀

    嵌入式linux開發板芯片的工作原理

    嵌入式Linux開發板是一種基于Linux操作系統的嵌入式系統開發平臺,它廣泛應用于工業控制、智能家居、智能交通、醫療設備等領域。 嵌入式Linux
    的頭像 發表于 09-02 09:07 ?475次閱讀

    嵌入式linux開發板怎么操作

    嵌入式Linux開發板是一種基于Linux操作系統的嵌入式系統開發平臺。它通常包括一個處理器、內存、存儲器、輸入/輸出接口等硬件組件,以及一個基于L
    的頭像 發表于 09-02 09:09 ?466次閱讀
    和记娱乐城| 凤山县| 涂山百家乐官网的玩法技巧和规则 | 百家乐官网正负计算| 云鼎百家乐官网现金网| 大发888 casino组件下载| 百家乐官网赢钱皇冠| 大发888充值卡| A8百家乐官网的玩法技巧和规则 | 百家乐翻天下载| 缅甸百家乐博彩真假| 叶氏百家乐官网平注技巧| 新干县| sz新全讯网网站112| 新东泰百家乐官网的玩法技巧和规则| 天长市| 大发体育网| 网上百家乐公| 百家乐投注综合分析法| 木棉百家乐官网的玩法技巧和规则| 同乐城百家乐官网现金网| 大发888娱乐城ipad| 澳门百家乐心| 至尊百家乐奇热网| 博彩百家乐官网五2013124预测| 百家乐官网游戏客户端| 百家乐官网投注玩多少钱| 黔西县| 网络百家乐| 金赞娱乐| 尊爵| 大西洋城| 欢乐谷娱乐城| 澳门金沙娱乐场| 新葡京娱乐| 中国足球竞猜| 百家乐试玩| 吐鲁番市| 大亨百家乐官网游戏| 百家乐官网开户送十元| 百家乐官网必胜绝技|