Artikli tÔlge insener George Hilliardilt
KlÔpsatav
Mina olen sisseehitatud sĂŒsteemide insener. Vabal ajal otsin sageli asju, mida saaks tulevaste sĂŒsteemide projekteerimisel kasutada, vĂ”i midagi minu huvide valdkonnast.
Ăks selline valdkond on odavad arvutid, mis toetavad Linuxit, ja mida odavam, seda parem. SeetĂ”ttu sĂŒvenesin ma tĂ”eliselt vĂ€hemtuntud protsessorite maailma.
MÔtlesin: "Need protsessorid on nii odavad, et neid vÔiks lausa tasuta jagada." Peagi tuli mul mÔte luua Linuxi toega paljas kaart visiitkaardi formaadis.
Kuna ma sellest mÔtlesin, olin kindel, et see oleks vÀga lahe teostada. Olin juba kuni millel olid erinevad huvitavad funktsioonid, nagu mÀlukaardite emuleerimine, LEDide vilkumine vÔi isegi juhtmeta andmete edastamine. Siiski ei olnud ma kohanud visiitkaarte, mis toetaksid Linuxit.
Nii et ma tegin endale sellise.
See on valmis toote versioon. TÀisvÀÀrtuslik minimaalne arvuti ARM-il, millel töötab minu spetsiaalne Linuxi versioon, loodud Buildrooti abil.

Ăksuses on USB-port. Kui seda arvutiga ĂŒhendada, kĂ€ivitub ta umbes 6 sekundiga ja seda nĂ€hakse nagu mĂ€lukaarti ja virtuaalset seeriaporti, mille kaudu saab kaardile siseneda. MĂ€lukaardil on README fail, koopia minu CV-st ja mĂ”ned minu fotod. Shellis on mitu mĂ€ngu, Unix'i klassika nagu fortune ja rogue, vĂ€ike versioon mĂ€ngust 2048 ja MicroPython'i tĂ”lk.
Kogu see teos on tehtud vĂ€ikese 8 MB mĂ€lukiibi abil. Toite allikas mahtus 256 KB-sse, tuum vĂ”tab 1,6 MB ja kogu juurt failisĂŒsteem â 2,4 MB. SeepĂ€rast jÀÀb virtuaalsele mĂ€lukaardile palju ruumi. Seal on ka kirjutamiseks avatud kodudirektor â kui keegi teeb midagi, mida soovib salvestada. Ka see salvestatakse mĂ€lukiibile.
Kogu seade maksab vĂ€hem kui 3 dollarit. See on nii odav, et seda vĂ”iks jagada. Kui sa said minult sellise seadme, tĂ€hendab see, et ma tĂ”enĂ€oliselt ĂŒritan sind muljet avaldada.
Projeteerimine ja kokkupanek
Kavandasin ja kokkupanin kÔik ise. See on minu töö, ja ma naudin seda; enamus raskustest seisnes piisavalt odavate osade leidmises sellise hobi jaoks.
Protsessori valimine oli kĂ”ige olulisem otsus, mis mĂ”jutas projekti maksumust ja teostatavust. PĂ€rast aktiivset uurimist valisin F1C100s, suhteliselt vĂ€he tuntud odavate komponentide tootja Allwinneri protsessori, mis oli optimeeritud kulude osas (st uskumatult odav). Ăhes korpuses on nii RAM kui ka CPU. Ostsin protsessorid Taobaost. KĂ”ik ĂŒlejÀÀnud komponendid on ostetud LCSC-lt.
Tellijad tellisin JLC-st. $8 eest tehti mulle 10 eksemplari. Nende kvaliteet on muljetavaldav, eriti sellise hinna eest; nad ei ole nii ideaalsed kui OSHPark, kuid siiski nÀevad head vÀlja.
Esimene partii oli mattmust. Need nÀgid ilusad vÀlja, kuid olid vÀga mÀÀrduvad.

Esimese partii puhul oli paar probleemi. Esiteks, USB-konnektor ei olnud piisavalt pikk, et kindlalt igasse USB-porti istuda. Teiseks, mÀlukiibi rajad olid vale kujundusega, aga ma lahendasin selle, kummardades kontakte.

PĂ€rast kĂ”ike töö kontrollimist tellisin ma uue partii plaate; ĂŒhte neist nĂ€ete artikli alguses.
Kuna kÔik need vÀiksed komponendid on nii vÀikesed, otsustasin kasutada sulamispunkti solderdamist [reflow solder] odava pliidi abil. Plaadi hoidmiseks pastade pealekandmise ajal on hÀsti sobilikud teised plaadid.

Kandsin peale solderdamise pastat ja paigaldasin komponente kĂ€sitsi. Ma hoolitsesin selle eest, et protsessi ei kasutataks ĂŒhtegi pliidi, â kĂ”ik plaadid, komponendid ja pasta vastavad
RoHS Selle partii puhul tegin ma mÔned vead, kuid solderdamise pasta andis vead andeks ja kÔik kokkusobitus normaalselt.

Iga komponendi paigaldamiseks kulus umbes 10 sekundit, seega proovisin nende arvu minimeerida. TĂ€iendavate ĂŒksikasjade kohta kaardi projekteerimisest vĂ”ite lugeda mu teises
ĂŒksikasjalikus artiklis .
Kaupade loetelu ja kulud
Ma jĂ€rgin ranget eelarvet. Visiitkaart tuli selline, nagu ette kujutasin â ma ei kahetse selle jagamiseks! Loomulikult ei hakka ma seda igaĂŒhele jagama, kuna iga eksemplari valmistamine vĂ”tab aega, ja mu aeg ei lisandu visiitkaardi hinnale (see on nagu tasuta).
Komponent
Hind
F1C100s
$1.42
PCB
$0.80
8MB flash
$0.17
KĂ”ik ĂŒlejÀÀnud komponendid
$0.49
Kokku
$2.88
Muidugi on veel kulusid, mida on keeruline arvutada, nĂ€iteks kohaletoimetamine (sest see jaotub komponentide vahel, mis on mĂ”eldud mitme projekti jaoks). Kuid Linuxi toetava plaadi puhul on see kindlasti vĂ€ga odav. Samuti annab see jaotus hea ĂŒlevaate, kui palju maksab ettevĂ”tetele madala hinnaklassi seadmete tootmine: vĂ”ite olla kindel, et see maksab neile veelgi vĂ€hem kui mulle!
VÔimalused
Mis ma oskan öelda? Kaart laeb 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 salvestusruumi raskete programmide kĂ€ivitamiseks. Sellegipoolest suutsin ma sĂŒstida tarkvarapildile palju huvitavat.
USB
USB kaudu sai mÔelda palju huvitavat, kuid valisin kÔige lihtsama variandi, et inimestel oleks suur tÔenÀosus, et see töötab, kui nad otsustavad proovida mu visiitkaarti. Linux vÔimaldab kaardil kÀituda nagu "seade", millel on tugi . MÔningaid draivereid vÔtsin varasematest projektidest, mis kasutasid seda protsessorit, seega on mul ligipÀÀs kogu USB gadget framework'i funktsionaalsusele. Otsustasin simuleerida eelnevalt genereeritud USB-mÀlupulka ja anda juurdepÀÀsu juhtimispaneelile virtuaalse seerianumbri kaudu.
Kest
PÀrast root-kasutajana sisselogimist seeria terminali saab kÀivitada jÀrgmised programmid:
- rogue: klassikaline Unix'i seiklusmÀng, mis rÀÀgib kaevandustest;
- 2048: lihtne 2048 mĂ€ng konsoolireĆŸiimis;
- fortune: erinevate uhkete tsitaatide vÀljastamine. Otsustasin siia mitte kÔiki tsitaate lisada, et jÀÀks ruumi teistele funktsioonidele;
- : vÀga vÀike Python'i tÔlk.
Flash Drive'i emulatsioon
Kompileerimise ajal genereerivad kogumise tööriistad vĂ€ikese FAT32 pildi ja lisavad selle ĂŒhe UBI partitsioonina. Linuxi gadget-subsĂŒsteem esitleb seda PC-na seadmena.
Kui teid huvitab, mida USB-mÀlupolt sisaldab, siis kÔige lihtsam on sellega tutvuda . Seal on ka mÔned fotod ja mu CV.
Ressursid
Allikakoodid
Mu Buildroot'i puu on ĂŒles laaditud GitHub'i â . Seal on NOR-mĂ€lupildi genereerimise kood, mis installitakse lĂ€bi USB laadimisreĆŸiimi protsessoril. Seal on ka kĂ”ik mĂ€ngude ja muude programmide paketide mÀÀratlused, mille ma Buildroot'i lisasin pĂ€rast seda, kui kĂ”ik töötas. Kui soovite kasutada F1C100s oma projektis, on see suurepĂ€rane lĂ€htepunkt (Ă€rge kartke ).
Ma kasutasin Linux v4.9 F1C100s jaoks, mille autor on Icenowy, natuke muudetud. Mu kaardil töötab peaaegu standardne v5.2. See on GitHub'is â .
Arvan, et mul on sel pĂ€eval maailma parim U-Booti port F1C100s jaoks, ja see pĂ”hineb osaliselt Icenowy tööl (ootamatult, U-Booti kĂ€itmine Ă”igesti osutus vĂ€ga keeruliseks ĂŒlesandeks). Samuti on saadaval GitHub'is â .
Dokumendid F1C100s-i kohta
Leidsin ĂŒsna nappe dokumente F1C100s-i kohta ja joonisin selle siia:
- â ĂŒldine teave ja pinout.
- â registeride mÀÀratlused F1C600 jaoks, mis tegelikult on sama, mis F1C100s, kuid ĂŒmber nimetatud nĂ€iliselt Linuxi toe jaoks (ha!).
- Olen aktiivselt kasutanud teavet â arendusplaat, mida kasutasin tarkvara seadistamiseks.
KĂŒsimisel jagan ma .

KokkuvÔte
Ma Ă”ppisin selle projekti arendamise kĂ€igus palju â see on mu esimene projekt, kus kasutasin ahju pliidi sulamispuhastamiseks. Samuti Ă”ppisin leidma ressursside kohta, millel on halb dokumentatsioon.
Kasutasin oma varasemaid kogemusi sisseehitatud Linuxi ja trĂŒkkplaatide arendamisega. Projekt ei ole ilma puudusteta, kuid demonstreerib hĂ€sti kĂ”iki mu oskusi.
Neile, kes on huvitatud lisainfost sisseehitatud Linuxi kohta, soovitan lugeda minu artiklite seeriat: . Seal rÀÀgin ma detailselt, kuidas luua tarkvara ja riistvara nullist vĂ€ikestele ja odavatele Linuxi sĂŒsteemidele, mis sarnanevad sellele minu visiitkaardile.
Allikas: habr.com
