Sisukord:

Lihtne väga väikese võimsusega BLE Arduino 3. osas - Nano V2 asendamine - 3. versioon: 7 sammu (piltidega)
Lihtne väga väikese võimsusega BLE Arduino 3. osas - Nano V2 asendamine - 3. versioon: 7 sammu (piltidega)

Video: Lihtne väga väikese võimsusega BLE Arduino 3. osas - Nano V2 asendamine - 3. versioon: 7 sammu (piltidega)

Video: Lihtne väga väikese võimsusega BLE Arduino 3. osas - Nano V2 asendamine - 3. versioon: 7 sammu (piltidega)
Video: Vana pesumasina mootori taaskasutamise viis! 2024, November
Anonim
Lihtne väga väikese võimsusega BLE Arduino 3. osas - Nano V2 asendamine - 3. versioon
Lihtne väga väikese võimsusega BLE Arduino 3. osas - Nano V2 asendamine - 3. versioon
Lihtne väga väikese võimsusega BLE Arduino 3. osas - Nano V2 asendamine - 3. versioon
Lihtne väga väikese võimsusega BLE Arduino 3. osas - Nano V2 asendamine - 3. versioon
Lihtne väga väikese võimsusega BLE Arduino 3. osas - Nano V2 asendamine - 3. versioon
Lihtne väga väikese võimsusega BLE Arduino 3. osas - Nano V2 asendamine - 3. versioon

Värskendus: 7. aprill 2019 - lp_BLE_TempHumidity versioon 3, lisab kuupäeva/kellaaja graafikud, kasutades pfodApp V3.0.362+, ja automaatset drosseldamist andmete saatmisel

Värskendus: 24. märts 2019 - lp_BLE_TempHumidity 2. versioon, lisab rohkem graafikuvõimalusi ja i2c_ClearBus, lisab GT832E_01 toe

Sissejuhatus

See õpetus, Redbear Nano V2 asendamine, on 3. osa 3. See on selle projekti 2. versioon. 2. versiooni trükkplaat sisaldab mündielemendi ja anduri paigaldamist, lihtsustab konstruktsiooni ja parandab õhuvoolu sensori ümber, kaitstes seda otsese päikesevalguse eest. 1. versioon on siin.

Osa 1 - Väga väikese energiatarbega BLE -seadmete ehitamine lihtsaks Arduino kaantega Arduino seadistamine madala energiatarbega seadmete nRF52, programmeerimismooduli ja toitevoolu mõõtmiseks. See hõlmab ka spetsiaalseid väikese võimsusega taimerid ja võrdlusseadmeid ning tühistatud sisendeid ning pfodAppi kasutamist nRF52 seadmega ühenduse loomiseks ja juhtimiseks.

Osa 2 - Väga madala energiatarbega temperatuuri niiskusmonitor hõlmab väikese võimsusega aku / päikesemonitori ehitamiseks Redbear Nano V2 moodulit ja Si7021 temperatuuri / niiskuse andurit. See hõlmab ka Si7021 raamatukogu muutmist väikese energiatarbega, BLE -seadme häälestamist, et vähendada selle praegust tarbimist <29uA -le, ja kujundada teie mobiilile kohandatud temperatuuri/niiskuse kuva.

Osa 3 - Redbeari Nano V2 asendamine, see üks, hõlmab Nano V2 asemel muude nRF52 -põhiste moodulite kasutamist. See hõlmab tarnekomponentide valimist, ehitust, nRF52 kiipide programmeerimiskaitse eemaldamist, NFC -tihvtide kasutamist tavalise GPIO -na ja uue nRF52 -plaadi määramist Arduinos.

See juhend on praktiline rakendus 1. osas - väga väikese energiatarbega BLE -seadmete ehitamine, mis on Arduino abil lihtsaks tehtud, ehitades väga väikese võimsusega BLE temperatuuri ja niiskuse monitori, kasutades Nano V2 asendajana SKYLAB SBK369 plaati. See õpetus hõlmab uue plaadimääratluse loomist ja nRF52 programmeerimiskaitse eemaldamist, et seda uuesti programmeerida. See õpetus kasutab sama visandit nagu 2. osa ja samad häälestatud BLE parameetrid väikese energiatarbimise jaoks ning seda saab toita ainult akust VÕI patareist + päikeseenergiast või päikesepatareist. BLE parameetrite häälestamine väikese võimsusega oli käsitletud 2. osas

Lp_BLE_TempHumidity versioon 3 esitab andmed kuupäeva ja kellaaja suhtes, kasutades ainult Arduino millis (). Vaadake Arduino kuupäeva ja kellaaega, kasutades millis () ja pfodApp, kasutades pfodApp uusimat versiooni (V3.0.362+).

Pfod_lp_nrf52.zip versioon 4 toetab ka moodulit GT832E_01 ja see õpetus hõlmab NFC nRF52 nööpnõelte kasutamist standardse GPIO -na.

Siin ehitatud monitor töötab aastaid müntide või 2 x AAA patareidega, isegi kauem koos päikese abiga. Lisaks praeguse temperatuuri ja niiskuse kuvamisele salvestab monitor viimase 36 tunni 10 -minutilise näidu ja viimase 10 päeva tunninäidu. Neid saab diagrammida teie Android -mobiiltelefonis ja logifaili salvestatud väärtused. Androidi programmeerimine pole vajalik, pfodApp tegeleb selle kõigega. Androidi kuva ja graafikut juhib täielikult teie Arduino visand, nii et saate seda vastavalt vajadusele kohandada.

2. osas kasutati komponendi nRF52832 BLE jaoks Redbear Nano V2 plaati. See projekt asendab selle odavama SKYLAB SKB369 plaadiga. Nagu 2. osas, kasutatakse temperatuuri / niiskuse anduri jaoks Sparkfun Si7021 katkestusplaati. Si7021 -ga kasutatakse muudetud väikese energiatarbega raamatukogu.

Samm: miks asendada Nano V2?

i) Nano V2 oli mitu kuud tootmisest väljas ja tundub, et see ei sobi particle.io ritta, mistõttu pole selge, kui kaua see saadaval on.

ii) Nano V2 on kallim. Siiski on sellel ka lisavõimalusi. Vt allpool.

iii) Nano V2 -l on komponendid mõlemal küljel, mis annab sellele kõrgema profiili ja raskendab selle paigaldamist.

iv) Nano V2 -l on saadaval piiratud arv sisend-/väljundpistikuid ja D6 kuni D10 kasutamiseks on vaja juhtmeid.

Kuigi Nano V2 plaat on kallim kui SKYLAB SKB369 plaat, ~ US17 versus ~ US5, on Nano V2 -l rohkem funktsioone. Nano V2 sisaldab 3,3 V regulaatorit ja toitekondensaatoreid, lisakomponente nRF52 DC/DC muunduri kasutamiseks, kiibiantenni ja uFL SMT antenni pistikut.

Teine alternatiiv on GT832E_01 moodul, mida kasutab www.homesmartmesh.com. Pfod_lp_nrf52.zip versioon 4 toetab ka GT832E_01 mooduli programmeerimist. SKYLAB SKB369 ja GT832E_01 on saadaval aadressil

Redbearil (Particle.io) on ka tühi moodul ilma 3V3 regulaatorita, DC/DC komponentide või 32Khz kristallikomponentideta.

Kontuur

Sellel projektil on 4 suhteliselt sõltumatut osa:-

Komponentide valik ja ehitus nRF52 kodeerimiskaitse lipu eemaldamine ja eskiisi programmeerimine Uue Arduino nRF52 tahvli definitsiooni loomine nRF52 NFC -tihvtide uuesti konfigureerimine GPIO -na

2. samm: komponentide valik ja ehitus

Komponentide valik

Lisaks 2. osas valitud komponentidele nRF52832 ja Si7021 lisab see projekt 3,3 V regulaatori ja toitekondensaatorid.

Pingeregulaatori komponent

Siin kasutatav regulaator on MC87LC33-NRT. See saab hakkama kuni 12 V sisenditega ja selle puhkevool on <3,6uA, tavaliselt 1,1uA. Nano V2, mis kasutas TLV704 regulaatorit, on veidi kõrgema vaikse vooluga, tavaliselt 3,4 uA ja suudab taluda kõrgemat sisendpinget, kuni 24 V. Selle asemel valiti MC87LC33-NRT, kuna selle andmeleht määrab, kuidas see reageerib, kui sisendpinge langeb alla 3,3 V, kui TLV704 andmeleht seda ei tee.

TLV704 määrab sisendpingeks vähemalt 2,5 V ja andmelehelt ei selgu, mis juhtub allpool. NRF52832 töötab 1.7V ja Si7023 1.9V. MC87LC33-NRT seevastu määrab madala voolu korral sisend-/väljundpinge erinevused kuni 0 V (andmelehe joonis 18). Arvestades komponentide valikut, valiti MC87LC33-NRT, kuna sellel on määratud jõudlus.

Toite kondensaatorid

