Peb tab tom sau OTA bootloader rau ATmega128RFA1 (raws li ib feem ntawm Smart Response XE ntaus ntawv)

Peb tab tom sau OTA bootloader rau ATmega128RFA1 (raws li ib feem ntawm Smart Response XE ntaus ntawv)

Nws tag nrho pib nrog tus sau yuav ib qho khoom siv nthuav tawm ntawm kev ua lag luam thib ob - Smart Response XE (kev piav qhia luv luv). Nws yog npaj rau cov tsev kawm ntawv: txhua tus menyuam kawm ntawv hauv chav kawm tau txais ib lub cuab yeej zoo ib yam li phau ntawv hluav taws xob lossis tus neeg txhais lus los ntawm cuaj caum, tus kws qhia ntawv nug ib lo lus nug, thiab cov tub ntxhais kawm ntaus cov lus teb ntawm cov keyboards ntawm cov cuab yeej siv, uas tau txais los ntawm a xov tooj cua channel (802.15.4) mus rau lub receiver txuas nrog tus xib fwb lub PC.

Cov cuab yeej no tau txiav tawm ntau xyoo dhau los, thiab cov tsev kawm ntawv twg tau yuav $ 100- $ 200 txhua qhov tam sim no tshwm sim hauv eBay rau $ 10 lossis tsawg dua. Lub hardware muaj yog heev haum rau geeky thwmsim:

  • 60 cov keyboard
  • zaub nrog kev daws teeb meem ntawm 384 Γ— 136, 2 khoom ib pixel - zoo ib yam li BC, CGA, tab sis 4 tsis xim, tab sis gradations ntawm brightness
  • microcontroller ATmega128RFA1 (128 kB flash nco, 4 kB ROM, 16 kB RAM, 802.15.4 transceiver)
  • sab nraud (nyob rau hauv kev sib raug zoo rau lub microcontroller, tsis yog tag nrho cov cuab yeej) 1 megabit (128 kilobyte) flash nco nrog SPI interface
  • compartment rau 4 AAA ntsiab.

Los ntawm lub npe ntawm lub microcontroller nws yog tseeb hais tias nws belongs rau AVR tsev neeg, uas txhais tau tias ua lub cuab yeej Arduino-tshaj yog ib tug ntau tshaj li tsis tseem ceeb ua hauj lwm ...

Los ntawm xov xwm rau Hackaday tus sau tau pom tias nws yog dab tsi xa ua ( tib qhov txuas qhia koj tias yuav txuas qhov twg), muaj lub sijhawm los khiav kev ua si rau Arduboy:


Tab sis tus sau yog xav paub ntau ntxiv txog lub sijhawm tsis ua si ntawm lub cuab yeej, tab sis mus kawm:

  • flash nco nrog serial SPI interface
  • bootloaders rau AVR
  • xwm 802.15.4

Tus sau pib los ntawm kev sau ntawv cov tsev qiv ntawv (GPL v3), uas tso cai rau koj los pib cov zaub, tso tawm cov ntawv thiab cov duab plaub, thiab nkag mus rau SPI flash nco. Tom qab ntawd nws pib los nrog cov tswv yim rau kev siv lub cuab yeej: VT-100-tshaj lub hnab tshos davhlau ya nyob twg, kev ua si sib tw. Thaum rov tsim peb lub cuab yeej, nws txiav txim siab "qhia" lawv kom tau txais cov duab kos "dhau saum huab cua." Dab tsi yuav tsis tsuas yog nthuav, tab sis kuj yooj yim heev: rooj plaub ntawm cov cuab yeej yog qhov nyuaj rau qhib txhua lub sijhawm, thiab hauv qab lub roj teeb npog npog tsuas muaj qhov uas tso cai rau koj txuas JTAG programmer rau lub rooj tsavxwm.

Peb tab tom sau OTA bootloader rau ATmega128RFA1 (raws li ib feem ntawm Smart Response XE ntaus ntawv)

Qhov no txaus los rub tawm Arduino bootloader, tab sis tsis yog daim duab kos - qhov chaw nres nkoj serial tsis txuas nrog, yog li koj tseem tsis tuaj yeem ua yam tsis qhib rooj plaub. Tsis tas li ntawd, TX0 thiab RX0 kab ntawm thawj qhov chaw nres nkoj tau ua ke nrog cov kab xaiv tsa ntawm cov keyboard matrix, uas yog cov uas xaiv cov yuam sij ua haujlwm ntawm ob sab ntawm cov zaub. Tab sis koj tuaj yeem ua dab tsi - tus sau ua qhov no:

Peb tab tom sau OTA bootloader rau ATmega128RFA1 (raws li ib feem ntawm Smart Response XE ntaus ntawv)

Nws coj cov kab JTAG mus rau ntawd, thiab tam sim no tsis tas yuav qhib lub roj teeb. Thiab yog li ntawd cov duab kos tuaj yeem rub tawm, Kuv txuas ob qhov chaw nres nkoj mus rau tib lub connector, kuj ntxiv ib qho kev hloov, vim tias nrog cov roj teeb teeb tsa, nws lub cev tsis tuaj yeem tua lub cuab yeej hauv lwm txoj kev.

Nws siv sijhawm ntau los ua haujlwm nrog cov hlau nplaum, riam siv hluav taws xob thiab rab phom kua nplaum. Feem ntau, uploading sketches "dhau saum huab cua" yog qhov yooj yim dua; peb yuav tsum tau tsim ib yam dab tsi rau qhov no.

Arduino IDE siv qhov kev pab cuam los upload cov duab kos avdiaj. Nws cuam tshuam nrog microcontroller siv raws tu qauv STK500, uas tso cai rau koj mus hloov cov ntaub ntawv nyob rau hauv ob qho tib si cov lus qhia. Nws tsis zoo sib xws nrog cov channel uas hloov pauv qeeb, distortion thiab cov ntaub ntawv poob tau. Yog hais tias ib yam dab tsi los xoob los yog rustles nyob rau hauv serial channel, koj tuaj yeem mus vwm nrhiav qhov ua rau. Thaum tus sau tau raug kev txom nyem ib nrab hnub kom txog rau thaum nws pom tau hais tias qhov teeb meem yog ib tug phem cable, raws li zoo raws li ib tug capricious CP2102 interface converter. Txawm tias lub microcontroller nrog lub built-in interface converter, piv txwv li, ATmega32u4, tej zaum kuj ua li no. Txhua tus neeg siv Arduino tau pom tias qhov ua yuam kev thaum rub tawm cov duab kos tsis tshua muaj tsawg. Qee lub sij hawm cov ntaub ntawv kaw tau zoo, tab sis thaum lub sij hawm sim nyeem ib qho yuam kev raug kuaj pom. Qhov no tsis tau txhais hais tias muaj qhov yuam kev thaum sau ntawv - muaj qhov ua tsis tiav thaum nyeem ntawv. Tam sim no xav txog tias thaum ua haujlwm "dhau saum huab cua" tib yam yuav tshwm sim, tab sis ntau zaus.

Tom qab sim ntau txoj hauv kev los daws qhov teeb meem no, tus sau tau tuaj nrog cov hauv qab no. Cov cuab yeej muaj 128 KB flash nco nrog SPI interface - peb tau txais cov ntaub ntawv hla ntawm cov xov hlau (nco ntsoov tias tus sau twb muaj ib lub cuab yeej nrog lub txuas ntawm sab), siv lub cim xeeb no ua qhov tsis muaj, thiab xa cov ntaub ntawv hla xov tooj cua channel rau lwm lub cuab yeej. Nyob zoo los ntawm Cybiko.

Tom qab sau cov lej ua haujlwm nrog lub xov tooj cua channel, nrog rau cov ntawv sau, lub loader tau ntev dua 4 kilobytes. Yog li, tus nqi HFUSE yuav tsum tau hloov ntawm 0xDA rau 0xD8. Tam sim no lub bootloader tuaj yeem ncav cuag 8 kilobytes ntev, thiab qhov chaw pib tam sim no yog 0x1E000. Qhov no yog xav txog hauv Makefile, tab sis kuj yuav tsum tau coj mus rau hauv tus account thaum sau bootloader koj avrd.

Lub 802.15.4 transceiver nyob rau hauv ATmega128RFA1 yog Ameslikas tsim los ua haujlwm siv raws tu qauv Zigbee, uas yog qhov nyuaj heev, yog li tus kws sau ntawv txiav txim siab tsuas yog xa cov pob ntawv xwb. Qhov no yog siv nyob rau hauv kho vajtse hauv ATmega128RFA1, yog li me ntsis code yuav tsum tau. Tsis tas li ntawd, rau qhov yooj yim, tus sau tau txiav txim siab siv cov channel ruaj khov, tsis tso cai rau koj xaiv nws txawm tias manually. Tus qauv 802.15.4 txhawb nqa 16 raws nrog cov lej ntawm 11 txog 26. Lawv muaj neeg coob heev, qee qhov kuj sib tshooj WiFi raws (liab yog ZigBee raws, xiav, ntsuab thiab daj yog WiFi).

Peb tab tom sau OTA bootloader rau ATmega128RFA1 (raws li ib feem ntawm Smart Response XE ntaus ntawv)

Nws muab tawm tias cov channel 15 thiab 26 yog qhov tsawg tshaj plaws los cuam tshuam los ntawm WiFi, tus sau tau xaiv qhov thib ob ntawm lawv. Kev lees paub: tus neeg txhais lus tsis paub tias nws puas raug tso cai kom yooj yim ZigBee li no. Tej zaum peb yuav tsum ua qhov programming me ntsis thiab ua kom tiav?

Ntawm thawj lub cuab yeej, nws yog ib qho tsim nyog yuav tsum siv lub tshuab hluav taws xob lub xeev uas xa cov ntaub ntawv ntawm STK500 raws tu qauv. Rau feem ntau, cov lus xa thiab tau txais yog tus kheej txaus, tab sis qee qhov raug khi rau cov uas dhau los ntawm cov channel ua ntej. Cov lus piav qhia ntawm kev sib tham tau muab no.

Ib qho tseem ceeb ntawm qhov kev sib tham no yog kev sib kis ntawm cov pob ntawv npaj los sau rau hauv lub cim xeeb flash ntawm lub hom phiaj ntaus ntawv. Rau cov microcontrollers yooj yim ntawm AVR tsev neeg, nplooj ntawv loj yog 128 bytes, tab sis rau ATmega128RFA1 nws yog 256. Thiab rau lub cim xeeb flash uas txuas nrog ntawm SPI raws tu qauv, nws yog tib yam. Qhov kev pab cuam nyob rau hauv thawj ntaus ntawv, thaum uploading ib tug sketch, tsis tam sim ntawd hloov nws mus rau lub thib ob, tab sis sau nws mus rau lub cim xeeb no. Thaum Arduino IDE tshawb xyuas qhov tseeb ntawm kev nkag, nws raug xa mus rau qhov uas tau sau rau ntawd. Tam sim no peb yuav tsum xa cov ntaub ntawv tau txais los ntawm xov tooj cua channel mus rau lub cuab yeej thib ob. Nyob rau tib lub sijhawm, hloov los ntawm kev txais mus rau kev xa tawm thiab rov qab tshwm sim ntau zaus. STK500 raws tu qauv yog indifferent rau ncua, tab sis tsis zam cov ntaub ntawv poob (nrawm, tab sis nws tau hais saum toj no tias ncua sij hawm kuj cuam tshuam cov ntaub ntawv xa mus). Thiab kev poob thaum lub sij hawm xa xov wireless yog qhov kev zam. ATmega128RFA1 muaj ib qho kev siv kho vajtse tsim los ntawm kev thov rov ua dua thaum muaj kev tsis ntseeg txog qhov tseeb ntawm kev hloov pauv, tab sis tus sau tau txiav txim siab los siv tib yam hauv software nws tus kheej. Nws tsim ib txoj cai uas ntau cov ntaub ntawv ntws ib txoj kev tshaj li lwm yam.

Nws tsis zoo tag nrho, tab sis nws ua haujlwm. Nplooj ntawv 256-byte tau muab faib ua plaub ntu, txhua qhov sib kis tau saum huab cua raws li pob ntawv. Ib pob ntawv tuaj yeem tuav txog 125 bytes ntawm cov ntaub ntawv ntxiv rau ib byte ntev thiab ob bytes rau CRC. Yog li tawg paj 64 bytes ntev nrog rau nplooj ntawv thiab ntu ntu (los ntawm 0 txog 3) muab tso rau ntawd. Cov cuab yeej txais tau muaj qhov sib txawv uas tso cai rau nws taug qab pes tsawg ntu tau txais, thiab thaum tag nrho plaub tuaj txog, cov khoom xa tuaj tau txais kev lees paub tias tag nrho nplooj ntawv tau txais. Tsis muaj kev lees paub (CRC tsis phim) - rov xa tag nrho nplooj ntawv. Qhov ceev yog txawm ntau dua thaum kis ntawm cable. Saib:


Tab sis feem ntau, nws yuav tsim nyog los muab txoj hauv kev yooj yim los txuas rau cable rau cov khoom siv rau uploading sketches thiab los ntawm nws. Piv txwv li, muab tso rau hauv xws li ib tug interface converter ntawm CP2102, raws li nyob rau hauv daim duab, thiab kua nplaum rau lub rooj tsavxwm kom nws muaj peev xwm tiv taus lub zog thaum txuas thiab disconnecting lub Micro USB cable.

Peb tab tom sau OTA bootloader rau ATmega128RFA1 (raws li ib feem ntawm Smart Response XE ntaus ntawv)

Nws kuj muaj 3,3-volt stabilizer (thiab yuav siv li cas hauv ib lub cuab yeej nrog 6-volt fais fab mov - yog tias tsuas yog nws muaj tib lub stabilizer, thiab koj tuaj yeem ntxiv ob lub diodes kom xaiv qhov twg ntawm lawv yuav siv lub zog ntawm lub cuab yeej) . Tag nrho peb lub LEDs yuav tsum tau unsoldered los ntawm lub interface converter board, txwv tsis pub lawv yuav ntxiv load lub roj teeb thaum ua hauj lwm rau lawv, thiab tseem cuam tshuam nrog keyboard xaiv thiab ua hauj lwm nrog flash nco nrog ib tug SPI interface.

Kev ua raws li lub hom phiaj tau ua kom nthuav dav dua li kev ua tiav (thiab tsis xav tau qhov kev tso dag ntawm lub npav). Tus sau tau kawm ntau yam txog AVR bootloaders, SPI flash memory, STK500 raws tu qauv thiab 802.15.4 tus qauv.

Tag nrho lwm cov cai ntxiv rau lub tsev qiv ntawv tau piav qhia saum toj no yog βˆ’ no, thiab nws tseem nyob hauv GPL v3. Tus sau Twitter - no.

Tau qhov twg los: www.hab.com

Ntxiv ib saib