INHOUDSOPGAWE:

Maklik baie lae krag BLE in Arduino deel 3 - Nano V2 -vervanging - Rev 3: 7 stappe (met foto's)
Maklik baie lae krag BLE in Arduino deel 3 - Nano V2 -vervanging - Rev 3: 7 stappe (met foto's)

Video: Maklik baie lae krag BLE in Arduino deel 3 - Nano V2 -vervanging - Rev 3: 7 stappe (met foto's)

Video: Maklik baie lae krag BLE in Arduino deel 3 - Nano V2 -vervanging - Rev 3: 7 stappe (met foto's)
Video: Как использовать до 10 кнопочных переключателей с 1 входным контактом Arduino ANPB-V1 2024, November
Anonim
Maklik baie lae krag BLE in Arduino Deel 3 - Nano V2 -vervanging - Rev 3
Maklik baie lae krag BLE in Arduino Deel 3 - Nano V2 -vervanging - Rev 3
Maklik baie lae krag BLE in Arduino Deel 3 - Nano V2 -vervanging - Rev 3
Maklik baie lae krag BLE in Arduino Deel 3 - Nano V2 -vervanging - Rev 3
Maklik baie lae krag BLE in Arduino Deel 3 - Nano V2 -vervanging - Rev 3
Maklik baie lae krag BLE in Arduino Deel 3 - Nano V2 -vervanging - Rev 3

Opdatering: 7 April 2019 - Rev 3 van lp_BLE_TempHumidity, voeg datum-/tydplotte by, met behulp van pfodApp V3.0.362+, en outomatiese versnelling by die stuur van dataOpdatering: 24 Maart 2019 - Rev 2 van lp_BLE_TempHumidity, voeg meer plotopsies en i2c_ClearBus by, voeg GT832E_01 -ondersteuning by

>

>

Inleiding

Hierdie handleiding, 'n Redbear Nano V2 -vervanging, is deel 3 van 3. Dit is hersiening 2 van hierdie projek. Hersiening 2 PCB bevat montering vir die muntsel en die sensor, vergemaklik die konstruksie en verbeter die lugvloei rondom die sensor terwyl dit teen direkte sonlig beskerm word. Hersiening 1 is hier.

Deel 1 - Bou baie lae krag BLE -toestelle, maklik gemaak met Arduino -omhulsels om Arduino op te stel om nRF52 laesterk toestelle, die programmeermodule en die meting van die stroom. Dit dek ook gespesialiseerde laestroom -timers en vergelykers en ingevoerde insette en die gebruik van pfodApp om aan te sluit op en die nRF52 -toestel te beheer.

Deel 2 - 'n Baie lae krag temperatuur humiditeitsmonitor dek met 'n Redbear Nano V2 -module en 'n Si7021 temperatuur- / humiditeitsensor om 'n laekragbattery / sonmonitor te bou. Dit dek ook die aanpassing van die Si7021 -biblioteek tot lae krag, die instelling van die BLE -toestel om sy huidige verbruik tot <29uA te verminder en 'n pasgemaakte temperatuur/humiditeitsvertoning vir u selfoon te ontwerp.

Deel 3 - 'n Redbear Nano V2 -vervanging, hierdie een, dek die gebruik van ander nRF52 -gebaseerde modules in plaas van die Nano V2. Dit dek die keuse van toevoerkomponente, konstruksie, die verwydering van die nRF52 -chipprogrammeringsbeskerming, die gebruik van NFC -penne as normale GPIO en die definisie van 'n nuwe nRF52 -bord in Arduino.

Hierdie instruksies is 'n praktiese toepassing van deel 1 -gebou met 'n baie lae krag BLE -toestelle wat maklik gemaak is met Arduino deur die bou van 'n baie lae krag BLE temperatuur- en humiditeitsmonitor met 'n SKYLAB SBK369 -bord as 'n Nano V2 -vervanging. Hierdie handleiding behandel hoe u 'n nuwe borddefinisie kan skep en hoe u die nRF52-programmeringsbeskerming kan verwyder sodat dit herprogrammeer kan word. Hierdie handleiding gebruik dieselfde skets as deel 2 met dieselfde ingestelde BLE -parameters vir 'n lae kragverbruik en kan slegs van battery OF battery + sonkrag of sonkrag aangedryf word. Die afstemming van BLE -parameters vir lae krag is in Deel 2 behandel

Rev 3 van lp_BLE_TempHumidity teken die data op teen datum en tyd met slegs die Arduino millis (). Sien datum en tyd van Arduino met millis () en pfodApp met behulp van die nuutste weergawe van pfodApp (V3.0.362+).

Rev 4 van pfod_lp_nrf52.zip ondersteun ook die GT832E_01 module en hierdie handleiding dek die gebruik van die NFC nRF52 penne as standaard GPIO's.

Die monitor wat hier gebou is, sal jare lank op Coin Cell of 2 x AAA -batterye werk, selfs langer met sonkraghulp. Behalwe die huidige temperatuur en humiditeit, bewaar die monitor die laaste 36 uur van 10 minute lesings en die laaste 10 dae van uurlesings. Dit kan op u Android -selfoon getoon word en die waardes word in 'n loglêer gestoor. Geen Android -programmering is nodig nie; pfodApp hanteer dit alles. Die Android -skerm en grafiek word volledig beheer deur u Arduino -skets, sodat u dit kan aanpas soos benodig.

Deel 2 het 'n Redbear Nano V2 -bord gebruik vir die nRF52832 BLE -komponent. Hierdie projek vervang die met 'n goedkoper SKYLAB SKB369 -bord. Soos in Deel 2, word 'n Sparkfun Si7021 -uitbreekbord gebruik vir die temperatuur- / humiditeitsensor. 'N Gewysigde lae -kragbiblioteek word gebruik met die Si7021.

Stap 1: Waarom 'n Nano V2 -vervanging?

i) Die Nano V2 was 'n aantal maande buite produksie en dit lyk asof dit nie in die Particle.io -reeks pas nie, dus is dit nie duidelik hoe lank dit beskikbaar sal wees nie.

ii) Die Nano V2 is duurder. Dit het egter ook ekstra funksies. Sien onder.

iii) Die Nano V2 het komponente aan beide kante, wat dit 'n hoër profiel gee en dit moeiliker maak om te monteer.

iv) Die Nano V2 het beperkte I/O -penne beskikbaar, en om D6 tot D10 te gebruik, benodig vlieënde leidrade.

Alhoewel die Nano V2 -bord duurder is as die SKYLAB SKB369 -bord, ~ US17 teenoor ~ US5, het die Nano V2 wel meer funksies. Die Nano V2 bevat 'n 3.3V -reguleerder en toevoerkondensators, ekstra komponente vir die gebruik van die nRF52 DC/DC -omskakelaaropsie, 'n chip -antenne en 'n uFL SMT -antenna -aansluiting.

'N Ander alternatief is die GT832E_01 -module wat deur www.homesmartmesh.com gebruik word. Rev 4 van pfod_lp_nrf52.zip ondersteun ook die programmering van die GT832E_01 module. Die SKYLAB SKB369 en die GT832E_01 is beskikbaar by

Redbear (Particle.io) het ook 'n blote module sonder 3V3 -reguleerder, DC/DC -komponente of 32Khz -kristalkomponente.

Buitelyn

Hierdie projek het 4 relatiewe onafhanklike dele:-

Komponentkeuse en -konstruksie Verwyder die nRF52 -koderingsbeskermingsvlag en programmeer die skets Skep 'n nuwe Arduino nRF52 -borddefinisie Herkonfigureer nRF52 NFC -penne as GPIO's

Stap 2: Seleksie en konstruksie van komponente

Komponentkeuse

Benewens die nRF52832- en Si7021 -komponente wat in Deel 2 gekies is, voeg hierdie projek 'n 3.3V -reguleerder en toevoerkondensators by.

Die spanningsreguleerder -komponent

Die reguleerder wat hier gebruik word, is MC87LC33-NRT. Dit kan tot 12V insette hanteer en het 'n rustige stroom van <3.6uA, tipies 1.1uA. Die Nano V2 wat 'n TLV704 -reguleerder gebruik, het 'n effens hoër stilstroom, tipies 3.4uA en kan hoër insetspannings, tot 24V, hanteer. Die MC87LC33-NRT is in plaas daarvan gekies omdat die datablad spesifiseer hoe dit reageer, aangesien die ingangsspanning onder 3.3V daal, waar die TLV704-datablad nie.

