Thosaigh sé ar fad nuair a cheannaigh an t-údar feiste suimiúil ar an margadh tánaisteach - Smart Response XE (
Cuireadh deireadh leis na gléasanna seo roinnt blianta ó shin, agus tá an méid a cheannaigh scoileanna ar $100-$200 an ceann ag dul suas ar eBay anois ar $10 nó níos lú. Tá na crua-earraí ann an-oiriúnach le haghaidh turgnaimh geeky:
- 60 eochair méarchlár
- taispeáint le taifeach 384×136, 2 ghiotán in aghaidh an picteilín - cosúil le BC, CGA, ach 4 ní dathanna, ach gráduithe gile
- microcontroller ATmega128RFA1 (cuimhne flash 128 kB, 4 kB ROM, 16 kB RAM, trasghlacadóir 802.15.4)
- seachtrach (maidir leis an micrea-rialtóir, ní an gléas iomlán) cuimhne flash 1 meigeavata (128 cilibheart) le comhéadan SPI
- urrann le haghaidh 4 eilimint AAA.
Ó ainm an microcontroller tá sé soiléir go mbaineann sé leis an teaghlach AVR, rud a chiallaíonn go bhfuil an gléas Arduino-comhoiriúnach ina thasc níos mó ná fánach ...
Ón nuacht ar aghaidh
Ach tá níos mó suim ag an údar sa deis gan imirt ar an bhfeiste, ach staidéar a dhéanamh ar:
- cuimhne flash le comhéadan SPI sraitheach
- Íosluchtaigh tosaitheoir do AVR
- 802.15.4 caighdeánach
Thosaigh an t-údar ag scríobh
Tá sé seo go leor chun an bootloader Arduino a uaslódáil, ach níl an sceitse - níl an port srathach ceangailte ann, mar sin ní féidir leat a dhéanamh fós gan an cás a oscailt. Chomh maith leis sin, déantar na línte TX0 agus RX0 den chéad phort sraitheach a chomhcheangal le línte vótaíochta an mhaitrís méarchláir, is iad sin iad siúd a dhéanann vótaíocht ar na heochracha feidhme ar thaobh an taispeántais. Ach cad is féidir leat a dhéanamh - thóg an t-údar é seo:
Thug sé na línte JTAG ann, agus anois níl aon ghá leis an urrann ceallraí a oscailt. Agus ionas go bhféadfaí sceitsí a uaslódáil, cheangail mé an dá phort sraitheach leis an gcónascaire céanna, ag cur lasc leis freisin, mar gheall ar na cadhnraí a shuiteáil, tá sé dodhéanta go fisiciúil an gléas a mhúchadh ar aon bhealach eile.
Thóg sé roinnt mhaith ama a bheith ag obair le iarann sádrála, scian fóntais agus gunna gliú. Go ginearálta, tá sé i bhfad níos áisiúla sceitsí a uaslódáil “thar an aer” ní mór dúinn go práinneach rud éigin a chumadh chuige seo.
Úsáideann Arduino IDE an clár chun sceitsí a uaslódáil
Tar éis dó bealaí éagsúla a thriail chun an fhadhb seo a shárú, tháinig an t-údar suas leis na nithe seo a leanas. Tá cuimhne flash 128 KB ag an bhfeiste le comhéadan SPI - faighimid sonraí thar na sreanga (cuimhnigh go bhfuil gléas amháin ag an údar cheana féin le cónascaire ar an taobh), bain úsáid as an gcuimhne seo mar mhaolán, agus seol na sonraí thar an raidió cainéal chuig gléas eile. Dia duit ó Cybiko.
Tar éis an cód a scríobh chun oibriú leis an gcainéal raidió, chomh maith leis an gcló, tháinig an lódóir níos faide ná 4 cilibheart. Mar sin, b'éigean luach HFUSE a athrú ó 0xDA go 0xD8. Anois is féidir leis an bootloader a bheith suas le 8 kilobytes ar fad, agus is é an seoladh tosaigh anois 0x1E000. Léirítear é seo sa Makefile, ach ba cheart é a chur san áireamh freisin agus é á líonadh
Tá an transceiver 802.15.4 san ATmega128RFA1 deartha ar dtús chun oibriú ag baint úsáide as an bprótacal
Iompaigh sé amach go bhfuil bealaí 15 agus 26 a laghad so-ghabhálach do chur isteach ó wifi Roghnaigh an t-údar an dara ceann acu. Séanadh: níl a fhios ag an aistritheoir an bhfuil sé ceadaithe ZigBee a shimpliú ar an mbealach seo. B'fhéidir gur cheart dúinn beagán níos mó ríomhchlárúcháin a dhéanamh agus é a chur i bhfeidhm go hiomlán?
Ar an gcéad fheiste, is gá meaisín stáit chríochnaithe a chur i bhfeidhm a tharchuireann sonraí tríd an bprótacal STK500. Den chuid is mó, tá na teachtaireachtaí a tharchuirtear agus a fhaightear féin-leordhóthanach, ach tá cuid acu ceangailte leo siúd a chuaigh tríd an gcainéal níos luaithe. Tugtar cur síos ar an agallamh
Comhpháirt thábhachtach den idirphlé seo is ea tarchur paicéid a bheartaítear a scríobh chuig splancchuimhne an ghléis sprice. I gcás microcontrollers simplí den teaghlach AVR, is é 128 bytes méid an leathanaigh, ach don ATmega128RFA1 tá sé 256. Agus maidir leis an gcuimhne flash atá ceangailte tríd an bprótacal SPI, tá sé mar an gcéanna. Ní aistríonn an clár sa chéad fheiste, nuair a bhíonn sceitse á uaslódáil, láithreach go dtí an dara ceann é, ach scríobhann sé chuig an gcuimhne seo é. Nuair a sheiceálann an Arduino IDE cruinneas na hiontrála, seoltar an méid a scríobhadh ann. Anois ní mór dúinn na sonraí a fuarthas a tharchur trí chainéal raidió chuig an dara gléas. Ag an am céanna, tarlaíonn aistriú ó fháil go tarchur agus ar ais go minic. Níl an prótacal STK500 neamhleor maidir le moill, ach ní fhulaingt sé caillteanas sonraí (aisteach, ach dúradh thuas go gcuireann moilleanna isteach ar aistriú sonraí freisin). Agus tá caillteanais le linn tarchur gan sreang dosheachanta. Tá cur i bhfeidhm crua-earraí tógtha ag an ATmega128RFA1 ar iarratais arís agus arís eile nuair a bhíonn amhras ann faoi cheartacht an aistrithe, ach chinn an t-údar an rud céanna a chur i bhfeidhm i mbogearraí é féin. D'fhorbair sé prótacal ina sreabhann i bhfad níos mó sonraí bealach amháin ná an bealach eile.
Níl sé foirfe, ach oibríonn sé. Tá an leathanach 256-beart roinnte ina cheithre mhír, gach ceann acu a tharchur thar an aer mar phaicéad. Féadfaidh suas le 125 beart sonraí a bheith i bpaicéad móide beart amháin ar fhad agus dhá bheart don CRC. Mar sin cuirtear blúirí 64 beart ar fhad chomh maith le huimhreacha leathanaigh agus deighleoga (ó 0 go 3) ann. Tá athróg ag an ngléas glactha a ligeann dó cé mhéad deighleog a fuarthas a rianú, agus nuair a thagann na ceithre cinn, faigheann an gléas seolta deimhniú go bhfuil an leathanach iomlán faighte. Gan deimhniú (ní raibh an CRC ag teacht leis) - seol an leathanach iomlán arís. Tá an luas níos mó fós ná nuair a tharchur trí chábla. Féach:
Ach go ginearálta, bheadh sé riachtanach bealach áisiúil a sholáthar chun an cábla a nascadh leis na feistí le haghaidh sceitsí a uaslódáil agus tríd. Mar shampla, cuir taobh istigh den tiontaire comhéadan den sórt sin ar an CP2102, mar atá sa ghrianghraf, agus gliú é chuig an mbord ionas gur féidir leis an fórsa a sheasamh nuair a bhíonn an cábla Micrimhilseogra USB á nascadh agus á dhícheangal.
Tá cobhsaitheoir 3,3-bholta aige freisin (agus conas é a úsáid i bhfeiste le soláthar cumhachta 6-bholta - mura bhfuil ach an cobhsaitheoir céanna aige, agus is féidir leat dhá dhé-óid a chur leis chun a roghnú go huathoibríoch cé acu díobh a chumhachtóidh an gléas) . Ní mór na trí stiúir a bheith gan díol ón mbord tiontaire comhéadan, ar shlí eile déanfaidh siad na cadhnraí a luchtú freisin agus iad ag feidhmiú orthu, agus cuirfidh siad isteach ar vótaíocht méarchláir agus ag obair le cuimhne flash le comhéadan SPI.
Bhí sé níos suimiúla fós sprioc a bhaint amach ná é a bhaint amach (agus ní gá an magadh sin faoin mbus). D'fhoghlaim an t-údar go leor faoi bootloaders AVR, cuimhne flash SPI, prótacal STK500 agus an caighdeán 802.15.4.
Is é seo a leanas gach cód eile de bhreis ar an leabharlann a bhfuil cur síos déanta uirthi thuas -
Foinse: will.com