O loʻo matou tusia se OTA bootloader mo ATmega128RFA1 (o se vaega o le Smart Response XE masini)

O loʻo matou tusia se OTA bootloader mo ATmega128RFA1 (o se vaega o le Smart Response XE masini)

Na amata uma i le faʻatau e le tusitala o se masini manaia i luga o le maketi lona lua - Smart Response XE (faamatalaga puʻupuʻu). Ua fuafuaina mo aʻoga: e maua e tamaiti taʻitoʻatasi i le vasega se masini e pei o se api eletonika poʻo se faaliliu mai le nineties, e fai e le faiaoga se fesili, ma taina e tamaiti aʻoga tali i luga o piano o masini, lea e maua e ala i se alaleo leitio (802.15.4) i se tali e fesootai i le PC a le faiaoga.

O nei masini na fa'agata i le tele o tausaga ua mavae, ma o a'oga na fa'atauina mo le $100-$200 ta'itasi ua fa'asolo nei i luga ole eBay mo le $10 pe itiiti. O meafaigaluega iina e fetaui lelei mo suʻega geeky:

  • 60 ki keyboard
  • faʻaalia ma se iugafono o le 384 × 136, 2 bits i pika - tutusa ma BC, CGA, ae le 4 lanu, ae faʻavasegaina o le susulu
  • microcontroller ATmega128RFA1 (128 kB flash memory, 4 kB ROM, 16 kB RAM, 802.15.4 transceiver)
  • fafo (faʻatatau i le microcontroller, ae le o le masini atoa) 1 megabit (128 kilobyte) flash memory with SPI interface
  • vaega mo 4 elemene AAA.

Mai le igoa o le microcontroller e manino lava o le aiga AVR, o lona uiga o le faia o le masini Arduino-compatible o se galuega e sili atu nai lo le taua ...

Mai tala fou Hackaday na iloa e le tusitala le mea ua uma ona fai (o le sootaga lava e tasi e taʻu atu ia te oe le mea e faʻafesoʻotaʻi i fea), maua le avanoa e taʻalo ai taʻaloga mo Arduboy:


Ae e sili atu le fiafia o le tusitala i le avanoa e le taalo i luga o le masini, ae ia suesue:

  • manatuaga moli ma le SPI fa'asologa
  • bootloaders mo AVR
  • tulaga 802.15.4

Na amata e le tusitala i le tusitusi faletusi (GPL v3), lea e mafai ai ona e fa'amataina le fa'aaliga, tusitusiga ma fa'ailoga fa'afa'afa'afa, ma fa'aogaina le SPI flash memory. Ona amata loa lea ona ia sau ma manatu mo le faʻaaogaina o le masini: o le VT-100-compatible pocket terminal, taʻaloga multiplayer. I le toe fausia o ni masini se tolu, na ia filifili ai e "aʻoaʻo" i latou i le mauaina o ata "i luga o le ea." O le a le mea e le gata ina manaia, ae e matua faigofie foi: o le masini masini e faigata ona tatala i taimi uma, ma i lalo o le ufiufi o le maa o loʻo i ai na o pu e mafai ai ona e faʻafesoʻotaʻi se JTAG programmer i le laupapa.

O loʻo matou tusia se OTA bootloader mo ATmega128RFA1 (o se vaega o le Smart Response XE masini)

Ua lava lea e faʻapipiʻi ai le Arduino bootloader, ae le o le ata - e le o fesoʻotaʻi le laina telefoni iina, o lea e le mafai lava ona e faia e aunoa ma le tatalaina o le mataupu. E le gata i lea, o laina TX0 ma RX0 o le laina telefoni muamua e tuʻufaʻatasia ma laina palota o le keyboard matrix, e taʻua o latou e palota ki galuega i itu o le faʻaaliga. Ae o le a se mea e mafai ona e faia - na fausia e le tusitala lenei:

O loʻo matou tusia se OTA bootloader mo ATmega128RFA1 (o se vaega o le Smart Response XE masini)

Na ia aumaia laina JTAG iina, ma o lea e le manaʻomia le tatalaina o le vaega o le maa. Ma ina ia mafai ona faʻapipiʻiina ata, na ou faʻafesoʻotaʻi uma laina laina i le fesoʻotaʻiga tutusa, faʻaopoopoina foi se ki, aua faʻatasi ma maa faʻapipiʻi, e le mafai e le tino ona tape le masini i se isi lava auala.

