Anyị na-ede bootloader OTA maka ATmega128RFA1 (dịka akụkụ nke ngwaọrụ Smart Response XE)

Anyị na-ede bootloader OTA maka ATmega128RFA1 (dịka akụkụ nke ngwaọrụ Smart Response XE)

Ọ malitere site na onye ode akwụkwọ zụtara ngwaọrụ na-adọrọ mmasị na ahịa nke abụọ - Smart Response XE (nkenke nkọwa). Ezubere ya maka ụlọ akwụkwọ: nwa akwụkwọ ọ bụla nọ na klaasị na-enweta ngwaọrụ yiri akwụkwọ ndetu eletrọnịkị ma ọ bụ onye ntụgharị sitere na nineties, onye nkuzi na-ajụ ajụjụ, ụmụ akwụkwọ wee pịnye azịza na bọtịnụ ngwaọrụ, nke a na-enweta site na ọwa redio (802.15.4) gaa na nnata ejikọrọ na PC onye nkuzi.

Akwụsịrị ngwaọrụ ndị a ọtụtụ afọ gara aga, ụlọ akwụkwọ ndị a zụtara maka $100-$200 nke ọ bụla na-agbago ugbu a na eBay maka $10 ma ọ bụ obere. Ngwaike dị ebe ahụ dabara nke ọma maka nnwale geeky:

  • Ahụigodo igodo 60
  • ngosi na mkpebi nke 384 × 136, 2 ibe n'ibe kwa pixel - yiri BC, CGA, ma 4 bụghị agba, ma gradations nke nchapụta.
  • microcontroller ATmega128RFA1 (128 kB flash ebe nchekwa, 4kB ROM, 16 kB RAM, 802.15.4 transceiver)
  • mpụga (n'ihe metụtara microcontroller, ọ bụghị ngwaọrụ dum) 1 megabit (128 kilobyte) flash memory na SPI interface.
  • akụkụ maka 4 AAA ọcha.

Site na aha nke microcontroller o doro anya na ọ bụ nke ezinụlọ AVR, nke pụtara ime ka Arduino-dakọtara na ngwaọrụ bụ ihe karịrị obere ọrụ ...

Site na akụkọ Hackday onye dere ya chọpụtara ihe ọ bụ emelarị (otu njikọ ahụ na-agwa gị ihe ị ga-ejikọta ebe), inwe ohere ịme egwuregwu maka Arduboy:


Ma onye edemede ahụ nwere mmasị karị na ohere ọ bụghị igwu egwu na ngwaọrụ ahụ, mana ịmụ ihe:

  • ebe nchekwa flash nwere serial SPI interface
  • bootloaders maka AVR
  • ọkọlọtọ 802.15.4

Onye edemede malitere site n'ide ọba akwụkwọ (GPL v3), nke na-enye gị ohere ibido ngosi, ederede mmepụta na rectangles, na ịnweta ebe nchekwa SPI. Mgbe ahụ, ọ malitere ịmepụta echiche maka iji ngwaọrụ ahụ eme ihe: VT-100 na-ejikọta akpa akpa, egwuregwu ọtụtụ. N’ịbụ onye wughachiri ngwá ọrụ atọ, o kpebiri ‘ịkụzi’ ha ka ha nata sket “n’elu ikuku.” Kedu ihe ga-abụ ọ bụghị naanị na-adọrọ mmasị, kamakwa ọ dị mma: ikpe ngwaọrụ ahụ siri ike imeghe oge ọ bụla, na n'okpuru mkpuchi batrị nwere naanị oghere na-enye gị ohere ijikọ onye mmemme JTAG na bọọdụ.

Anyị na-ede bootloader OTA maka ATmega128RFA1 (dịka akụkụ nke ngwaọrụ Smart Response XE)

Nke a ezuola iji bulite bootloader Arduino, mana ọbụghị eserese - ejikọtaghị ọdụ ụgbọ mmiri ebe ahụ, yabụ ị ka nwere ike ime na-emegheghị ikpe ahụ. Ọzọkwa, a na-ejikọta ahịrị TX0 na RX0 nke ọdụ ụgbọ mmiri mbụ na ahịrị ntuli aka nke matrix keyboard, ya bụ ndị na-enyocha igodo ọrụ n'akụkụ akụkụ nke ngosi ahụ. Ma gịnị ka ị ga - eme - onye edemede ahụ wuru ihe a:

Anyị na-ede bootloader OTA maka ATmega128RFA1 (dịka akụkụ nke ngwaọrụ Smart Response XE)

O wetara ahịrị JTAG n'ebe ahụ, ma ugbu a ọ dịghị mkpa imeghe oghere batrị. Na ka e wee bulite ihe osise, ejikọtara m ọdụ ụgbọ mmiri abụọ ahụ na otu njikọ ahụ, na-agbakwunyekwa mgba ọkụ, n'ihi na etinyere batrị, ọ gaghị ekwe omume n'ụzọ anụ ahụ gbanyụọ ngwaọrụ ahụ n'ụzọ ọ bụla ọzọ.

Ọ na-ewe ezigbo oge iji ígwè na-agbazinye ihe, mma iji mee ihe na égbè gluu rụọ ọrụ. N'ozuzu, ibugo ihe osise "n'elu ikuku" dị mfe karịa; anyị kwesịrị ịmepụta ihe ngwa ngwa maka nke a.

Arduino IDE na-eji mmemme bulite sket avrdude. Ọ na-emekọrịta ihe na microcontroller site na iji protocol STK500, nke na-enye gị ohere ịnyefe faịlụ n'akụkụ abụọ ahụ. Ọ dabara nke ọma na ọwa ebe mgbanwe igbu oge, mgbagha na mfu data ga-ekwe omume. Ọ bụrụ na ihe na-abịa rụrụ ma ọ bụ rustles na serial ọwa, ị nwere ike na-aga ara na-achọ ihe kpatara ya. Ozugbo onye edemede ahụ tara ahụhụ ruo ọkara otu ụbọchị ruo mgbe ọ ghọtara na nsogbu ahụ bụ eriri na-adịghị mma, yana onye ntụgharị interface CP2102 dị egwu. Ọbụna microcontroller nwere ihe ngbanwe interface arụnyere, dịka ọmụmaatụ, ATmega32u4, nwere ike ime otu a mgbe ụfọdụ. Onye ọrụ Arduino ọ bụla achọpụtala na mmejọ mgbe ị na-ebugo eserese adịghị ụkọ. Mgbe ụfọdụ ndekọ na-aga nke ọma, mana n'oge ule, achọpụtara njehie. Nke a apụtaghị na enwere njehie n'oge ederede - enwere ọdịda n'oge ọgụgụ. Ugbu a, were ya na mgbe ị na-arụ ọrụ "n'elu ikuku" otu ihe ahụ ga-eme, ma ọtụtụ mgbe.

Mgbe ọ gbasịrị ụzọ dị iche iche iji merie nsogbu a, odee wepụta ihe ndị a. Ngwaọrụ nwere ebe nchekwa flash 128 KB nwere interface SPI - anyị na-enweta data n'elu wires (cheta na onye ode akwụkwọ enweelarị otu ngwaọrụ nwere njikọ n'akụkụ), jiri ebe nchekwa a dị ka ihe nchekwa, wee ziga data na redio. ọwa na ngwaọrụ ọzọ. Ndewo si Cybiko.

Mgbe ịdechara koodu ahụ iji rụọ ọrụ na ọwa redio, yana font ahụ, onye na-ebu ibu dị ogologo karịa 4 kilobytes. Ya mere, a ga-agbanwe uru HFUSE site na 0xDA gaa na 0xD8. Ugbu a bootloader nwere ike ruo 8 kilobytes ogologo, na adreesị mmalite bụ ugbu a 0x1E000. Nke a na-egosipụta na Makefile, mana ekwesịrị iburu n'uche mgbe ị na-ejuputa bootloader via avrdude.

802.15.4 transceiver na ATmega128RFA1 ka emebere iji rụọ ọrụ site na iji protocol. Zigbee, nke bụ nnọọ mgbagwoju anya, ya mere odee kpebiri dị nnọọ nyefee ngwugwu kama. Emebere nke a na ngwaike na ATmega128RFA1, yabụ achọrọ obere koodu. Ọzọkwa, maka ịdị mfe, onye edemede ahụ kpebiri iji ọwa edozi, ghara ikwe ka ị họrọ ya ọbụna na aka. Standardkpụrụ 802.15.4 na-akwado ọwa 16 nwere ọnụọgụ sitere na 11 ruo 26. Ha juru eju, ụfọdụ na-agbakọkwa ọwa WiFi (acha ọbara ọbara bụ ọwa ZigBee, blue, green na odo bụ WiFi).

Anyị na-ede bootloader OTA maka ATmega128RFA1 (dịka akụkụ nke ngwaọrụ Smart Response XE)

Ọ tụgharịrị na ọwa 15 na 26 dịkarịsịrị mfe na nnyonye anya site na WiFi. Disclaimer: onye ntụgharị amaghị ma ekwere ya ka ọ dị mfe ZigBee otu a. Ma eleghị anya, anyị kwesịrị ime ntakịrị mmemme ma mejuputa ya kpamkpam?

Na ngwaọrụ mbụ, ọ dị mkpa iji mejuputa igwe steeti nwere njedebe nke na-ebufe data site na protocol STK500. N'ọtụtụ akụkụ, ozi ndị a na-ebuga ma nata bụ nke zuru oke, mana ụfọdụ na-ejikọta na ndị gafere na ọwa mbụ. Enyere nkọwa nke mkparịta ụka ebe a.

Otu ihe dị mkpa na mkparịta ụka a bụ nnyefe nke ngwugwu echere ka edee ya na ebe nchekwa flash nke ngwaọrụ ebe aga. Maka ndị na-ahụ maka microcontrollers dị mfe nke ezinụlọ AVR, nha ibe ya bụ 128 bytes, mana maka ATmega128RFA1 ọ bụ 256. Na maka ebe nchekwa flash nke ejikọrọ site na protocol SPI, ọ bụ otu ihe ahụ. Ihe omume dị na ngwaọrụ mbụ, mgbe ị na-ebugo eserese, anaghị ebufe ya ozugbo na nke abụọ, ma dee ya na ebe nchekwa a. Mgbe Arduino IDE na-enyocha izi ezi nke ntinye, a na-ezigara ya ihe edere ebe ahụ. Ugbu a, anyị kwesịrị ịnyefe data natara site na ọwa redio na ngwaọrụ nke abụọ. N'otu oge ahụ, ịgbanwee site na ịnata gaa na mbufe na azụ na-apụtakarị. Usoro STK500 enweghị mmasị na igbu oge, mana ọ naghị anabata ọnwụ data (iche, mana ekwuru n'elu na igbu oge na-emetụtakwa nnyefe data). Na mfu n'oge ikuku ikuku bụ ihe a na-apụghị izere ezere. The ATmega128RFA1 nwere arụnyere na ngwaike mmejuputa iwu nke ugboro ugboro arịrịọ mgbe e nwere obi abụọ banyere izi ezi nke nyefe, ma onye edemede kpebiri mejuputa otu na software n'onwe ya. Ọ mepụtara protocol nke ọtụtụ data na-aga n'otu ụzọ karịa nke ọzọ.

O zughị oke, mana ọ na-arụ ọrụ. A na-ekewa ibe 256-byte n'ime akụkụ anọ, nke ọ bụla na-ebufe n'ikuku dị ka ngwugwu. Otu ngwugwu nwere ike ijide data ruru 125 bytes gbakwunyere otu byte maka ogologo yana bytes abụọ maka CRC. Ya mere, a na-edobe iberibe 64 bytes ogologo yana ibe na nọmba akụkụ (site na 0 ruo 3) n'ebe ahụ. Ngwaọrụ na-anata nwere mgbanwe nke na-enye ya ohere iji soro akụkụ ole enwetara, na mgbe anọ ahụ rutere, ngwaọrụ izipu na-enweta nkwenye na enwetala ibe niile. Enweghị nkwenye (CRC adabaghị) - zigaghachi ibe ahụ dum. Ọsọ dị ọbụna karịa mgbe a na-ebufe site na eriri. Lee:


Ma n'ozuzu, ọ ga-adị mkpa ịnye ụzọ dị mma iji jikọọ eriri na ngwaọrụ maka ibugo ihe osise na site na ya. Dịka ọmụmaatụ, tinye n'ime ihe ntụgharị ihe dị otú ahụ na CP2102, dị ka ọ dị na foto ahụ, ma gbakwunye ya na bọọdụ ka o wee nwee ike idi ike mgbe ị na-ejikọta ma na-ewepụ eriri USB Micro.

Anyị na-ede bootloader OTA maka ATmega128RFA1 (dịka akụkụ nke ngwaọrụ Smart Response XE)

Ọ nwekwara 3,3-volt stabilizer (na otu esi eji ya na ngwaọrụ nwere ọkụ ọkụ 6-volt - ma ọ bụrụ na ọ nwere otu stabilizer, ma ị nwere ike itinye diode abụọ iji họrọ onye n'ime ha ga-agbanye ngwaọrụ ahụ na-akpaghị aka) . A ga-ewepụrịrị LED atọ niile site na bọọdụ ntụgharị interface, ma ọ bụghị ya, ha ga-ebunye batrị ahụ mgbe ha na-arụ ọrụ na ha, ma na-egbochi ntuli aka keyboard wee jiri ebe nchekwa ọkụ na-arụ ọrụ na interface SPI.

Ịchụso ihe mgbaru ọsọ tụgharịrị bụrụ ihe na-adọrọ mmasị karịa imezu ya (ma ọ dịghị mkpa egwuregwu ahụ gbasara ụgbọ ala). Onye ode akwụkwọ mụtara ọtụtụ ihe gbasara ndị na-ebu AVR, ebe nchekwa flash SPI, protocol STK500 na ọkọlọtọ 802.15.4.

Koodu ndị ọzọ na mgbakwunye na ọbaakwụkwọ akọwara n'elu bụ - ebe a, ma ọ dịkwa n'okpuru GPL v3. Twitter onye odee - ebe a.

isi: www.habr.com

Tinye a comment