Taula de continguts:

BLE fàcil de molt baix consum a Arduino Part 3: substitució de Nano V2 - Rev 3: 7 passos (amb imatges)
BLE fàcil de molt baix consum a Arduino Part 3: substitució de Nano V2 - Rev 3: 7 passos (amb imatges)

Vídeo: BLE fàcil de molt baix consum a Arduino Part 3: substitució de Nano V2 - Rev 3: 7 passos (amb imatges)

Vídeo: BLE fàcil de molt baix consum a Arduino Part 3: substitució de Nano V2 - Rev 3: 7 passos (amb imatges)
Vídeo: EP24 Pimped — старый измеритель RSSI с AD8318 и Arduino 2024, De novembre
Anonim
BLE fàcil de molt baix consum a Arduino Part 3 - Substitució de Nano V2 - Rev 3
BLE fàcil de molt baix consum a Arduino Part 3 - Substitució de Nano V2 - Rev 3
BLE fàcil de molt baix consum a Arduino Part 3 - Substitució de Nano V2 - Rev 3
BLE fàcil de molt baix consum a Arduino Part 3 - Substitució de Nano V2 - Rev 3
BLE fàcil de molt baix consum a Arduino Part 3 - Substitució de Nano V2 - Rev 3
BLE fàcil de molt baix consum a Arduino Part 3 - Substitució de Nano V2 - Rev 3

Actualització: 7 d’abril de 2019 - Rev. 3 de lp_BLE_TempHumidity, afegeix gràfics de data i hora, mitjançant pfodApp V3.0.362 + i limitació automàtica en enviar dades

Actualització: 24 de març de 2019 - Rev.2 de lp_BLE_TempHumidity, afegeix més opcions de gràfic i i2c_ClearBus, afegeix compatibilitat GT832E_01

Introducció

Aquest tutorial, A Redbear Nano V2 Replacement, és la part 3 de 3. Aquesta és la revisió 2 d’aquest projecte. El PCB de revisió 2 inclou un muntatge per a la cèl·lula de la moneda i el sensor, simplifica la construcció i millora el flux d’aire al voltant del sensor mentre el protegeix de la llum solar directa. La revisió 1 ja és aquí.

Part 1: construir dispositius BLE de molt baixa potència fàcilment amb les cobertes Arduino configurant Arduino per codificar els dispositius de baixa potència nRF52, el mòdul de programació i mesurant el corrent de subministrament. També cobreix temporitzadors i comparadors especialitzats de baixa potència i entrades rebutjades i l’ús de pfodApp per connectar-se i controlar el dispositiu nRF52.

Part 2: un monitor d’humitat de temperatura de molt baixa potència cobreix un mòdul Redbear Nano V2 i un sensor de temperatura / humitat Si7021 per construir una bateria / monitor solar de baixa potència. També inclou la modificació de la biblioteca Si7021 perquè sigui de poca potència, l’ajust del dispositiu BLE per reduir el seu consum actual a <29uA i el disseny d’una pantalla de temperatura / humitat personalitzada per al vostre mòbil.

Part 3: una substitució de Redbear Nano V2, aquesta, cobreix l'ús d'altres mòduls basats en nRF52 en lloc del Nano V2. Cobreix la selecció de components de subministrament, la construcció, l'eliminació de la protecció de programació de xips nRF52, l'ús de pins NFC com a GPIO normal i la definició d'una nova placa nRF52 a Arduino.

Aquesta instrucció és una aplicació pràctica dels dispositius BLE de molt baixa potència de la part 1 que es fa fàcil amb Arduino mitjançant la construcció d’un monitor de temperatura i humitat BLE de molt baixa potència mitjançant una placa SKYLAB SBK369 com a substitut de Nano V2. Aquest tutorial explica com crear una nova definició de placa i com eliminar la protecció de programació nRF52 per permetre que es pugui tornar a programar. Aquest tutorial utilitza el mateix esbós que la part 2 amb els mateixos paràmetres BLE afinats per a un baix consum d'energia i només es pot alimentar amb bateria O amb bateria + solar o amb solar. La posada a punt dels paràmetres BLE per a baixa potència es va tractar a la part 2

Rev 3 de lp_BLE_TempHumidity representa les dades en funció de la data i l’hora amb només Arduino millis (). Consulteu la data i l'hora d'Arduino amb millis () i pfodApp amb l'última versió de pfodApp (V3.0.362 +).

La Rev. 4 de pfod_lp_nrf52.zip també admet el mòdul GT832E_01 i aquest tutorial inclou l'ús dels pins NFC nRF52 com a GPIO estàndard.

El monitor construït aquí funcionarà durant anys amb bateries Coin Cell o 2 x AAA, encara més amb assistència solar. A més de mostrar la temperatura i la humitat actuals, el monitor emmagatzema les darreres 36 hores de lectures de 10 minuts i els darrers 10 dies de lectures per hora. Aquests es poden representar al mòbil Android i els valors guardats en un fitxer de registre. No es requereix programació d'Android, pfodApp s'encarrega de tot això. El vostre esbós d’Arduino controla completament la visualització i el gràfic d’Android perquè pugueu personalitzar-lo segons sigui necessari.

La part 2 utilitzava una placa Redbear Nano V2 per al component BLE nRF52832. Aquest projecte el substitueix per un tauler SKYLAB SKB369 més barat. Com a la part 2, s’utilitza una placa de separació Sparkfun Si7021 per al sensor de temperatura / humitat. S'utilitza una biblioteca modificada de baixa potència amb el Si7021.

Pas 1: per què una substitució de Nano V2?

i) El Nano V2 va estar fora de producció durant uns quants mesos i no sembla que encaixi en la línia de Particle.io, de manera que no queda clar per quant de temps estarà disponible.

ii) El Nano V2 és més car. Tanmateix, també té funcions addicionals. Mirar abaix.

iii) El Nano V2 té components a banda i banda, cosa que li confereix un perfil més alt i dificulta el seu muntatge.

iv) El Nano V2 disposa de pins d'E / S limitats i utilitzar D6 a D10 requereix cables voladors.

Tot i que la placa Nano V2 és més cara que la placa SKYLAB SKB369, ~ US17 contra ~ US5, la Nano V2 té més funcions. El Nano V2 inclou un regulador de 3.3V i condensadors d’alimentació, components addicionals per utilitzar l’opció de convertidor DC / DC nRF52, una antena de xip i un connector d’antena uFL SMT.

Una altra alternativa és el mòdul GT832E_01 utilitzat per www.homesmartmesh.com. La Rev. 4 de pfod_lp_nrf52.zip també admet la programació del mòdul GT832E_01. El SKYLAB SKB369 i el GT832E_01 estan disponibles a

Redbear (Particle.io) també té un mòdul sense regulador 3V3, components CC / CC o components de cristall de 32 KHz.

Esquema

Aquest projecte té 4 parts independents relatives: -

Selecció i construcció de components Eliminació de la bandera de protecció de codificació nRF52 i programació de l'esbós Creació d'una nova definició de placa Arduino nRF52 Reconfiguració de pins NFC NRF52 com a GPIO

Pas 2: Selecció i construcció de components

Selecció de components

A més dels components nRF52832 i Si7021 seleccionats a la part 2, aquest projecte afegeix un regulador de 3,3 V i condensadors de subministrament.

El component del regulador de tensió

El regulador utilitzat aquí és MC87LC33-NRT. Pot gestionar entrades de fins a 12V i té un corrent en repòs de <3,6uA, normalment 1,1uA. El Nano V2 utilitza un regulador TLV704 amb un corrent quiesent lleugerament superior, normalment 3,4uA i pot manejar tensions d’entrada més altes, fins a 24V. El MC87LC33-NRT es va triar en el seu lloc perquè el seu full de dades especifica com respon ja que el voltatge d'entrada cau per sota de 3,3 V, com no ho fa el full de dades TLV704.

El TLV704 especifica un voltatge d'entrada de 2,5 V mínim i no es veu clarament a la fitxa tècnica què passarà a continuació. El nRF52832 baixarà fins a 1,7 V i el Si7023 baixarà fins a 1,9 V. El MC87LC33-NRT, d'altra banda, especifica diferències de voltatge d'entrada / sortida fins a 0V per a corrents baixos (figura 18 del full de dades). Per tant, donada l’elecció dels components, s’ha escollit l’MC87LC33-NRT perquè té el rendiment especificat.

Condensadors de subministrament

El regulador MC87LC33-NRT necessita alguns condensadors de subministrament per obtenir estabilitat i resposta. Es recomana un condensador de sortida> 0,1 uF al full de dades. El SKYLAB SBK369 també especifica condensadors de 10uF / 0.1uF al subministrament a prop de la placa. Els condensadors més grans ajuden a subministrar els pics de corrent TX nRF52. Aquí es van utilitzar condensadors ceràmics de 4 x 22uF 25V i 3 x 0,1uF 50V. Es va col·locar un condensador de 22uF i un 0.1uF a prop del SKYLAB SBK369, un 0.1uF a prop de la sortida del MC87LC33-NRT per garantir l’estabilitat i un 22uF i 0.1uF a l’entrada del MC87LC33-NRT i un Hi ha 2 condensadors de 22 x 22 uF més soldats a través dels pins Vin / GND com a dipòsit de corrent addicional. Per a la comparació, la placa NanoV2 té un 22uF / 0.1uF a l'entrada del regulador TLV704 i un 0.1uF a la seva sortida.

Els condensadors del dipòsit de corrent addicional es van instal·lar a l'entrada del regulador de 3,3 V perquè es carreguessin a una tensió més alta quan funcionaven amb cèl·lules solars. La càrrega a una tensió més alta equival a emmagatzemar més corrent per subministrar els pics de Tx.

S’utilitzen condensadors ceràmics X5R perquè tenen una resistència de sèrie baixa i un baix corrent de fuita. La resistència sol ser de 100, 000MΩ o 1000MΩ - µF, que sempre és menor. Per tant, per a 22uF tenim 22000MΩ, és a dir, fuites de 0,15nA a 3,3V o 0,6nA per als quatre condensadors de 22uF. Això és insignificant. Per a la comparació, els condensadors electrolítics Panasonic de baixa ESR i baixa fuita tenen corrents de fuita <0,01 CV. Per tant, per a un condensador de 22uF 16V, la fuita és <10uA. Nota: Aquesta és la fuita a la tensió nominal, 16V en aquest cas. La fuita és menor a tensions més baixes, és a dir, <2,2 uA a 3,3 V.

Llista de peces

Cost aproximat per unitat al desembre de 2018, ~ 61 dòlars EUA, excloent l'enviament i el programador de la primera part

  • SKYLAB SKB369 ~ 5 dòlars EUA, per exemple, Aliexpress
  • Tauler de sortida Sparkfun Si7021 ~ 8 dòlars EUA
  • 2 cèl·lules solars de 5 x 53 mm x 30 mm 0,15 W 5 V per ex. Sobrevolar ~ 1,10 dòlars EUA
  • 1 x PCB SKYLAB_TempHumiditySensor_R2.zip ~ 25 dòlars EUA per 5 de descompte a www.pcbcart.com
  • 1 regulador MC78LC33 3.3V, p. Ex. Digikey MC78LC33NTRGOSCT-ND ~ 1 dòlar EUA
  • 2 x 0.1uF 50V ceràmica C1608X5R1H104K080A per ex. Digikey 445-7456-1-ND ~ 0,3 dòlars EUA
  • 4 x 22uF 16V ceràmica GRM21BR61C226ME44L per ex. Digikey 490-10747-1-ND ~ 2 dòlars EUA
  • 1 x BAT54CW, p. Ex. Digikey 497-12749-1-ND ~ 0,5 dòlars EUA
  • 1 x 470R 0,5W 1% resistència p. Ex. Digikey 541-470TCT-ND ~ 0,25 dòlars EUA
  • 1 x 10V 1W zener SMAZ10-13-F per ex. Digikey SMAZ10-FDICT-ND ~ 0,5 dòlars EUA
  • Cargols de niló de 3 mm x 12 mm, p. Ex. Jaycar HP0140 ~ 3 AUD
  • Femelles de niló de 3 mm x 12 mm, p. Ex. Jaycar HP0146 ~ 3 AUD
  • Cinta de muntatge permanent Scotch Cat 4010 p.ex. d'Amazon ~ 6,6 dòlars EUA
  • Suport de bateria CR2032, p. HU2032-LF ~ 1,5 USD
  • Bateria CR2032 ~ 1 dòlar EUA
  • Full de píxel de 3,5 mm i 8 mm
  • pfodApp ~ 10 dòlars EUA
  • Enganxar de soldadura, per exemple Jaycar NS-3046 ~ 13 AUD

Pas 3: construcció

Construcció
Construcció
Construcció
Construcció
Construcció
Construcció

El projecte es construeix sobre un petit PCB. El PCB va ser fabricat per pcbcart.com a partir d’aquests fitxers Gerber, SKYLAB_TempHumiditySensor_R2.zip.

Aquest és l'esquema (versió pdf)

Primer soldeu els components SMD i, a continuació, munteu la placa SKYLAB SKB369

Gairebé tots els components són dispositius de muntatge superficial (SMD). Els condensadors i els circuits integrats poden ser difícils de soldar a mà. El mètode suggerit és subjectar el PCB en un vici i aplicar una petita quantitat de pasta de soldadura als coixinets i col·locar els components SMD, excepte la placa SKB369 al PCB. A continuació, amb una pistola de calor, apliqueu calor a la part inferior del PCB fins que la pasta de soldadura es fongui i, a continuació, feu una passada ràpida per la part superior de la placa tenint cura de no bufar els components. Finalment, toqueu els components amb un petit soldador de punta. Aneu amb compte amb els condensadors i la resistència, ja que és fàcil fondre els dos extrems i deixar anar el component mentre es solda un extrem.

Aquesta revisió afegeix condensadors de ceràmica de 22uF 16V addicionals. Aquests condensadors addicionals redueixen els pics de corrent extrets de la bateria i també redueixen la caiguda de tensió quan s’alimenta de les cèl·lules solars. Mentre la tensió de les cèl·lules solars es mantingui per sobre de la tensió de la bateria, no s’extreu corrent de la bateria.

Després de muntar els components SMD, podeu soldar a la placa SKYLAB SKB369. Hi ha dos forats de punt de prova a un costat de les pestanyes SKB369. Utilitzeu dos pins en una base de cartró per situar el tauler SKB369 i alineeu-los amb cura. (Vegeu l'exemple de la foto anterior amb el PCB de revisió 1) A continuació, soldeu un passador del costat oposat per mantenir el tauler en lloc abans de soldar els altres passadors.

Tingueu en compte el fil d'enllaç Gnd de CLK a GND a la part acabada. S’instal·la DESPRÉS de la programació per evitar que el soroll a l’entrada CLK desencadeni el xip nRF52 en un mode de depuració de corrent elevat

Estoig de muntatge

La caixa de muntatge estava feta de dues peces de pèl de pèl de 110 mm x 35 mm i 3 mm de gruix. La peça de 3,5 mm sota les cèl·lules solars es va aprofitar per agafar els cargols de niló de 3 mm. Aquesta construcció revisada és més senzilla que la Rev 1 i millora el flux d’aire al voltant del sensor. Els forats addicionals a cada extrem són per muntar, utilitzant, per exemple, tirants de cable.

Pas 4: treure el senyalador de protecció de codificació NRF52

Eliminació del senyal de protecció de codificació NRF52
Eliminació del senyal de protecció de codificació NRF52
Eliminació del senyal de protecció de codificació NRF52
Eliminació del senyal de protecció de codificació NRF52
Eliminació del senyal de protecció de codificació NRF52
Eliminació del senyal de protecció de codificació NRF52

Connecteu la placa de temperatura / humitat al programador descrit a la part 1 tal com es mostra més amunt.

Amb les piles solars i les bateries desconnectades, el Vin i el Gnd es connecten al programador Vdd i Gnd (els cables groc i verd) i els SWCLK i SWDIO es connecten al Clk i al SIO de la placa de capçalera del programador (els cables blanc i gris)

Eliminació de la protecció del programa nRF52

Des de la pàgina semi-depuració i traça nòrdica DAP: port d'accés a depuració. Un depurador extern pot accedir al dispositiu mitjançant el DAP. El DAP implementa un port de depuració de cable sèrie ARM® CoreSight ™ (SW-DP) estàndard. El SW-DP implementa el protocol Serial Wire Debug (SWD) que és una interfície serial de dos pins, SWDCLK i SWDIO

Important: la línia SWDIO té una resistència de tracció interna. La línia SWDCLK té una resistència desplegable interna.

CTRL-AP: control del port d'accés. El Control Access Port (CTRL-AP) és un port d’accés personalitzat que permet controlar el dispositiu fins i tot si la protecció del port d’accés desactiva la resta de ports d’accés al DAP. La protecció del port d'accés bloqueja el depurador de l'accés de lectura i escriptura a tots els registres de la CPU i adreces assignades a la memòria. Desactiva la protecció del port d'accés. La protecció del port d'accés només es pot desactivar mitjançant l'emissió d'una ordre ERASEALL mitjançant CTRL-AP. Aquesta ordre esborrarà Flash, UICR i RAM.

Seleccioneu CMSIS-DAP com a programador per al depurador de partícules i seleccioneu nRF5 Flash SoftDevice

Si el flaix funciona, està bé, però sovint els mòduls hauran estat protegits contra la reprogramació i obtindreu aquesta sortida d'error a la finestra d'Arduino

Open On-Chip Debugger 0.10.0-dev-00254-g696fc0a (2016-04-10-10: 13) Amb llicència GNU GPL v2 Per a informes d'errors, llegiu https://openocd.org/doc/doxygen/bugs.html debug_level: 2 Informació: només una opció de transport; Selecciona automàticament la velocitat de l'adaptador "swd": 10000 kHz. TMS = 1 TDI = 0 TDO = 0 nTRST = 0 nRESET = 1 Informació: CMSIS-DAP: Interfície preparada Informació: reduir la sol·licitud de velocitat: 10000 kHz a 5000 kHz Informació màxima: velocitat de rellotge 10000 kHz Informació: SWD IDCODE 0x2ba01477 Error: no s'ha pogut trobar MEM -AP per controlar el nucli Error: la destinació encara no s'ha examinat Error mentre parpellejava el SoftDevice.

En aquest cas, heu d’establir el registre d’ordres ERASEALL al nRF52 per esborrar la memòria i tornar a programar el dispositiu. La versió d’OpenOCD subministrada amb sandeepmistry nRF52 no inclou l’ordre apreg necessària per escriure al registre d’ordres ERASEALL, de manera que cal instal·lar una versió posterior.

Instal·leu OpenOCD versió OpenOCD-20181130 o superior. La versió precompilada de Windows està disponible a https://gnutoolchains.com/arm-eabi/openocd/ El darrer codi està disponible a

Obriu un indicador d’ordres i canvieu dir al directori d’instal·lació d’OpenOCD i introduïu l’ordre

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

La resposta és

Open On-Chip Debugger 0.10.0 (2018-11-30) [https://github.com/sysprogs/openocd] Llicenciat sota GNU GPL v2 Per a informes d'errors, llegiu https://openocd.org/doc/doxygen/ bugs.html debug_level: 2 Informació: selecció automàtica del primer transport de sessió disponible "swd". Per substituir, utilitzeu "transport select". velocitat de l'adaptador: 1000 kHz cortex_m reset_config sysresetreq Informació: Escolta al port 6666 per a connexions tcl Informació: Escolta al port 4444 per a connexions telnet Informació: CMSIS-DAP: Informació compatible SWD: CMSIS-DAP: Versió FW = 1,10 Informació: CMSIS-DAP: Informació de la interfície inicialitzada (SWD): SWCLK / TCK = 1 SWDIO / TMS = 1 TDI = 0 TDO = 0 nTRST = 0 nRESET = 1 Informació: CMSIS-DAP: Interfície preparada Informació: velocitat de rellotge 1000 kHz Informació: SWD DPIDR 0x2ba01477 Error: No s'ha pogut trobar MEM-AP per controlar la informació bàsica: escolta al port 3333 per a connexions gdb

A continuació, obriu una finestra de terminal, per exemple. TeraTerm (Windows) o CoolTerm (Mac) i connecteu-vos al port 4444 del 127.0.0.1

La finestra de telnet mostrarà un> i el símbol del sistema mostrarà Info: acceptació de la connexió 'telnet' a tcp / 4444

A la finestra de telnet (és a dir, TeraTerm) typenrf52.dap apreg 1 0x04, torna 0x00000000 que mostra que el xip està protegit. A continuació, typenrf52.dap apreg 1 0x04 0x01 i thennrf52.dap apreg 1 0x04 això retorna 0x00000001 mostrant que el xip s'ha definit a ERASEALL al proper reinici.

Tanqueu la connexió telnet i també utilitzeu Ctrl-C per sortir del programa openOCD a l'indicador d'ordres i, a continuació, enceneu el mòdul nRF52 i ja estarà a punt per programar.

Ara torneu a provar de parpellejar el dispositiu suau.

Ara podeu programar el mòdul nRF52 des d’Arduino.

Pas 5: programació de SKYLAB SKB369

Programació del SKYLAB SKB369
Programació del SKYLAB SKB369
Programació del SKYLAB SKB369
Programació del SKYLAB SKB369
Programació del SKYLAB SKB369
Programació del SKYLAB SKB369

Tanqueu Arduino i torneu a instal·lar la versió més recent del suport de pfod_lp_nrf52 seguint les instruccions d’assistència del maquinari Instal·la les instruccions de pfod_lp_nrf52. L'últim pfod_lp_nrf52 inclou la placa de recanvi SKYLAB SKB369 Nano2. Seleccioneu-ho com a tauler i, a continuació, podeu programar-lo amb la revisió 3 de lp_BLE_TempHumidity, lp_BLE_TempHumidity_R3.zip, tal com es descriu a la part 2.

Si falla la programació. Tanqueu totes les finestres d'Arduino, traieu els cables USB, reinicieu Arduino i torneu a endollar el cable USB del programador i torneu a connectar el subministrament USB del mòdul nRF52 i torneu-ho a provar.

A continuació, connecteu-vos mitjançant pfodApp per mostrar la temperatura i la humitat actuals i històriques. Un cop hagueu mostrat la trama històrica, les lectures, amb marques de temps de mil·lisegons, es desaran al fitxer de registre del mòbil i també estaran disponibles a la pantalla de dades brutes.

El fitxer de registre també conté les dades addicionals necessàries per tornar a crear els gràfics de data i hora en un full de càlcul. Consulteu la data i l’hora d’Arduino amb millis () i pfodApp per obtenir més informació

Pas 6: Creació d'una nova definició de placa Arduino NRF52

Creació d'una nova definició de placa Arduino NRF52
Creació d'una nova definició de placa Arduino NRF52
Creació d’una nova definició de placa Arduino NRF52
Creació d’una nova definició de placa Arduino NRF52
Creació d’una nova definició de placa Arduino NRF52
Creació d’una nova definició de placa Arduino NRF52
Creació d'una nova definició de placa Arduino NRF52
Creació d'una nova definició de placa Arduino NRF52

Per donar suport a una nova placa nRF52, cal que a) afegiu un directori nou al directori variants amb els fitxers de la placa i b) editeu el fitxer boards.txt per afegir la nova placa a Arduino.

Afegint una nova variant de placa nRF52

Tal com es descriu a la part 1, Instal·lació del suport de maquinari pfod_lp_nrf52, cerqueu el subdirectori de maquinari del paquet sandeepmistry que heu actualitzat amb el suport de pfod_lp_nrf52. Obriu el subdirectori / hardware / nRF5 / 0.6.0 / variants i creeu un directori nou per a la vostra nova placa, per exemple, substitució de SKYLAB_SKB369_Nano2 Al nou directori / hardware / nRF5 / 0.6.0 / variants / SKYLAB_SKB369_Nano2replacement creeu tres fitxers variant.h, variant.cpp i pins_arduino.h Podeu copiar-los des dels altres directoris de variants del tauler. Per a la substitució SKYLAB_SKB369_Nano2, inicialment vaig copiar els fitxers de la variant RedBear_BLENano2.

fitxer pins_arduino.h

No cal canviar el fitxer pins_arduino.h. Només inclou el fitxer variant.h

fitxer variant.h

Editeu el fitxer variant.h per definir el nombre total de pins que tindrà el vostre tauler, PINS_COUNT

NOTA: Al paquet sandeepmistry, s’ignoren els paràmetres NUM_DIGITAL_PINS, NUM_ANALOG_INPUTS i NUM_ANALOG_OUTPUTS

Si el tauler fa que hi hagi més o menys pins analògics disponibles, actualitzeu la secció / * Pins analògics * / del fitxer variants.h.

NOTA: Per a les plaques NanoV2 i SKYLAB, els pins analògics es mapen als pins digitals A0 == D0, etc

Això no és essencial. Podeu assignar les entrades analògiques a qualsevol pin Arduino convenient. Vegeu els fitxers blue / variant.h i blue / variant.cpp per obtenir un exemple.

El xip nRF52832 té 8 pins d'entrada analògics, però la placa de substitució SKYLAB_SKB369_Nano2 només en fa disponibles 6 per coincidir amb la Nano2.

Tots els números de pin, excepte RESET_PIN, del fitxer variant.h són números de pin Arduino. És a dir, #define PIN_A0 (0) implica que D0 a l'esbós arduino és el mateix pin que A0. RESET_PIN és l’excepció. Aquest número és el número de pin del xip nRF52823 i el 21 és l’única opció vàlida. Tanmateix, el suport de pfod_lp_nrf52 no habilita el pin de restabliment al nRF52832

fitxer variant.cpp

Només hi ha una entrada al fitxer variant.cpp, la matriu g_ADigitalPinMap que assigna els números de pins Arduino al xip nRF52832 P0.. pins

NOTA: A les plaques NanoV2 i SKYLAB, els pins analògics Arduino A0, A1 … són els mateixos que els pins digitals Arduino D0, D1 … de manera que les primeres entrades de g_ADigitalPinMap HAN de mapar-se als números de pins AINx del xip nRF52832

Per a les entrades analògiques que el vostre tauler posa a la vostra disposició, aquestes entrades de g_ADigitalPinMap han de mapar els números de pin nRF52832 AIN0, AIN1, AIN2, etc. és a dir, AIN0 és el pin de xip P0.02, AIN1 és el pin de xip P0.03, etc. vegeu la disposició del pin de nRF52832 a dalt.

Utilitzeu (uint32_t) -1 per a assignacions no vàlides. Per exemple, la placa de recanvi SKYLAB_SKB369_Nano2 no té un LED incorporat, D13, de manera que la seva posició està assignada a (uint32_t) -1

A pfod_lp_nrf52.zip, els subdirectoris de variants Redbear NanoV2, SKYLAB SKB369 i GT832E_01 tenen imatges que mostren els mapatges configurats per variant.cpp. (Vegeu les imatges anteriors)

En el cas del SKYLAB SKB369, hi ha molts pins per triar. Només hi ha mapes suficients per coincidir amb el NanoV2. En el cas del GT832E_01, cal assignar tots els pins disponibles. Tot i així, només hi ha tres (3) entrades analògiques disponibles en lloc de les sis (6) del NanoV2. A més, els dos pins NFC, P0.09 i P0.10, han de tornar a configurar-se com a GPIO. Vegeu Reconfiguració de pins NFC NRF52 com a GPIO a continuació.

S'està actualitzant el fitxer boards.txt

Aquí teniu l’entrada SKYLAB_SKB369_Nano2replacement al fitxer boards.txt.

## SKYLAB_SKB369 Nano2 ReplacementSKYLAB_SKB369_NANO2_REPLACEMENT.name = * SKYLAB SKB369 Nano2 Replacement

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 = 524282 SKRELAB SKYLAB_SKB369_NANO2_REPLACEMENT.upload.use_1200bps_touch = fals SKYLAB_SKB369_NANO2_REPLACEMENT.upload.wait_for_upload_port = fals SKYLAB_SKB369_NANO2_REPLACEMENT.upload.native_usb = fals

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 = dur -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 = 409.600 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

Configuració de board.txt

Comentaris: les línies que comencen per # són comentaris.