Na umi se taimi e galue ai ma se u'amea fa'amau, se naifi aoga ma se fana kelu. I se tulaga lautele, o le faʻapipiʻiina o ata "i luga o le ea" e sili atu ona faigofie; matou te manaʻomia vave ona fai se mea mo lenei mea.

Arduino IDE fa'aoga le polokalame e fa'apipi'i ata avrdude. E fegalegaleai ma le microcontroller e faʻaaoga ai le protocol STK500, lea e mafai ai ona e fesiitai faila i itu uma e lua. E le lelei le fetaui ma alalaupapa lea e mafai ona fesuia'i le tuai, fa'alavelave ma leiloa fa'amaumauga. Afai ei ai se mea e matala pe gesles i le laina laina, e mafai ona e valea e suʻe le mafuaʻaga. O le taimi lava na mafatia ai le tusitala mo le afa aso seia oʻo ina ia iloa o le faʻafitauli o se uaea leaga, faʻapea foʻi ma se suiga faʻafesoʻotaʻi CP2102. E oʻo lava i se microcontroller ma se faʻaliliuga faʻapipiʻiina, mo se faʻataʻitaʻiga, ATmega32u4, e mafai i nisi taimi ona faʻapea. O tagata Arduino uma na latou matauina o mea sese pe a lafoina ata tusi e le seasea. O nisi taimi e lelei le pu'eina, ae i le taimi o le su'ega faitau e iloa ai se mea sese. E le faapea na i ai se mea sese i le taimi o le tusitusi - sa i ai se faaletonu a o faitau. Ia mafaufau nei pe a galue "i luga o le ea" o le mea lava e tasi o le a tupu, ae sili atu ona tele.

Ina ua uma ona taumafai auala eseese e foia ai lenei faafitauli, na sau ai le tusitala ma mea nei. O le masini e iai le 128 KB flash memory ma le SPI interface - matou te mauaina faʻamatalaga i luga o uaea (manatua o le tusitala ua uma ona i ai se masini e tasi ma se fesoʻotaʻiga i le itu), faʻaaoga lenei manatua e fai ma paʻu, ma auina atu faʻamatalaga i luga o le leitio. alavai i se isi masini. Talofa mai Cybiko.

Ina ua uma ona tusia le code e galue ai ma le alaleo leitio, faapea foi ma le vai, o le loader na umi atu nai lo le 4 kilobytes. O le mea lea, o le tau o le HFUSE e tatau ona suia mai le 0xDA i le 0xD8. O le taimi nei o le bootloader e mafai ona oʻo atu i le 8 kilobytes le umi, ma o le tuatusi amata o le 0x1E000 nei. O loʻo faʻaalia i le Makefile, ae tatau foi ona amanaia pe a faʻatumu uta uta e ala i avrdude.

O le 802.15.4 transceiver i le ATmega128RFA1 na muai fuafuaina e faʻaogaina le faʻaogaina o le protocol. Zigbee, lea e fai si lavelave, o lea na filifili ai le tusitala e naʻo le lafoina o afifi nai lo. O loʻo faʻatinoina lenei mea i meafaigaluega i le ATmega128RFA1, o lea e manaʻomia ai se tulafono laiti. E le gata i lea, mo le faigofie, na filifili le tusitala e faʻaaoga se auala faʻamautu, e le faʻatagaina oe e filifili e oʻo lava i le lima. O le tulaga 802.15.4 e lagolagoina laina 16 ma numera mai le 11 i le 26. E fai si tumutumu, o nisi foi o loʻo faʻapipiʻi laina WiFi (lanu mumu o ZigBee, lanumoana, lanumeamata ma samasama o WiFi).

O loʻo matou tusia se OTA bootloader mo ATmega128RFA1 (o se vaega o le Smart Response XE masini)

Na aliali mai o alalaupapa 15 ma le 26 e sili ona faigofie i le faʻalavelave mai le WiFi. Na filifilia e le tusitala le lona lua o latou. Fa'asalaga: e le iloa e le fa'aliliu pe fa'ataga e fa'afaigofie le ZigBee i lenei auala. Masalo e tatau ona tatou faia sina polokalame sili atu ma faʻatino atoatoa?

I luga o le masini muamua, e manaʻomia le faʻatinoina o se masini faʻapitoa e tuʻuina atu faʻamatalaga e ala i le STK500 protocol. Mo le tele o vaega, o feʻau e tuʻuina atu ma mauaina e lava na o ia lava, ae o nisi o loʻo noatia i latou na pasia muamua i le alalaupapa. Fa'amatalaga o le talanoaga ua tu'uina atu iinei.

