Talaan ng mga Nilalaman:

Madali Napakababang Power BLE sa Arduino Bahagi 3 - Nano V2 Kapalit - Rev 3: 7 Mga Hakbang (na may Mga Larawan)
Madali Napakababang Power BLE sa Arduino Bahagi 3 - Nano V2 Kapalit - Rev 3: 7 Mga Hakbang (na may Mga Larawan)

Video: Madali Napakababang Power BLE sa Arduino Bahagi 3 - Nano V2 Kapalit - Rev 3: 7 Mga Hakbang (na may Mga Larawan)

Video: Madali Napakababang Power BLE sa Arduino Bahagi 3 - Nano V2 Kapalit - Rev 3: 7 Mga Hakbang (na may Mga Larawan)
Video: Output DC or AC Voltage using MCP4725 DAC with LCD and PWM to Voltage Converter with Arduino 2024, Nobyembre
Anonim
Madali Napakababang Power BLE sa Arduino Bahagi 3 - Kapalit na Nano V2 - Rev 3
Madali Napakababang Power BLE sa Arduino Bahagi 3 - Kapalit na Nano V2 - Rev 3
Madali Napakababang Power BLE sa Arduino Bahagi 3 - Kapalit na Nano V2 - Rev 3
Madali Napakababang Power BLE sa Arduino Bahagi 3 - Kapalit na Nano V2 - Rev 3
Madali Napakababang Power BLE sa Arduino Bahagi 3 - Kapalit na Nano V2 - Rev 3
Madali Napakababang Power BLE sa Arduino Bahagi 3 - Kapalit na Nano V2 - Rev 3

Update: Ika-7 ng Abril 2019 - Rev 3 ng lp_BLE_TempHumidity, nagdaragdag ng mga plot sa Petsa / Oras, gamit ang pfodApp V3.0.362 +, at auto throttling kapag nagpapadala ng data

Update: Marso 24, 2019 - Rev 2 ng lp_BLE_TempHumidity, nagdaragdag ng higit pang mga pagpipilian sa plot at i2c_ClearBus, nagdaragdag ng suporta sa GT832E_01

>

Panimula

Ang tutorial na ito, Ang isang Redbear Nano V2 Kapalit, ay Bahagi 3 ng 3. Ito ang Rebisyon 2 ng proyektong ito. Ang rebisyon 2 PCB ay may kasamang pag-mount para sa coin cell at sensor, pinapasimple ang konstruksyon at pinapabuti ang daloy ng hangin sa paligid ng sensor habang pinoprotektahan ito mula sa direktang sikat ng araw. Narito ang rebisyon 1.

Bahagi 1 - Pagbuo ng Napakababang Mga aparato ng BLE Power na ginawa Madali sa Arduino ay sumasakop sa pag-aayos ng Arduino upang i-code ang nRF52 mababang mga aparato sa kuryente, ang module ng programa at sinusukat ang kasalukuyang supply. Saklaw din nito ang dalubhasa sa mababang timer ng kapangyarihan at mga kumpare at na-debund na input at gamit ang pfodApp upang kumonekta at makontrol ang nRF52 na aparato.

Bahagi 2 - Saklaw ng Isang Napakababang Power Temperature Humidity Monitor na gumagamit ng isang Redbear Nano V2 module at isang sensor ng temperatura / halumigmig na Si7021 upang makabuo ng isang mababang power baterya / solar monitor. Saklaw din nito ang pagbabago ng Si7021 library upang maging mababang lakas, na tune ang BLE aparato upang mabawasan ang kasalukuyang pagkonsumo nito sa <29uA at pagdidisenyo ng isang pasadyang display ng temperatura / kahalumigmigan para sa iyong mobile.

Bahagi 3 - Ang isang Redbear Nano V2 Kapalit, ang isang ito, ay sumasakop sa paggamit ng iba pang mga modyul na batay sa nRF52 sa halip na ang Nano V2. Saklaw nito ang pagpili ng mga bahagi ng supply, konstruksyon, pag-aalis ng proteksyon sa chip ng nRF52 chip, gamit ang mga NFC pin bilang normal na GPIO, at pagtukoy sa isang bagong board ng nRF52 sa Arduino.

Ang itinuturo na ito ay isang praktikal na aplikasyon ng Mga Bahagi 1 Pagbuo ng Napakababang Power BLE na mga aparato na ginawang Madali sa Arduino sa pamamagitan ng pagbuo ng isang Napakababang Power BLE Temperatura at Humidity Monitor gamit ang isang SKYLAB SBK369 board bilang isang kapalit na Nano V2. Saklaw ng tutorial na ito kung paano lumikha ng isang bagong kahulugan ng board at kung paano alisin ang proteksyon ng nRF52 na protektahan upang payagan itong mai-program muli. Ang tutorial na ito ay gumagamit ng parehong sketch bilang Bahagi 2 na may parehong tuned na mga parameter ng BLE para sa mababang paggamit ng kuryente at maaaring mapagana mula sa baterya O baterya + solar O solar lamang. Ang pag-tune ng mga parameter ng BLE para sa mababang lakas ay sakop sa Bahagi 2

