Kazalo:

Enostaven BLE z nizko porabo energije v Arduinu, 3. del - zamenjava Nano V2 - koraki 3: 7 (s slikami)
Enostaven BLE z nizko porabo energije v Arduinu, 3. del - zamenjava Nano V2 - koraki 3: 7 (s slikami)

Video: Enostaven BLE z nizko porabo energije v Arduinu, 3. del - zamenjava Nano V2 - koraki 3: 7 (s slikami)

Video: Enostaven BLE z nizko porabo energije v Arduinu, 3. del - zamenjava Nano V2 - koraki 3: 7 (s slikami)
Video: Избавьтесь от жира на животе, но не ешьте эти обычные продукты 2024, December
Anonim
Enostaven BLE z nizko porabo energije v Arduinu 3. del - Zamenjava Nano V2 - Rev 3
Enostaven BLE z nizko porabo energije v Arduinu 3. del - Zamenjava Nano V2 - Rev 3
Enostaven BLE z nizko porabo energije v Arduinu 3. del - Zamenjava Nano V2 - Rev 3
Enostaven BLE z nizko porabo energije v Arduinu 3. del - Zamenjava Nano V2 - Rev 3
Enostaven BLE z nizko porabo energije v Arduinu 3. del - Zamenjava Nano V2 - Rev 3
Enostaven BLE z nizko porabo energije v Arduinu 3. del - Zamenjava Nano V2 - Rev 3

Posodobitev: 7. april 2019 - 3. revija lp_BLE_TempHumidity, doda datumske/časovne ploskve z uporabo pfodApp V3.0.362+in samodejno zaviranje pri pošiljanju podatkov

Posodobitev: 24. marec 2019 - 2. revija lp_BLE_TempHumidity, dodaja več možnosti ploskev in i2c_ClearBus, dodaja podporo GT832E_01

Uvod

Ta vadnica, Redbear Nano V2 Replacement, je 3. del 3. To je 2. revizija tega projekta. Revizija 2 PCB vključuje montažo za gumbno celico in senzor, poenostavi konstrukcijo in izboljša pretok zraka okoli senzorja, hkrati pa ga ščiti pred neposredno sončno svetlobo. Revizija 1 je tukaj.

1. del - Enostavna izdelava naprav BLE z zelo nizko porabo z Arduino pokrovi, ki Arduino nastavljajo za kodiranje nRF52 naprav z nizko porabo energije, programskim modulom in merjenjem napajalnega toka. Zajema tudi specializirane merilnike časa in primerjalnike z nizko porabo energije ter odkrite vhode in uporabo pfodApp za povezavo in upravljanje naprave nRF52.

2. del - Zelo nizek porabnik temperature monitorja vlažnosti pokriva uporabo modula Redbear Nano V2 in senzorja temperature / vlažnosti Si7021 za izdelavo baterije z nizko porabo energije / sončnega monitorja. Zajema tudi spreminjanje knjižnice Si7021 na nizko porabo, nastavitev naprave BLE za zmanjšanje trenutne porabe na <29uA in oblikovanje zaslona temperature/vlažnosti po meri za vaš mobilni telefon.

3. del - Ta zamenjava Redbear Nano V2, ta zajema uporabo drugih modulov na osnovi nRF52 namesto Nano V2. Zajema izbiro napajalnih komponent, konstrukcijo, odstranitev zaščite programiranja čipov nRF52, uporabo nožic NFC kot običajnega GPIO in opredelitev nove plošče nRF52 v Arduinu.

To navodilo je praktična uporaba dela 1, ki je z Arduinom olajšal izdelavo naprav BLE z zelo nizko porabo energije z izdelavo nadzornika temperature in vlažnosti BLE z zelo nizko porabo z uporabo plošče SKYLAB SBK369 kot zamenjave za Nano V2. Ta vadnica zajema, kako ustvariti novo definicijo plošče in kako odstraniti programsko zaščito nRF52, da se omogoči njeno ponovno programiranje. Ta vadnica uporablja isto skico kot 2. del z enakimi nastavljenimi parametri BLE za nizko porabo energije in se lahko napaja samo iz baterije ALI baterije + sončne ALI sončne energije. Prilagajanje parametrov BLE za nizko moč je bilo obravnavano v 2. delu

