Izvo zvese zvakatanga nemunyori achitenga chinonakidza chishandiso pamusika wechipiri - Smart Response XE (
Midziyo iyi yakamiswa makore akati wandei apfuura, uye izvo zvikoro zvakatengwa ne $100- $200 chimwe nechimwe chave kubuda paBay nemadhora gumi kana pasi. Iyo hardware iripo yakanyatsokodzera kuyedza geeky:
- 60 kiyi kiyibhodhi
- ratidza nechisarudzo che 384 Γ 136, 2 bits pa pixel - yakafanana neBC, CGA, asi 4 kwete mavara, asi gradations yekupenya
- microcontroller ATmega128RFA1 (128 kB flash memory, 4 kB ROM, 16 kB RAM, 802.15.4 transceiver)
- zvekunze (zvichienderana neiyo microcontroller, kwete iyo yese mudziyo) 1 megabit (128 kilobyte) flash memory ine SPI interface.
- kamuri ye4 AAA zvinhu.
Kubva pazita reiyo microcontroller zviri pachena kuti ndeyemhuri yeAVR, zvinoreva kuti kugadzira iyo Arduino-inoenderana ibasa rinopfuura diki ...
Kubva munhau zvichienda mberi
Asi munyori anonyanya kufarira mukana wekusatamba pachigadzirwa, asi kudzidza:
- flash memory ine serial SPI interface
- bootloaders yeAVR
- chiyero 802.15.4
Munyori akatanga nekunyora
Izvi zvakakwana kurodha Arduino bootloader, asi kwete sketch - serial port haina kubatana ipapo, saka haugone kuita pasina kuvhura kesi. Zvakare, mitsara yeTX0 neRX0 yekutanga serial port inosanganiswa nemitsetse yekuvhota yekeyboard matrix, inova iyo inovhota makiyi ebasa pamativi echiratidziro. Asi chii chaungaite - munyori akavaka izvi:
Akaunza JTAG mitsara ipapo, uye ikozvino hapachada kuvhura kamuri yebhatiri. Uye kuti zvidhori zvigone kurodha, ndakabatanidza ese ari maviri serial ports kune imwechete yekubatanidza, nekuwedzera switch, nekuti nemabhatiri akaiswa, hazvigoneke kudzima chishandiso neimwe nzira.
Zvakatora nguva yakati rebei kushanda nesimbi inosunga, banga rekushandisa uye pfuti yeglue. Kazhinji, kurodha zvidhori "pamusoro pemhepo" zviri nyore; isu tinofanirwa kukurumidza kugadzira chimwe chinhu cheizvi.
Arduino IDE inoshandisa chirongwa kurodha zvikeche
Mushure mekuedza nzira dzakasiyana dzekukunda dambudziko iri, munyori akauya nezvinotevera. Chishandiso chine 128 KB flash memory ine SPI interface - tinogashira data pamusoro pewaya (rangarira kuti munyori atova nechigadzirwa chimwe chine chinongedzo padivi), shandisa iyi ndangariro sebuffer, uye tumira iyo data paredhiyo. chiteshi kune imwe mudziyo. Mhoro kubva Cybiko.
Mushure mekunyora kodhi yekushanda neredhiyo chiteshi, pamwe nefonti, iyo loader yakave yakareba kupfuura 4 kilobytes. Naizvozvo, kukosha kweHFUSE kwaifanira kuchinjwa kubva pa0xDA kuenda ku0xD8. Ikozvino bootloader inogona kusvika ku8 kilobytes kureba, uye kero yekutanga ikozvino 0x1E000. Izvi zvinoratidzwa muMakefile, asi zvinofanirwa kuverengerwa kana uchizadza
Iyo 802.15.4 transceiver iri muATmega128RFA1 yakagadzirwa kuti ishande ichishandisa protocol.
Zvakaitika kuti chiteshi 15 ne26 hachinyanyi kukanganiswa kubva kuWiFi. Munyori akasarudza yechipiri yacho. Disclaimer: mushanduri haazive kana zvichitenderwa kurerutsa ZigBee nenzira iyi. Zvichida isu tinofanirwa kuita zvishoma hurongwa uye kuishandisa zvizere?
Pamudziyo wekutanga, zvinodikanwa kushandisa finite state muchina unotumira data kuburikidza ne STK500 protocol. Kazhinji, mameseji anofambiswa uye anogashirwa anozvikwanira, asi mamwe akasungirirwa kune ayo akapfuura nepachiteshi kare. Tsanangudzo yenhaurirano inopiwa
Chinhu chakakosha chenhaurirano iyi kufambiswa kwemapaketi anoitirwa kunyorwa kune flash memory yechishandiso chekuenda. Kune ma microcontrollers akareruka emhuri yeAVR, saizi yepeji ndeye 128 bytes, asi kune ATmega128RFA1 ndeye 256. Uye kune flash memory yakabatana kuburikidza neSPI protocol, yakafanana. Iyo purogiramu iri mumudziyo wekutanga, kana uchiisa sketch, haisati ichiendesa kune yechipiri, asi inonyora kune iyi ndangariro. Kana iyo Arduino IDE ichitarisa kurongeka kwekupinda, inotumirwa izvo zvakanyorwa ipapo. Zvino isu tinoda kufambisa iyo yakagamuchirwa data kuburikidza neredhiyo chiteshi kune yechipiri mudziyo. Panguva imwecheteyo, kuchinja kubva pakugamuchira kuenda kune kutumira uye kumashure kunoitika kazhinji. Iyo STK500 protocol haina hanya nekunonoka, asi haibvumiri kurasikirwa kwedata (zvinoshamisa, asi zvakataurwa pamusoro apa kuti kunonoka kunokanganisawo kutumira data). Uye kurasikirwa panguva yekufambisa isina waya hazvidzivisiki. Iyo ATmega128RFA1 ine yakavakirwa-mukati mashandisirwo ekushandisa kwezvikumbiro zvinodzokororwa kana paine kusahadzika nezvekurongeka kwekutamisa, asi munyori akasarudza kuita zvakafanana musoftware pachake. Akagadzira protocol umo data rakawanda rinoyerera nenzira imwe kupfuura imwe.
Haina kukwana, asi inoshanda. Peji ye256-byte yakakamurwa kuita zvikamu zvina, chimwe nechimwe chinofambiswa pamusoro pemhepo sepaketi. Pakiti inogona kubata kusvika 125 bytes yedata pamwe nebhaiti imwe pakureba uye maviri mabhayiti eCRC. Saka zvidimbu 64 byte kureba pamwe nenhamba dzepeji nezvikamu (kubva pa0 kusvika pa3) zvinoiswa ipapo. Iyo yekugamuchira mudziyo ine shanduko inobvumira kuti itarise kuti mangani zvikamu zvakagamuchirwa, uye kana ese mana asvika, mudziyo wekutumira unogamuchira humbowo hwekuti peji rese ragamuchirwa. Hapana tsindidzo (CRC haina kufanana) - tumirazve peji rese. Iyo yekumhanyisa yakatokura kupfuura kana uchitumira netambo. Ona:
Asi kazhinji, zvingave zvakafanira kupa nzira iri nyore yekubatanidza tambo kumidziyo yekuisa sketches uye kuburikidza nayo. Semuenzaniso, isa mukati meiyo interface inoshandura paCP2102, sepamufananidzo, uye namira kubhodhi kuitira kuti igone kumira nesimba paunenge uchibatanidza nekubvisa Micro USB tambo.
Iyo ine zvakare 3,3-volt stabilizer (uye mashandisiro ayo mumudziyo une 6-volt simba rekupa - kana chete iine yakafanana stabilizer, uye iwe unogona kuwedzera madhiodhi maviri kuti uzvisarudzire otomatiki kuti ndeupi wavo achasimbisa mudziyo) . Ese matatu ma LEDs anofanirwa kunge asina kuvharwa kubva kune interface inoshandura bhodhi, zvikasadaro ivo vanozowedzera kutakura mabhatiri kana vachishanda paari, uye zvakare kukanganisa kuvhota kwekhibhodi uye kushanda neflash memory ine SPI interface.
Kutsvaga chinangwa kwakazonyanya kunakidza pane kuzadzisa (uye usade iyo joke nezve bhazi). Munyori akadzidza zvakawanda nezve AVR bootloaders, SPI flash memory, STK500 protocol uye 802.15.4 standard.
Imwe kodhi yese mukuwedzera kuraibhurari yakatsanangurwa pamusoro ndeye -
Source: www.habr.com