MC87LC33-NRT regulaator vajab stabiilsuse ja reageerimise jaoks mõningaid toitekondensaatoreid. Andmelehel on soovitatav kasutada väljundkondensaatorit> 0,1uF. SKYLAB SBK369 määrab ka 10uF/0,1uF kondensaatorid plaadi lähedal asuvale toiteallikale. Suuremad kondensaatorid aitavad toita nRF52 TX voolu. Siin kasutati 4 x 22uF 25V ja 3 x 0,1uF 50V keraamilisi kondensaatoreid. Üks 22uF ja 0,1uF kondensaator asetati SKYLAB SBK369 lähedale, 0,1uF paigutati MC87LC33-NRT väljundi lähedale, et tagada stabiilsus ning 22uF ja 0,1uF paigutati MC87LC33-NRT sisendile ja veel 2 x 22 uF kondensaatorit, mis olid joodetud üle Vin/GND tihvtide täiendava voolumahutina. Võrdluseks - NanoV2 plaadil on TLV704 regulaatori sisendis 22uF / 0,1uF ja väljundis 0,1uF.

Lisavoolu reservuaari kondensaatorid paigaldati 3,3 V regulaatori sisendisse, et need laadiksid kõrgema pingega päikesepatareidega töötades. Laadimine kõrgemale pingele võrdub suurema voolu salvestamisega Tx naastude varustamiseks.

Kasutatakse keraamilisi X5R kondensaatoreid, kuna neil on madal seeriatakistus ja väike lekkevool. Tavaliselt on takistus 100 000 000 Ω või 1000 MΩ - µF, mis on kunagi väiksem. Nii et 22uF puhul on meil 22000MΩ, st 0,15 nA leke 3,3 V või 0,6 nA nelja 22uF kondensaatori puhul. See on tühine. Võrdluseks Madal ESR, madala lekkega Panasonicu elektrolüütkondensaatorite lekkevool on <0,01 CV. Seega on 22uF 16V kondensaatori leke <10uA. Märkus: see on leke nimipingel, antud juhul 16V. Leke on väiksem madalamate pingete korral, st <2,2uA 3,3 V juures.

Osade nimekiri

Ligikaudne ühiku hind 2018. aasta detsembri seisuga, ~ 61 USA dollarit, välja arvatud saatmine ja programmeerija 1. osas

  • SKYLAB SKB369 ~ 5 USA dollarit, nt Aliexpress
  • Sparkfun Si7021 purunemislaud ~ 8 USA dollarit
  • 2 x 53mm x 30mm 0,15W 5V päikesepatareid nt. Ülelend ~ 1,10 USA dollarit
  • 1 x trükkplaat SKYLAB_TempHumiditySensor_R2.zip ~ 25 USA dollarit 5 hinnaga www.pcbcart.com
  • 1 x MC78LC33 3.3V regulaator, nt. Digikey MC78LC33NTRGOSCT-ND ~ 1 USA dollar
  • 2 x 0,1uF 50V keraamiline C1608X5R1H104K080A nt Digikey 445-7456-1-ND ~ 0,3 USA dollarit
  • 4 x 22uF 16V keraamiline GRM21BR61C226ME44L nt. Digikey 490-10747-1-ND ~ 2 USA dollarit
  • 1 x BAT54CW, nt Digikey 497-12749-1-ND ~ 0,5 USA dollarit
  • 1 x 470R 0,5W 1% takisti nt. Digikey 541-470TCT-ND ~ 0,25 USA dollarit
  • 1 x 10V 1W zener SMAZ10-13-F nt. Digikey SMAZ10-FDICT-ND ~ 0,5 USA dollarit
  • 3mm x 12mm nailonkruvid, nt. Jaycar HP0140 ~ 3 AUD
  • 3mm x 12mm nailonmutrid, nt. Jaycar HP0146 ~ 3 AUD
  • Scotch püsikinnituslint Cat 4010 nt. Amazonist ~ 6,6 USA dollarit
  • CR2032 patareipesa, nt. HU2032-LF ~ 1,5 USA dollarit
  • CR2032 aku ~ 1 USA dollar
  • Perspex leht, 3,5 mm ja 8 mm
  • pfodApp ~ 10 USA dollarit
  • Jootepasta nt. Jaycar NS-3046 ~ 13 AUD

3. samm: ehitamine

Ehitus
Ehitus
Ehitus
Ehitus
Ehitus
Ehitus

Projekt on ehitatud väikesele trükkplaadile. PCB valmistas pcbcart.com nendest Gerberi failidest, SKYLAB_TempHumiditySensor_R2.zip. PCB jäljendab Nano V2 pistikut ja on piisavalt üldotstarbeline kasutamiseks teiste BLE projektide jaoks.

See on skemaatiline (pdf -versioon)

Esmalt jootke SMD komponendid ja seejärel paigaldage plaat SKYLAB SKB369

Peaaegu kõik komponendid on pinnale paigaldatavad seadmed (SMD). Kondensaatoreid ja IC -sid võib olla raske käsitsi joota. Soovitatav meetod on hoida trükkplaat pahes ja kanda padjadele väike kogus jootepastat ning asetada SMD komponendid, välja arvatud plaat SKB369. Seejärel kuumutage kuumutuspüstoli abil PCB alumist külge, kuni jootepasta sulab, ja seejärel tehke kiirelt üle plaadi ülaosa, vältides komponentide mahapuhumist. Lõpuks puudutage komponente väikese otsaga jootekolviga. Olge kondensaatorite ja takistiga ettevaatlik, kuna mõlemat otsa on lihtne sulatada ja komponent tuleb ühe otsa jootmise ajal lahti.

See versioon lisab täiendavaid 22uF 16V keraamilisi kondensaatoreid. Need lisakondensaatorid vähendavad aku voolutugevust ja päikesepatareide toitel pinge langust. Niikaua kui päikesepatareide pinge jääb üle aku pinge, ei võeta akust voolu.

Pärast SMD komponentide paigaldamist saate joota SKYLAB SKB369 plaadile. SKB369 sakkide ühel küljel on kaks katsepunkti auku. Kasutage kahte tihvti papist alusele, et paigutada plaat SKB369 ja joondage tihvtid ettevaatlikult. (Vaadake ülaltoodud näitefotot, kasutades Revision 1 PCB -d.) Seejärel jootke üks vastaskülje tihvt, et plaat paigal hoida, enne kui muud tihvtid joodetakse.

Pange tähele Gnd -ühendusjuhet CLK -lt GND -le valmis osas. See on paigaldatud PÄRAST programmeerimist, et vältida CLK sisendi müra käivitamist nRF52 kiibil suure vooluga silumisrežiimis

Paigalduskott

Paigalduskarp oli valmistatud kahest tükist, 110 mm x 35 mm, paksusega 3 mm. Päikesepatareide all olevat 3,5 mm tükki koputati, et võtta 3 mm nailonkruvid. See muudetud konstruktsioon lihtsustab Rev 1 ja parandab õhuvoolu anduri ümber. Täiendavad augud mõlemas otsas on paigaldamiseks, kasutades näiteks kaablisidemeid.

Samm: eemaldage kodeerimiskaitselipp NRF52

Kodeerimiskaitse lipu NRF52 eemaldamine
Kodeerimiskaitse lipu NRF52 eemaldamine
Kodeerimiskaitse lipu NRF52 eemaldamine
Kodeerimiskaitse lipu NRF52 eemaldamine
Kodeerimiskaitse lipu NRF52 eemaldamine
Kodeerimiskaitse lipu NRF52 eemaldamine

Ühendage temperatuuri/niiskuse plaat 1. osas kirjeldatud programmeerijaga, nagu ülal näidatud.

Kui päikesepatareid ja akud on vooluvõrgust lahti ühendatud, on Vin ja Gnd ühendatud programmeerija Vdd ja Gnd (kollane ja roheline juhe) ning SWCLK ja SWDIO on ühendatud programmeerija päiseplaadi Clk ja SIO -ga (valge ja hall juhe)

Programmi nRF52 kaitse eemaldamine

Nordic Semi - Debug and Trace lehelt DAP - silumisjuurdepääsu port. Väline silur pääseb seadmele juurde DAP kaudu. DAP rakendab standardset ARM® CoreSight ™ jadajuhtme silumisporti (SW-DP). SW-DP rakendab jadatraadi silumisprotokolli (SWD), mis on kahe kontaktiga jadaliides, SWDCLK ja SWDIO

Tähtis: SWDIO liinil on sisemine tõmbetakistus. SWDCLK liinil on sisemine tõmbetakistus.

CTRL -AP - Juurdepääsuport. Juurdepääsuport (CTRL-AP) on kohandatud juurdepääsuport, mis võimaldab seadet juhtida isegi siis, kui juurdepääsupordi kaitse keelab DAP-i teised juurdepääsupordid. Juurdepääsupordi kaitse blokeerib siluril lugemis- ja kirjutamisjuurdepääsu kõikidele CPU-registritele ja mäluga kaardistatud aadressidele. Keela juurdepääsupordi kaitse. Juurdepääsu pordi kaitse saab keelata ainult siis, kui väljastate CTRL-AP kaudu käsu ERASEALL. See käsk kustutab Flash, UICR ja RAM.

Valige osakeste siluri programmeerijaks CMSIS-DAP ja valige nRF5 Flash SoftDevice

Kui välk töötab, on see korras, kuid sageli on moodulid ümberprogrammeerimise eest kaitstud ja selle vea kuvatakse Arduino aknas