Ang Rev 3 ng lp_BLE_TempHumidity ay naglalagay ng data laban sa petsa at oras gamit lamang ang Arduino millis (). Tingnan ang Petsa at Oras ng Arduino gamit ang millis () at pfodApp gamit ang pinakabagong bersyon ng pfodApp (V3.0.362 +).

Sinusuportahan din ng Rev 4 ng pfod_lp_nrf52.zip ang module na GT832E_01 at sumasakop ang tutorial na ito gamit ang mga NFC nRF52 na pin bilang karaniwang GPIO's.

Ang monitor na itinayo dito ay tatakbo para sa mga taon sa Coin Cell o 2 x AAA na baterya, kahit na mas matagal sa solar assist. Pati na rin ang pagpapakita ng kasalukuyang temperatura at halumigmig, ang monitor ay nag-iimbak ng huling 36 Hrs ng 10min na pagbabasa at ang huling 10 araw ng oras-oras na pagbabasa. Maaari itong mai-chart sa iyong Android mobile at ang mga halagang nai-save sa isang file ng log. Walang kinakailangang Programming sa Android, hinahawakan ng pfodApp ang lahat ng iyon. Ang display at charting ng Android ay ganap na kinokontrol ng iyong Arduino sketch upang maaari mo itong ipasadya kung kinakailangan.

Ang Bahagi 2 ay gumamit ng isang Redbear Nano V2 board para sa bahagi ng nRF52832 BLE. Pinalitan ng proyektong ito ang isang mas murang SKYLAB SKB369 board. Tulad ng sa Bahagi 2, isang Sparkfun Si7021 breakout board ang ginagamit para sa Temperature / Humidity Sensor. Ang isang binagong low power library ay ginagamit sa Si7021.

Hakbang 1: Bakit isang Kapalit ng Nano V2?

i) Ang Nano V2 ay wala sa produksyon para sa isang bilang ng mga buwan at tila hindi umaangkop sa line up ng Particle.io kaya hindi malinaw kung gaano ito magiging magagamit.

ii) Ang Nano V2 ay mas mahal. Gayunpaman mayroon din itong mga karagdagang tampok. Tingnan sa ibaba.

iii) Ang Nano V2 ay may mga bahagi sa magkabilang panig na nagbibigay dito ng isang mas mataas na profile at ginagawang mas mahirap i-mount.

iv) Ang Nano V2 ay may limitadong I / O mga pin na magagamit at ang paggamit ng D6 hanggang D10 ay nangangailangan ng paglipad na mga lead.

Kahit na ang board ng Nano V2 ay mas mahal pagkatapos ay ang board ng SKYLAB SKB369, ~ US17 kumpara sa ~ US5, ang Nano V2 ay may maraming mga tampok. Ang Nano V2 ay nagsasama ng isang 3.3V regulator at mga supply capacitor, dagdag na mga bahagi para sa paggamit ng nRF52 DC / DC converter na pagpipilian, isang chip antena at isang uFL SMT antena konektor.

Ang isa pang kahalili ay ang module ng GT832E_01 na ginamit ng www.homesmartmesh.com. Sinusuportahan din ng Rev 4 ng pfod_lp_nrf52.zip ang pag-program ng module na GT832E_01. Ang SKYLAB SKB369 at ang GT832E_01 ay magagamit mula sa

Ang Redbear (Particle.io) ay mayroon ding hubad na module na walang 3V3 regulator, mga bahagi ng DC / DC o mga bahagi ng kristal na 32Khz.

Balangkas

Ang proyektong ito ay may 4 kamag-anak na independiyenteng bahagi: -

Pagpili ng Bahagi at Konstruksiyon Inaalis ang flag ng proteksyon ng nRF52 coding at pagprograma ng sketch Paglikha ng isang Bagong Arduino nRF52 Board DefinitionReconfiguring nRF52 NFC pin bilang GPIO's

Hakbang 2: Pagpili at Pagbuo ng Component

Pagpili ng Bahagi

Bilang karagdagan sa nRF52832 at mga bahagi ng Si7021 na napili sa Bahagi 2, ang proyektong ito ay nagdaragdag ng isang 3.3V regulator at mga supply capacitor.

Ang bahagi ng Voltage Regulator

Ang regulator na ginamit dito ay MC87LC33-NRT. Maaari itong hawakan ng hanggang sa 12V na mga input at mayroong isang quiescent kasalukuyang ng <3.6uA, karaniwang 1.1uA. Ang Nano V2 ay gumamit ng isang TLV704 regulator ay may isang bahagyang mas mataas na kasalukuyang quiesent, karaniwang 3.4uA at maaaring hawakan ang mas mataas na mga voltages ng pag-input, hanggang sa 24V. Ang MC87LC33-NRT ay napili sa halip dahil ang datasheet nito ay tumutukoy kung paano ito tumutugon habang ang input boltahe ay bumaba sa ibaba 3.3V kung saan habang ang TLV704 datasheet ay hindi.