Prefix: cada tauler necessita un prefix únic per identificar els seus valors. Aquí el prefix és SKYLAB_SKB369_NANO2_REPLACEMENT.

Nom: la línia SKYLAB_SKB369_NANO2_REPLACEMENT.name especifica el nom d’aquest tauler que es mostrarà al menú de tauler d’Arduino.

Eina de càrrega: el bloc SKYLAB_SKB369_NANO2_REPLACEMENT.upload especifica quina eina s’ha d’utilitzar per carregar. Si utilitzeu el depurador de partícules, utilitzeu protocol = cmsis-dap tal com es mostra més amunt.

Bootloader: aquesta línia és la mateixa per a totes les taules d’aquest boards.txt

Construir: només cal actualitzar dues línies en aquest bloc. La línia SKYLAB_SKB369_NANO2_REPLACEMENT.build.variant especifica el nom del directori d’aquest tauler al subdirectori variant. El SKYLAB_SKB369_NANO2_REPLACEMENT.build.board és el valor afegit a ARDUINO_ i que es defineix en compilar el codi. per exemple. -DARDUINO_SKYLAB_SKB369_Nano2replacement Permet habilitar / desactivar parts del codi per a taulers específics.

Rellotge de freqüència baixa: aquesta línia, SKYLAB_SKB369_NANO2_REPLACEMENT.menu.lfclk.lfrc.build.lfclk_flags, especifica la font del rellotge de baixa freqüència que s’utilitza per al lp_timer. Hi ha tres opcions, -DUSE_LFXO, -DUSE_LFRC i -DUSE_LFSYNT. La millor opció és -DUSE_LFXO, si la placa té un cristall extern de 32 Khz. Si no, utilitzeu -DUSE_LFRC, que utilitza un oscil·lador RC intern i atrau una mica més de corrent, ~ 10uA més, i és molt menys vegades menys precís. No utilitzeu -DUSE_LFSYNT, ja que això manté el xip en funcionament tot el temps, resultant en una captació de corrent de mAs.

Softdevice: pfod_lp_nrf52 només admet xips nRF52 i softdevice s132, de manera que no cal fer cap canvi per aquest bloc, tret del prefix.

Reconfiguració dels pins NFC NRF52 com a GPIO

Per defecte, els pins nRF52, P0.09 i P0.10 estan configurats per utilitzar-se com a NFC i esperen que estiguin connectats a una antena NFC. Si heu d'utilitzar-los com a pins d'E / S d'ús general (GPIO's), heu d'afegir una definició, -DCONFIG_NFCT_PINS_AS_GPIOS, a la taula … menú.softdevice.s132.build.extra_flags que compila els paràmetres al fitxer boards.txt.

Per exemple, pfod_lp_nrf52.zip, torna a configurar els pins GT832E_01 per utilitzar-los com a E / S. A la secció GT832E_01 d’aquest tauler, al fitxer boards.txt, s’afegeix la definició següent

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

L'escriptor d'enllaçador de pfod_lp_nrf52.zip també s'ha modificat per conservar aquesta configuració i no cal canviar-lo.

Pas 7: Conclusió

Aquest tutorial ha presentat un substitut del Redbear NanoV2 mitjançant un mòdul SKYLAB SKB369. Es va utilitzar un monitor d’humitat de temperatura alimentat per bateria / solar com a exemple de projecte BLE de molt baixa potència a Arduino per al mòdul SKYLAB. Corrents de subministrament de ~ 29uA quan s'aconsegueix ajustant els paràmetres de connexió. Això va resultar en una durada de la bateria de la cèl·lula de moneda CR2032 ~ 10 mesos. Més llarg per a piles i piles de monedes de més capacitat. Si afegiu dues cèl·lules solars econòmiques, la vida de la bateria s’allargaria fàcilment un 50% o més. Una llum lluminosa o un llum d’escriptori són suficients per alimentar el monitor de les cèl·lules solars.

Aquest tutorial també tractava d’eliminar la protecció de xips d’un nRF52 preprogramat i de com configurar una nova definició de placa per coincidir amb el vostre propi circuit / circuit.

No cal programar Android. pfodApp gestiona tot això.

Recomanat: