<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
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

    文章

    18415

    瀏覽量

    222853
  • Linux
    +關注

    關注

    87

    文章

    11001

    瀏覽量

    206847
  • 串口
    +關注

    關注

    14

    文章

    1492

    瀏覽量

    74580
  • 開發板
    +關注

    關注

    25

    文章

    4506

    瀏覽量

    94458
  • 全志
    +關注

    關注

    24

    文章

    223

    瀏覽量

    52686

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

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

收藏 人收藏

    評論

    相關推薦

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

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

    關于個人 DIY PCB

    啊、簡單的線路用洞洞還可以滿足、稍微復雜的個人 DIY 單面板還可能做到很不錯的效果、但如果更復雜就要用雙面板了、個人 DIY 就不談了、
    發表于 05-22 23:08

    DIY實用的51單片機開發板程序

    DIY實用的51單片機開發板程序
    發表于 11-07 19:31

    DIY利用“洞洞”自制單片機開發板

    DIY利用“洞洞”自制單片機開發板
    發表于 12-20 23:05

    單片機開發板DIY智能小車

    求大神,求賜教,單片機開發板DIY智能小車,板子是開發板,另外買的有電機驅動,循跡模塊,超聲波模塊,不知如何組裝求大神給點意見,菜鳥跪求
    發表于 04-25 12:35

    開發板連接Linux

    我在參考? “ti-sdk-omapl138-lcdk-01.00.00”? 參考文檔,在連接Linux開發板,請問下面是什么意思? Target $ ifconfig 這個是在哪里輸入,是minicom 終端嗎?
    發表于 06-21 16:11

    【鴻蒙開發板試用】HiSpark IPC DIY Camera 標準套件鴻蒙開發板 試用活動名單公布

    ``開發板來了~抱歉讓大家久等了~經過10天的申請,截止今天一共有101位開發者提交了HiSpark IPC DIY Camera鴻蒙開發板試用申請。試用鏈接:https
    發表于 09-21 20:02

    具有Linux功能的開發板

    卻能夠在技術領域大有一番作為。我們來看一下學習Linux之后的一些出路:那么在進行Linux知識的過程中就必須需要使用到開發板配合實踐,目前市面上具有Linux功能的
    發表于 11-05 08:36

    熟悉Linux開發板的裸機開發流程

    目錄前言本文作為本人學習Linux嵌入式記錄文檔,僅供參考。開發板:正點原子阿爾法開發板(I.MX6ULL)環境:Ubuntu 20.04 (LTS) (內核版本:Linux 5.4.
    發表于 12-15 07:41

    如何配置Linux開發板的GPIO

    本文未經允許,禁止轉載!文章目錄前言一、pandas是什么?二、使用步驟1.引入庫 2.讀入數據 總結前言本文作為本人學習Linux嵌入式記錄文檔,僅供參考。開發板:正點原子阿爾法開發板
    發表于 12-15 07:46

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

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

    FPGA開發板DIY腳本文件

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

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

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

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

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

    fpga開發板linux開發板區別

    FPGA開發板Linux開發板是兩種不同的硬件開發平臺,各自具有不同的特點和應用場景。在以下的文章中,我將詳細介紹FPGA開發板
    的頭像 發表于 02-01 17:09 ?688次閱讀
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>