Ang TLV704 ay tumutukoy ng isang input boltahe na 2.5V minimum at hindi malinaw mula sa datasheet kung ano ang mangyayari sa ibaba nito. Ang nRF52832 ay tatakbo sa 1.7V at ang Si7023 ay tatakbo sa 1.9V. Ang MC87LC33-NRT sa kabilang banda ay tumutukoy sa mga pagkakaiba sa input / output boltahe pababa sa 0V para sa mababang mga alon (Larawan 18 ng datasheet). Kaya't binigyan ng pagpipilian ng mga bahagi, ang MC87LC33-NRT ay napili dahil mayroon itong tinukoy na pagganap.

Mga Supply Capacitor

Ang MC87LC33-NRT regulator ay nangangailangan ng ilang mga supply capacitor para sa katatagan at tugon. Ang isang output capacitor> 0.1uF ay inirerekomenda sa datasheet. Tinutukoy din ng SKYLAB SBK369 ang 10uF / 0.1uF capacitors sa supply na malapit sa board. Tumutulong ang mas malalaking mga capacitor sa pagbibigay ng kasalukuyang mga spike ng nRF52 TX. Dito 4 x 22uF 25V at 3 x 0.1uF 50V Ang mga ceramic capacitor ay ginamit. Ang isang 22uF at isang 0.1uF capacitor ay inilagay malapit sa SKYLAB SBK369, isang 0.1uF ay inilagay malapit sa output ng MC87LC33-NRT upang matiyak ang katatagan at isang 22uF at 0.1uF ay inilagay sa input sa MC87LC33-NRT at isang karagdagang 2 x 22uF capacitors kung saan naghinang sa mga pin ng Vin / GND bilang isang karagdagang kasalukuyang reservoir. Para sa paghahambing ang NanoV2 board ay may 22uF / 0.1uF sa input sa TLV704 regulator at isang 0.1uF sa output nito.

Ang sobrang kasalukuyang mga capacitor ng reservoir ay naka-install sa input sa 3.3V regulator upang sisingilin sila sa isang mas mataas na boltahe kapag tumatakbo sa mga solar cell. Ang pagsingil sa mas mataas na boltahe ay katumbas ng pag-iimbak ng mas maraming kasalukuyang upang matustusan ang mga Tx spike.

Ginagamit ang mga capacitor ng Ceramic X5R dahil mayroon silang mababang paglaban sa serye at mababang kasalukuyang pagtulo. Ang paglaban ay karaniwang 100, 000MΩ o 1000MΩ - µF na kung saan ay mas mababa. Kaya para sa 22uF mayroon kaming 22000MΩ, ibig sabihin, 0.15nA leakage sa 3.3V o 0.6nA para sa apat na 22uF capacitor. Bale-wala yun. Para sa paghahambing Mababang ESR, Mababang Leakage Panasonic Electrolytic capacitors ay may mga tagas na alon na <0.01CV. Kaya para sa isang 22uF 16V capacitor ang tagas ay <10uA. Tandaan: Ito ang pagtulo sa na-rate na boltahe, 16V sa kasong ito. Ang pagtulo ay mas mababa sa mas mababang mga voltages, ibig sabihin <2.2uA sa 3.3V.

Listahan ng Mga Bahagi

Tinatayang gastos bawat yunit hanggang Disyembre 2018, ~ US $ 61, hindi kasama ang pagpapadala at ang programmer mula sa Bahagi 1

  • SKYLAB SKB369 ~ US $ 5 hal Aliexpress
  • Sparkfun Si7021 breakout board ~ US $ 8
  • 2 x 53mm x 30mm 0.15W 5V solar cells hal. Overfly ~ US $ 1.10
  • 1 x PCB SKYLAB_TempHumiditySensor_R2.zip ~ US $ 25 para sa 5 sa www.pcbcart.com
  • 1 x MC78LC33 3.3V regulator, hal. Digikey MC78LC33NTRGOSCT-ND ~ US $ 1
  • 2 x 0.1uF 50V ceramic C1608X5R1H104K080A hal. Digikey 445-7456-1-ND ~ US $ 0.3
  • 4 x 22uF 16V ceramic GRM21BR61C226ME44L hal. Digikey 490-10747-1-ND ~ US $ 2
  • 1 x BAT54CW, hal. Digikey 497-12749-1-ND ~ US $ 0.5
  • 1 x 470R 0.5W 1% resistor hal. Digikey 541-470TCT-ND ~ US $ 0.25
  • 1 x 10V 1W zener SMAZ10-13-F hal. Digikey SMAZ10-FDICT-ND ~ US $ 0.5
  • 3mm x 12mm nylon screws, hal. Jaycar HP0140 ~ AUD $ 3
  • 3mm x 12mm nylon nut, hal. Jaycar HP0146 ~ AUD $ 3
  • Scotch Permanent Mounting Tape Cat 4010 hal. mula sa Amazon ~ US $ 6.6
  • CR2032 na may hawak ng baterya, hal. HU2032-LF ~ US $ 1.5
  • Baterya ng CR2032 ~ US $ 1
  • Perspex sheet, 3.5mm at 8mm
  • pfodApp ~ US $ 10
  • Solder Paste hal. Jaycar NS-3046 ~ AUD $ 13

Hakbang 3: Konstruksiyon

Konstruksyon
Konstruksyon
Konstruksyon
Konstruksyon
Konstruksyon
Konstruksyon

Ang proyekto ay itinayo sa isang maliit na PCB. Ang PCB ay gawa ng pcbcart.com mula sa mga file na Gerber na ito, SKYLAB_TempHumiditySensor_R2.zip Ginagaya ng PCB ang Nano V2 pin out at pangkalahatang layunin na magagamit upang magamit para sa iba pang mga proyekto ng BLE.

Ito ang eskematiko (bersyon ng pdf)

Una panghinang ang mga sangkap ng SMD, pagkatapos ay i-mount ang board ng SKYLAB SKB369

Halos lahat ng mga bahagi ay mga mount mount device (SMD). Ang mga capacitor at IC ay maaaring maging mahirap na maghinang sa pamamagitan ng kamay. Ang iminungkahing pamamaraan ay upang i-hold ang PCB sa isang bisyo at maglapat ng isang maliit na halaga ng solder paste sa mga pad at ilagay ang mga sangkap ng SMD, maliban sa board ng SKB369 sa PCB. Pagkatapos ay gumagamit ng isang heat gun, maglagay ng init sa ilalim ng PCB hanggang sa matunaw ang solder paste at pagkatapos ay gawin ang isang mabilis na pass sa tuktok ng board na maingat na hindi pumutok ang mga sangkap. Panghuli hawakan ang mga bahagi ng isang maliit na tip na panghinang na bakal. Mag-ingat sa mga capacitor at resistor dahil madaling matunaw ang magkabilang dulo at malaya ang sangkap habang hinihinang ang isang dulo.

Ang rebisyon na ito ay nagdaragdag ng labis na 22uF 16V ceramic capacitors. Ang mga labis na capacitor na ito ay binabawasan ang kasalukuyang mga spike na iginuhit mula sa baterya at din ang binawasan ang mga boltahe na nahuhulog kapag pinapagana mula sa mga solar cell. Hangga't ang boltahe mula sa mga solar cell ay nananatili sa itaas ng boltahe ng baterya kung gayon walang kasalukuyang iginuhit mula sa baterya.

Matapos mai-mount ang mga bahagi ng SMD, maaari kang maghinang sa board ng SKYLAB SKB369. Mayroong dalawang mga butas ng punto ng pagsubok sa isang gilid ng mga tab na SKB369. Gumamit ng dalawang mga pin sa isang base ng karton upang iposisyon ang board ng SKB369 at maingat na ihanay ang mga pin. (Tingnan ang halimbawang larawan sa itaas gamit ang Revision 1 PCB) Pagkatapos ay maghinang ng isang pin ng kabaligtaran upang hawakan ang board bago ilagay ang ibang mga pin.

Tandaan ang wire link ng Gnd mula sa CLK hanggang GND sa natapos na bahagi. Naka-install ito MATAPOS ang programa upang maiwasan ang ingay sa input ng CLK mula sa pagpapalitaw ng nRF52 chip sa isang mataas na kasalukuyang debug mode

Mounting Case

Ang mounting case ay ginawa mula sa dalawang piraso ng perspex, 110mm x 35mm, 3mm ang kapal. Ang piraso ng 3.5mm sa ilalim ng mga solar cell ay na-tap upang kunin ang 3mm nylon screws. Ang binagong konstruksyon na ito ay pinapasimple pagkatapos ng Rev 1 at nagpapabuti ng daloy ng hangin sa paligid ng sensor. Ang sobrang mga butas sa bawat dulo ay para sa pag-mount, gamit ang mga kurbatang kurdon halimbawa.

Hakbang 4: Inaalis ang Flag ng Proteksyon ng Coding ng NRF52

Inaalis ang Flag ng Proteksyon ng NRF52 Coding
Inaalis ang Flag ng Proteksyon ng NRF52 Coding
Inaalis ang Flag ng Proteksyon ng Coding ng NRF52
Inaalis ang Flag ng Proteksyon ng Coding ng NRF52
Inaalis ang Flag ng Proteksyon ng NRF52 Coding
Inaalis ang Flag ng Proteksyon ng NRF52 Coding

Ikonekta ang board ng Temperatura / Humidity sa Programmer na inilarawan sa Bahagi 1 tulad ng ipinakita sa itaas.

Gamit ang mga solar cell at baterya na hindi naka-plug, ang Vin at Gnd ay konektado sa Vdd at Gnd ng programmer (ang Yellow at Green lead) at ang SWCLK at SWDIO ay kumonekta sa Clk at SIO ng programmer header board (ang White at Gray lead)

Inaalis ang proteksyon ng nRF52 na programa

Mula sa Nordic Semi - Debug at Trace na pahina DAP - Debug Access Port. Maaaring ma-access ng isang panlabas na debugger ang aparato sa pamamagitan ng DAP. Nagpapatupad ang DAP ng isang pamantayan ng ARM® CoreSight ™ Serial Wire Debug Port (SW-DP). Nagpapatupad ang SW-DP ng Serial Wire Debug protocol (SWD) na isang dalawang-pin na serial interface, SWDCLK at SWDIO

Mahalaga: Ang linya ng SWDIO ay may panloob na resistor na pull-up. Ang linya ng SWDCLK ay may panloob na resistor na pull-down.

CTRL-AP - Control Access Port. Ang Control Access Port (CTRL-AP) ay isang pasadyang port sa pag-access na nagbibigay-daan sa kontrol ng aparato kahit na ang iba pang mga access port sa DAP ay hindi pinagana ng proteksyon ng access port. Hinaharang ng proteksyon ng pag-access sa port ang debugger mula sa basahin at isulat ang pag-access sa lahat ng mga pagrehistro sa CPU at mga naka-map na address. Huwag paganahin ang proteksyon sa port ng pag-access. Ang pag-access sa proteksyon ng port ay maaari lamang hindi paganahin sa pamamagitan ng pagbibigay ng isang utos na ERASEALL sa pamamagitan ng CTRL-AP. Tatanggalin ng utos na ito ang Flash, UICR, at RAM.

Piliin ang CMSIS-DAP bilang programmer para sa Particle's Debugger at piliin ang nRF5 Flash SoftDevice

Kung gumagana ang flash, OK lang iyon, ngunit madalas na ang mga module ay protektado laban sa muling pag-program at makakakuha ka ng output ng error sa Arduino window

Buksan ang On-Chip Debugger 0.10.0-dev-00254-g696fc0a (2016-04-10-10: 13) Lisensyado sa ilalim ng GNU GPL v2 Para sa mga ulat sa bug, basahin ang https://openocd.org/doc/doxygen/bugs.html debug_level: 2 Impormasyon: isang pagpipilian lamang sa transportasyon; bilis ng adapter ng autoselect 'swd': 10000 kHz cortex_m reset_config sysresetreq Impormasyon: CMSIS-DAP: SWD Suportadong Impormasyon: CMSIS-DAP: Impormasyon na Inisyal ng Interface Initialised (SWD): CMSIS-DAP: FW Bersyon = 1.10 Impormasyon: SWCLK / TCK = 1 SWDIO / TMS = 1 TDI = 0 TDO = 0 nTRST = 0 nRESET = 1 Impormasyon: CMSIS-DAP: Impormasyon na handa sa interface: bawasan ang kahilingan sa bilis: 10000kHz hanggang 5000kHz maximum na Impormasyon: bilis ng orasan 10000 kHz Impormasyon: SWD IDCODE 0x2ba01477 Error: Hindi mahanap ang MEM -AP upang makontrol ang pangunahing Error: Hindi pa nasusuri ang target na Error habang flashing ang SoftDevice.

Sa kasong iyon kailangan mong itakda ang rehistro ng ERASEALL command sa nRF52 upang i-clear ang memorya at gawing programmable muli ang aparato. Ang bersyon ng openOCD na ibinibigay sa sandeepmistry nRF52 ay hindi kasama ang apreg command na kinakailangan upang magsulat sa rehistro ng ERASEALL command kaya kailangan mong mag-install ng ibang bersyon.

I-install ang bersyon ng OpenOCD OpenOCD-20181130 o mas mataas. Ang bersyon ng paunang naipon na Windows ay magagamit mula sa https://gnutoolchains.com/arm-eabi/openocd/ Ang pinakabagong code ay magagamit mula sa

Buksan ang isang prompt ng utos at baguhin ang dir sa direktoryo ng pag-install ng OpenOCD at ipasok ang utos

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

Ang tugon ay

Buksan ang On-Chip Debugger 0.10.0 (2018-11-30) [https://github.com/sysprogs/openocdopitoLisensyado sa ilalim ng GNU GPL v2 Para sa mga ulat sa bug, basahin ang https://openocd.org/doc/doxygen/ bugs.html debug_level: 2 Impormasyon: awtomatikong pagpili ng unang magagamit na transportasyon ng session na "swd". Upang ma-override ang paggamit ng 'select select'. bilis ng adapter: 1000 kHz cortex_m reset_config sysresetreq Impormasyon: Pakikinig sa port 6666 para sa mga koneksyon sa tcl Impormasyon: Pakikinig sa port 4444 para sa mga koneksyon sa telnet Impormasyon: CMSIS-DAP: SWD Suportadong Impormasyon: CMSIS-DAP: FW Bersyon = 1.10 Impormasyon: CMSIS-DAP: Impormasyon sa Inisyal na Interface (SWD): SWCLK / TCK = 1 SWDIO / TMS = 1 TDI = 0 TDO = 0 nTRST = 0 nRESET = 1 Impormasyon: CMSIS-DAP: Impormasyon na handa na sa interface: bilis ng orasan 1000 kHz Impormasyon: SWD DPIDR 0x2ba01477 Error: Hindi mahanap ang MEM-AP upang makontrol ang pangunahing Impormasyon: Pakikinig sa port 3333 para sa mga koneksyon sa gdb

Pagkatapos buksan ang isang window ng terminal hal. TeraTerm (Windows) o CoolTerm (Mac) at kumonekta sa 127.0.0.1 port 4444

Ang telnet window ay magpapakita ng isang> at ang prompt ng utos ay magpapakita ng Impormasyon: pagtanggap ng koneksyon na 'telnet' sa tcp / 4444

Sa window ng telnet (ibig sabihin, TeraTerm) typenrf52.dap apreg 1 0x04ito ay nagbabalik ng 0x00000000 na nagpapakita na ang chip ay protektado. Pagkatapos typenrf52.dap apreg 1 0x04 0x01and thennrf52.dap apreg 1 0x04ito ay nagbabalik ng 0x00000001 na nagpapakita ng chip ay nakatakda na ngayon sa ERASEALL sa susunod na muling pagsisimula.

Isara ang koneksyon sa telnet at gamitin din ang Ctrl-C upang lumabas sa programang openOCD sa command prompt at pagkatapos ay ikot ng kuryente ang module na nRF52 at handa na itong mag-program.

Ngayon subukang muli ang pag-flash ng softdevice.

Maaari mo na ngayong i-program ang nRF52 module mula sa Arduino.

Hakbang 5: Programming ang SKYLAB SKB369

Programming ang SKYLAB SKB369
Programming ang SKYLAB SKB369
Programming ang SKYLAB SKB369
Programming ang SKYLAB SKB369
Programming ang SKYLAB SKB369
Programming ang SKYLAB SKB369

Isara ang Arduino at muling mai-install ang pinakabagong bersyon ng suporta ng pfod_lp_nrf52 sa pamamagitan ng pagsunod sa mga I-install ang mga direksyon sa suporta sa hardware na pfod_lp_nrf52. Ang pinakabagong pfod_lp_nrf52 ay may kasamang SKYLAB SKB369 Nano2 replacement board. Piliin iyon bilang board at maaari mo itong mai-program sa Revision 3 ng lp_BLE_TempHumidity, lp_BLE_TempHumidity_R3.zip, tulad ng inilarawan sa Bahagi 2.

Kung ang programa ay nabigo. Isara ang lahat ng mga bintana ng Arduino, alisin ang mga USB cable, i-restart ang Arduino at i-plug muli ang programmer USB cable at i-plug muli ang supply ng USB ng nRF52 module at subukang muli.

Pagkatapos ay kumonekta sa pamamagitan ng pfodApp upang ipakita ang kasalukuyang at makasaysayang temperatura at halumigmig. Sa sandaling naipakita mo ang makasaysayang balangkas, ang mga pagbabasa, na may millisecond timestamp, ay nai-save sa log file sa iyong mobile at magagamit din sa raw data screen.

Naglalaman din ang file ng log ng labis na data na kinakailangan upang muling likhain ang mga plot ng petsa at oras sa isang spreadsheet. Tingnan ang Petsa at Oras ng Arduino gamit ang millis () at pfodApp para sa mga detalye

Hakbang 6: Lumilikha ng isang Bagong Arduino NRF52 Kahulugan ng Lupon

Lumilikha ng isang Bagong Arduino NRF52 Board Definition
Lumilikha ng isang Bagong Arduino NRF52 Board Definition
Lumilikha ng isang Bagong Arduino NRF52 Kahulugan ng Lupon
Lumilikha ng isang Bagong Arduino NRF52 Kahulugan ng Lupon
Lumilikha ng isang Bagong Arduino NRF52 Board Definition
Lumilikha ng isang Bagong Arduino NRF52 Board Definition
Lumilikha ng isang Bagong Arduino NRF52 Board Definition
Lumilikha ng isang Bagong Arduino NRF52 Board Definition

Upang suportahan ang isang bagong nRF52 board kailangan mong a) magdagdag ng isang bagong direktoryo sa ilalim ng mga direktoryo ng mga variant kasama ang mga file ng board at b) i-edit ang boards.txt file upang idagdag ang bagong board sa Arduino.

Pagdaragdag ng isang bagong variant ng board ng nRF52

Tulad ng inilarawan sa Bahagi 1, Pag-install ng suporta sa hardware na pfod_lp_nrf52, hanapin ang hardware sub-direktoryo ng sandeepmistry package na na-update mo sa suporta ng pfod_lp_nrf52. Buksan ang / hardware / nRF5 / 0.6.0 / mga variant sub-direktoryo at lumikha ng isang bagong direktoryo para sa iyong bagong board, hal variant.cpp at pins_arduino.h Maaari mong kopyahin ang mga ito mula sa iba pang mga direktoryo ng mga variant ng board. Para sa SKYLAB_SKB369_Nano2replacement, una kong kinopya ang mga file mula sa variant ng RedBear_BLENano2.

file na pins_arduino.h

Ang pin_arduino.h file ay hindi kailangang baguhin. Nagsasama lamang ito ng variant.h file

variant.h file

I-edit ang variant.h file upang tukuyin ang kabuuang bilang ng mga pin na magkakaroon ang iyong board, PINS_COUNT

TANDAAN: Sa package ng sandeepmistry, hindi pinapansin ang NUM_DIGITAL_PINS, NUM_ANALOG_INPUTS at NUM_ANALOG_OUTPUTS setting

Kung ginagawang magagamit ng iyong board ang higit pa o mas kaunting mga analog pin, i-update ang / * Analog Pins * / seksyon ng mga variant.h file.

TANDAAN: Para sa mga board ng NanoV2 at SKYLAB ang mga Analog na pin ay nai-map sa mga Digital pin na A0 == D0 atbp

Hindi ito mahalaga. Maaari mong italaga ang Mga Analog Input sa anumang maginhawang Arduino pin. Tingnan ang mga file na asul / variant.h at asul / variant.cpp para sa isang halimbawa.

Ang nRF52832 chip ay mayroong 8 analog input pin, ngunit ang SKYLAB_SKB369_Nano2replacement board ay ginagawang magagamit lamang ang 6 sa mga ito upang tumugma sa Nano2.

Lahat ng mga numero ng pin, maliban sa RESET_PIN, sa variant.h file ay mga numero ng pin na Arduino. Iyon ang # tuktok ng PIN_A0 (0) ay nagpapahiwatig na ang D0 sa arduino sketch ay ang parehong pin tulad ng A0. Ang RESET_PIN ay ang pagbubukod. Ang numerong iyon ang nRF52823 chip pin number at 21 ang tanging wastong pagpipilian. Gayunpaman ang suporta ng pfod_lp_nrf52 ay hindi pinagana ang reset pin sa nRF52832

variant.cpp file

Mayroong isang entry lamang sa variant.cpp file, ang g_ADigitalPinMap na array na nagma-map ang mga numero ng pin ng Arduino sa nRF52832 chip P0.. mga pin

TANDAAN: Sa mga board ng NanoV2 at SKYLAB, ang Arduino analog pin A0, A1 … ay pareho sa Arduino digital pins D0, D1 … kaya ang mga unang entry sa g_ADigitalPinMap DAPAT i-map sa mga numero ng AINx pin sa nRF52832 chip

Para sa Mga Pag-input ng Analog na ginawang magagamit ng iyong lupon, ang mga entry sa g_ADigitalPinMap dapat mapa ang mga numero ng nRF52832 AIN0, AIN1, AIN2, atbp. ibig sabihin, ang AIN0 ay chip pin P0.02, ang AIN1 ay chip pin P0.03 atbp tingnan ang layout ng nRF52832 pin sa itaas.

Gumamit ng (uint32_t) -1 para sa mga hindi wastong pagmamapa. Halimbawa ang SKYLAB_SKB369_Nano2replacement board ay walang built in LED, D13, kaya ang posisyon nito ay nai-map sa (uint32_t) -1

Sa pfod_lp_nrf52.zip ang Redbear NanoV2, SKYLAB SKB369 at GT832E_01 iba't ibang mga sub-direktoryo ay may mga imahe na ipinapakita ang mga pagmamapa na na-set up ng variant.cpp. (Tingnan ang mga imahe sa itaas)

Sa kaso ng SKYLAB SKB369, maraming mga pin upang mapili. Sapat lamang ang nai-mapa upang maitugma ang NanoV2. Sa kaso ng GT832E_01, ang lahat ng mga magagamit na mga pin ay kailangang ma-map. Kahit na mayroon lamang tatlong (3) analog input na magagamit sa halip na ang anim (6) sa NanoV2. Pati na rin ang dalawang mga pin ng NFC, P0.09 at P0.10, kailangang muling i-configure bilang GPIO's. Tingnan ang Pag-configure muli ng mga nRF52 NFC na pin bilang GPIO sa ibaba.

Ina-update ang boards.txt file

Narito ang SKYLAB_SKB369_Nano2replacement na entry sa boards.txt file.

## SKYLAB_SKB369 Nano2 KapalitSKYLAB_SKB369_NANO2_REPLACEMENT.name = * SKYLAB SKB369 Nano2 Kapalit

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 = 524288 SKRESupdupdupdup.upload.maximum_size = 524288 SKRESupdupdupdup.upload.maximum_size = 524288 SKRESupdupdupdup.upload.maximum_size = 524288 SKYLAB_updup.updup.upload.maximum_size = 524288 SKYLAB_updup.updup.upload.maximum_size = 524288 SKRElSupport.upload.maximum_size = 524288 SKYLAB_updupload 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 = 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 = 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 = 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

setting ng board.txt

Mga Komento - ang mga linya na nagsisimula sa # ay mga komento.

Pauna - bawat board ay nangangailangan ng isang natatanging unlapi upang makilala ang mga halaga nito. Narito ang unlapi aySKYLAB_SKB369_NANO2_REPLACEMENT.

Pangalan - Tinutukoy ng linya ng SKYLAB_SKB369_NANO2_REPLACEMENT.name ang pangalan ng board na ito upang ipakita sa menu ng board ng Arduino.

Pag-upload ng tool - Ang SKYLAB_SKB369_NANO2_REPLACEMENT.upload block ay tumutukoy kung aling tool ang gagamitin para sa pag-upload. Kung gumagamit ka ng Particle Debugger pagkatapos ay gumamit ng protocol = cmsis-dap tulad ng ipinakita sa itaas.

Bootloader - Ang linya na ito ay pareho para sa lahat ng mga board sa boards.txt na ito

Bumuo - Dalawang linya lamang ang kailangang i-update sa bloke na ito. Ang linya ng SKYLAB_SKB369_NANO2_REPLACEMENT.build.variant ay tumutukoy sa board na ito ang pangalan ng direktoryo sa iba't ibang sub-direktoryo. Ang SKYLAB_SKB369_NANO2_REPLACEMENT. build.board ay ang halagang naidugtong sa ARDUINO_ at pagkatapos ay tinukoy habang pinagsasama ang code. hal. -DARDUINO_SKYLAB_SKB369_Nano2replacement Pinapayagan ka nitong paganahin / huwag paganahin ang mga bahagi ng code para sa mga tukoy na board.

Mababang Freq Clock - Ang linyang ito, SKYLAB_SKB369_NANO2_REPLACEMENT.menu.lfclk.lfrc. build.lfclk_flags, tinutukoy ang mapagkukunan ng mababang dalas ng dalas, na ginagamit para sa lp_timer. Mayroong tatlong mga pagpipilian, -DUSE_LFXO, -DUSE_LFRC at -DUSE_LFSYNT. Ang pinakamahusay na pagpipilian ay -DUSE_LFXO, kung ang board ay may panlabas na 32Khz na kristal. Kung hindi pagkatapos ay gamitin ang -DUSE_LFRC, na gumagamit ng isang panloob na oscillator ng RC at kumukuha ng bahagyang mas kasalukuyang, ~ 10uA higit pa, at mas mababa nang mas tumpak na beses. Huwag gamitin ang -DUSE_LFSYNT dahil pinapanatili nito ang chip na tumatakbo sa lahat ng oras na nagreresulta sa kasalukuyang pagguhit ng mAs.

Softdevice - Sinusuportahan lamang ng pfod_lp_nrf52 ang mga nRF52 chips at softdevice s132 kaya't hindi na kailangan ng mga pagbabago para sa bloke na ito, bukod sa unlapi.

Ang muling pag-configure ng mga nRF52 NFC ay pin bilang mga GPIO

Maging default sa mga nRF52 na pin, ang P0.09 at P0.10 ay na-configure para magamit bilang NFC at inaasahan na makakonekta sa isang antena ng NFC. Kung kailangan mong gamitin ang mga ito bilang pangkalahatang layunin I / O pin (GPIO) pagkatapos ay kailangan mong magdagdag ng isang tukuyin, -DCONFIG_NFCT_PINS_AS_GPIOS, sa board na iyon… menu.softdevice.s132. build.extra_flags compile setting sa mga boards.txt file.

Halimbawa pfod_lp_nrf52.zip, muling i-configure ang mga GT832E_01 na pin para magamit bilang I / O. Ang seksyon ng GT832E_01 para sa board na ito, sa boards.txt file, ay may sumusunod na tinukoy na idinagdag

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

Ang script ng linker sa pfod_lp_nrf52.zip ay binago din upang mapanatili ang setting na ito at hindi kailangang baguhin.

Hakbang 7: Konklusyon

Ang tutorial na ito ay nagpakita ng isang kapalit para sa Redbear NanoV2 gamit ang isang SKYLAB SKB369 module. Ang isang baterya / solar Powered Temperature Humidity Monitor ay ginamit bilang isang halimbawa napakababang proyekto na BLE sa Arduino para sa module na SKYLAB. Mga supply ng alon ng ~ 29uA kung saan nakamit sa pamamagitan ng pag-tune ng mga parameter ng koneksyon. Nagresulta ito ng buhay ng CR2032 coin cell baterya ~ 10 buwan. Mas mahaba para sa mas mataas na kapasidad na mga cell ng barya at baterya. Ang pagdaragdag ng dalawang murang solar cells ay madaling pinalawig ang buhay ng baterya ng 50% o higit pa. Ang isang maliwanag na ilaw ng silid o isang desk lamp ay sapat upang mapalakas ang monitor mula sa mga solar cell.

Saklaw din ng tutorial na ito ang pag-aalis ng proteksyon ng chip mula sa isang paunang naka-program na nRF52 at kung paano mag-set up ng isang bagong kahulugan ng board upang tumugma sa iyong sariling PCB / circuit

Walang kinakailangang programa sa Android. Hawak ng pfodApp ang lahat ng iyon.

Inirerekumendang: