Artikli tÔlge insener George Hilliardi
Klika
Olen sisseehitatud sĂŒsteemide insener. Vabal ajal otsin sageli, mida vĂ”iks kasutada tulevaste sĂŒsteemide projekteerimiseks, vĂ”i midagi, mis on minu huvide valdkonnast.
Ăks sellistest valdkondadest on odavad arvutid, mis suudavad toetada Linuxit, ja mida odavam, seda parem. SeetĂ”ttu sĂŒvenesin ma vĂ€he tuntud protsessorite sĂŒgavasse kĂŒĂŒslauku.
MÔtlesin: "Need protsessorid on nii odavad, et neid vÔiks praktiliselt tasuta jagada." Ja mÔne aja pÀrast tuli mul idee teha Linuxi alusel paljas kaart visiitkaardi formaadis.
Niipea kui ma sellele mÔtlesin, otsustasin, et see oleks vÀga lahe teostada. Olen juba kuni , millel on erinevad huvitavad vÔimalused, nÀiteks mÀlukaartide emuleerimine, tuled, mis vilguvad, vÔi isegi andmete edastamine juhtmeta. Kuid visiitkaarte, mis toetaks Linuxit, ma ei ole kohanud.
N nii ma tegime endale sellise.
See on toote lÔplik versioon. TÀisfunktsionaalne minimaalne arvuti ARM-i peal, millel töötab minu spetsiaalne Linuxi versioon, mis on loodud Buildrooti abil.

Nurgas on USB-port. Kui ĂŒhendate selle arvutiga, laadib see umbes 6 sekundiga ja see kuvatakse nagu mĂ€lukaart ja virtuaalne seerianumber, mille kaudu saab siseneda kaardi shelli. MĂ€lus on README fail, koopia minu elulooks ja mĂ”ned minu fotod. Shellis on mitmeid mĂ€nge, Unix klasikalised mĂ€ngud nagu fortune ja rogue, vĂ€iksem versioon mĂ€ngust 2048 ja MicroPython interpreter.
KĂ”ik see on tehtud vĂ€ga vĂ€ikese 8 MB mĂ€luchiipiga. KĂ€ivitaja mahub 256 KB-sse, kernel vĂ”tab 1,6 MB ja kogu juurefailisĂŒsteem 2,4 MB. Seega jÀÀb virtuaalsele mĂ€lukaardile palju ruumi. Seal on ka kirjutamiseks ligipÀÀsetav kodukaust â kui keegi teeb midagi, mida soovib salvestada. KĂ”ik see salvestatakse ka mĂ€luchipi peale.
Kogu seade maksab alla 3 dollari. See on piisavalt odav, et seda saaks tasuta jagada. Kui saate minult sellise seadme, tĂ€hendab see tĂ”enĂ€oliselt, et ma ĂŒritan teid muljet avaldada.
Projekteerimine ja kokkupanek
Projekteerisin ja kogusin kÔik ise. See on minu töö ja mulle see meeldib, ja suur osa raskustest seisnes piisavalt odavate komponentide leidmises selliseks hobiks.
Protsessori valimine oli kĂ”ige tĂ€htsam otsus, mis mĂ”jutas projekti hinda ja teostatavust. PĂ€rast aktiivset uurimistulemuste analĂŒĂŒsi valisin F1C100s, Allwinneri tootmises oleva suhteliselt vĂ€hetuntud protsessori, mis on hinna poolest optimeeritud (st ĂŒliodav). Ăhes korpuses asuvad nii RAM kui ka CPU. Ostsin protsessorid Taobaost. KĂ”ik teised komponente soetasin LCSC-lt.
Plaate tellisin JLC-lt. 8 dollari eest tehti mulle 10 koopiat. Nende kvaliteet on muljetavaldav, eriti selle hinna eest; nad ei ole nii korralikud kui OSHParki omad, aga siiski nÀevad head vÀlja.
Esimese seeria tegin mattmustaks. Need nÀgid ilusad vÀlja, kuid olid vÀga mÀÀrduvad.

Esimese seeriaga olin silmitsi paariprobleemidega. Esiteks, USB-pistik oli liiga lĂŒhike, et usaldusvÀÀrselt mistahes USB-portidesse sobida. Teiseks, mĂ€lurajad olid valesti tehtud, kuid ma ĂŒmbersuunasin selle, painutades kontakte.

Kontrollides kĂ”ik tööle, tellisin uue partiiplaneeringu; foto ĂŒhest neist on nĂ€ha artikli alguses.
Kuna kĂ”ikide nende vĂ€ikeste komponentide suurus on vĂ€ike, otsustasin kasutada jootmist pehmendamise meetodil [reflow solder] koos . Mul on juurdepÀÀs laseriga lĂ”ikusele, seega lĂ”ikasin selle jaoks laminaatori kilest jootmisĆĄablooni. Tuli saadud ĆĄabloon piisavalt hea. Protsessori kontaktide aukude diameeter oli 0,2 mm, mis nĂ”udis erilist tĂ€helepanu kvaliteetses valmistamises â kriitiliselt oluline oli laser Ă”igesti fookusse seadistada ja selle vĂ”imsust Ă”igesti valida.

Plaadi hoidmiseks pastade mÀÀrimisel sobivad hÀsti teised plaadid
Kandsin jootmispastat ja paigaldasin komponente kĂ€sitsi. Olin mures, et kuskil protsessi kĂ€igus ei kasutata pliid â kĂ”ik plaadid, komponendid ja pasta vastavad standardile â et mu sĂŒdametunnistus ei piinanud mind, kui jagan neid inimestele.

Selle partii puhul tegin veidi viga, kuid jootmispasta andestab vead ja kÔik sai korralikult kokku pandud.
Iga komponendi paigutamiseks kulus umbes 10 sekundit, seega ĂŒritasin nende arvu vĂ”imalikult madalana hoida. Rohkem detaile kaardistamise kujundamise kohta saab lugeda minu teises .
Materjalide loend ja hind
Ma pidin ranget eelarvet. Visiitkaart tuli selline, nagu plaanisin â ma ei kahetse selle jagamist! Loomulikult ei kavatse ma seda kĂ”igile jagada, kuna iga eksemplari valmistamiseks kulub aega, ja minu aeg kaardihinna sisse ei arvata (see on nagu tasuta).
Komponent
Hind
F1C100s
$1.42
PCB
$0.80
8MB flash
$0.17
KÔik teised komponendid
$0.49
KokkuvÔttes
$2.88
Muidugi on veel kulusid, mida on raske arvutada, nĂ€iteks saatmine (kuna see jagunes komponentide vahel, mis on mĂ”eldud mitme projekti jaoks). Kuid Linuxi toetava plaadi puhul on see kahtlemata ĂŒsna odav. Samuti annab see jagamine hea ĂŒlevaate, kui palju maksab ettevĂ”tetele madalaima hinnaklassi seadmete valmistamine: vĂ”ite olla kindel, et ettevĂ”tetele on see veelgi odavam, kui mulle!
VÔimalused
Mida öelda? Kaart laadib vÀga kÀrbitud Linuxi 6 sekundi jooksul. Formaadi ja hinna tÔttu ei ole kaardil I/O-d, vÔrgu tuge ega tÔsist salvestusmahtu raskete programmide kÀivitamiseks. Siiski Ônnestus mul jaotisesse laadida palju huvitavat.
USB
USB abil oleks saanud palju huvitavat vÀlja mÔelda, kuid valisin kÔige lihtsama variandi, et inimestel oleks suure tÔenÀosusega kÔik töötaks, kui nad otsustavad proovida mu visiitkaarti. Linux vÔimaldab kaardil kÀituda nagu 'seade' toetamisel . MÔned draiverid vÔtsin varasematest projektidest, mis hÔlmasid seda protsessorit, seega on mul juurdepÀÀs kogu USB gadget framework'i funktsionaalsusele. Otsustasin emuleerida ettevalmistatud mÀlupulka ja anda juurdepÀÀsu keskkonnale lÀbi virtuaalse seeria porta.
KĂ€surea liides
PÀrast juurdepÀÀsu saamist kasutajanimega root vÔivad jÀrjestikuse konsooli kÀivitada jÀrgmised programmid:
- rogue: klassikaline Unix'i seiklusmÀng kaevanduste teemal;
- 2048: lihtne 2048 mĂ€ng konsooli reĆŸiimis;
- fortune: erinevate uhkete ĂŒtluste kuvamine. Otsustasin siia mitte lisada kogu tsitaatide baasi, et jÀÀks ruumi teistele funktsioonidele;
- : vÀga vÀike Python'i tÔlk.
Flash Drive'i emulatsioon
Kompilatsiooni ajal genereerivad ehitustooted vĂ€ikese FAT32 pildi ja lisavad selle ĂŒheks UBI jaotamiseks. Linuxi gadget alamsĂŒsteem esitleb seda PC-na seadmena.
Kui te olete huvitatud selle vaatamisest, mis mÀlupulgal on, siis on kÔige lihtsam tutvuda . Seal on ka mÔned fotod ja minu CV.
Resursid
Algfailid
Minu Buildroot'i puu on ĂŒles laaditud GitHubi â . Seal on NOR-pilte genereerimise kood, mis installitakse protsessori USB allalaadimisreĆŸiimi abil. Samuti on seal kĂ”ik mĂ€ngude ja muude programmide paketide mÀÀratlused, mille ma Buildrooti lisasin pĂ€rast seda, kui kĂ”ik toimis. Kui soovite kasutada F1C100s oma projektis, on see suurepĂ€rane lĂ€htepunkt (Ă€rge kartke ).
Olen kasutanud Linux v4.9 F1C100s jaoks autoriks Icenowy, natuke selle kohandatud. Minu kaardil töötab peaaegu standardne v5.2. See on ĂŒles laaditud GitHubi â .
Ma arvan, et mul on tĂ€naseks maailma parim U-Booti port F1C100s jaoks, ja see pĂ”hineb osaliselt ka Icenowy tööl (ootamatult, U-Booti tööle saamine osutus ĂŒsna Ă€rritavaks ĂŒlesandeks). Samuti on saadaval GitHubis â .
Dokumentatsioon F1C100s kohta
Leidsin ĂŒsna napid dokumentatsioonid F1C100s, ja panen need siia:
- â ĂŒldine teave ja pinout.
- â registeride mÀÀratlused F1C600 jaoks, mis on tegelikult sama F1C100s, kuid ĂŒmber nimetatud Linuxi toetuses (ha!).
- Ma olen aktiivselt laenanud teavet skeemilt â arenduspaneel, mida ma kasutasin tarkvara seadistamiseks.
Uudishimulikele laadisin ĂŒles .

KokkuvÔte
Ma Ă”ppisin palju selle projekti arendamise kĂ€igus â see on minu esimene projekt, kus kasutasin sulatuspurgi jootmise. Samuti Ă”ppisin leidma komponente, mille dokumentatsioon on kehv.
Ma kasutasin oma olemasolevat kogemust sisseehitatud Linuxi ja plaadi arendamise alal. Projekt pole veatu, kuid nÀitab hÀsti kÔiki minu oskusi.
Sisseehitatud Linuxi töö ĂŒksikasjadest huvitatud isikutele soovitan lugeda minu artiklite seeriat selle kohta: . Seal rÀÀgin ĂŒksikasjalikult, kuidas luua tarkvara ja riistvara nullist vĂ€ikesteks ja odavateks Linuxi sĂŒsteemideks, nagu see minu visiitkaart.
Allikas: habr.com
