Konke kwaqala lapho umbhali ethenga idivaysi ethokozisayo emakethe yesibili - Smart Response XE (
Lawa madivaysi ayekwa ukusebenza eminyakeni embalwa edlule, futhi lokho izikole ezithengwe ngo-$100-$200 ngasinye manje seziyavela ku-eBay ngo-$10 noma ngaphansi. Izingxenyekazi zekhompuyutha ezikhona zilungele kakhulu izivivinyo ze-geeky:
- 60 key keyboard
- bonisa ngesixazululo esingu-384×136, amabhithi angu-2 ngephikseli ngayinye - efana ne-BC, CGA, kodwa engu-4 hhayi imibala, kodwa ukuhlukaniswa kokukhanya
- i-microcontroller ATmega128RFA1 (128 kB flash memory, 4 kB ROM, 16 kB RAM, 802.15.4 transceiver)
- yangaphandle (ngokuphathelene nesilawuli esincane, hhayi yonke idivayisi) inkumbulo ye-flash engu-1 megabit (128 kilobyte) ene-SPI interface
- Igumbi lezinto ezi-4 ze-AAA.
Kusukela egameni lesilawuli esincane kuyacaca ukuthi singesomndeni wakwa-AVR, okusho ukuthi ukwenza idivayisi ye-Arduino-ihambisane kuwumsebenzi ongaphezu kokuncane...
Kusukela ezindabeni kuqhubeke
Kodwa umbhali unesithakazelo kakhulu ithuba lokungadlali kudivayisi, kodwa ukufunda:
- inkumbulo ye-flash ene-serial SPI interface
- ama-bootloaders we-AVR
- ejwayelekile 802.15.4
Umbhali waqala ngokubhala
Lokhu kwanele ukulayisha i-bootloader ye-Arduino, kodwa hhayi umdwebo - imbobo ye-serial ayixhunyiwe lapho, ngakho awukwazi ukwenza ngaphandle kokuvula icala. Futhi, imigqa ye-TX0 kanye ne-RX0 yembobo ye-serial yokuqala ihlanganiswa nemigqa yokuvota ye-matrix yekhibhodi, okuyilabo abavotela okhiye bomsebenzi ezinhlangothini zesibonisi. Kodwa yini ongayenza - umbhali wakha lokhu:
Ulethe imigqa ye-JTAG lapho, futhi manje asikho isidingo sokuvula indawo yebhethri. Futhi ukuze imidwebo ingalayishwa, ngixhume zombili izimbobo ze-serial kusixhumi esifanayo, futhi ngengeza iswishi, ngoba ngamabhethri afakiwe, akunakwenzeka ngokomzimba ukuvala idivayisi nganoma iyiphi enye indlela.
Kwathatha isikhathi eside ukusebenza ngensimbi yokunamathisela, ummese wokusetshenziswa kanye nesibhamu seglue. Ngokuvamile, ukulayisha imidwebo "emoyeni" kulula kakhulu; sidinga ngokuphuthumayo ukusungula okuthile kwalokhu.
I-Arduino IDE isebenzisa uhlelo ukulayisha imidwebo
Ngemva kokuzama izindlela ezahlukene zokunqoba le nkinga, umbhali uqhamuke nalokhu okulandelayo. Idivayisi inememori ye-flash engu-128 KB ene-interface ye-SPI - sithola idatha phezu kwezintambo (khumbula ukuthi umbhali usevele unedivayisi eyodwa enesixhumanisi eceleni), sebenzisa le nkumbulo njengebhafa, futhi uthumele idatha ngomsakazo. isiteshi kwenye idivayisi. Sawubona kusuka ku-Cybiko.
Ngemva kokubhala ikhodi ukuze isebenze nesiteshi somsakazo, kanye nefonti, isilayishi sibe sinde kunamakhilobhayithi angu-4. Ngakho-ke, inani le-HFUSE bekufanele lishintshwe lisuka ku-0xDA liye ku-0xD8. Manje i-bootloader ingaba ubude obungamakhilobhayithi angu-8, futhi ikheli lokuqala manje lithi 0x1E000. Lokhu kubonakala ku-Makefile, kodwa kufanele futhi kucatshangelwe lapho ugcwalisa
I-transceiver engu-802.15.4 ku-ATmega128RFA1 ekuqaleni yakhelwe ukusebenza kusetshenziswa umthetho olandelwayo.
Kuvele ukuthi iziteshi 15 kanye no-26 zisengozini encane yokuphazanyiswa yi-WiFi. Umbhali ukhethe esesibili kuzo. Umshwana wokuzihlangula: umhumushi akazi noma kuvunyelwe ukwenza i-ZigBee ibe lula ngale ndlela. Mhlawumbe kufanele senze uhlelo oluthe xaxa futhi silusebenzise ngokuphelele?
Edivayisini yokuqala, kuyadingeka ukusebenzisa umshini wesimo esilinganiselwe odlulisela idatha ngephrothokholi ye-STK500. Ngokwengxenye enkulu, imilayezo edluliswayo neyamukelwe iyakwazi ukuzimela, kodwa eminye iboshelwe kuleyo edlule esiteshini ngaphambili. Incazelo yenkhulumomphendvulwano inikeziwe
Ingxenye ebalulekile yale ngxoxo ukudluliselwa kwamaphakethe okuhloswe ukuthi abhalwe kumemori ye-flash yedivayisi okuyiwa kuyo. Kuma-microcontrollers alula omndeni we-AVR, usayizi wekhasi ungamabhayithi angu-128, kodwa ku-ATmega128RFA1 ngu-256. Futhi kwimemori ye-flash exhunywe ngephrothokholi ye-SPI, kuyafana. Uhlelo kudivayisi yokuqala, lapho ulayisha umdwebo, awuwudluliseli ngokushesha kweyesibili, kodwa ubhala kule nkumbulo. Uma i-Arduino IDE ihlola ukufaneleka kokufakiwe, ithunyelwa lokho okulotshwe lapho. Manje sidinga ukudlulisa idatha eyamukelwe ngesiteshi somsakazo kudivayisi yesibili. Ngesikhathi esifanayo, ukushintsha kusuka ekutholeni kuya ekudluliseni nasekubuyiseleni kwenzeka kaningi. Iphrothokholi ye-STK500 ayinandaba nokubambezeleka, kodwa ayikubekezeleli ukulahleka kwedatha (okumangalisayo, kodwa kushiwo ngenhla ukuthi ukubambezeleka kuphinde kuthinte ukudluliswa kwedatha). Futhi ukulahlekelwa ngesikhathi sokudlulisa okungenantambo akunakugwenywa. I-ATmega128RFA1 inokuqaliswa kwe-hardware eyakhelwe ngaphakathi kwezicelo eziphindaphindiwe lapho kunokungabaza ngokunemba kokudluliselwa, kodwa umbhali wanquma ukwenza okufanayo kusofthiwe ngokwakhe. Wakha umthetho olandelwayo lapho idatha eningi igeleza ngendlela eyodwa kunenye.
Ayiphelele, kodwa iyasebenza. Ikhasi le-256-byte lihlukaniswe izingxenye ezine, ngayinye yazo isakazwa emoyeni njengephakethe. Iphakethe lingabamba kufikela ku-125 byte wedatha kanye nebhayithi eyodwa ngobude namabhayithi amabili e-CRC. Ngakho izingcezu ezingamabhayithi angu-64 ubude kanye nezinombolo zekhasi nezengxenye (kusuka ku-0 kuye ku-3) zibekwe lapho. Idivayisi eyamukelayo inoguquko oluvumela ukuthi ilandelele ukuthi mangaki amasegimenti atholiwe, futhi lapho omane efika, idivayisi yokuthumela ithola isiqinisekiso sokuthi lonke ikhasi lamukelwe. Asikho isiqinisekiso (i-CRC ayifani) - thumela kabusha lonke ikhasi. Isivinini sikhulu nakakhulu kunalapho uthumela ngekhebula. Bona:
Kodwa ngokuvamile, kuzodingeka ukuthi unikeze indlela elula yokuxhuma ikhebula kumadivayisi wokulayisha imidwebo nangayo. Isibonelo, faka ngaphakathi kwesiguquli esibonakalayo ku-CP2102, njengasesithombeni, bese usinamathisela ebhodini ukuze sikwazi ukumelana namandla lapho uxhuma futhi unqamula intambo ye-Micro USB.
Iphinde ibe ne-stabilizer engu-3,3-volt (nokuthi isetshenziswa kanjani kudivayisi enamandla angu-6-volt - uma kuphela ine-stabilizer efanayo, futhi ungakwazi ukwengeza ama-diode amabili ukuze ukhethe ngokuzenzakalelayo ukuthi iyiphi kuzo ezonika amandla idivayisi) . Womathathu ama-LED kumele angadalulwa ebhodini lokuguqula isikhombimsebenzisi, ngaphandle kwalokho azolayisha amabhethri uma esebenza kuwo, futhi aphazamise ukuvota kwekhibhodi futhi asebenze ngememori ye-flash ene-SPI esibonakalayo.
Ukuphishekela umgomo kubonakale kuthakazelisa kakhulu kunokuwufinyelela (futhi angilidingi lelo hlaya ngebhasi). Umbhali ufunde okuningi mayelana nama-bootloaders e-AVR, inkumbulo ye-flash ye-SPI, iphrothokholi ye-STK500 kanye nezinga le-802.15.4.
Wonke amanye amakhodi ngaphezu komtapo wolwazi ochazwe ngenhla −
Source: www.habr.com