Thòisich seo uile leis an ùghdar a’ ceannach inneal inntinneach air a’ mhargaidh àrd-sgoile - Smart Response XE (
Chaidh stad a chuir air na h-innealan sin grunn bhliadhnaichean air ais, agus tha na cheannaich sgoiltean airson $ 100- $ 200 gach ceann a-nis a’ nochdadh air eBay airson $ 10 no nas lugha. Tha am bathar-cruaidh an sin gu math freagarrach airson deuchainnean geeky:
- 60 meur-chlàr prìomh
- taisbeanadh le rùn de 384 × 136, 2 pìosan gach piogsail - coltach ri BC, CGA, ach 4 chan e dathan, ach ìrean de shoilleireachd
- microcontroller ATmega128RFA1 (cuimhne flash 128 kB, 4 kB ROM, 16 kB RAM, transceiver 802.15.4)
- taobh a-muigh (a thaobh am microcontroller, chan e an inneal gu lèir) cuimhne flash 1 megabit (128 kilobyte) le eadar-aghaidh SPI
- roinn airson 4 eileamaidean AAA.
Bho ainm an microcontroller tha e soilleir gur ann leis an teaghlach AVR a tha e, a tha a’ ciallachadh gu bheil an inneal a tha co-chosmhail ri Arduino na obair nas lugha na rud beag.
Bho na naidheachdan air adhart
Ach tha barrachd ùidh aig an ùghdar anns a’ chothrom gun a bhith a’ cluich air an inneal, ach a bhith ag ionnsachadh:
- cuimhne flash le eadar-aghaidh sreathach SPI
- Luchdaich a-nuas draibhearan airson AVR
- ìre 802.15.4
Thòisich an t-ùghdar le sgrìobhadh
Tha seo gu leòr airson an bootloader Arduino a luchdachadh suas, ach chan e an sgeidse - chan eil am port sreathach ceangailte an sin, agus mar sin chan urrainn dhut a dhèanamh fhathast gun a ’chùis fhosgladh. Cuideachd, tha na loidhnichean TX0 agus RX0 den chiad phort sreathach air an cur còmhla ri loidhnichean bhòtaidh matrix a ’mheur-chlàr, is e sin an fheadhainn a bhios a’ sgrùdadh na h-iuchraichean gnìomh air taobhan an taisbeanaidh. Ach dè as urrainn dhut a dhèanamh - thog an t-ùghdar seo:
Thug e na loidhnichean JTAG an sin, agus a-nis chan eil feum air an roinn bataraidh fhosgladh. Agus gus an gabhadh sgeidsichean a luchdachadh suas, cheangail mi an dà phort sreathach ris an aon cheangail, cuideachd a’ cur suidse ris, oir leis na bataraidhean air an cur a-steach, tha e do-dhèanta gu corporra an inneal a chuir dheth ann an dòigh sam bith eile.
Thug e beagan ùine a bhith ag obair le iarann soldering, sgian goireasach agus gunna glaodh. San fharsaingeachd, tha e tòrr nas goireasaiche sgeidsichean a luchdachadh suas “thairis air an èadhar”; feumaidh sinn gu h-èiginneach rudeigin a chruthachadh airson seo.
Bidh Arduino IDE a’ cleachdadh a’ phrògram airson sgeidsichean a luchdachadh suas
Às deidh dha diofar dhòighean fheuchainn gus faighinn seachad air an duilgheadas seo, thàinig an t-ùghdar suas leis na leanas. Tha cuimhne flash 128 KB aig an inneal le eadar-aghaidh SPI - gheibh sinn dàta thairis air na uèirichean (cuimhnich gu bheil aon inneal aig an ùghdar mu thràth le ceanglaiche air an taobh), cleachd a’ chuimhne seo mar bufair, agus cuir an dàta thairis air an rèidio sianal gu inneal eile. Halo bho Cybiko.
Às deidh dhut an còd a sgrìobhadh gus obrachadh leis an t-sianal rèidio, a bharrachd air a ’chruth-clò, dh’ fhàs an luchdan nas fhaide na 4 kilobytes. Mar sin, dh'fheumadh luach HFUSE atharrachadh bho 0xDA gu 0xD8. A-nis faodaidh an bootloader a bhith suas ri 8 kilobytes a dh'fhaid, agus tha an seòladh tòiseachaidh a-nis 0x1E000. Tha seo ri fhaicinn anns an Makefile, ach bu chòir aire a thoirt dha cuideachd nuair a bhios tu a’ lìonadh
Tha an transceiver 802.15.4 anns an ATmega128RFA1 air a dhealbhadh an toiseach gus obrachadh a ’cleachdadh a’ phròtacal
Thionndaidh e a-mach gur e seanalan 15 agus 26 as lugha a tha buailteach do bhriseadh bho WiFi.Thagh an t-ùghdar an dàrna fear dhiubh. Àicheadh: chan eil fios aig an eadar-theangair a bheil e ceadaichte ZigBee a dhèanamh nas sìmplidhe mar seo. Is dòcha gum bu chòir dhuinn beagan a bharrachd phrògraman a dhèanamh agus a chuir an gnìomh gu tur?
Air a ’chiad inneal, feumar inneal stàite crìochnaichte a chuir an gnìomh a bhios a’ sgaoileadh dàta tron phròtacal STK500. Airson a 'mhòr-chuid, tha na teachdaireachdan a chaidh a ghluasad agus a fhuair iad fèin-sheasmhach, ach tha cuid dhiubh ceangailte ris an fheadhainn a chaidh tron t-sianal na bu tràithe. Tha tuairisgeul air a’ chòmhradh air a thoirt seachad
Is e pàirt chudromach den chòmhradh seo sgaoileadh phasganan a thathar an dùil a sgrìobhadh gu cuimhne flash an inneal ceann-uidhe. Airson microcontrollers sìmplidh den teaghlach AVR, is e meud na duilleige 128 bytes, ach airson an ATmega128RFA1 is e 256 a th ’ann. Agus airson a’ chuimhne flash a tha ceangailte tron phròtacal SPI, tha e mar an ceudna. Chan eil am prògram anns a 'chiad inneal, nuair a bhios tu a' luchdachadh suas sgeidse, ga ghluasad chun dàrna fear, ach ga sgrìobhadh chun chuimhne seo. Nuair a nì an Arduino IDE sgrùdadh air ceartachd an inntrig, thèid na chaidh a sgrìobhadh an sin a chuir a-steach. A-nis feumaidh sinn an dàta a gheibhear tro sianal rèidio a chuir chun dàrna inneal. Aig an aon àm, bidh atharrachadh bho bhith a’ faighinn gu tar-chuir agus air ais a’ tachairt gu math tric. Tha protocol STK500 gun samhail mu dàil, ach chan eil e a’ gabhail ri call dàta (neònach, ach chaidh a ràdh gu h-àrd gu bheil dàil cuideachd a’ toirt buaidh air gluasad dàta). Agus tha call aig àm tar-chuir gun uèir do-sheachanta. Tha an ATmega128RFA1 air a chuir an sàs ann am bathar-cruaidh de dh’ iarrtasan a-rithist nuair a tha teagamhan ann mu cheartachd a’ ghluasaid, ach cho-dhùin an t-ùghdar an aon rud a chuir an gnìomh ann am bathar-bog e fhèin. Leasaich e protocol anns am bi tòrr a bharrachd dàta a’ sruthadh aon dòigh na dòigh eile.
Chan eil e foirfe, ach tha e ag obair. Tha an duilleag 256-byte air a roinn ann an ceithir earrannan, agus tha gach fear dhiubh air a ghluasad thairis air an èadhar mar phacaid. Gabhaidh pacaid suas ri 125 byte de dhàta agus aon byte fad is dà byte airson CRC. Mar sin tha pìosan 64 bytes a dh'fhaid còmhla ri àireamhan duilleag agus earrann (bho 0 gu 3) air an cur ann. Tha caochladair aig an inneal faighinn a leigeas leis sùil a chumail air cia mheud earrann a fhuaireadh, agus nuair a ruigeas na ceithir, gheibh an inneal cur dearbhadh gun d’ fhuaireadh an duilleag gu lèir. Gun dearbhadh (cha robh CRC co-ionnan) - ath-chuir an duilleag gu lèir. Tha an astar eadhon nas àirde na nuair a thèid a chuir tro chàball. Faic:
Ach san fharsaingeachd, bhiodh e riatanach dòigh goireasach a thoirt seachad gus an càball a cheangal ris na h-innealan airson sgeidsichean a luchdachadh suas agus troimhe. Mar eisimpleir, cuir taobh a-staigh inneal-tionndaidh eadar-aghaidh mar sin air an CP2102, mar a tha san dealbh, agus glaodh e chun bhòrd gus an urrainn dha seasamh an aghaidh an fhorsa nuair a bhios tu a ’ceangal agus a’ dì-cheangal a ’chàball Micro USB.
Tha stàball 3,3-bholta aige cuideachd (agus mar a chleachdas tu e ann an inneal le solar cumhachd 6-bholta - mura h-eil ach an aon stàball aige, agus faodaidh tu dà diodes a chuir ris gus taghadh gu fèin-ghluasadach cò dhiubh a bheir cumhachd don inneal) . Feumaidh na trì LEDan a bhith gun reic bhon bhòrd tionndaidh eadar-aghaidh, air neo bidh iad cuideachd a’ luchdachadh na bataraidhean nuair a bhios iad ag obair orra, agus cuideachd a’ cur bacadh air bhòtadh meur-chlàr agus ag obair le cuimhne flash le eadar-aghaidh SPI.
Bha e eadhon nas inntinniche tadhal a dhèanamh na bhith ga choileanadh (agus chan eil feum air an fhealla-dhà sin mun bhus). Dh’ ionnsaich an t-ùghdar tòrr mu luchdan boot AVR, cuimhne flash SPI, protocol STK500 agus an inbhe 802.15.4.
Is e a h-uile còd eile a bharrachd air an leabharlann a tha air a mhìneachadh gu h-àrd -
Source: www.habr.com