Open On-Chip Debugger 0.10.0-dev-00254-g696fc0a (2016-04-10-10: 13) GNU GPL v2 litsentsitud debug_level: 2 Info: ainult üks transpordivõimalus; automaatse valiku 'swd' adapteri kiirus: 10000 kHz cortex_m reset_config sysresetreq Info: CMSIS-DAP: SWD Toetatud teave: CMSIS-DAP: liidese lähtestamine (SWD) Info: CMSIS-DAP: FW versioon = 1.10 Info: SWCLK/TCK = 1 SWDIO/ TMS = 1 TDI = 0 TDO = 0 nTRST = 0 nRESET = 1 Info: CMSIS-DAP: liidese jaoks valmis Info: kiiruse vähendamise taotlus: 10000kHz kuni 5000kHz maksimaalne Info: taktsagedus 10000 kHz Info: SWD IDCODE 0x2ba01477 Viga: MEM-i ei leitud -AP tuuma juhtimiseks Viga: sihtmärki pole veel uuritud Viga SoftDevice vilkumise ajal.

Sel juhul peate mälu tühjendamiseks ja seadme uuesti programmeerimiseks seadistama nRF52 -s käsuregistri ERASEALL. Sandeepmistry nRF52 -ga varustatud openOCD versioon ei sisalda käsku apreg, mis on vajalik käsuregistrisse ERASEALL kirjutamiseks, nii et peate installima hilisema versiooni.

Installige OpenOCD versioon OpenOCD-20181130 või uuem. Windowsi eelkompileeritud versioon on saadaval aadressil https://gnutoolchains.com/arm-eabi/openocd/ Viimane kood on saadaval aadressil

Avage käsuviip ja muutke dir OpenOCD installikataloogi ning sisestage käsk

bin / openocd.exe -d2 -f liides/cmsis -dap.cfg -f target/nrf52.cfg

Vastus on

Open On-Chip Debugger 0.10.0 (2018-11-30) [https://github.com/sysprogs/openocd]Litsentsitud GNU GPL v2 all Veaaruannete saamiseks lugege https://openocd.org/doc/doxygen/ bugs.html debug_level: 2 Info: esimese vaba seansi transpordi "swd" automaatne valimine. Alistamiseks kasutage valikut „transporti valik”. adapteri kiirus: 1000 kHz cortex_m reset_config sysresetreq Info: kuulamine pordis 6666 tcl-ühenduste jaoks Info: kuulamine pordis 4444 telnet-ühenduste jaoks Info: CMSIS-DAP: SWD Toetatud teave: CMSIS-DAP: FW versioon = 1.10 Info: CMSIS-DAP: Liidese initsialiseeritud (SWD) teave: SWCLK/TCK = 1 SWDIO/TMS = 1 TDI = 0 TDO = 0 nTRST = 0 nRESET = 1 Info: CMSIS-DAP: Liidese valmidus Info: taktsagedus 1000 kHz Info: SWD DPIDR 0x2ba01477 Viga: Ei leitud MEM-AP-d tuumiku juhtimiseks. Info: Gdb-ühenduste kuulamine pordis 3333

Seejärel ava terminali aken nt. TeraTerm (Windows) või CoolTerm (Mac) ja ühendage 127.0.0.1 pordiga 4444

Telneti aknas kuvatakse> ja käsureale kuvatakse Info: telnet -ühenduse aktsepteerimine seadmes tcp/4444

Telneti aknas (nt TeraTerm) typenrf52.dap apreg 1 0x04this tagastab 0x00000000, mis näitab, et kiip on kaitstud. Seejärel annab typenrf52.dap apreg 1 0x04 0x01ja thennrf52.dap apreg 1 0x04this tagastab 0x00000001, mis näitab, et kiip on nüüd järgmisel taaskäivitamisel seatud väärtusele ERASEALL.

Sulgege telnetiühendus ja kasutage ka Ctrl-C, et väljuda käsurealt openOCD programmist, seejärel lülitage nRF52 moodul sisse ja see on nüüd programmeerimiseks valmis.

Nüüd proovige uuesti pehme seadme vilkumist.

Nüüd saate programmeerida Arduino nRF52 mooduli.

5. samm: SKYLAB SKB369 programmeerimine

SKYLAB SKB369 programmeerimine
SKYLAB SKB369 programmeerimine
SKYLAB SKB369 programmeerimine
SKYLAB SKB369 programmeerimine
SKYLAB SKB369 programmeerimine
SKYLAB SKB369 programmeerimine

Sulgege Arduino ja installige uuesti pfod_lp_nrf52 toe uusim versioon, järgides riistvaratoe juhiseid Installige pfod_lp_nrf52. Viimane pfod_lp_nrf52 sisaldab SKYLAB SKB369 Nano2 asendusplaati. Valige see tahvliks ja saate selle seejärel programmeerida lp_BLE_TempHumidity versiooniga 3, lp_BLE_TempHumidity_R3.zip, nagu on kirjeldatud 2. osas.

Kui programmeerimine ebaõnnestub. Sulgege kõik Arduino aknad, eemaldage USB -kaablid, taaskäivitage Arduino ja ühendage programmeerija USB -kaabel uuesti ning ühendage nRF52 mooduli USB -toide uuesti ja proovige uuesti.

Seejärel looge ühendus pfodAppi kaudu, et kuvada praegune ja ajalooline temperatuur ja niiskus. Kui olete ajaloolise graafiku kuvanud, salvestatakse näidud koos millisekundiliste ajatemplitega teie mobiiltelefoni logifaili ja on saadaval ka algandmete ekraanil.

Logifail sisaldab ka lisaandmeid, mis on vajalikud arvutustabelis kuupäeva ja kellaaja graafikute uuesti loomiseks. Vaadake üksikasju Arduino kuupäevast ja kellaajast, kasutades millis () ja pfodApp

Samm: uue Arduino NRF52 plaadimääratluse loomine

Uue Arduino NRF52 plaadimääratluse loomine
Uue Arduino NRF52 plaadimääratluse loomine
Uue Arduino NRF52 plaadimääratluse loomine
Uue Arduino NRF52 plaadimääratluse loomine
Uue Arduino NRF52 plaadimääratluse loomine
Uue Arduino NRF52 plaadimääratluse loomine
Uue Arduino NRF52 plaadimääratluse loomine
Uue Arduino NRF52 plaadimääratluse loomine

Uue tahvli nRF52 toetamiseks peate a) lisama uue kataloogi variantide kataloogi koos tahvlifailidega ja b) redigeerima faili boards.txt, et lisada uus tahvel Arduinole.

Uue plaadi nRF52 lisamine

Nagu on kirjeldatud 1. osas, riistvaratoe pfod_lp_nrf52 installimine, otsige üles sandeepmistry paketi riistvara alamkataloog, mille olete pfod_lp_nrf52 toega värskendanud. Avage alamkataloog / hardware / nRF5 / 0.6.0 / options ja looge oma uuele tahvlile uus kataloog, ntSKYLAB_SKB369_Nano2replacement Uues / hardware / nRF5 / 0.6.0 / variants / SKYLAB_SKB369_Nano2replacement kataloogis looge kolm faili varianti.h, variant.cpp ja pins_arduino.h Saate neid kopeerida teistest plaatide variantide kataloogidest. SKYLAB_SKB369_Nano2 asendamise jaoks kopeerisin algselt failid RedBear_BLENano2 variandist.

pins_arduino.h fail

Faili pins_arduino.h ei ole vaja muuta. See sisaldab lihtsalt faili variant.h

variant.h fail

Muutke faili variant.h, et määrata teie pardal olevate nööpnõelte koguarv, PINS_COUNT

MÄRKUS. Sandeepmistry paketis ignoreeritakse NUM_DIGITAL_PINS, NUM_ANALOG_INPUTS ja NUM_ANALOG_OUTPUTS seadeid

Kui teie plaat teeb enam -vähem analoogpoldid kättesaadavaks, värskendage faili / variant Analoog -nööpnõelad * / jaotist.

MÄRKUS. NanoV2 ja SKYLAB plaatide puhul on analoogpoldid kaardistatud digitaalsete tihvtidega A0 == D0 jne

See ei ole hädavajalik. Saate analoogsisendid määrata mis tahes mugavale Arduino tihvtile. Vaadake näiteks siniseid/variant.h ja siniseid/variant.cpp -faile.

Kiibil nRF52832 on 8 analoogsisendit, kuid SKYLAB_SKB369_Nano2 asendusplaat teeb Nano2 -ga sobitamiseks ainult 6 neist.

Kõik pin -numbrid, välja arvatud RESET_PIN, failis variant.h on Arduino PIN -numbrid. See tähendab, et #define PIN_A0 (0) tähendab, et arduino visandis olev D0 on sama tihvt kui A0. RESET_PIN on erand. See number on nRF52823 kiibi tihvti number ja 21 on ainus kehtiv valik. Kuid pfod_lp_nrf52 tugi ei võimalda nRF52832 lähtestusnõela

variant.cpp fail

Failis variant.cpp on ainult üks kirje, g_ADigitalPinMap massiiv, mis kaardistab Arduino pin -numbrid kiibile nRF52832 P0.. tihvtid

MÄRKUS. NanoV2 ja SKYLAB tahvlitel on Arduino analoogpoldid A0, A1… samad, mis Arduino digitaalsed tihvtid D0, D1… nii et esimesed sissekanded g_ADigitalPinMap PEAVAD kaardistama kiibil nRF52832 olevate AINx -numbritega

Teie pardal saadaval olevate analoogsisendite jaoks peavad need kirjed g_ADigitalPinMap -is kaardistama nRF52832 AIN0, AIN1, AIN2 jne pin -numbrid. st AIN0 on kiibipolt P0.02, AIN1 on kiibipolt P0.03 jne. vt ülaltoodud nRF52832 tihvtide paigutust.

Kasutage sobimatute vastendamiste jaoks (uint32_t) -1. Näiteks SKYLAB_SKB369_Nano2 asendusplaadil ei ole sisseehitatud LED-d D13, seega on selle asukoht kaardistatud (uint32_t) -1

Failis pfod_lp_nrf52.zip on Redbeari NanoV2, SKYLAB SKB369 ja GT832E_01 variantide alamkataloogides pildid, mis näitavad variant.cpp seadistatud kaardistusi. (Vaadake ülaltoodud pilte)

SKYLAB SKB369 puhul on tihvtide vahel palju valida. NanoV2 -ga sobitamiseks on kaardistatud ainult piisavalt. GT832E_01 puhul tuleb kaardistada kõik saadaolevad tihvtid. Isegi siis on NanoV2 kuue (6) asemel saadaval ainult kolm (3) analoogsisendit. Lisaks sellele tuleb kaks NFC-tihvti, P0.09 ja P0.10, uuesti GPIO-deks konfigureerida. Vaadake allpool nRF52 NFC -tihvtide uuesti konfigureerimist GPIO -deks.

Faili boards.txt värskendamine

Siin on kirje SKYLAB_SKB369_Nano2replacement failis boards.txt.

## SKYLAB_SKB369 Nano2 asendamineSKYLAB_SKB369_NANO2_REPLACEMENT.name =*SKYLAB SKB369 Nano2 asendamine

SKYLAB_SKB369_NANO2_REPLACEMENT.upload.tool = sandeepmistry: openocd

SKYLAB_SKB369_NANO2_REPLACEMENT.upload.protocol = cmsis-dap SKYLAB_SKB369_NANO2_REPLACEMENT.upload.target = nrf52 SKYLAB_SKB369_NANO2_REPLACEMENT.upload.maximum_size_PL2 SKYLAB_SKB369_NANO2_REPLACEMENT.upload.use_1200bps_touch = false SKYLAB_SKB369_NANO2_REPLACEMENT.upload.wait_for_upload_port = false SKYLAB_SKB369_NANO2_REPLACEMENT.bload.native_us

SKYLAB_SKB369_NANO2_REPLACEMENT.bootloader.tool = sandeepmistry: openocd

SKYLAB_SKB369_NANO2_REPLACEMENT.build.mcu = cortex-m4

SKYLAB_SKB369_NANO2_REPLACEMENT.build.f_cpu = 16000000 SKYLAB_SKB369_NANO2_REPLACEMENT.build.board = SKYLAB_SKB369_Nano2replacement SKYLAB_SKB369_NANO2_REPLACEMENT.build.core = nRF5 SKYLAB_SKB369_NANO2_REPLACEMENT.build.variant = SKYLAB_SKB369_Nano2replacement SKYLAB_SKB369_NANO2_REPLACEMENT.build.variant_system_lib = SKYLAB_SKB369_NANO2_REPLACEMENT.build.extra_flags = -DNRF52 SKYLAB_SKB369_NANO2_REPLACEMENT.build.float_flags = -mfloat -abi = raske -mfpu = fpv4-sp-d16 SKYLAB_SKB369_NANO2_REPLACEMENT.build.ldscript = nrf52_xxaa.ld

SKYLAB_SKB369_NANO2_REPLACEMENT.menu.lfclk.lfrc.build.lfclk_flags = -DUSE_LFXO

SKYLAB_SKB369_NANO2_REPLACEMENT.menu.softdevice.s132 = S132

SKYLAB_SKB369_NANO2_REPLACEMENT.menu.softdevice.s132.softdevice = s132 SKYLAB_SKB369_NANO2_REPLACEMENT.menu.softdevice.s132.softdeviceversion = 2.0.1 SKYLAB_SKB369_NANO2_REPLACEMENT.menu.softdevice.s132.upload.maximum_size = 409600 SKYLAB_SKB369_NANO2_REPLACEMENT.menu.softdevice.s132.build.extra_flags = - DNRF52 -DS132 -DNRF51_S132 SKYLAB_SKB369_NANO2_REPLACEMENT.menu.softdevice.s132.build.ldscript = armgcc_s132_nrf52832_xxaa.ld

board.txt Seaded

Kommentaarid - #ga algavad read on kommentaarid.

Eesliide - iga tahvel vajab oma väärtuste tuvastamiseks unikaalset eesliidet. Siin on eesliideSKYLAB_SKB369_NANO2_REPLACEMENT.

Nimi - SKYLAB_SKB369_NANO2_REPLACEMENT.name rida määrab selle tahvli nime, mida Arduino tahvlimenüüs kuvada.

Üleslaadimistööriist - plokk SKYLAB_SKB369_NANO2_REPLACEMENT.upload määrab, millist tööriista üleslaadimiseks kasutada. Kui kasutate osakeste silurit, kasutage protokolli = cmsis-dap, nagu ülal näidatud.

Bootloader - see rida on kõigi selle board.txt -i tahvlite jaoks sama

Ehitamine - selles plokis tuleb värskendada ainult kahte rida. SKYLAB_SKB369_NANO2_REPLACEMENT.build.variant rida määrab selle tahvli kataloogi nime variandi alamkataloogis. SKYLAB_SKB369_NANO2_REPLACEMENT.build.board on väärtus, mis lisatakse ARDUINO_ -le ja määratakse seejärel koodi koostamisel. nt. -DARDUINO_SKYLAB_SKB369_Nano2replacement See võimaldab teil lubada/keelata koodi osad teatud tahvlite jaoks.

Madala sagedusega kell - see rida, SKYLAB_SKB369_NANO2_REPLACEMENT.menu.lfclk.lfrc.build.lfclk_flags, määrab madala sagedusega kella allika, mida kasutatakse lp_timer jaoks. On kolm võimalust: -DUSE_LFXO, -DUSE_LFRC ja -DUSE_LFSYNT. Parim valik on -DUSE_LFXO, kui plaadil on väline 32Khz kristall. Kui ei, siis kasutage -DUSE_LFRC, mis kasutab sisemist RC -ostsillaatorit ja tõmbab veidi rohkem voolu, ~ 10uA rohkem ja on palju vähem kordne. Ärge kasutage -DUSE_LFSYNT, kuna see hoiab kiibi kogu aeg töös, mille tulemuseks on mA -de voolutugevus.

Softdevice - pfod_lp_nrf52 toetab ainult nRF52 kiipe ja softdevice s132, nii et selle ploki jaoks pole vaja muid muudatusi peale eesliite.

NRF52 NFC -tihvtide ümberkonfigureerimine GPIO -deks

Vaikimisi on nRF52 tihvtid, P0.09 ja P0.10 on konfigureeritud kasutamiseks NFC -na ja eeldatakse, et need on ühendatud NFC -antenniga. Kui teil on vaja neid kasutada üldotstarbeliste sisend-/väljundpistikutena (GPIO -d), peate lisama määratluse, -DCONFIG_NFCT_PINS_AS_GPIOS, selle plaadi menüüsse … menu.softdevice.s132.build.extra_flags, et kompileerida seaded failis boards.txt.

Näiteks pfod_lp_nrf52.zip, konfigureerib GT832E_01 tihvtid uuesti kasutamiseks sisend-/väljundina. Selle plaadi jaotisele GT832E_01 failis boards.txt on lisatud järgmine määratlus

GT832E_01.menüü.softdevice.s132.build.extra_flags = -DNRF52 -DS132 -DNRF51_S132 -DCONFIG_NFCT_PINS_AS_GPIOS

Selle sätte säilitamiseks on muudetud ka pfod_lp_nrf52.zip linkeri skripti ja seda pole vaja muuta.

Samm 7: Järeldus

See õpetus on esitanud Redbear NanoV2 asendaja, kasutades SKYLAB SKB369 moodulit. Aku/päikeseenergial töötavat temperatuuri niiskuse monitori kasutati Arduino väga väikese energiatarbega BLE projektina SKYLAB mooduli jaoks. Toitevool ~ 29uA, kui see saavutatakse ühenduse parameetrite häälestamisega. Selle tulemuseks oli CR2032 mündipatarei aku tööiga ~ 10 kuud. Pikem suurema mahutavusega mündipatareide ja akude jaoks. Kahe odava päikesepatarei lisamine pikendas aku eluiga hõlpsalt 50% või rohkem. Ekraani päikesepatareide toiteks piisab heledast toavalgusest või laualambist.

See õpetus hõlmas ka kiipide kaitse eemaldamist eelprogrammeeritud nRF52-lt ja uue plaadimääratluse seadistamist, mis sobiks teie PCB/vooluringiga

Androidi programmeerimine pole vajalik. pfodApp tegeleb selle kõigega.

Soovitan: