文章翻譯自 工程師喬治·希利亞德
可點擊
我是嵌入式系統工程師。 在空閒時間,我經常尋找一些可以用於未來系統設計的東西,或者一些來自我興趣的東西。
其中一個領域是能夠支援低成本計算機的領域 Linux而且越便宜越好。所以我深入研究了許多冷門處理器。
我當時想:「這些處理器這麼便宜,簡直可以免費送人。」過了一段時間,我就萌生了製作一張裸卡的想法。 Linux 外形尺寸與名片相同。
一旦我想到這一點,我就決定這將是一件非常酷的事情。 我已經 對 它們還具有各種有趣的功能,例如模擬閃存卡、閃爍指示燈,甚至無線數據傳輸。然而,支援此功能的商務名片 Linux 我還沒遇到任何人。
所以我就給自己做了一個。
這就是最終成品。一台功能齊全的極簡ARM計算機,運行的是我自訂的作業系統版本。 Linux使用 Buildroot 創建。

它的角落有一個 USB 連接埠。 如果將其連接到計算機,它會在大約 6 秒內啟動,並顯示為閃存卡和虛擬串行端口,您可以透過該虛擬串行端口登入卡殼。 隨身碟上有一個自述文件、一份我的簡歷和幾張我的照片。 該 shell 包含多種遊戲,例如 Fortune 和 Rogue 等 Unix 經典遊戲、遊戲 2048 的小型版本以及 MicroPython 解釋器。
所有這一切都是使用非常小的 8 MB 快閃記憶體晶片完成的。 引導程式大小為 256 KB,核心佔用 1,6 MB,整個根檔案系統佔用 2,4 MB。 因此,還有大量的空間留給虛擬閃存驅動器。 還有一個可寫入的主目錄,以防任何人執行他們想要保存的任何操作。 這也全部保存在快閃記憶體晶片上。
整個設備的成本不到 3 美元。 它足夠便宜,可以贈送。 如果您從我這裡收到了這樣的設備,則表示我很可能是想給您留下深刻的印象。
設計與建造
我自己設計並組裝了所有東西。 這是我的工作,我喜歡它,大部分挑戰是為這個愛好找到足夠便宜的零件。
處理器的選擇是影響專案成本和可行性的最重要決策。 經過廣泛的研究,我選擇了 F1C100s,這是一款來自 Allwinner 的相對鮮為人知的處理器,它經過了成本優化(即非常便宜)。 RAM 和 CPU 位於同一包裝中。 我在淘寶上買了處理器。 所有其他組件均購自 LCSC。
我從 JLC 訂購了主機板。 他們花了 8 美元為我印了 10 份。 他們的品質令人印象深刻,尤其是價格; 不像 OSHPark 那麼整潔,但看起來還是不錯的。
我做了第一批霧面黑色。 它們看起來很漂亮,但很容易弄髒。

第一批產品存在一些問題。 首先,USB 連接器不夠長,無法牢固地插入任何 USB 連接埠。 其次,閃存軌道製作不正確,但我透過彎曲觸點解決了這個問題。

檢查一切正常後,我訂購了一批新的板子; 您可以在文章開頭看到其中一張照片。
由於所有這些小元件的尺寸都很小,我決定採用回流焊接 。 我可以使用雷射切割機,因此我用它從層壓膜上切下焊接模板。 模板效果非常好。 處理器觸點的 0,2 毫米直徑孔需要特別小心,以確保高品質的製造 - 正確聚焦雷射並選擇其功率至關重要。

其他板子可以很好地在塗抹漿料時固定板。
我塗上焊膏並用手定位組件。 我確保在此過程中的任何地方都沒有使用鉛 - 所有電路板、組件和焊膏均符合標準 -這樣當我把它們分發給人們時我的良心就不會折磨我。

我在這批產品中犯了一個小錯誤,但是焊膏可以原諒錯誤,一切都進展順利
每個組件大約需要 10 秒才能定位,因此我嘗試將組件數量保持在最低限度。 有關地圖設計的更多詳細資訊可以閱讀另一篇文章 .
材料清單及費用
我堅持嚴格的預算。 名片的效果正如預期的那樣——我不介意把它送人! 當然,我不會把它發給所有人,因為製作每份都需要時間,而我的時間並沒有計入名片的費用中(有點免費)。
部件
Цена
F1C100系列
$1.42
PCB
$0.80
8MB快閃記憶體
$0.17
所有其他組件
$0.49
在總
$2.88
當然,還有一些難以計算的成本,例如運費(因為它分攤到多個項目所需的組件上)。然而,對於一塊有支撐的電路板來說, Linux 這價格確實很便宜。這份明細也很好地展現了公司生產低價位設備的成本:可以肯定的是,他們的成本甚至比我的還低!
功能
我還能說什麼呢?地圖載入得非常糟糕,畫面被截斷了。 Linux 只需6秒。由於其尺寸和成本限制,該卡缺乏I/O介面、網路支援以及運行大型程式所需的足夠儲存容量。儘管如此,我還是設法在韌體鏡像中塞進了大量有趣的功能。
USB
USB有很多很酷的功能,但我選擇了最簡單的方案,這樣如果有人決定嘗試我的名片,就有很大的機會讓它正常工作。 Linux 允許該卡像“設備”一樣運行並提供支持 。 我從之前包含該處理器的專案中獲取了一些驅動程序,因此我可以存取 USB 小工具框架的所有功能。 我決定模擬預先產生的快閃磁碟機並透過虛擬序列埠提供 shell 存取權限。
殼
以root身分登入後,您可以在序列控制台上執行以下程式:
- rogue:一款經典的 Unix 地牢爬行冒險遊戲;
- 2048:控制台模式下的 2048 簡單遊戲;
- 運勢:各種造作說法的輸出。 我決定不在這裡包含整個引文資料庫,以便為其他功能留出空間;
- :一個非常小的Python解釋器。
快閃記憶體驅動器仿真
編譯過程中,建置工具會產生一個小型 FAT32 鏡像,並將其新增為 UBI 分割區之一。小工具子系統 Linux 將其作為儲存設備呈現給電腦。
如果您有興趣查看隨身碟上顯示的內容,最簡單的方法是閱讀 。 還有幾張照片和我的履歷。
Ресурсы
來源
我的 Buildroot 樹發佈在 GitHub 上 - 。 有用於產生 NOR 快閃記憶體映像的程式碼,該程式碼是使用處理器的 USB 下載模式安裝的。 它還包含遊戲和其他程式的所有包定義,我在一切正常後將其推送到 Buildroot 中。 如果您有興趣在專案中使用 F1C100,這將是一個很好的起點(隨意 ).
我用了 Linux Icenowy 的 v4.9 版本適用於 F1C100s,我做了一些細微的調整。我的顯示卡運行的是接近標準的 v5.2 版本,它在 GitHub 上。 .
我認為我擁有當今世界上用於F1C100 的最好的U-Boot 移植,而且它也部分基於Icenowy 的工作(令人驚訝的是,讓U-Boot 正常工作是一項相當令人沮喪的任務) 。 您也可以在 GitHub 上取得它 - .
F1C100 的文檔
我發現 F1C100 的文檔相當稀疏,我將其發佈在這裡:
- – 一般資訊和引腳排列。
- - F1C600 的暫存器定義,實際上它與 F1C100 相同,只是根據聲明的支援情況進行了重新命名。 Linux (哈!)。
- 我主動從圖表中藉用了訊息 – 我用來設定軟體的開發板。
我上傳給那些好奇的人。 .

結論
在這個專案的開發過程中我學到了很多東西——這是我第一個使用回焊爐的專案。 我還學習如何為文檔品質較差的元件尋找資源。
我運用了內建的經驗 Linux 以及PCB設計方面的經驗。這個項目並非完美無缺,但它確實很好地展現了我的技能。
對於那些對使用內建功能的細節感興趣的人 Linux 我建議您閱讀我撰寫的一系列關於此主題的文章: 在那裡,我詳細討論瞭如何從零開始為小型且廉價的設備創建軟體和硬體。 Linux-類似我這張名片的系統。
來源: www.habr.com
