RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

DIY個人的Linux開發(fā)板教程

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

項目作者:FanHuaCloud

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

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

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

項目簡介

開發(fā)板板載16M nor flash,主控芯片采用F1C200S,內(nèi)置64M DRAM。同時附帶USB Host接口以及USB type-c口,以及CH340串口轉(zhuǎn)USB芯片,用于開發(fā)調(diào)試使用。

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

開發(fā)板2D預(yù)覽圖

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

全志F1C200S主控

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

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

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模擬供電,該部分非常重要,不接會導(dǎo)致USB Host無法枚舉設(shè)備,同時需要注意該引腳供電范圍為2.5V-3.1V,不可以使用3.3V供電,會導(dǎo)致內(nèi)部電路損壞。

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

SDMMC接口

SDMMC接口用于接入Micro SD卡,系統(tǒng)啟動時,可以從SD卡中加載U-Boot,內(nèi)核,RootFS,實現(xiàn)Linux啟動。

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

SDMMC接口原理圖

如上圖所示,相關(guān)線路說明如下所示:

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

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

3D0~D3:數(shù)據(jù)通過這些數(shù)據(jù)線傳輸

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

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

CH340串口轉(zhuǎn)USB

此電路用于用戶連接系統(tǒng)調(diào)試中斷使用,其功能為將TTL串口轉(zhuǎn)換為USB接口,使得用戶可以在電腦中連接該串口進行調(diào)試。

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

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

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

CH340串口轉(zhuǎn)USB原理圖

如上圖所示,該部分除了串口轉(zhuǎn)USB外,還兼顧了系統(tǒng)的供電。

1用戶通過Type-C線纜連接該調(diào)試口后,將同時為開發(fā)板供電

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

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

4D2為TVS瞬態(tài)抑制二極管用于保護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為模擬供電,該部分非常重要,不接會導(dǎo)致USB Host無法枚舉設(shè)備,同時需要注意該引腳供電范圍為2.5V-3.1V,不可以使用3.3V供電,會導(dǎo)致內(nèi)部電路損壞。

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

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

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

DCDC電流電感值計算公式

1L為計算出的電感容量

2Vout為降壓芯片輸出電壓

3L為計算出的電感容量

4Vin為降壓芯片輸入電壓

5Fsw為芯片開關(guān)頻率,SY8089取1.5Mhz,也就是1500000Hz

6Iout,max為最大輸出電流

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

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

電源模塊在電路中的接線

SY8089典型應(yīng)用以及電容電感選型表

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

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

SY8089芯片反饋電阻計算公式

1Rh為上端分壓電阻阻值

2Rl為下端分壓電阻阻值

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

4Vout即最終的電壓輸出值

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

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

AVCC 3V LDO

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

SPI Nor Flash

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

1上電后,F(xiàn)1C200S首先從內(nèi)部BROM(芯片內(nèi)置,無法擦除)啟動

2首先檢查 SD0 有沒有插卡, 如果有插卡就讀卡 8k偏移數(shù)據(jù),是否是合法的啟動數(shù)據(jù), 如果是BROM 引導(dǎo)結(jié)束, 否則進入下一步

3第二步:檢測SPI0 NOR FLASH是否存在, 是否有合法的啟動數(shù)據(jù), 如果是BROM 引導(dǎo)結(jié)束, 否則進入下一步

4第三步:檢測SPI0 NAND FLASH 是否存在, 是否有合法的啟動數(shù)據(jù), 如果是BROM 引導(dǎo)結(jié)束, 否則進入下一步

5最后,因為找不到任何可以引導(dǎo)的介質(zhì),系統(tǒng)會進入usb fel模式,此時可以使用USB燒錄

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

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

W25Q128JVEIQ原理圖

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

2C16為濾波電容

3SW2為FEL模式開關(guān),將SPI_MISO短路到地后,F(xiàn)1C200S將無法檢測到SPI Nor Flash,從而進入USB Fel模式,此時可以松開按鍵,燒錄內(nèi)容至SPI Nor Flash

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

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

6最后,因為找不到任何可以引導(dǎo)的介質(zhì),系統(tǒng)會進入usb fel模式,此時可以使用USB燒錄