Die TLV704 spesifiseer 'n ingangsspanning van minimum 2.5V en uit die datablad is nie duidelik wat daaronder sal gebeur nie. Die nRF52832 sal laer word na 1.7V en die Si7023 tot 1.9V. Die MC87LC33-NRT aan die ander kant spesifiseer ingangs-/uitsetspanningverskille tot 0V vir lae strome (Fig. 18 van die datablad). Gegewe die keuse van komponente, is die MC87LC33-NRT gekies omdat dit die gespesifiseerde prestasie het.

Voedingskondensators

Die MC87LC33-NRT-reguleerder benodig 'n paar toevoerkondensators vir stabiliteit en reaksie. 'N Uitsetkapasitor> 0.1uF word aanbeveel op die datablad. Die SKYLAB SBK369 spesifiseer ook 10uF/0.1uF kapasitors op die toevoer naby die bord. Groter kapasitors help om die nRF52 TX huidige spykers te voorsien. Hier is 4 x 22uF 25V en 3 x 0.1uF 50V Keramiek -kondensators gebruik. Een 22uF en 'n 0.1uF kondensator is naby die SKYLAB SBK369 geplaas, 'n 0.1uF is naby die uitset van die MC87LC33-NRT geplaas om stabiliteit te verseker en 'n 22uF en 0.1uF is op die ingang van die MC87LC33-NRT geplaas en 'n verdere 2 x 22uF kapasitors is aan die Vin/GND -penne gesoldeer as 'n verdere stroomreservoir. Ter vergelyking het die NanoV2 -bord 'n 22uF / 0.1uF op die ingang na die TLV704 -reguleerder en 'n 0.1uF op die uitset daarvan.

Die ekstra -stroomreservoir -kapasitors is op die ingang van die 3.3V -reguleerder geïnstalleer, sodat hulle na 'n hoër spanning sou laai wanneer hulle met sonselle werk. Laai na hoër spanning is gelyk aan die berging van meer stroom om die Tx -spykers te voorsien.

Keramiek X5R -kondensators word gebruik omdat dit 'n lae reeksweerstand en 'n lae lekstroom het. Die weerstand is tipies 100, 000MΩ of 1000MΩ - µF wat ooit minder is. Dus vir 22uF het ons 22000MΩ, dit wil sê 0.15nA lekkasie by 3.3V of 0.6nA vir die vier 22uF kapasitors. Dit is weglaatbaar. Ter vergelyking Lae ESR, lae lekkasie Panasonic elektrolitiese kapasitors het lekstrome van <0.01CV. Dus vir 'n 22uF 16V -kondensator is die lekkasie <10uA. Opmerking: dit is die lekkasie by die nominale spanning, 16V in hierdie geval. Die lekkasie is laer by laer spannings, dit wil sê <2.2uA by 3.3V.

Onderdele lys

Geskatte koste per eenheid op Desember 2018, ~ US $ 61, uitgesluit aflewering en die programmeerder uit Deel 1

  • SKYLAB SKB369 ~ US $ 5 bv. Aliexpress
  • Sparkfun Si7021 uitbreekbord ~ US $ 8
  • 2 x 53mm x 30mm 0,15W 5V sonselle, bv. Overfly ~ US $ 1,10
  • 1 x PCB SKYLAB_TempHumiditySensor_R2.zip ~ US $ 25 vir 5 afslag op www.pcbcart.com
  • 1 x MC78LC33 3.3V -reguleerder, bv. Digikey MC78LC33NTRGOSCT-ND ~ US $ 1
  • 2 x 0.1uF 50V keramiek C1608X5R1H104K080A bv. Digikey 445-7456-1-ND ~ US $ 0,3
  • 4 x 22uF 16V keramiek GRM21BR61C226ME44L bv. Digikey 490-10747-1-ND ~ US $ 2
  • 1 x BAT54CW, bv. Digikey 497-12749-1-ND ~ US $ 0,5
  • 1 x 470R 0.5W 1% weerstand bv. Digikey 541-470TCT-ND ~ 0,25 dollar
  • 1 x 10V 1W zener SMAZ10-13-F bv. Digikey SMAZ10-FDICT-ND ~ US $ 0.5
  • 3mm x 12mm nylon skroewe, bv. Jaycar HP0140 ~ AUD $ 3
  • 3mm x 12mm nylon moere, bv. Jaycar HP0146 ~ AUD $ 3
  • Scotch Permanent Mounting Tape Cat 4010 bv. van Amazon ~ 6,6 dollar
  • CR2032 batteryhouer, bv. HU2032-LF ~ US $ 1.5
  • CR2032 battery ~ US $ 1
  • Perspex -vel, 3,5 mm en 8 mm
  • pfodApp ~ US $ 10
  • Soldeer Plak bv. Jaycar NS-3046 ~ AUD $ 13

Stap 3: Konstruksie

Konstruksie
Konstruksie
Konstruksie
Konstruksie
Konstruksie
Konstruksie

Die projek is op 'n klein PCB gebou. Die PCB is vervaardig deur pcbcart.com uit hierdie Gerber -lêers, SKYLAB_TempHumiditySensor_R2.zip Die PCB boots die Nano V2 -pen na en is algemeen genoeg om vir ander BLE -projekte gebruik te word.

Dit is die skematiese (pdf weergawe)

Soldeer eers die SMD -komponente en monteer dan die SKYLAB SKB369 -bord

Byna al die komponente is oppervlakmonteringsapparate (SMD). Die kapasitors en IC's kan moeilik wees om met die hand te soldeer. Die voorgestelde metode is om die PCB in 'n banksak te hou en 'n klein hoeveelheid soldeerpasta op die pads aan te bring en die SMD -komponente te plaas, behalwe die SKB369 -bord op die PCB. Gebruik dan 'n hittepistool om hitte aan die onderkant van die printplaat aan te wend totdat die soldeerpasta gesmelt is, en pas dan vinnig oor die bokant van die bord, wees versigtig om nie die komponente af te blaas nie. Raak laastens die komponente aan met 'n klein soldeerbout. Wees versigtig met die kondensators en weerstand, want dit is maklik om albei kante te smelt en die komponent los te maak terwyl u die een kant soldeer.

Hierdie hersiening voeg ekstra 22uF 16V keramiek kapasitors by. Hierdie ekstra kondensators verminder die huidige spykers wat uit die battery getrek word, en verminder ook die spanningsdalings wanneer hulle van die sonselle voorsien word. Solank die spanning van die sonselle bo die batteryspanning bly, word geen stroom uit die battery getrek nie.

Nadat die SMD -komponente gemonteer is, kan u in die SKYLAB SKB369 -bord soldeer. Daar is twee toetspuntgate aan die een kant van die SKB369 -oortjies. Gebruik twee penne in 'n kartonbasis om die SKB369 -bord te plaas en pas die penne versigtig in. (Sien die voorbeeldfoto hierbo met die Revision 1 PCB) Soldeer dan een pen aan die teenoorgestelde kant om die bord vas te hou voordat die ander penne gesoldeer word.

Let op die Gnd -skakeldraad van die CLK na GND in die voltooide deel. Dit word geïnstalleer NA die programmering om te verhoed dat geraas op die CLK -invoer die nRF52 -chip in 'n hoë huidige ontfoutingsmodus veroorsaak

Montagekas

Die montagekas is gemaak van twee stukke perspex, 110 mm x 35 mm, 3 mm dik. Die 3.5 mm stuk onder die sonselle is getik om die 3 mm nylon skroewe te neem. Hierdie hersiene konstruksie is vereenvoudiger dan Rev 1 en verbeter die lugvloei rondom die sensor. Die ekstra gate aan elke kant is vir montering, byvoorbeeld deur kabelbinders te gebruik.

Stap 4: Verwyder die NRF52 -koderingsbeskermingsvlag

Die verwydering van die NRF52 -koderingsbeskermingsvlag
Die verwydering van die NRF52 -koderingsbeskermingsvlag
Die verwydering van die NRF52 -koderingsbeskermingsvlag
Die verwydering van die NRF52 -koderingsbeskermingsvlag
Die verwydering van die NRF52 -koderingsbeskermingsvlag
Die verwydering van die NRF52 -koderingsbeskermingsvlag

Koppel die temperatuur-/humiditeitskaart aan die programmeerder beskryf in Deel 1 soos hierbo getoon.

As die sonselle en batterye ontkoppel is, word Vin en Gnd verbind met die programmeerder se Vdd en Gnd (die geel en groen leidings) en die SWCLK en SWDIO word gekoppel aan die Clk en SIO van die programmeerkopbord (die wit en grys leidings)

Die verwydering van die programbeskerming van nRF52

Van Nordic Semi - Ontfout en spoor bladsy DAP - Ontfouting toegangspoort. 'N Eksterne ontfouter kan via die DAP toegang tot die toestel verkry. Die DAP implementeer 'n standaard ARM® CoreSight ™ Serial Wire Debug-poort (SW-DP). Die SW-DP implementeer die Serial Wire Debug-protokol (SWD), wat 'n tweepennige seriële koppelvlak is, SWDCLK en SWDIO

Belangrik: die SWDIO-lyn het 'n interne optrekweerstand. Die SWDCLK-lyn het 'n interne aftrekweerstand.

CTRL -AP - Beheer toegangspoort. Die Control Access-poort (CTRL-AP) is 'n pasgemaakte toegangspoort wat beheer van die toestel moontlik maak, selfs al word die ander toegangspoorte in die DAP uitgeskakel deur die toegangspoortbeskerming. Toegangspoortbeskerming blokkeer die ontfouter van lees- en skryftoegang tot alle CPU-registers en geheue-gekarteerde adresse. Skakel toegangshavenbeskerming uit. Toegangspoortbeskerming kan slegs gedeaktiveer word deur 'n ERASEALL-opdrag via CTRL-AP uit te voer. Hierdie opdrag sal die Flash, UICR en RAM uitvee.

Kies CMSIS-DAP as die programmeerder vir Particle's Debugger en kies nRF5 Flash SoftDevice

As die flits werk, is dit in orde, maar dikwels is modules teen herprogrammering beskerm en kry u hierdie foutopgawe in die Arduino-venster

Open On-Chip Debugger 0.10.0-dev-00254-g696fc0a (2016-04-10-10: 13) Gelisensieer onder GNU GPL v2 Vir foutverslae, lees https://openocd.org/doc/doxygen/bugs.html debug_level: 2 Info: slegs een vervoeropsie; kies outomaties 'swd' adapterspoed: 10000 kHz cortex_m reset_config sysresetreq Info: CMSIS-DAP: SWD Ondersteunde inligting: CMSIS-DAP: Interface geïnitialiseerde (SWD) Info: CMSIS-DAP: FW Weergawe = 1.10 Info: SWCLK/TCK = 1 SWDIO/ TMS = 1 TDI = 0 TDO = 0 nTRST = 0 nRESET = 1 Info: CMSIS-DAP: Interface gereed Info: verminder spoedaanvraag: 10000kHz tot 5000kHz maksimum Info: kloksnelheid 10000 kHz Info: SWD IDCODE 0x2ba01477 Fout: Kon nie MEM vind nie -AP om die kernfout te beheer: teiken nog nie ondersoek nie Fout terwyl SoftDevice flikker.

In hierdie geval moet u die ERASEALL -opdragregister in die nRF52 instel om die geheue skoon te maak en die toestel weer programmeerbaar te maak. Die weergawe van openOCD wat met sandeepmistry nRF52 voorsien word, bevat nie die apreg -opdrag wat nodig is om na die ERASEALL -opdragregister te skryf nie, dus moet u 'n latere weergawe installeer.

Installeer OpenOCD-weergawe OpenOCD-20181130 of hoër. Windows vooraf saamgestelde weergawe is beskikbaar by https://gnutoolchains.com/arm-eabi/openocd/ Die nuutste kode is beskikbaar by

Open 'n opdragprompt en verander dir na die OpenOCD -installeringsgids en voer die opdrag in

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

Die reaksie is

Open On-Chip Debugger 0.10.0 (2018-11-30) [https://github.com/sysprogs/openocd] Gelisensieer onder GNU GPL v2 Vir foutverslae, lees https://openocd.org/doc/doxygen/ bugs.html debug_level: 2 Inligting: kies eers die eerste beskikbare sessievervoer "swd" outomaties. Gebruik 'vervoer kies' om dit te ignoreer. adaptorsnelheid: 1000 kHz cortex_m reset_config sysresetreq Info: Luister op poort 6666 vir tcl-verbindings Info: Luister op poort 4444 vir telnetverbindings Info: CMSIS-DAP: SWD Ondersteunde inligting: CMSIS-DAP: FW Weergawe = 1.10 Info: CMSIS-DAP: Interface Initialised (SWD) Info: SWCLK/TCK = 1 SWDIO/TMS = 1 TDI = 0 TDO = 0 nTRST = 0 nRESET = 1 Info: CMSIS-DAP: Interface gereed Info: kloksnelheid 1000 kHz Info: SWD DPIDR 0x2ba01477 Fout: Kon nie MEM-AP vind om die kern te beheer nie: Luister op poort 3333 vir gdb-verbindings

Maak dan 'n terminale venster oop, bv. TeraTerm (Windows) of CoolTerm (Mac) en maak verbinding met 127.0.0.1 -poort 4444

Die telnet -venster sal 'n> wys en die opdragprompt sal inligting wys: die aanvaarding van 'telnet' -verbinding op tcp/4444

In die telnet -venster (d.w.s. TeraTerm) typenrf52.dap apreg 1 0x04 gee dit 0x00000000 terug en wys dat die chip beskerm is. Dan gee typrf52.dap apreg 1 0x04 0x01en thennrf52.dap apreg 1 0x04 hierdie opgawe 0x00000001 aan, wat wys dat die chip nou op ERASEALL is by die volgende herlaai.

Sluit die telnetverbinding en gebruik ook Ctrl-C om die openOCD-program in die opdragprompt te verlaat, en skakel dan die nRF52-module aan en dit is gereed om te programmeer.

Probeer nou weer om die sagte toestel te flits.

U kan nou die nRF52 -module vanaf Arduino programmeer.

Stap 5: Programmering van die SKYLAB SKB369

Die programmering van die SKYLAB SKB369
Die programmering van die SKYLAB SKB369
Die programmering van die SKYLAB SKB369
Die programmering van die SKYLAB SKB369
Die programmering van die SKYLAB SKB369
Die programmering van die SKYLAB SKB369

Sluit Arduino en herinstalleer die nuutste weergawe van pfod_lp_nrf52-ondersteuning deur die instruksies vir die installering van die pfod_lp_nrf52 hardewareondersteuning te volg. Die nuutste pfod_lp_nrf52 bevat SKYLAB SKB369 Nano2 vervangingsbord. Kies dit as die bord en u kan dit dan programmeer met die hersiening 3 van lp_BLE_TempHumidity, lp_BLE_TempHumidity_R3.zip, soos beskryf in deel 2.

As die programmering misluk. Maak al die Arduino -vensters toe, verwyder die USB -kabels, herlaai Arduino en steek die USB -kabel van die programmeerder weer in, en koppel die USB -toevoer van die nRF52 -module weer aan en probeer weer.

Koppel dan via pfodApp om die huidige en historiese temperatuur en humiditeit te vertoon. Sodra u die historiese plot vertoon het, word die metings, met millisekonde tydstempels, in die loglêer op u selfoon gestoor en ook beskikbaar in die rou data skerm.

Die loglêer bevat ook die ekstra data wat nodig is om die datum- en tydplotte in 'n sigblad te herskep. Sien die datum en tyd van Arduino met millis () en pfodApp vir meer inligting

Stap 6: Skep 'n nuwe Arduino NRF52 -borddefinisie

Skep 'n nuwe Arduino NRF52 -borddefinisie
Skep 'n nuwe Arduino NRF52 -borddefinisie
Skep 'n nuwe Arduino NRF52 -borddefinisie
Skep 'n nuwe Arduino NRF52 -borddefinisie
Skep 'n nuwe Arduino NRF52 -borddefinisie
Skep 'n nuwe Arduino NRF52 -borddefinisie
Skep 'n nuwe Arduino NRF52 -borddefinisie
Skep 'n nuwe Arduino NRF52 -borddefinisie

Om 'n nuwe nRF52 -bord te ondersteun, moet u a) 'n nuwe gids byvoeg onder die variante -gids met die bordlêers en b) die boards.txt -lêer wysig om die nuwe bord by Arduino te voeg.

Voeg 'n nuwe nRF52 -bordvariant by

Soos beskryf in Deel 1, vind u die hardeware-subgids van die sandeepmistry-pakket wat u opgedateer het met die ondersteuning van pfod_lp_nrf52, soos beskryf in deel 1. Maak die submap / hardware / nRF5 / 0.6.0 / variante oop en skep 'n nuwe gids vir u nuwe bord, bv. variant.cpp en pins_arduino.h U kan dit kopieer vanaf die ander gidse van die bordvariante. Vir die SKYLAB_SKB369_Nano2 -vervanging het ek die lêers aanvanklik van die RedBear_BLENano2 -variant gekopieer.

pins_arduino.h lêer

Die pins_arduino.h -lêer hoef nie verander te word nie. Dit bevat net die variant.h -lêer

variant.h lêer

Wysig die variant.h -lêer om die totale aantal penne op u bord te definieer, PINS_COUNT

LET WEL: In die sandeepmistry -pakket word NUM_DIGITAL_PINS, NUM_ANALOG_INPUTS en NUM_ANALOG_OUTPUTS -instellings geïgnoreer

As u bord min of meer analoog penne beskikbaar stel, werk die / * analoog penne * / gedeelte van die variants.h -lêer op.

LET WEL: Vir die NanoV2- en SKYLAB -borde word die analoog penne gekarteer na die digitale penne A0 == D0 ens

Dit is nie noodsaaklik nie. U kan die analoog insette aan enige gerieflike Arduino -pen toewys. Sien dan blou/variant.h en blou/variant.cpp lêers vir 'n voorbeeld.

Die nRF52832 -chip het 8 analoog -invoerpenne, maar die SKYLAB_SKB369_Nano2 -vervangingskaart maak slegs 6 daarvan beskikbaar om by die Nano2 te pas.

Alle speldnommers, behalwe die RESET_PIN, in die variant.h -lêer is Arduino -speldnommers. Dit is #definieer PIN_A0 (0) impliseer dat D0 in die arduino -skets dieselfde pen as A0 is. Die RESET_PIN is die uitsondering. Die nommer is die nRF52823 -chippen -nommer en 21 is die enigste geldige keuse. Die pfod_lp_nrf52 -ondersteuning maak egter nie die reset -pin op die nRF52832 moontlik nie

variant.cpp lêer

Daar is slegs een inskrywing in die variant.cpp -lêer, die g_ADigitalPinMap -skikking wat die Arduino -speldnommers aan die nRF52832 -chip P0 -penne toewys.

OPMERKING: Op die NanoV2- en SKYLAB -borde is die Arduino analoog penne A0, A1 … dieselfde as die Arduino digitale penne D0, D1 … dus die eerste inskrywings in g_ADigitalPinMap MOET na AINx -pennommers op die nRF52832 -skyf gekoppel word

Vir die analoog insette wat u bord beskikbaar stel, moet die inskrywings in g_ADigitalPinMap nRF52832 AIN0, AIN1, AIN2, ens speldommers karteer. dws AIN0 is chippen P0.02, AIN1 is chippen P0.03 ens. sien die nRF52832 -penuitleg hierbo.

Gebruik (uint32_t) -1 vir ongeldige kartering. Byvoorbeeld, die SKYLAB_SKB369_Nano2vervangingskaart het nie 'n ingeboude LED, D13 nie, dus word die posisie daarvan gekarteer na (uint32_t) -1

In pfod_lp_nrf52.zip het die Redbear NanoV2, SKYLAB SKB369 en GT832E_01 variante subgidse beelde wat die kartering toon wat deur variant.cpp opgestel is. (Sien die prente hierbo)

In die geval van die SKYLAB SKB369 is daar baie penne om van te kies. Slegs genoeg word gekarteer om by die NanoV2 te pas. In die geval van die GT832E_01 moet al die beskikbare penne gekarteer word. Selfs dan is daar slegs drie (3) analoog insette beskikbaar in plaas van die ses (6) op die NanoV2. Daarbenewens moet die twee NFC-penne, P0.09 en P0.10, herkonfigureer word as GPIO's. Sien Herkonfigureer nRF52 NFC -penne soos GPIO's hieronder.

Die opdatering van die boards.txt -lêer

Hier is die SKYLAB_SKB369_Nano2vervangingsinskrywing in die boards.txt -lêer.

## SKYLAB_SKB369 Nano2 -vervangingSKYLAB_SKB369_NANO2_REPLACEMENT.name =*SKYLAB SKB369 Nano2 -vervanging

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

SKYLAB_SKB369_NANO2_REPLACEMENT.bootloader.tool = sandeepmistry: openocd

SKYLAB_SKB369_NANO2_REPLACEMENT.build.mcu = korteks-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 = hard -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_VERVANGING.menu.softdevice.s132.build.ldscript = armgcc_s132_nrf52832_xxaa.ld

board.txt Instellings

Kommentaar - reëls wat met # begin, is opmerkings.

Voorvoegsel - elke bord benodig 'n unieke voorvoegsel om die waardes daarvan te identifiseer. Hier is die voorvoegselSKYLAB_SKB369_NANO2_REPLACEMENT.

Naam - Die SKYLAB_SKB369_NANO2_REPLACEMENT.name -reël spesifiseer die naam van hierdie bord wat in die bordspyskaart van Arduino moet verskyn.

Oplaai -instrument - Die SKYLAB_SKB369_NANO2_REPLACEMENT.upload -blok spesifiseer watter hulpmiddel om op te laai. As u die Particle Debugger gebruik, gebruik dan protocol = cmsis-dap soos hierbo getoon.

Bootloader - Hierdie reël is dieselfde vir alle borde in hierdie boards.txt

Bou - In hierdie blok hoef slegs twee reëls opgedateer te word. Die SKYLAB_SKB369_NANO2_REPLACEMENT.build.variant-reël spesifiseer die bord se naam van die gids in die variant-subgids. Die SKYLAB_SKB369_NANO2_REPLACEMENT.build.board is die waarde wat by ARDUINO_ gevoeg word en dan gedefinieer word terwyl die kode saamgestel word. bv. -DARDUINO_SKYLAB_SKB369_Nano2vervanging Hiermee kan u dele van die kode vir spesifieke borde in/uitskakel.

Lae frekwensieklok - Hierdie reël, SKYLAB_SKB369_NANO2_REPLACEMENT.menu.lfclk.lfrc.build.lfclk_flags, spesifiseer die bron van die laefrekwensieklok wat vir die lp_timer gebruik word. Daar is drie opsies, -DUSE_LFXO, -DUSE_LFRC en -DUSE_LFSYNT. Die beste keuse is -DUSE_LFXO, as die bord 'n eksterne 32Khz -kristal het. Indien nie, gebruik dan -DUSE_LFRC, wat 'n interne RC -ossillator gebruik en effens meer stroom trek, ~ 10uA meer, en baie minder keer minder akkuraat is. Moenie die -DUSE_LFSYNT gebruik nie, want dit hou die chip heeltyd aan die gang, wat lei tot mA se huidige trekking.

Softdevice - pfod_lp_nrf52 ondersteun slegs nRF52 -skyfies en softdevice s132, dus is daar geen veranderinge nodig vir hierdie blok nie, behalwe die voorvoegsel.

Herkonfigureer nRF52 NFC -penne as GPIO's

As standaard is die nRF52 -penne, P0.09 en P0.10 gekonfigureer vir gebruik as NFC en verwag om aan 'n NFC -antenna gekoppel te word. As u hierdie as I/O -penne (GPIO's) vir algemene doeleindes moet gebruik, moet u 'n definisie, -DCONFIG_NFCT_PINS_AS_GPIOS, by die bord se menu … menu.softdevice.s132.build.extra_flags saamstel in die boards.txt -lêer.

Byvoorbeeld, pfod_lp_nrf52.zip, herkonfigureer die GT832E_01-penne vir gebruik as I/O. Die GT832E_01 -afdeling vir hierdie bord, in die boards.txt -lêer, het die volgende definisie bygevoeg

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

Die skakelskrif in pfod_lp_nrf52.zip is ook gewysig om hierdie instelling te behou en hoef nie verander te word nie.

Stap 7: Gevolgtrekking

Hierdie handleiding bied 'n plaasvervanger vir die Redbear NanoV2 aan deur 'n SKYLAB SKB369 -module te gebruik. 'N Batterij-/sonkrag -temperatuurvochtigheidsmonitor is gebruik as 'n voorbeeld van 'n baie lae krag BLE -projek in Arduino vir die SKYLAB -module. Verskaf strome van ~ 29uA waar dit bereik word deur die verbindingsparameters aan te pas. Dit het 'n CR2032 -batteryleeftyd van ongeveer 10 maande tot gevolg gehad. Langer vir muntcelle en batterye met 'n hoër kapasiteit. Deur twee goedkoop sonselle by te voeg, kan u die batteryleeftyd met 50% of meer verleng. 'N Helder kamerlig of 'n lessenaarlamp is voldoende om die monitor van die sonselle af te dryf.

Hierdie handleiding het ook betrekking op die verwydering van skyfbeskerming van 'n vooraf geprogrammeerde nRF52 en hoe om 'n nuwe borddefinisie op te stel om by u eie PCB/stroombaan te pas

Geen Android -programmering is nodig nie. pfodApp hanteer dit alles.

Aanbeveel: