Përkthimi i artikullit nga inxhiner George Hilliard
Kliko
Unë jam inxhinier i sistemeve të integruara. Në kohën time të lirë shpesh kërkoj gjëra që mund t'i përdor për projektimin e sistemeve të ardhshme, ose diçka që i përket interesave të mia.
Një nga këto fusha është kompjuterët e lirë, të cilët e mbështesin Linux, dhe sa më të lirë, aq më mirë. Prandaj u zhyt në një kanin të thellë të procesorëve të panjohur.
Mendoja: "Këta procesorë janë aq të lirë, saqë gati mund t'i ndash falas". Dhe pas ca kohe më erdhi ideja të bëj një kartelë të thjeshtë për Linux në formatin e një vizite.
Sapo mendova për këtë, vendosa se do të ishte shumë bukur ta bëja. Unë tashmë në , dhe ato kishin mundësi të ndryshme interesante, si emulimi i kartave Flash, ndriçimi i dritave apo madje kalimi i të dhënave në mënyrë wireless. Megjithatë, nuk kam parë vizita që mbështesin Linux.
Prandaj, krijova një të tillë për veten time.
Kjo është versioni përfundimtar i produktit. Një kompjuter minimal i plote në ARM, mbi të cilën funksionon versioni im special i Linux, i krijuar me ndihmën e Buildroot.

Në këndin e saj ka një port USB. Nëse e lidhi me një kompjuter, ngarkohet për rreth 6 sekonda dhe shihet si një kartë Flash dhe një port serial virtual, përmes të cilit mund të hysh në shell-in e kartës. Në Flash ndodhet një skedar README, një kopje e CV-së sime dhe disa fotografi të mia. Në shell ka disa lojëra, klasike nga Unix si fortune dhe rogue, një version i vogël i lojës 2048 dhe një interpretor MicroPython.
E gjithë kjo është realizuar me një çip të vogël Flash prej 8 MB. Bootloader-i zë 256 KB, bërthama zë 1.6 MB, dhe e gjithë sistemi i files root zë 2.4 MB. Prandaj, për kartën virtuale mbetet shumë hapësirë. Aty ka gjithashtu një direktori shtëpiake, e cila është e hapur për shkarkim - nëse dikush bën diçka që dëshiron ta ruajë. E gjithë kjo gjithashtu ruhet në çipin Flash.
E gjithĂ« pajisja kushton mĂ« pak se $3. ĂshtĂ« mjaft e lirĂ« pĂ«r t'u ndarĂ«. NĂ«se keni marrĂ« njĂ« pajisje tĂ« tillĂ« prej meje, kjo do tĂ« thotĂ« se ndoshta po pĂ«rpiqem tĂ« bĂ«j njĂ« pĂ«rshtypje te ju.
Projektimi dhe montimi
E kam projektuar dhe ndërtuar unë vetë gjithçka. Kjo është puna ime, dhe më pëlqen, dhe një pjesë e madhe e vështirësive ishte gjetja e pjesëve mjaft të lira për një hobi të tillë.
Zgjedhja e procesorit ishte vendimi më i rëndësishëm që ndikonte në koston dhe realizueshmërinë e projektit. Pas kërkimeve aktive, zgjodha F1C100s, një procesor relativisht të panjohur nga Allwinner, i optimizuar për çmim (dmth, shumë i lirë). Në të njëjtin kabinet ndodhen RAM dhe CPU. Procesorët i bleva në Taobao. Të gjitha pjesët e tjera janë blerë në LCSC.
Plakat i porosita nga JLC. Për 8 dollarë më bënë 10 kopje. Cilësia e tyre është mbresëlënëse, veçanërisht për çmimin e tillë; nuk janë aq të sakta sa ato nga OSHPark, por përsëri duken mirë.
Bashkimi i parë e bëra në ngjyrë të zezë matte. Duketin bukur, por ishin shumë të ndjeshme ndaj njollave.

Me bashkimin e parë kishte disa probleme. Së pari, konektori USB nuk ishte mjaft i gjatë për t'u futur fort në çdo port USB. Së dyti, trakët për flash ishin bërë gabim, por e kalova këtë duke kthyer kontaktet.

Pas verifikimit të gjithçkaje në punë, porosita një grup të ri pllakash; foto e një prej tyre mund ta shihni në fillim të artikullit.
Për shkak të përmasave të vogla të të gjithë këtyre komponentëve të vegjël, vendosa të përdor solderim me nxehtësi [reflow solder] duke përdorur . Kam qasje në një laser të prerë, ndaj e prita një shabllon për solderim nga filmi i laminatorit. Doli një shabllon mjaft i mirë. Hapat për kontaktet e procesorit me diametër 0.2 mm kërkonin kujdes të veçantë për një prodhim cilësor - ishte kritike të përqendroja saktë lazerin dhe të përcaktoja fuqinë e tij.

Për të mbajtur pllakën në vend gjatë aplikimit të pastës, përshtaten mirë plakat e tjera
Aplikova pastën e saldimit dhe vendosa komponentet manualisht. U përpoqa që askund në proces të mos përdorej plumb - të gjitha plakat, komponentet dhe pasta i përmbahen standardit - për të mos ndjerë keqardhje kur t'i ndaj me njerëzit.

Me këtë grup pak e humba, megjithatë pasta e saldimit fal gabimet dhe gjithçka u assemblua normalisht
Vendosja e çdo komponenti merrte rreth 10 sekonda, ndaj përpiqesha të minimizoja numrin e tyre. Më shumë detaje rreth projektimit të bordit mund të lexoni në një tjetër .
Lista e materialeve dhe çmimi
Kam mbaja njĂ« buxhet tĂ« rreptĂ«. KartĂ«vizita rezultoi ashtu siç e kisha menduar â nuk kam asnjĂ« problem ta jap atĂ«! Sigurisht, nuk do t'ua jap tĂ« gjithĂ«ve, pasi prodhimi i çdo ekzemplar kĂ«rkon kohĂ«, dhe koha ime nuk llogaritet nĂ« koston e kartĂ«vizitĂ«s (siç do ishte falas).
Komponenti
Ămimi
F1C100s
$1.42
PCB
$0.80
8MB flash
$0.17
Të gjithë komponentët e tjerë
$0.49
Përveç kësaj
$2.88
Sigurisht, ka edhe shpenzime tĂ« tjera qĂ« janĂ« tĂ« vĂ«shtira pĂ«r tâu llogaritur, si ngarkesa (pasi shpĂ«rndahet midis komponentĂ«ve qĂ« janĂ« tĂ« destinuar pĂ«r disa projekte). MegjithatĂ«, pĂ«r njĂ« bord qĂ« mbĂ«shtet Linux, kjo sigurisht qĂ« Ă«shtĂ« shumĂ« e lirĂ«. Po ashtu, ky ndarĂ«s jep njĂ« ide tĂ« mirĂ« se sa i kushton kompanive prodhimi i pajisjeve nĂ« segmentin mĂ« tĂ« ulĂ«t tĂ« çmimeve: mund t'ju siguroj se kompanitĂ« e nxjerrin kjo akoma mĂ« lirĂ« se sa unĂ«!
Mundësitë
ĂfarĂ« tĂ« them? Karte ngarkon njĂ« Linux tĂ« shumĂ« tĂ« reduktuar nĂ« 6 sekonda. PĂ«r shkak tĂ« formĂ«s dhe kostos, karta nuk ka I/O, mbĂ«shtetje rrjeti, as ndonjĂ« volum tĂ« rĂ«ndĂ«sishĂ«m ruajtjeje pĂ«r tĂ« operuar programet e rĂ«nda. MegjithatĂ«, arrita tĂ« vendos shumĂ« gjĂ«ra interesante nĂ« imazhin e firmware-it.
USB
Me USB mund të kishte shumë ide interesante, por zgjodha opsionin më të thjeshtë, në mënyrë që për njerëzit me probabilitet të lartë gjithçka të funksionojë, nëse vendosin të provojnë kartëvizitën time. Linux i lejon kartës të sillet si një "device" me mbështetje . Disa drivere i kam marrë nga projekte të mëparshme që përfshinin këtë procesor, kështu që kam qasje në të gjithë funksionalitetin e platformës USB gadget framework. Vendosa të imitoj një flash-disk të gjeneruar më parë dhe t'i jap qasje një shell-i përmes një porte seriale virtuale.
Shell
Pas identifikimit me përdoruesin root në konsolën seriale, mund të ekzekutoni programet e mëposhtme:
- rogue: një lojë klasike aventurash në majë të Unix për burgje;
- 2048: një lojë e thjeshtë 2048 në modalitetin e konsolës;
- fortune: shfaq ndryshme pohime të ndryshshme. Vendosa të mos përfshij këtu të gjithë bazën e citateve, në mënyrë që të mbetet hapësirë për funksione të tjera;
- : një interpretues shumë të vogël të Python.
Imitimi i Flash Drive
Gjatë kompilimit, mjetet e ndërtimit gjenerojnë një imazh të vogël FAT32 dhe e shtojnë atë si një nga ndarjet UBI. Nën-sistemi Linux për gadgete e paraqet PC-në si një pajisje ruajtëse.
Nëse jeni të interesuar të shihni se çfarë ndodhet në flash, atëherë më e lehta është ta bëni këtë duke u njohur me . Aty ndodhen gjithashtu disa fotografi dhe CV-ja ime.
Burime
Burimi
DendĂ«sia ime Buildroot Ă«shtĂ« publikuar nĂ« GitHub â . Aty Ă«shtĂ« kodi i gjenerimit tĂ« imazhit flash NOR, i cili instalohet me modalitetin e shkarkimit pĂ«rmes USB nga procesori. Aty janĂ« gjithashtu tĂ« gjitha definicionet e paketave pĂ«r lojĂ«rat dhe programet tjera qĂ« kam pĂ«rfshirĂ« nĂ« Buildroot pasi gjithçka funksionoi. NĂ«se dĂ«shironi tĂ« pĂ«rdorni F1C100s nĂ« projektin tuaj, kjo do tĂ« jetĂ« njĂ« pikĂ« e shkĂ«lqyer fillimi (mos hezitoni ).
Kam pĂ«rdorur Linux v4.9 pĂ«r F1C100s i autorĂ«sisĂ« Icenowy, disi i modifikuar. NĂ« kartĂ«n time funksionon pothuajse standardi v5.2. Ajo Ă«shtĂ« publikuar nĂ« GitHub â .
Mendoj se kam portin mĂ« tĂ« mirĂ« tĂ« U-Boot pĂ«r F1C100s nĂ« botĂ«, dhe ai Ă«shtĂ« pjesĂ«risht gjithashtu i bazuar nĂ« punĂ«n e Icenowy (papritur, tĂ« bĂ«sh qĂ« U-Boot tĂ« funksionojĂ« siç duhet doli tĂ« ishte njĂ« detyrĂ« e ndĂ«rlikuar). Mund ta merrni gjithashtu nĂ« GitHub â .
Dokumentacioni për F1C100s
Kam gjetur dokumentacion të mjaftueshëm për F1C100s, dhe po e publikoj këtu:
- â informacion i pĂ«rgjithshĂ«m dhe ndarja.
- â definicionet e regjistrave pĂ«r F1C600, i cili nĂ« tĂ« vĂ«rtetĂ« Ă«shtĂ« e njĂ«jta F1C100s, por i riemĂ«ruar me mbĂ«shtetje tĂ« deklaruar pĂ«r Linux (ah!).
- Kam pĂ«rfituar shumĂ« nga informacioni nĂ« diagramin nga â karta zhvillimi qĂ« kam pĂ«rdorur pĂ«r tĂ« vendosur softuerin.
Për ata të kurioz, po ngarkoj .

Përfundim
Kam mësuar shumë gjatë procesit të zhvillimit të këtij projekti - ky është projekti im i parë ku kam përdorur furrën për ta spërluar lëngun e kaluar. Gjithashtu kam mësuar të gjej burime për komponentë me dokumentacion të dobët.
Kam përdorur përvojën time me Linuxin e integruar dhe përvojën e zhvillimit të pllakave. Projekti nuk është pa defekte, megjithatë tregon mirë të gjitha aftësitë e mia.
Për ata që janë të interesuar për detajet e punës me Linuxin e integruar, ju jap të lexoni serinë time të artikujve mbi këtë: . Aty unë të tregoj në detaje se si të krijoni softuer dhe harduer nga fillimi për sisteme të vogla dhe të lira Linux, të ngjashme me këtë vizitën time.
Burimi: habr.com