Rev 3 lp_BLE_TempHumidity prikazuje podatke glede na datum in čas z uporabo samo Arduino millis (). Glejte Arduino datum in čas z uporabo millis () in pfodApp z najnovejšo različico pfodApp (V3.0.362+).

Različica 4 pfod_lp_nrf52.zip podpira tudi modul GT832E_01 in ta vadnica zajema uporabo nožic NFC nRF52 kot standardnih GPIO.

Tu zgrajen monitor bo več let deloval na Coin Cell ali 2 x AAA baterijah, še dlje s solarno pomočjo. Poleg prikaza trenutne temperature in vlažnosti monitor shranjuje zadnjih 36 ur 10 -minutnih odčitkov in zadnjih 10 dni urnih odčitkov. Te lahko zabeležite v mobilni napravi Android in vrednosti shranite v datoteko dnevnika. Programiranje za Android ni potrebno, pfodApp obravnava vse to. Zaslon in grafikone Android popolnoma nadzira vaša skica Arduino, tako da jih lahko po potrebi prilagodite.

V drugem delu je bila za komponento nRF52832 BLE uporabljena plošča Redbear Nano V2. Ta projekt ga nadomešča s cenejšo ploščo SKYLAB SKB369. Tako kot v drugem delu se za senzor temperature / vlažnosti uporablja odklopna plošča Sparkfun Si7021. S Si7021 se uporablja spremenjena knjižnica z nizko porabo energije.

1. korak: Zakaj zamenjava Nano V2?

i) Nano V2 je bil nekaj mesecev izven proizvodnje in se zdi, da ne sodi v linijo Particle.io, zato ni jasno, kako dolgo bo na voljo.

ii) Nano V2 je dražji. Vendar ima tudi dodatne funkcije. Glej spodaj.

iii) Nano V2 ima komponente na obeh straneh, kar mu daje višji profil in otežuje montažo.

iv) Nano V2 ima na voljo omejene vhodno -izhodne zatiče, uporaba D6 do D10 pa zahteva letenje.

Čeprav je plošča Nano V2 dražja od plošče SKYLAB SKB369, ~ US17 v primerjavi s ~ US5, ima Nano V2 več funkcij. Nano V2 vključuje regulator 3.3V in napajalne kondenzatorje, dodatne komponente za uporabo DC/DC pretvornika nRF52, čipsko anteno in antenski priključek uFL SMT.

Druga možnost je modul GT832E_01, ki ga uporablja www.homesmartmesh.com. Različica 4 pfod_lp_nrf52.zip podpira tudi programiranje modula GT832E_01. SKYLAB SKB369 in GT832E_01 sta na voljo na

Redbear (Particle.io) ima tudi goli modul brez regulatorja 3V3, komponent DC/DC ali kristalnih komponent 32Khz.

Oris

Ta projekt ima 4 relativno neodvisne dele:-

Izbira in gradnja komponent Odstranitev zastavice zaščite kodiranja nRF52 in programiranje skice Ustvarjanje nove definicije plošče Arduino nRF52 Preoblikovanje nožic nRF52 NFC kot GPIO -jev

2. korak: Izbira komponent in izdelava

Izbira komponent

Poleg komponent nRF52832 in Si7021, izbranih v 2. delu, ta projekt dodaja še 3.3V regulator in napajalne kondenzatorje.

Komponenta regulatorja napetosti

Tukaj uporabljen regulator je MC87LC33-NRT. Zmore do 12V vhode in ima tok mirovanja <3.6uA, običajno 1.1uA. Nano V2, ki je uporabljal regulator TLV704, ima nekoliko višji tok tišine, običajno 3,4uA in lahko prenese višje vhodne napetosti, do 24V. Namesto tega je bil izbran MC87LC33-NRT, ker njegov podatkovni list določa, kako se odziva, ko vhodna napetost pade pod 3,3 V, pri čemer podatkovni list TLV704 ne.

TLV704 določa vhodno napetost najmanj 2,5 V in iz podatkovnega lista ni jasno, kaj se bo zgodilo pod tem. NRF52832 bo deloval na 1,7 V, Si7023 pa na 1,9 V. MC87LC33-NRT na drugi strani določa razlike vhodne/izhodne napetosti do 0V za nizke tokove (slika 18 podatkovnega lista). Glede na izbiro komponent je bil MC87LC33-NRT izbran, ker ima določeno zmogljivost.