O se vaega taua o lenei fa'atalanoaga o le fa'asalalauina lea o fa'ailoga e fa'amoemoe e tusia i le manatuaga moli o le masini e alu i ai. Mo microcontrollers faigofie o le aiga AVR, o le laupepa o le 128 bytes, ae mo le ATmega128RFA1 o le 256. Ma mo le flash memory lea e fesoʻotaʻi e ala i le SPI protocol, e tutusa lava. O le polokalame i le masini muamua, pe a tuʻuina atu se ata, e le vave faʻafeiloaʻi i le lona lua, ae tusi i lenei manatua. A siaki e le Arduino IDE le saʻo o le faʻamatalaga, e tuʻuina atu mea na tusia iina. Ole taimi nei e mana'omia le tu'uina atu o fa'amatalaga na maua e ala ile leitio ile masini lona lua. I le taimi lava e tasi, o le fesuiaʻi mai le mauaina i le faʻasalalau ma le toe foʻi e tupu soo. O le STK500 protocol e le fiafia i le tolopoina, ae e le taliaina le leiloa o faʻamaumauga (ese, ae na taʻua i luga o le tuai e aʻafia ai faʻamatalaga). Ma o tupe leiloa i le taimi o fesoʻotaʻiga uaealesi e le maalofia. O le ATmega128RFA1 o loʻo i ai se faʻaogaina o meafaigaluega faʻapipiʻi o talosaga faifaipea pe a iai ni masalosaloga e uiga i le saʻo o le fesiitaiga, ae na filifili le tusitala e faʻatino tutusa i totonu o le polokalama lava ia. Na ia fausia se faʻasalalauga lea e tele atu faʻamatalaga e tafe i le tasi auala nai lo le isi.

E le atoatoa, ae e aoga. O le itulau 256-byte ua vaevaeina i ni vaega se fa, o ia mea taitasi e tuʻuina atu i luga o le ea o se afifi. E mafai e se pepa ona fa'amauina le 125 paita o fa'amaumauga fa'atasi ai ma le tasi paita mo le umi ma le lua paita mo le CRC. O lea la, o vaega 64 paita le umi ma itulau ma numera vaega (mai le 0 i le 3) o loʻo tuʻuina iina. O le masini e maua ai ei ai se fesuiaiga e mafai ai ona siaki le tele o vaega na maua, ma a oʻo mai uma e fa, e maua e le masini lafo le faʻamaoniga o le itulau atoa ua maua. Leai se fa'amaoniga (CRC e le'i fetaui) - toe lafo le itulau atoa. O le saosaoa e sili atu nai lo le felauaiga e ala i le uaea. Va'ai:


Ae i se tulaga lautele, e tatau ona tuʻuina atu se auala faigofie e faʻafesoʻotaʻi ai le uaea i masini mo le faʻapipiʻiina o ata tusi ma ala atu ai. Mo se faʻataʻitaʻiga, tuʻu i totonu o sea faʻaliliuga faʻafesoʻotaʻi i luga o le CP2102, pei o le ata, ma faʻapipiʻi i luga o le laupapa ina ia mafai ona tatalia le malosi pe a faʻafesoʻotaʻi ma motusia le Micro USB cable.

O loʻo matou tusia se OTA bootloader mo ATmega128RFA1 (o se vaega o le Smart Response XE masini)

E iai fo'i le 3,3-volt stabilizer (ma pe fa'apefea ona fa'aogaina i totonu o se masini e iai le eletise 6-volt - pe a na'o le fa'amautu tutusa, ma e mafai ona e fa'aopoopoina ni diodes se lua e otometi lava ona filifili po'o fea oi latou e fa'aola le masini) . O LED uma e tolu e tatau ona le soldered mai le interface converter board, a leai o le a latou utaina faʻatasi ma maa pe a faʻaogaina i luga, ma faʻalavelave foi i le palota keyboard ma galue i le flash memory ma se SPI interface.

O le tulituliloaina o se sini na foliga mai e sili atu le manaia nai lo le ausiaina (ma e le manaʻomia lena tala malie e uiga i le pasi). E tele mea na aʻoaʻoina e le tusitala e uiga i AVR bootloaders, SPI flash memory, le STK500 protocol ma le 802.15.4 standard.

O isi tulafono laiti uma e fa'aopoopo i le faletusi o lo'o fa'amatalaina i luga o le − iinei, ma o loʻo i lalo foi o le GPL v3. Twitter a le tusitala - iinei.

puna: www.habr.com

Faaopoopo i ai se faamatalaga