外部IO接口

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

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

外部IO接口引腳功能

USB OTG/USB TYPE-C

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

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

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

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

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

USB OTG/USB Type-C原理圖

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

背光驅(qū)動

該部分用于驅(qū)動RGB屏幕背光,標(biāo)準(zhǔn)40Pin RGB屏幕基本采用串聯(lián)背光,由于本身開發(fā)板供電只有5V,所以我們需要使用背光驅(qū)動芯片升壓到合適的電壓,來驅(qū)動屏幕背光。

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

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

背光驅(qū)動原理圖

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

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

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

R5為芯片的反饋電阻,用于調(diào)節(jié)輸出的電流,計算公式可參考下方:

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

反饋電阻計算公式

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

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

屏幕數(shù)據(jù)手冊線路原理圖

如上圖,下方說明了LED為2并5串,額定電流為40ma,我們?yōu)榱吮kU,選擇了20ma,亮度會有所損失。

40Pin RGB/觸摸接口

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

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

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

RGB/觸摸接口原理圖

開發(fā)環(huán)境搭建

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

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

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

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

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

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

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

點擊桌面左下角圖標(biāo),進入所有應(yīng)用,然后搜索GPartd,可參考下圖:

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

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

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

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

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

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

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

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

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

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

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

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

接著創(chuàng)建rootfs分區(qū),我們將剩下的空間全部作為rootfs,文件系統(tǒng)選擇ext4,如下圖所示:

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

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

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

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

開源資料獲取

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

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

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

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    19259

    瀏覽量

    229649
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11292

    瀏覽量

    209322
  • 串口
    +關(guān)注

    關(guān)注

    14

    文章

    1551

    瀏覽量

    76421
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5032

    瀏覽量

    97371
  • 全志
    +關(guān)注

    關(guān)注

    24

    文章

    247

    瀏覽量

    53119

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

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

收藏 人收藏

    評論

    相關(guān)推薦

    基于全志V3S芯片DIY Linux開發(fā)板

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

    大二學(xué)生DIY RISC-V開發(fā)板,獲阿里批量采購訂單

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

    FPGA開發(fā)板DIY腳本文件

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

    嵌入式開發(fā)板_iTOP-4412開發(fā)板linux系統(tǒng)存儲空間

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

    新手學(xué)習(xí)嵌入式Linux和Android開發(fā)板推薦

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

    如何配置和操作Linux驅(qū)動程序開發(fā)板

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

    利用Linux開發(fā)板為TLV320ADC5120開發(fā)Linux內(nèi)核驅(qū)動的方法

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

    STM32 Linux開發(fā)板推薦 ,入門進階必備!

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

    STM32+Linux開發(fā)板應(yīng)用手冊

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

    fpga開發(fā)板linux開發(fā)板區(qū)別

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

    linux開發(fā)板和單片機開發(fā)的區(qū)別

    硬件架構(gòu) Linux開發(fā)板和單片機開發(fā)在硬件架構(gòu)上有很大的區(qū)別。Linux開發(fā)板通?;贏RM、x86或其他處理器架構(gòu),具有較高的處理能力和
    的頭像 發(fā)表于 08-30 15:30 ?727次閱讀

    linux開發(fā)板如何編譯curl

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

    linux開發(fā)板與樹莓派的區(qū)別

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

    嵌入式linux開發(fā)板芯片的工作原理

    嵌入式Linux開發(fā)板是一種基于Linux操作系統(tǒng)的嵌入式系統(tǒng)開發(fā)平臺,它廣泛應(yīng)用于工業(yè)控制、智能家居、智能交通、醫(yī)療設(shè)備等領(lǐng)域。 嵌入式Linux
    的頭像 發(fā)表于 09-02 09:07 ?374次閱讀

    嵌入式linux開發(fā)板怎么操作

    嵌入式Linux開發(fā)板是一種基于Linux操作系統(tǒng)的嵌入式系統(tǒng)開發(fā)平臺。它通常包括一個處理器、內(nèi)存、存儲器、輸入/輸出接口等硬件組件,以及一個基于L
    的頭像 發(fā)表于 09-02 09:09 ?371次閱讀
    RM新时代网站-首页