Dobavni kondenzatorji

Za stabilnost in odziv regulator MC87LC33-NRT potrebuje nekaj napajalnih kondenzatorjev. Na podatkovnem listu je priporočljiv izhodni kondenzator> 0,1 μF. SKYLAB SBK369 določa tudi kondenzatorje 10uF/0,1uF na napajanju blizu plošče. Večji kondenzatorji pomagajo pri napajanju tokovnih konic nRF52 TX. Tu so bili uporabljeni 4 x 22uF 25V in 3 x 0,1uF 50V keramični kondenzatorji. En kondenzator 22uF in 0,1uF smo postavili blizu SKYLAB SBK369, 0,1uF smo postavili blizu izhoda MC87LC33-NRT, da smo zagotovili stabilnost, 22uF in 0,1uF pa na vhod MC87LC33-NRT in nadaljnjih 2 x 22uF kondenzatorjev, ki so bili spajkani po zatičih Vin/GND kot nadaljnji rezervoar toka. Za primerjavo ima plošča NanoV2 22uF / 0,1uF na vhodu regulatorja TLV704 in 0,1uF na izhodu.

Kondenzatorji rezervoarja z dodatnim tokom so bili nameščeni na vhodu regulatorja 3.3V, tako da bi se napolnili do višje napetosti pri delovanju s sončnimi celicami. Polnjenje na višjo napetost pomeni shranjevanje več toka za napajanje konic Tx.

Keramični kondenzatorji X5R se uporabljajo, ker imajo nizko serijsko upornost in nizek tok puščanja. Upor je običajno 100, 000MΩ ali 1000MΩ - µF, kar je vedno manj. Torej za 22uF imamo 22000MΩ, to je 0,15nA puščanje pri 3.3V ali 0.6nA za štiri kondenzatorje 22uF. To je zanemarljivo. Za primerjavo: nizki ESR, Panasonic -ovi elektrolitski kondenzatorji z nizkim puščanjem imajo uhajalne tokove <0,01CV. Tako je za kondenzator 22uF 16V puščanje <10uA. Opomba: To je puščanje pri nazivni napetosti, v tem primeru 16V. Puščanje je manjše pri nižjih napetostih, to je <2,2 uA pri 3,3 V.

Seznam delov

Približni stroški na enoto decembra 2018, ~ 61 USD, brez pošiljanja in programerja iz 1. dela

  • SKYLAB SKB369 ~ 5 USD npr. Aliexpress
  • Sparkfun Si7021 prelomna deska ~ 8 USD
  • 2 x 53 mm x 30 mm 0,15 W 5V sončne celice npr. Overfly ~ 1,10 USD
  • 1 x PCB SKYLAB_TempHumiditySensor_R2.zip ~ 25 USD za 5 popusta na www.pcbcart.com
  • 1 x MC78LC33 3.3V regulator, npr. Digikey MC78LC33NTRGOSCT-ND ~ 1 USD
  • 2 x 0,1uF 50V keramika C1608X5R1H104K080A npr. Digikey 445-7456-1-ND ~ 0,3 USD
  • 4 x 22uF 16V keramika GRM21BR61C226ME44L npr. Digikey 490-10747-1-ND ~ 2 USD
  • 1 x BAT54CW, npr. Digikey 497-12749-1-ND ~ 0,5 USD
  • 1 x 470R 0,5W 1% upor npr. Digikey 541-470TCT-ND ~ 0,25 USD
  • 1 x 10V 1W zener SMAZ10-13-F npr. Digikey SMAZ10-FDICT-ND ~ 0,5 USD
  • 3 mm x 12 mm najlonski vijaki, npr. Jaycar HP0140 ~ 3 AUD $
  • 3 mm x 12 mm najlonske matice, npr. Jaycar HP0146 ~ 3 AUD $
  • Scotch Trajni montažni trak Cat 4010 npr. od Amazona ~ 6,6 USD
  • Držalo za baterije CR2032, npr. HU2032-LF ~ 1,5 USD
  • Baterija CR2032 ~ 1 USD
  • List Perspex, 3,5 mm in 8 mm
  • pfodApp ~ 10 USD
  • Spajkalna pasta npr. Jaycar NS-3046 ~ 13 AUD $

3. korak: Gradnja

Gradnja
Gradnja
Gradnja
Gradnja
Gradnja
Gradnja

Projekt je zgrajen na majhnem tiskanem vezju. PCB je izdelal pcbcart.com iz teh Gerberjevih datotek, SKYLAB_TempHumiditySensor_R2.zip PCB posnema izhod Nano V2 in je dovolj splošen za uporabo pri drugih projektih BLE.

To je shema (pdf različica)

Najprej spajkajte komponente SMD, nato namestite ploščo SKYLAB SKB369

Skoraj vse komponente so naprave za površinsko montažo (SMD). Kondenzatorje in vezje je težko spajati ročno. Predlagana metoda je, da držite tiskano vezje v primežu in na blazinice nanesete majhno količino spajkalne paste in namestite komponente SMD, razen plošče SKB369 na tiskano vezje. Nato s toplotno pištolo segrejte spodnjo stran tiskanega vezja, dokler se spajkalna pasta ne stopi, nato pa na hitro prenesite vrh plošče, pri čemer pazite, da sestavnih delov ne raznesete. Končno se dotaknite sestavnih delov z spajkalnikom z majhno konico. Bodite previdni pri kondenzatorjih in uporih, saj se lahko zlahka stopi oba konca in komponenta med spajkanjem enega konca zrahlja.

Ta revizija dodaja dodatne 22uF 16V keramične kondenzatorje. Ti dodatni kondenzatorji zmanjšujejo trenutne konice, ki jih črpa iz baterije, in tudi zmanjšujejo padce napetosti pri napajanju iz sončnih celic. Dokler napetost iz sončnih celic ostane nad napetostjo akumulatorja, se iz baterije ne črpa tok.

Po namestitvi komponent SMD lahko spajkate v ploščo SKYLAB SKB369. Na eni strani jezičkov SKB369 sta dve luknji za preskusno točko. Z dvema zatičema v kartonsko podlago postavite ploščo SKB369 in previdno poravnajte zatiče. (Oglejte si zgornjo fotografijo z uporabo tiskanega vezja revizije 1) Nato spajkajte en zatič na nasprotni strani, da pritrdite ploščo, preden spajkate druge zatiče.

V končnem delu upoštevajte žico za povezavo Gnd od CLK do GND. Ta je nameščen PO programiranju, da prepreči, da bi šum na vhodu CLK sprožil čip nRF52 v visokotokovnem načinu za odpravljanje napak

Montažni kovček

Montažno ohišje je bilo izdelano iz dveh kosov perspeksa, 110 mm x 35 mm, debeline 3 mm. 3,5 -milimetrski kos pod sončnimi celicami je bil pritrjen za prevzem 3 mm najlonskih vijakov. Ta prenovljena konstrukcija je poenostavljena kot Rev 1 in izboljša pretok zraka okoli senzorja. Dodatne luknje na vsakem koncu so namenjene za montažo, na primer z uporabo kabelskih vezic.

4. korak: Odstranitev zastavice za zaščito kodiranja NRF52

Odstranitev zastavice za zaščito kodiranja NRF52
Odstranitev zastavice za zaščito kodiranja NRF52
Odstranitev zastavice za zaščito kodiranja NRF52
Odstranitev zastavice za zaščito kodiranja NRF52
Odstranitev zastavice za zaščito kodiranja NRF52
Odstranitev zastavice za zaščito kodiranja NRF52

Ploščo za temperaturo/vlažnost povežite s programerjem, opisanim v 1. delu, kot je prikazano zgoraj.

Ko so sončne celice in baterije izklopljeni, sta Vin in Gnd priključena na Vdd in Gnd programerja (rumena in zelena kabla), SWCLK in SWDIO pa na Clk in SIO plošče glave programatorja (beli in sivi vodi)

Odstranitev zaščite programa nRF52

S strani Nordic Semi - Debug and Trace DAP - Access Debug Port. Zunanji iskalnik napak lahko dostopa do naprave prek DAP. DAP izvaja standardna vrata za odpravljanje napak serijske žice ARM® CoreSight ™ (SW-DP). SW-DP izvaja protokol Serial Wire Debug (SWD), ki je dvopolni serijski vmesnik, SWDCLK in SWDIO

Pomembno: Linija SWDIO ima notranji vlečni upor. Linija SWDCLK ima notranji spustni upor.

CTRL -AP - Nadzorna dostopna vrata. Vrata za dostop za nadzor (CTRL-AP) so vrata za dostop po meri, ki omogočajo nadzor nad napravo, tudi če so druga vrata za dostop v DAP onemogočena zaradi zaščite vrat za dostop. Zaščita vrat za dostop blokira iskalnika napak za branje in pisanje v vse registre CPU-ja in naslove, preslikane v pomnilnik. Onemogočite zaščito vrat za dostop. Zaščito vrat za dostop lahko onemogočite le z izdajo ukaza ERASEALL prek CTRL-AP. Ta ukaz bo izbrisal Flash, UICR in RAM.

Izberite CMSIS-DAP kot programer za razhroščevalnik delcev in izberite nRF5 Flash SoftDevice

Če bliskavica deluje, je to v redu, vendar bodo pogosto moduli zaščiteni pred ponovnim programiranjem in to napako boste dobili v oknu Arduino

Odpri razhroščevalnik na čipu 0.10.0-dev-00254-g696fc0a (2016-04-10-10: 13) Licencirano pod GNU GPL v2 Za poročila o hroščih preberite https://openocd.org/doc/doxygen/bugs.html debug_level: 2 Info: samo ena možnost prevoza; samodejna izbira hitrosti adapterja 'swd': 10000 kHz cortex_m reset_config sysresetreq Informacije: CMSIS-DAP: SWD Podprti podatki: CMSIS-DAP: Vmesnik inicializiran (SWD) Podatki: CMSIS-DAP: Različica FW = 1,10 Podatki: SWCLK/TCK = 1 SWDIO/ TMS = 1 TDI = 0 Tdo -AP za nadzor jedra Napaka: cilj še ni pregledan Napaka med utripanjem SoftDevice.

V tem primeru morate v nRF52 nastaviti register ukazov ERASEALL, da počistite pomnilnik in napravo znova programirate. Različica openOCD, dobavljena s sandeepmistry nRF52, ne vključuje ukaza apreg, potrebnega za pisanje v register ukazov ERASEALL, zato morate namestiti novejšo različico.

Namestite različico OpenOCD OpenOCD-20181130 ali novejšo. Vnaprej sestavljena različica sistema Windows je na voljo na https://gnutoolchains.com/arm-eabi/openocd/ Najnovejša koda je na voljo na

Odprite ukazni poziv in spremenite direktorij v namestitveni imenik OpenOCD in vnesite ukaz

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

Odziv je

Odpri razhroščevalnik na čipu 0.10.0 (2018-11-30) [https://github.com/sysprogs/openocd]Licencirano pod GNU GPL v2 Za poročila o hroščih preberite https://openocd.org/doc/doxygen/ bugs.html debug_level: 2 Info: samodejna izbira prvega razpoložljivega prenosa seje "swd". Za preglasitev uporabite 'transport select'. hitrost adapterja: 1000 kHz cortex_m reset_config sysresetreq Info: Poslušanje na vratih 6666 za povezave tcl Info: Poslušanje na vratih 4444 za povezave telnet Informacije: CMSIS-DAP: SWD Podprti podatki: CMSIS-DAP: različica FW = 1,10 Podatki: CMSIS-DAP: Inicializiran vmesnik (SWD) Info: SWCLK/TCK = 1 SWDIO/TMS = 1 TDI = 0 TDO = 0 nTRST = 0 nRESET = 1 Podatki: CMSIS-DAP: Vmesnik pripravljen Podatki: taktna hitrost 1000 kHz Podatki: SWD DPIDR 0x2ba01477 Napaka: MEM-AP za nadzor jedra ni bilo mogoče najti Podatki: Poslušanje povezav gdb na vratih 3333

Nato odprite terminalsko okno, npr. TeraTerm (Windows) ali CoolTerm (Mac) in se povežite na vrata 127.0.0.1 4444

V oknu telnet bo prikazano>, ukazni poziv pa Info: sprejem povezave 'telnet' na tcp/4444

V oknu telnet (tj. TeraTerm) vnesite nrf52.dap apreg 1 0x04to vrne 0x00000000, ki kaže, da je čip zaščiten. Nato vnesite nrf52.dap apreg 1 0x04 0x01 in nato nrf52.dap apreg 1 0x04to vrne 0x00000001, ki prikazuje, da je čip pri naslednjem ponovnem zagonu nastavljen na ERASEALL.

Zaprite povezavo telnet in uporabite tudi Ctrl-C, da zaprete program openOCD v ukaznem pozivu, nato pa vklopite modul nRF52 in zdaj bo pripravljen za programiranje.

Zdaj znova poskusite utripati mehko napravo.

Zdaj lahko programirate modul nRF52 iz Arduina.

5. korak: Programiranje SKYLAB SKB369

Programiranje SKYLAB SKB369
Programiranje SKYLAB SKB369
Programiranje SKYLAB SKB369
Programiranje SKYLAB SKB369
Programiranje SKYLAB SKB369
Programiranje SKYLAB SKB369

Zaprite Arduino in znova namestite najnovejšo različico podpore pfod_lp_nrf52, tako da sledite navodilom za namestitev podpore za strojno opremo pfod_lp_nrf52. Najnovejša pfod_lp_nrf52 vključuje nadomestno ploščo SKYLAB SKB369 Nano2. Izberite to kot ploščo in jo nato lahko programirate z revizijo 3 lp_BLE_TempHumidity, lp_BLE_TempHumidity_R3.zip, kot je opisano v 2. delu.

Če programiranje ne uspe. Zaprite vsa okna Arduino, odstranite kable USB, znova zaženite Arduino in znova priključite kabel USB programatorja ter znova priklopite USB napajanje modula nRF52 in poskusite znova.

Nato se povežite prek pfodApp, da prikažete trenutno in zgodovinsko temperaturo in vlažnost. Ko prikažete zgodovinsko ploskev, se odčitki z milisekundnimi časovnimi žigi shranijo v datoteko dnevnika na vašem mobilnem telefonu in so na voljo tudi na zaslonu z neobdelanimi podatki.

Dnevnik vsebuje tudi dodatne podatke, potrebne za ponovno ustvarjanje datumskih in časovnih ploskev v preglednici. Za podrobnosti glejte Arduino datum in čas z uporabo millis () in pfodApp

6. korak: Ustvarjanje nove definicije plošče Arduino NRF52

Ustvarjanje nove definicije plošče Arduino NRF52
Ustvarjanje nove definicije plošče Arduino NRF52
Ustvarjanje nove definicije plošče Arduino NRF52
Ustvarjanje nove definicije plošče Arduino NRF52
Ustvarjanje nove definicije plošče Arduino NRF52
Ustvarjanje nove definicije plošče Arduino NRF52
Ustvarjanje nove definicije plošče Arduino NRF52
Ustvarjanje nove definicije plošče Arduino NRF52

Če želite podpreti novo ploščo nRF52, morate a) dodati nov imenik v imenik variant z datotekami plošč in b) urediti datoteko board.txt, da dodate novo ploščo v Arduino.

Dodajanje nove različice plošče nRF52

Kot je opisano v 1. delu, Namestitev podpore strojne opreme pfod_lp_nrf52, poiščite podimenik strojne opreme paketa sandeepmistry, ki ste ga posodobili s podporo pfod_lp_nrf52. Odprite podimenik / hardware / nRF5 / 0.6.0 / variants in ustvarite nov imenik za svojo novo ploščo, npr. SKYLAB_SKB369_Nano2replacement V novem / hardware / nRF5 / 0.6.0 / variants / SKYLAB_SKB369_Nano2replacement imeniku ustvarite tri datoteke variant.h, variant.cpp in pins_arduino.h Lahko jih kopirate iz imenikov drugih različic plošče. Za zamenjavo SKYLAB_SKB369_Nano2 sem sprva kopiral datoteke iz različice RedBear_BLENano2.

pins_arduino.h datoteko

Datoteke pins_arduino.h ni treba spreminjati. Vključuje samo datoteko variant.h

variant.h datoteko

Uredite datoteko variant.h, da določite skupno število zatičev, ki jih bo imela vaša plošča, PINS_COUNT

OPOMBA: V paketu sandeepmistry so nastavitve NUM_DIGITAL_PINS, NUM_ANALOG_INPUTS in NUM_ANALOG_OUTPUTS prezrte

Če vaša plošča ponuja več ali manj analognih zatičev, posodobite razdelek / * Analogni zatiči * / v datoteki variants.h.

OPOMBA: Za plošče NanoV2 in SKYLAB so analogni zatiči preslikani v digitalne zatiče A0 == D0 itd

To ni bistveno. Analogne vhode lahko dodelite kateremu koli priročnemu pinu Arduino. Za primer si oglejte datoteke blue/variant.h in blue/variant.cpp.

Čip nRF52832 ima 8 analognih vhodnih zatičev, vendar nadomestna plošča SKYLAB_SKB369_Nano2 omogoča le 6 od njih, ki ustrezajo Nano2.

Vse številke pin, razen RESET_PIN, v datoteki variant.h so številke PIN Arduino. To pomeni #define PIN_A0 (0) pomeni, da je D0 na skici arduino enak pin kot A0. RESET_PIN je izjema. Ta številka je pin številka čipa nRF52823 in 21 je edina veljavna izbira. Vendar pa podpora pfod_lp_nrf52 ne omogoča ponastavitvenega zatiča na nRF52832

variant.cpp datoteko

V datoteki variant.cpp je samo en vnos, matrika g_ADigitalPinMap , ki preslika številke pinov Arduino na čipe P0.. čipa nRF52832.

OPOMBA: Na ploščah NanoV2 in SKYLAB so analogni zatiči Arduino A0, A1… enaki kot digitalni zatiči Arduino D0, D1…, zato se morajo prvi vnosi v g_ADigitalPinMap MORATI preslikati v številke pinov AINx na čipu nRF52832

Za analogne vhode, ki jih omogoča vaša plošča, morajo ti vnosi v g_ADigitalPinMap preslikati številke pin nRF52832 AIN0, AIN1, AIN2 itd. AIN0 je čip pin P0.02, AIN1 je čip pin P0.03 itd. glejte zgornjo postavitev pina nRF52832.

Za neveljavne preslikave uporabite (uint32_t) -1. Na primer nadomestna plošča SKYLAB_SKB369_Nano2 nima vgrajene LED, D13, zato je njen položaj preslikan v (uint32_t) -1

V pfod_lp_nrf52.zip podimeniki različic Redbear NanoV2, SKYLAB SKB369 in GT832E_01 vsebujejo slike, ki prikazujejo preslikave, nastavljene z variant.cpp. (Oglejte si zgornje slike)

V primeru SKYLAB SKB369 lahko izbirate med številnimi zatiči. Kartiranih je le toliko, da ustreza NanoV2. V primeru GT832E_01 je treba preslikati vse razpoložljive zatiče. Tudi takrat so na voljo le trije (3) analogni vhodi namesto šestih (6) na NanoV2. Poleg tega je treba dva zatiča NFC, P0.09 in P0.10, znova konfigurirati kot GPIO. Glejte Ponovna konfiguracija zatičev NFC nRF52 kot GPIO spodaj.

Posodabljanje datoteke Board.txt

Tu je vnos SKYLAB_SKB369_Nano2replacement v datoteki board.txt.

## SKYLAB_SKB369 Zamenjava Nano2SKYLAB_SKB369_NANO2_REPLACEMENT.name =*SKYLAB Zamenjava Nano2 SKB369

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_Bom2 SKYLAB_SKB369_NANO2_REPLACEMENT.upload.use_1200bps_touch = false SKYLAB_SKB369_NANO2_REPLACEMENT.upload.wait_for_upload_port = false SKYLAB_SKB369_NANO2_REPLACEMENT.upload false

SKYLAB_SKB369_NANO2_REPLACEMENT.bootloader.tool = sandeepmistry: openocd

SKYLAB_SKB369_NANO2_REPLACEMENT.build.mcu = cortex-m4

SKYLAB_SKB369_NANO2_REPLACEMENT.build.f_cpu = 16.000.000 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 = trdi -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 Nastavitve

Komentarji - vrstice, ki se začnejo z #, so komentarji.

Predpona - vsaka plošča potrebuje edinstveno predpono za identifikacijo svojih vrednosti. Tukaj je predponaSKYLAB_SKB369_NANO2_REPLACEMENT.

Ime - Vrstica SKYLAB_SKB369_NANO2_REPLACEMENT.name določa ime te plošče za prikaz v meniju Arduinove plošče.

Orodje za nalaganje - Blok za nalaganje SKYLAB_SKB369_NANO2_REPLACEMENT.upload določa, katero orodje uporabiti za nalaganje. Če uporabljate razhroščevalnik delcev, uporabite protokol = cmsis-dap, kot je prikazano zgoraj.

Bootloader - Ta vrstica je enaka za vse plošče v tej datoteki.txt

Build - V tem bloku je treba posodobiti samo dve vrstici. Vrstica SKYLAB_SKB369_NANO2_REPLACEMENT.build.variant podaja ime imenika te plošče v podimeniku različic. Plošča SKYLAB_SKB369_NANO2_REPLACEMENT.build.board je vrednost, dodana ARDUINO_ in nato definirana med sestavljanjem kode. npr. -DARDUINO_SKYLAB_SKB369_Nano2replacement To vam omogoča, da omogočite/onemogočite dele kode za določene plošče.

Nizkofrekvenčna ura - Ta vrstica, SKYLAB_SKB369_NANO2_REPLACEMENT.menu.lfclk.lfrc.build.lfclk_flags, določa vir nizkofrekvenčne ure, ki se uporablja za lp_timer. Obstajajo tri možnosti, -DUSE_LFXO, -DUSE_LFRC in -DUSE_LFSYNT. Najboljša izbira je -DUSE_LFXO, če ima plošča zunanji kristal 32Khz. Če ne, potem uporabite -DUSE_LFRC, ki uporablja notranji RC oscilator in črpa nekoliko več toka, ~ 10uA več in je veliko manj krat manj natančen. Ne uporabljajte -DUSE_LFSYNT, ker tako čip deluje ves čas, kar povzroči trenutni žreb mAs.

Softdevice - pfod_lp_nrf52 podpira samo čipe nRF52 in softdevice s132, zato za ta blok razen predpone niso potrebne nobene spremembe.

Ponovna konfiguracija zatičev NFC nRF52 kot GPIO

Na nožicah nRF52 bodite privzeto nastavljeni, P0.09 in P0.10 sta konfigurirana za uporabo kot NFC in pričakujeta, da bosta povezani z anteno NFC. Če jih morate uporabiti kot vhodno/izhodne zatiče splošnega namena (GPIO -ji), morate dodati definicijo, -DCONFIG_NFCT_PINS_AS_GPIOS, v meni …soft.vice.s132.build.extra_flags te plošče za pripravo nastavitev v datoteki board.txt.

Na primer pfod_lp_nrf52.zip, znova konfigurira zatiče GT832E_01 za uporabo kot V/I. V razdelku GT832E_01 za to ploščo v datoteki boards.txt je dodana naslednja definicija

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

Za ohranitev te nastavitve je bil spremenjen tudi skript povezovalnika v pfod_lp_nrf52.zip in ga ni treba spreminjati.

7. korak: Zaključek

Ta vadnica je predstavila zamenjavo za Redbear NanoV2 z uporabo modula SKYLAB SKB369. Kot primer projekta BLE z nizko porabo energije v Arduinu za modul SKYLAB je bil uporabljen baterijski/solarni monitor temperature. Dovodni tokovi ~ 29uA, kjer so doseženi s prilagajanjem parametrov povezave. To je povzročilo življenjsko dobo baterije na gumbaste celice CR2032 ~ 10 mesecev. Daljša za kovance in celice z večjo zmogljivostjo. Dodajanje dveh poceni sončnih celic je zlahka podaljšalo življenjsko dobo baterije za 50% ali več. Za napajanje monitorja iz sončnih celic zadostuje močna sobna luč ali namizna svetilka.

Ta vadnica je zajemala tudi odstranitev zaščite čipov iz vnaprej programiranega nRF52 in kako nastaviti novo definicijo plošče, ki ustreza vašemu tiskanemu vezju/vezju

Programiranje za Android ni potrebno. pfodApp obravnava vse to.

Priporočena: