Raksta tulkojums no emuÄra ziÅu inženieris Džordžs Hiliards
NoklikŔķinÄms
Esmu iegulto sistÄmu inženieris. BrÄ«vajÄ laikÄ bieži meklÄju kaut ko, ko varÄtu izmantot nÄkotnes sistÄmu projektÄÅ”anÄ, vai kaut ko no savÄm interesÄm.
Viena no Å”ÄdÄm jomÄm ir lÄti datori, kuros var darboties Linux, un jo lÄtÄk, jo labÄk. TÄpÄc es izraku dziļu truÅ”u bedri neskaidriem procesoriem.
Es domÄju: "Å ie procesori ir tik lÄti, ka tos praktiski var atdot bez maksas." Un pÄc kÄda laika man radÄs doma uztaisÄ«t pliku karti priekÅ” Linux vizÄ«tkartes formÄtÄ.
Kad es par to domÄju, es nolÄmu, ka tas bÅ«tu patieÅ”Äm forÅ”s pasÄkums. Es jau esmu redzÄjiselektroniskavizÄ«tkartes lÄ«dz tÄ, un tiem bija dažÄdas interesantas iespÄjas, piemÄram, zibatmiÅas karÅ”u emulÄÅ”ana, mirgojoÅ”as spuldzes vai pat bezvadu datu pÄrraide. TaÄu vizÄ«tkartes ar Linux atbalstu neesmu redzÄjis.
TÄpÄc es sev tÄdu izveidoju.
Å Ä« ir produkta gatavÄ versija. PilnÄ«gs minimÄlais ARM dators, kurÄ darbojas mana pielÄgotÄ Linux versija, kas izveidota ar Buildroot.
Tam stÅ«rÄ« ir USB ports. Ja pievienojat to datoram, tas sÄknÄjas apmÄram 6 sekundÄs un ir redzams kÄ zibatmiÅas karte un virtuÄls seriÄlais ports, caur kuru varat pieteikties kartes apvalkÄ. ZibatmiÅas diskÄ ir README fails, mana CV kopija un vairÄkas manis fotogrÄfijas. ApvalkÄ ir vairÄkas spÄles, Unix klasika, piemÄram, fortune un rogue, neliela spÄles 2048 versija un MicroPython tulks.
Tas viss tiek darÄ«ts, izmantojot ļoti mazu 8 MB zibatmiÅas mikroshÄmu. SÄknÄÅ”anas ielÄdÄtÄjs iekļaujas 256 KB, kodols aizÅem 1,6 MB, un visa saknes failu sistÄma aizÅem 2,4 MB. TÄpÄc virtuÄlajam zibatmiÅas diskam ir atlicis daudz vietas. Ir arÄ« mÄjas direktorijs, kurÄ var ierakstÄ«t, ja kÄds izdara kaut ko, ko vÄlas saglabÄt. Tas viss ir arÄ« saglabÄts zibatmiÅas mikroshÄmÄ.
Visa ierÄ«ce maksÄ mazÄk nekÄ 3 USD. Tas ir pietiekami lÄts, lai atdotu. Ja jÅ«s no manis saÅÄmÄt Å”Ädu ierÄ«ci, tas nozÄ«mÄ, ka, visticamÄk, es cenÅ”os jÅ«s atstÄt iespaidu.
ProjektÄt un bÅ«vÄt
Visu projektÄju un saliku pats. Tas ir mans darbs, un man tas patÄ«k, un liela daļa izaicinÄjumu ir bijusi pietiekami lÄtu detaļu atraÅ”ana hobijam.
Procesora izvÄle bija vissvarÄ«gÄkais lÄmums, kas ietekmÄja projekta izmaksas un iespÄjamÄ«bu. PÄc plaÅ”as izpÄtes es izvÄlÄjos F1C100s, salÄ«dzinoÅ”i maz zinÄmu Allwinner procesoru, kas ir optimizÄts izmaksu ziÅÄ (ti, sasodÄ«ti lÄts). Gan RAM, gan CPU atrodas vienÄ iepakojumÄ. Es nopirku procesorus Taobao. Visas pÄrÄjÄs sastÄvdaļas iegÄdÄtas no LCSC.
PlÄtnes pasÅ«tÄ«ju no JLC. ViÅi man izgatavoja 8 kopijas par 10 USD. To kvalitÄte ir iespaidÄ«ga, jo Ä«paÅ”i attiecÄ«bÄ uz cenu; nav tik veikls kÄ OSHPark, bet joprojÄm izskatÄs labi.
Pirmo partiju uztaisÄ«ju matÄti melnu. Tie izskatÄ«jÄs skaisti, bet bija ļoti viegli notraipÄ«ti.
Ar pirmo partiju bija pÄris problÄmas. PirmkÄrt, USB savienotÄjs nebija pietiekami garÅ”, lai droÅ”i ietilptu jebkurÄ USB portÄ. OtrkÄrt, zibspuldzes celiÅi tika izveidoti nepareizi, bet es to apietu, saliekot kontaktus.
PÄc pÄrbaudes, vai viss darbojas, es pasÅ«tÄ«ju jaunu dÄļu partiju; Viena no tÄm fotoattÄlu varat redzÄt raksta sÄkumÄ.
Å emot vÄrÄ visu Å”o mazo komponentu mazo izmÄru, es nolÄmu Ä·erties pie lodÄÅ”anas ar pÄrpludinÄÅ”anu, izmantojot lÄta plÄ«ts. Man ir pieejams lÄzergriezÄjs, tÄpÄc ar to no laminatora plÄves izgriezu lodÄÅ”anas trafaretu. Trafarets sanÄca diezgan labs. 0,2 mm diametra caurumiem procesora kontaktiem bija nepiecieÅ”ama Ä«paÅ”a piesardzÄ«ba, lai nodroÅ”inÄtu kvalitatÄ«vu izgatavoÅ”anu - ļoti svarÄ«gi bija pareizi fokusÄt lÄzeru un izvÄlÄties tÄ jaudu.
Citi dÄļi labi notur dÄli pastas uzklÄÅ”anas laikÄ.
Es uzklÄju lodÄÅ”anas pastu un novietoju sastÄvdaļas ar roku. PÄrliecinÄjos, ka procesÄ nekur netiek izmantots svins - visi dÄļi, komponenti un pasta atbilst standartam RoHS - lai mana sirdsapziÅa mani nemocÄ«tu, kad es tos izdalÄ«Å”u cilvÄkiem.
Es pieļÄvu nelielu kļūdu ar Å”o partiju, bet lodÄÅ”anas pastas piedod kļūdas, un viss gÄja labi
Katra komponenta pozicionÄÅ”ana prasÄ«ja apmÄram 10 sekundes, tÄpÄc es centos samazinÄt komponentu skaitu lÄ«dz minimumam. SÄ«kÄku informÄciju par kartes dizainu var lasÄ«t citÄ mans detalizÄtais raksts.
MateriÄlu un izmaksu saraksts
Es pieturÄjos pie stingra budžeta. Un vizÄ«tkarte izrÄdÄ«jÄs tÄda, kÄda bija iecerÄta - es neiebilstu to atdot! Protams, es to neizdoÅ”u visiem, jo āākatras kopijas izgatavoÅ”ana prasa laiku, un mans laiks netiek Åemts vÄrÄ vizÄ«tkartes izmaksÄs (tÄ ir sava veida bezmaksas).
komponents
Cena
F1C100s
$1.42
PCB
$0.80
8 MB zibatmiÅa
$0.17
Visas pÄrÄjÄs sastÄvdaļas
$0.49
KopÄ
$2.88
Protams, ir arÄ« grÅ«ti aprÄÄ·inÄmas izmaksas, piemÄram, piegÄde (jo tÄ tiek sadalÄ«ta starp komponentiem, kas paredzÄti vairÄkiem projektiem). TomÄr platei, kas atbalsta Linux, tas noteikti ir diezgan lÄts. Å is sadalÄ«jums sniedz arÄ« labu priekÅ”statu par to, cik uzÅÄmumiem izmaksÄ ierÄ«Äu izgatavoÅ”ana zemÄko cenu segmentÄ: varat bÅ«t pÄrliecinÄts, ka tas maksÄ uzÅÄmumiem pat mazÄk nekÄ man!
SpÄjas
Ko teikt? Karte 6 sekundÄs sÄk palaist ļoti nolietotu Linux. Formas faktora un izmaksu dÄļ kartei nav I/O, tÄ«kla atbalsta vai kÄda nozÄ«mÄ«ga krÄtuves apjoma, lai palaistu smagas programmas. Neskatoties uz to, man izdevÄs programmaparatÅ«ras attÄlÄ ievietot virkni interesantu lietu.
USB
Bija daudz forÅ”u lietu, ko varÄja izdarÄ«t ar USB, bet es izvÄlÄjos vienkÄrÅ”Äko variantu, lai cilvÄkiem bÅ«tu lielÄka iespÄja to panÄkt, ja viÅi nolÄma izmÄÄ£inÄt manu vizÄ«tkarti. Linux ļauj kartei darboties kÄ "ierÄ«cei" ar atbalstu SÄ«krÄ«ku ietvars. Es paÅÄmu dažus draiverus no iepriekÅ”Äjiem projektiem, kuros bija iekļauts Å”is procesors, tÄpÄc man ir pieejama visa USB sÄ«krÄ«ka ietvara funkcionalitÄte. Es nolÄmu atdarinÄt iepriekÅ” Ä£enerÄtu zibatmiÅas disku un nodroÅ”inÄt Äaulas piekļuvi, izmantojot virtuÄlo seriÄlo portu.
KompilÄcijas laikÄ veidoÅ”anas rÄ«ki Ä£enerÄ nelielu FAT32 attÄlu un pievieno to kÄ vienu no UBI nodalÄ«jumiem. Linux sÄ«krÄ«ku apakÅ”sistÄma piedÄvÄ viÅa datoru kÄ atmiÅas ierÄ«ci.
Ja vÄlaties redzÄt, kas parÄdÄs zibatmiÅas diskÄ, vienkÄrÅ”Äkais veids, kÄ to izdarÄ«t, ir lasÄ«t avoti. Ir arÄ« vairÄkas fotogrÄfijas un mans CV.
Resursi
Avoti
Mans Buildroot koks ir ievietots GitHub ā thirtythreeforty/businesscard-linux. Ir kods NOR flash attÄla Ä£enerÄÅ”anai, kas tiek instalÄts, izmantojot procesora USB lejupielÄdes režīmu. TajÄ ir arÄ« visas spÄļu un citu programmu pakotÅu definÄ«cijas, kuras es ievietoju Buildroot pÄc tam, kad viss darbojÄs. Ja jÅ«s interesÄ F1C100s izmantoÅ”ana savÄ projektÄ, tas bÅ«tu lielisks sÄkumpunkts (jÅ«s varat uzdod man jautÄjumus).
ES izmantoju skaisti izpildÄ«ts projekts Linux v4.9 for F1C100s no Icenowy, nedaudz pÄrveidots. Mana karte darbojas gandrÄ«z standarta v5.2. Tas ir GitHub ā thirtythreeforty/linux.
Man Ŕķiet, ka man Å”obrÄ«d ir pasaulÄ vislabÄkÄ U-Boot pieslÄgvieta F1C100 ierÄ«cÄm, un tÄ arÄ« daļÄji ir balstÄ«ta uz Icenowy darbu (pÄrsteidzoÅ”i, lai U-Boot pareizi darbotos, bija diezgan apgrÅ«tinoÅ”s uzdevums). Varat to iegÅ«t arÄ« vietnÄ GitHub - thirtythreeforty/u-boot.
F1C100 dokumentÄcija
Es atradu diezgan retu F1C100 dokumentÄciju, un es to ievietoju Å”eit:
Allwinner F1C600 uzziÅu rokasgrÄmata ā reÄ£istrÄt definÄ«cijas F1C600, kas faktiski ir tas pats F1C100, bet pÄrdÄvÄts ar deklarÄtu Linux atbalstu (ha!).
Esmu aktÄ«vi aizguvis informÄciju no diagrammas no Sipeed's Lichee Nano ā izstrÄdes dÄlis, ko izmantoju programmatÅ«ras konfigurÄÅ”anai.
IzstrÄdÄjot Å”o projektu, es daudz iemÄcÄ«jos ā tas bija mans pirmais projekts, kurÄ izmantoju reflow lodÄÅ”anas krÄsni. Es arÄ« uzzinÄju, kÄ atrast resursus komponentiem ar sliktu dokumentÄciju.
Es izmantoju savu esoÅ”o pieredzi ar iegulto Linux un dÄļu izstrÄdes pieredzi. Projekts nav bez trÅ«kumiem, bet tas labi parÄda visas manas prasmes.
Tiem, kurus interesÄ sÄ«kÄka informÄcija par darbu ar iegulto Linux, iesaku izlasÄ«t manu rakstu sÄriju par Å”o: Embedded Linux apgÅ«Å”ana. Tur es detalizÄti runÄju par to, kÄ no jauna izveidot programmatÅ«ru un aparatÅ«ru mazÄm un lÄtÄm Linux sistÄmÄm, lÄ«dzÄ«gi kÄ manai vizÄ«tkartei.