Sadržaj:

Lako vrlo male snage BLE u Arduinu, dio 3 - Zamjena Nano V2 - Rev 3: 7 koraka (sa slikama)
Lako vrlo male snage BLE u Arduinu, dio 3 - Zamjena Nano V2 - Rev 3: 7 koraka (sa slikama)

Video: Lako vrlo male snage BLE u Arduinu, dio 3 - Zamjena Nano V2 - Rev 3: 7 koraka (sa slikama)

Video: Lako vrlo male snage BLE u Arduinu, dio 3 - Zamjena Nano V2 - Rev 3: 7 koraka (sa slikama)
Video: Человек-паук Marvel: Майлз Моралес (фильм) 2024, Novembar
Anonim
Lako BLE vrlo male snage u Arduinu, dio 3 - Zamjena Nano V2 - Rev 3
Lako BLE vrlo male snage u Arduinu, dio 3 - Zamjena Nano V2 - Rev 3
Lako BLE vrlo male snage u Arduinu, dio 3 - Zamjena Nano V2 - Rev 3
Lako BLE vrlo male snage u Arduinu, dio 3 - Zamjena Nano V2 - Rev 3
Lako BLE vrlo male snage u Arduinu, dio 3 - Zamjena Nano V2 - Rev 3
Lako BLE vrlo male snage u Arduinu, dio 3 - Zamjena Nano V2 - Rev 3

Ažuriranje: 7. aprila 2019. - 3. revija lp_BLE_TempHumidity, dodaje grafikone datuma/vremena, koristeći pfodApp V3.0.362+i automatsko prigušivanje prilikom slanja podatakaAžuriranje: 24. ožujka 2019. - Rev 2 lp_BLE_TempHumidity, dodaje više opcija crtanja i i2c_ClearBus, dodaje podršku GT832E_01

>

>

Uvod

Ovaj vodič, Zamjena Redbear Nano V2, dio je 3 od 3. Ovo je Revizija 2 ovog projekta. Revizija 2 PCB uključuje montažu za novčiće i senzor, pojednostavljuje konstrukciju i poboljšava protok zraka oko senzora štiteći ga od direktne sunčeve svjetlosti. Revizija 1 je ovdje.

Dio 1 - Jednostavna izgradnja BLE uređaja vrlo male snage s Arduino poklopcima koji postavljaju Arduino za kodiranje nRF52 uređaja male snage, modulom za programiranje i mjerenjem struje napajanja. Obuhvaća i specijalizirane mjerače vremena i komparatore male snage i otkačene ulaze te upotrebu pfodApp -a za povezivanje i upravljanje nRF52 uređajem.

Dio 2 - Monitor vlažnosti temperature vrlo niske potrošnje napajanja koristi Redbear Nano V2 modul i Si7021 senzor temperature / vlažnosti za izradu baterije / solarnog monitora male snage. Također obuhvaća izmjenu biblioteke Si7021 na nisku potrošnju energije, podešavanje BLE uređaja za smanjenje trenutne potrošnje na <29uA i dizajniranje prilagođenog prikaza temperature/vlažnosti za vaš mobilni telefon.

Dio 3 - Zamjena Redbear Nano V2, ovaj, pokriva upotrebu drugih modula zasnovanih na nRF52 umjesto Nano V2. Obuhvaća odabir komponenti napajanja, konstrukciju, uklanjanje zaštite programiranja čipova nRF52, korištenje NFC pinova kao normalnog GPIO -a i definiranje nove nRF52 ploče u Arduinu.

Ovo uputstvo je praktična primjena Dijela 1 Izgradnja BLE uređaja vrlo male snage olakšanih s Arduinom konstrukcijom BLE monitora temperature i vlažnosti BLE vrlo niske snage koristeći SKYLAB SBK369 ploču kao zamjenu za Nano V2. Ovaj vodič govori o tome kako stvoriti novu definiciju ploče i kako ukloniti programsku zaštitu nRF52 kako bi se omogućilo njeno ponovno programiranje. Ovaj vodič koristi istu skicu kao i Dio 2 s istim prilagođenim BLE parametrima za nisku potrošnju energije i može se napajati samo iz baterije ILI iz baterije + solarne ILI solarne. Podešavanje BLE parametara za malu snagu bilo je obrađeno u 2. dijelu

Rev 3 lp_BLE_TempHumidity iscrtava podatke u odnosu na datum i vrijeme koristeći samo Arduino millis (). Pogledajte Arduino datum i vrijeme koristeći millis () i pfodApp koristeći najnoviju verziju pfodApp (V3.0.362+).

Rev 4 pfod_lp_nrf52.zip također podržava GT832E_01 modul i ovaj vodič pokriva korištenje NFC nRF52 pinova kao standardnih GPIO -ova.

Ovdje izrađeni monitor će godinama raditi na Coin Cell ili 2 x AAA baterijama, čak i duže sa solarnom pomoći. Osim što prikazuje trenutnu temperaturu i vlažnost, monitor pohranjuje zadnjih 36 sati očitavanja od 10 minuta i zadnjih 10 dana očitanja po satu. One se mogu ucrtati na vaš Android mobitel, a vrijednosti spremiti u datoteku dnevnika. Nije potrebno Android programiranje, pfodApp rješava sve to. Android prikaz i grafikoni u potpunosti su kontrolirani vašom Arduino skicom pa ih možete prilagoditi prema potrebi.

U drugom dijelu korištena je Redbear Nano V2 ploča za komponentu nRF52832 BLE. Ovaj projekt zamjenjuje to jeftinijom SKYLAB SKB369 pločom. Kao i u drugom dijelu, Sparkfun Si7021 razvodna ploča koristi se za senzor temperature / vlažnosti. Modificirana biblioteka male snage koristi se sa Si7021.

Korak 1: Zašto zamjena za Nano V2?

i) Nano V2 nije bio u proizvodnji nekoliko mjeseci i izgleda da se ne uklapa u Particle.io liniju pa nije jasno koliko dugo će biti dostupan.

ii) Nano V2 je skuplji. Međutim, ima i dodatne mogućnosti. Pogledajte ispod.

iii) Nano V2 ima komponente s obje strane što mu daje veći profil i otežava postavljanje.

iv) Nano V2 ima ograničene dostupne I/O pinove, a za upotrebu od D6 do D10 potrebni su leteći vodiči.

Iako je ploča Nano V2 skuplja od ploče SKYLAB SKB369, ~ US17 u odnosu na ~ US5, Nano V2 ima više funkcija. Nano V2 uključuje regulator od 3,3 V i kondenzatore za napajanje, dodatne komponente za upotrebu opcije DC/DC pretvarača nRF52, antenu sa čipom i konektor za antenu uFL SMT.

Druga alternativa je modul GT832E_01 koji koristi www.homesmartmesh.com. Rev 4 iz pfod_lp_nrf52.zip takođe podržava programiranje GT832E_01 modula. SKYLAB SKB369 i GT832E_01 dostupni su na

Redbear (Particle.io) također ima goli modul bez 3V3 regulatora, DC/DC komponenti ili kristalnih komponenti 32Khz.

Outline

Ovaj projekt ima 4 relativna nezavisna dijela:-

Odabir komponente i konstrukcija Uklanjanje zastavice zaštite kodiranja nRF52 i programiranje skice Stvaranje nove Arduino nRF52 ploče Definicija Rekonfiguriranje nRF52 NFC pinova kao GPIO -ova

Korak 2: Odabir komponenti i konstrukcija

Izbor komponenti

Uz komponente nRF52832 i Si7021 odabrane u 2. dijelu, ovaj projekt dodaje regulator od 3.3V i kondenzatore za napajanje.

Komponenta regulatora napona

Regulator koji se ovdje koristi je MC87LC33-NRT. Može podnijeti do 12V ulaze i ima struju mirovanja <3.6uA, tipično 1.1uA. Nano V2 koji koristi regulator TLV704 ima nešto veću struju mirovanja, tipično 3.4uA i može podnijeti veće ulazne napone, do 24V. Umjesto toga odabran je MC87LC33-NRT jer njegov podatkovni list specificira kako reagira kad ulazni napon padne ispod 3,3 V, dok podatkovni list TLV704 ne.

TLV704 navodi ulazni napon od minimalno 2,5 V i iz tablice podataka nije jasno što će se dogoditi ispod toga. NRF52832 će raditi na 1,7 V, a Si7023 na 1,9 V. MC87LC33-NRT, s druge strane, specificira razlike ulaznog/izlaznog napona do 0V za male struje (slika 18 podatkovnog lista). S obzirom na izbor komponenti, MC87LC33-NRT je odabran jer ima navedene performanse.

Kondenzatori za napajanje

Regulatoru MC87LC33-NRT za stabilnost i odziv trebaju neki kondenzatori za napajanje. Na tablici s podacima preporučuje se izlazni kondenzator> 0,1uF. SKYLAB SBK369 takođe navodi kondenzatore 10uF/0,1uF na napajanju blizu ploče. Veći kondenzatori pomažu u opskrbi nRF52 TX strujnim skokovima. Ovdje su korišteni 4 x 22uF 25V i 3 x 0.1uF 50V keramički kondenzatori. Jedan 22uF i 0,1uF kondenzator postavljeni su blizu SKYLAB SBK369, 0,1uF je postavljen blizu izlaza MC87LC33-NRT kako bi se osigurala stabilnost, a 22uF i 0,1uF su postavljeni na ulaz MC87LC33-NRT i daljnja 2 x 22uF kondenzatora zalemljena preko Vin/GND pinova kao daljnji rezervoar struje. Za poređenje, NanoV2 ploča ima 22uF / 0,1uF na ulazu u regulator TLV704 i 0,1uF na svom izlazu.

Kondenzatori rezervoara dodatne struje ugrađeni su na ulaz regulatora od 3,3 V kako bi se punili do većeg napona pri radu sa solarnim ćelijama. Punjenje na veći napon jednako je pohranjivanju više struje za opskrbu Tx šiljaka.

Keramički kondenzatori X5R koriste se jer imaju nisku serijsku otpornost i nisku struju curenja. Otpor je tipično 100, 000MΩ ili 1000MΩ - µF, što je uvijek manje. Dakle, za 22uF imamo 22000MΩ, odnosno curenje od 0,15nA na 3,3V ili 0,6nA za četiri kondenzatora od 22uF. To je zanemarivo. Za usporedbu Niski ESR, Panasonic -ovi elektrolitički kondenzatori sa malim propuštanjem imaju struje curenja <0,01CV. Dakle, za kondenzator od 22uF 16V curenje je <10uA. Napomena: Ovo je curenje pri nazivnom naponu, u ovom slučaju 16V. Curenje je manje pri nižim naponima, tj. <2.2uA pri 3.3V.

Lista delova

Približna cijena po jedinici u prosincu 2018., ~ 61 USD, isključujući isporuku i programera iz 1. dijela

  • SKYLAB SKB369 ~ 5 USD npr. Aliexpress
  • Sparkfun Si7021 ploča za razbijanje ~ 8 USD
  • 2 x 53 mm x 30 mm 0,15 W 5V solarne ćelije npr. Prelijetanje ~ 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 ~ US $ 1
  • 2 x 0,1uF 50V keramika C1608X5R1H104K080A npr. Digikey 445-7456-1-ND ~ 0,3 US $
  • 4 x 22uF 16V keramika GRM21BR61C226ME44L npr. Digikey 490-10747-1-ND ~ US $ 2
  • 1 x BAT54CW, npr. Digikey 497-12749-1-ND ~ 0,5 US $
  • 1 x 470R 0,5W 1% otpornik npr. Digikey 541-470TCT-ND ~ 0,25 USD
  • 1 x 10V 1W zener SMAZ10-13-F npr. Digikey SMAZ10-FDICT-ND ~ 0,5 US $
  • 3 mm x 12 mm najlonski vijci, npr. Jaycar HP0140 ~ 3 AUD $
  • 3 mm x 12 mm najlonske matice, npr. Jaycar HP0146 ~ 3 AUD $
  • Scotch Trajna traka za montažu Cat 4010 npr. od Amazona ~ 6,6 USD
  • Držač baterije CR2032, npr. HU2032-LF ~ 1,5 USD
  • CR2032 baterija ~ 1 USD
  • Perspex lim, 3,5 mm i 8 mm
  • pfodApp ~ 10 USD
  • Lepljiva pasta npr. Jaycar NS-3046 ~ 13 AUD $

Korak 3: Konstrukcija

Građevinarstvo
Građevinarstvo
Građevinarstvo
Građevinarstvo
Građevinarstvo
Građevinarstvo

Projekt je izgrađen na malom PCB -u. PCB je proizveo pcbcart.com od ovih Gerberovih datoteka, SKYLAB_TempHumiditySensor_R2.zip PCB oponaša Nano V2 pin out i dovoljno je opće namjene da se koristi za druge BLE projekte.

Ovo je shema (pdf verzija)

Prvo lemite SMD komponente, a zatim montirajte SKYLAB SKB369 ploču

Gotovo sve komponente su uređaji za površinsko montiranje (SMD). Kondenzatori i IC -ovi mogu biti teški za lemljenje ručno. Predložena metoda je držanje PCB -a u škripcu i nanošenje male količine paste za lemljenje na podloge i postavljanje SMD komponenti, osim ploče SKB369 na PCB. Zatim pomoću toplinskog pištolja nanesite toplinu na donju stranu PCB -a dok se lemna pasta ne otopi, a zatim brzo pređite vrhom ploče pazeći da komponente ne oduvaju. Konačno dodirnite komponente lemilicom s malim vrhom. Budite oprezni s kondenzatorima i otpornikom jer se lako može istopiti oba kraja i komponenta popustiti dok lemite jedan kraj.

Ova revizija dodaje dodatne 22uF 16V keramičke kondenzatore. Ovi dodatni kondenzatori smanjuju trenutne skokove izvučene iz baterije, a također smanjuju i padove napona pri napajanju iz solarnih ćelija. Sve dok napon iz solarnih ćelija ostaje iznad napona baterije, iz baterije se ne crpi struja.

Nakon što su SMD komponente montirane, možete lemiti u SKYLAB SKB369 ploču. Na jednoj strani jezičaka SKB369 postoje dvije rupe za ispitnu točku. Upotrijebite dvije igle u kartonsku podlogu za postavljanje ploče SKB369 i pažljivo poravnajte igle. (Pogledajte gornju sliku na primjeru pomoću Revision 1 PCB -a) Zatim lemite jedan pin sa suprotne strane da biste držali ploču na mjestu prije lemljenja ostalih pinova.

Obratite pažnju na žicu Gnd veze od CLK do GND u gotovom dijelu. Ovo je instalirano NAKON programiranja kako bi se spriječilo da buka na ulazu CLK pokrene čip nRF52 u visokootporni način otklanjanja grešaka

Montažna kutija

Montažno kućište izrađeno je od dva komada stakla, 110 mm x 35 mm, debljine 3 mm. Komad od 3,5 mm ispod solarnih ćelija lupkan je kako bi se uzeli najlonski vijci od 3 mm. Ova revidirana konstrukcija pojednostavljuje verziju 1 i poboljšava protok zraka oko senzora. Dodatne rupe na svakom kraju služe za montažu, na primjer pomoću kabelskih vezica.

Korak 4: Uklanjanje zastavice zaštite kodiranja NRF52

Uklanjanje zastavice zaštite kodiranja NRF52
Uklanjanje zastavice zaštite kodiranja NRF52
Uklanjanje zastavice zaštite kodiranja NRF52
Uklanjanje zastavice zaštite kodiranja NRF52
Uklanjanje zastavice zaštite kodiranja NRF52
Uklanjanje zastavice zaštite kodiranja NRF52

Spojite ploču za temperaturu/vlažnost na programator opisan u dijelu 1, kao što je prikazano gore.

Sa isključenim solarnim ćelijama i baterijama, Vin i Gnd su spojeni na Vdd i Gnd programera (žuti i zeleni vodi), a SWCLK i SWDIO su spojeni na Clk i SIO ploče zaglavlja programatora (bijeli i sivi vodiči)

Uklanjanje zaštite programa nRF52

Sa stranice Nordic Semi - Debug and Trace DAP - Debug Access Port. Vanjski debager može pristupiti uređaju putem DAP -a. DAP implementira standardni ARM® CoreSight ™ serijski port za otklanjanje grešaka (SW-DP). SW-DP implementira Serial Wire Debug protokol (SWD) koji je dvopolni serijski interfejs, SWDCLK i SWDIO

Važno: SWDIO linija ima unutarnji pull-up otpornik. Linija SWDCLK ima unutrašnji pull-down otpornik.

CTRL -AP - Kontrolni pristupni port. Kontrolni pristupni port (CTRL-AP) je prilagođeni pristupni port koji omogućava kontrolu uređaja čak i ako su drugi pristupni portovi u DAP-u onemogućeni zaštitom pristupnog porta. Zaštita pristupnog porta blokira otklanjanje grešaka pristup za čitanje i pisanje u sve registre CPU-a i adrese preslikane u memoriju. Onemogućite zaštitu pristupnog porta. Zaštita pristupnog porta može se onemogućiti samo izdavanjem naredbe ERASEALL putem CTRL-AP. Ova naredba će izbrisati Flash, UICR i RAM.

Odaberite CMSIS-DAP kao programera za Partger's Debugger i odaberite nRF5 Flash SoftDevice

Ako bljesak radi, to je u redu, ali često će moduli biti zaštićeni od ponovnog programiranja i dobit ćete ovu grešku u prozoru Arduino

Otvorite On-Chip Debugger 0.10.0-dev-00254-g696fc0a (2016-04-10-10: 13) Licencirano pod GNU GPL v2 Za izvještaje o greškama pročitajte https://openocd.org/doc/doxygen/bugs.html debug_level: 2 Info: samo jedna transportna opcija; autoselect 'swd' brzina adaptera: 10000 kHz cortex_m reset_config sysresetreq Podaci: CMSIS-DAP: SWD Podržani podaci: CMSIS-DAP: Interfejs inicijaliziran (SWD) Podaci: CMSIS-DAP: Verzija FW = 1.10 Podaci: SWCLK/TCK = 1 SWDIO/ TMS = 1 TDI = 0 Tdo -AP za kontrolu jezgre Greška: Cilj još nije ispitan Greška pri bljeskanju SoftDevice -a.

U tom slučaju trebate postaviti registar naredbi ERASEALL u nRF52 da biste očistili memoriju i učinili uređaj ponovo programabilnim. Verzija openOCD -a isporučena sa sandeepmistry nRF52 ne uključuje naredbu apreg koja je potrebna za pisanje u registar naredbi ERASEALL pa morate instalirati kasniju verziju.

Instalirajte OpenOCD verziju OpenOCD-20181130 ili noviju. Windows unaprijed kompajlirana verzija dostupna je sa https://gnutoolchains.com/arm-eabi/openocd/ Najnoviji kod dostupan je sa

Otvorite naredbeni redak i promijenite direktorij u instalacijski direktorij OpenOCD i unesite naredbu

bin / openocd.exe -d2 -f sučelje/cmsis -dap.cfg -f cilj/nrf52.cfg

Odgovor je

Otvorite On-Chip Debugger 0.10.0 (2018-11-30) [https://github.com/sysprogs/openocd]Licencirano pod GNU GPL v2 Za izvještaje o greškama pročitajte https://openocd.org/doc/doxygen/ bugs.html debug_level: 2 Info: automatski odabir prve dostupne sesije transport "swd". Za poništavanje koristite 'transport select'. brzina adaptera: 1000 kHz cortex_m reset_config sysresetreq Podaci: Slušanje na portu 6666 za tcl veze Info: Slušanje na portu 4444 za telnet veze Info: CMSIS-DAP: SWD Podržani podaci: CMSIS-DAP: Verzija FW = 1,10 Podaci: CMSIS-DAP: Inicijalizovano sučelje (SWD) Podaci: SWCLK/TCK = 1 SWDIO/TMS = 1 TDI = 0 TDO = 0 nTRST = 0 nRESET = 1 Podaci: CMSIS-DAP: Interfejs spreman Info: takt 1000 kHz Info: SWD DPIDR 0x2ba01477 Greška: Nije moguće pronaći MEM-AP za kontrolu jezgre Info: Slušanje gdb veza na portu 3333

Zatim otvorite terminalni prozor, npr. TeraTerm (Windows) ili CoolTerm (Mac) i povežite se na 127.0.0.1 port 4444

Telnet prozor će prikazati>, a naredbeni redak će pokazati Info: prihvaćanje 'telnet' veze na tcp/4444

U prozoru telnet (tj. TeraTerm) upišitenrf52.dap apreg 1 0x04to vraća 0x00000000 koje pokazuju da je čip zaštićen. Zatim upišite nrf52.dap apreg 1 0x04 0x01i zatim nrf52.dap apreg 1 0x04to vraća 0x00000001 pokazujući da je čip sada postavljen na ERASEALL pri sljedećem ponovnom pokretanju.

Zatvorite telnet vezu i također upotrijebite Ctrl-C za izlaz iz programa openOCD u naredbenom retku, a zatim uključite i isključite nRF52 modul i on će sada biti spreman za programiranje.

Sada pokušajte treptati softverski uređaj.

Sada možete programirati nRF52 modul iz Arduina.

Korak 5: Programiranje SKYLAB SKB369

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

Zatvorite Arduino i ponovo instalirajte najnoviju verziju podrške za pfod_lp_nrf52 slijedeći upute za instaliranje pfod_lp_nrf52 hardverske podrške. Najnoviji pfod_lp_nrf52 uključuje zamjensku ploču SKYLAB SKB369 Nano2. Odaberite to kao ploču i tada ga možete programirati revizijom 3 lp_BLE_TempHumidity, lp_BLE_TempHumidity_R3.zip, kako je opisano u 2. dijelu.

Ako programiranje ne uspije. Zatvorite sve Arduino prozore, uklonite USB kabele, ponovo pokrenite Arduino i ponovo uključite USB kabel programatora te ponovno uključite USB napajanje modula nRF52 i pokušajte ponovo.

Zatim se povežite putem pfodApp -a za prikaz trenutne i povijesne temperature i vlažnosti. Nakon što prikažete povijesni prikaz, očitanja, s vremenskim oznakama u milisekundama, spremaju se u datoteku dnevnika na vašem mobilnom telefonu i također su dostupna na ekranu sirovih podataka.

Datoteka dnevnika također sadrži dodatne podatke potrebne za ponovno stvaranje datuma i vremena u proračunskoj tablici. Za detalje pogledajte Arduino datum i vrijeme pomoću millis () i pfodApp

Korak 6: Stvaranje nove definicije ploče Arduino NRF52

Stvaranje nove definicije ploče Arduino NRF52
Stvaranje nove definicije ploče Arduino NRF52
Kreiranje nove definicije ploče Arduino NRF52
Kreiranje nove definicije ploče Arduino NRF52
Kreiranje nove definicije ploče Arduino NRF52
Kreiranje nove definicije ploče Arduino NRF52
Kreiranje nove definicije ploče Arduino NRF52
Kreiranje nove definicije ploče Arduino NRF52

Da biste podržali novu ploču nRF52, morate a) dodati novi direktorij u direktorij varijanti s datotekama ploče i b) urediti datoteku board.txt kako biste novu ploču dodali u Arduino.

Dodavanje nove varijante ploče nRF52

Kao što je opisano u 1. dijelu, Instaliranje hardverske podrške pfod_lp_nrf52, pronađite hardverski poddirektorij paketa sandeepmistry koji ste ažurirali s podrškom za pfod_lp_nrf52. Otvorite poddirektorij / hardware / nRF5 / 0.6.0 / variants i stvorite novi direktorij za vašu novu ploču, npr. SKYLAB_SKB369_Nano2replacement U novom / hardware / nRF5 / 0.6.0 / variants / SKYLAB_SKB369_Nano2replacement imeniku stvorite tri datoteke variant.h, variant.cpp i pins_arduino.h Možete ih kopirati iz drugih direktorija varijanti ploče. Za zamjenu SKYLAB_SKB369_Nano2, u početku sam kopirao datoteke iz varijante RedBear_BLENano2.

pins_arduino.h datoteku

Datoteku pins_arduino.h nije potrebno mijenjati. Sadrži samo datoteku variant.h

variant.h datoteku

Uredite datoteku variant.h kako biste definirali ukupan broj pinova koje će vaša ploča imati, PINS_COUNT

NAPOMENA: U paketu sandeepmistry, NUM_DIGITAL_PINS, NUM_ANALOG_INPUTS i NUM_ANALOG_OUTPUTS postavke se zanemaruju

Ako vaša ploča nudi više ili manje analognih pinova, ažurirajte / * Analog Pins * / odjeljak datoteke variants.h.

NAPOMENA: Za ploče NanoV2 i SKYLAB, analogni pinovi su mapirani na digitalne pinove A0 == D0 itd

To nije bitno. Analogne ulaze možete dodijeliti bilo kojem prikladnom Arduino pinu. Za primjer pogledajte datoteke blue/variant.h i blue/variant.cpp.

Čip nRF52832 ima 8 analognih ulaznih pinova, ali SKYLAB_SKB369_Nano2 zamjenska ploča čini samo 6 od njih dostupnim za Nano2.

Svi PIN brojevi, osim RESET_PIN, u datoteci variant.h su Arduino PIN brojevi. To jest #define PIN_A0 (0) implicira da je D0 na arduino skici isti pin kao A0. RESET_PIN je izuzetak. Taj broj je pin broj čipa nRF52823, a 21 jedini valjani izbor. Međutim, podrška za pfod_lp_nrf52 ne omogućuje pin za resetiranje na nRF52832

variant.cpp datoteku

U datoteci variant.cpp postoji samo jedan unos, niz g_ADigitalPinMap koji preslikava Arduino pin brojeve na nRF52832 čip P0.. pinovi

NAPOMENA: Na pločama NanoV2 i SKYLAB, Arduino analogni pinovi A0, A1… isti su kao Arduino digitalni pinovi D0, D1… pa se prvi unosi u g_ADigitalPinMap MORAJU preslikati u AINx brojeve pinova na čipu nRF52832

Za analogne ulaze koje vaša ploča čini dostupnim, ti unosi u g_ADigitalPinMap moraju preslikavati nRF52832 AIN0, AIN1, AIN2 itd. Brojeve pinova. tj. AIN0 je čip pin P0.02, AIN1 je čip pin P0.03 itd. Pogledajte gornji raspored pinova nRF52832.

Koristite (uint32_t) -1 za nevažeća preslikavanja. Na primjer, zamjenska ploča SKYLAB_SKB369_Nano2 nema ugrađenu LED diodu, D13, pa je njen položaj mapiran na (uint32_t) -1

U pfod_lp_nrf52.zip varijacije Redbear NanoV2, SKYLAB SKB369 i GT832E_01 poddirektoriji imaju slike koje prikazuju preslikavanja postavljena variantom.cpp. (Pogledajte slike iznad)

U slučaju SKYLAB -a SKB369, postoji mnogo igala za odabir. Mapira se samo onoliko koliko odgovara NanoV2. U slučaju GT832E_01, potrebno je mapirati sve dostupne pinove. Čak i tada su na raspolaganju samo tri (3) analogna ulaza umjesto šest (6) na NanoV2. Osim toga, dva NFC pina, P0.09 i P0.10, potrebno je ponovno konfigurirati kao GPIO. Pogledajte dolje u tekstu Ponovno konfiguriranje nRF52 NFC pinova kao GPIO -a.

Ažuriranje datoteke Board.txt

Evo unosa SKYLAB_SKB369_Nano2replacement u datoteci board.txt.

## SKYLAB_SKB369 Nano2 zamjenaSKYLAB_SKB369_NANO2_REPLACEMENT.name =*SKYLAB SKB369 Nano2 zamjena

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.maBimum_KB2 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 = 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 = tvrdi -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

board.txt Postavke

Komentari - redovi koji počinju sa # su komentari.

Prefiks - svaka ploča treba jedinstveni prefiks da identificira svoje vrijednosti. Ovdje je prefiksSKYLAB_SKB369_NANO2_REPLACEMENT.

Naziv - Red SKYLAB_SKB369_NANO2_REPLACEMENT.name navodi naziv ove ploče koja će se prikazivati u meniju Arduino ploče.

Alat za otpremanje - SKYLAB_SKB369_NANO2_REPLACEMENT.upload blok određuje koji alat treba koristiti za postavljanje. Ako koristite program za uklanjanje pogrešaka čestica, upotrijebite protocol = cmsis-dap kao što je prikazano gore.

Bootloader - Ova linija je ista za sve ploče u ovoj datoteci.txt

Build - U ovom bloku je potrebno ažurirati samo dvije linije. Red SKYLAB_SKB369_NANO2_REPLACEMENT.build.variant specificira ime direktorija ove ploče u poddirektorijumu varijante. SKYLAB_SKB369_NANO2_REPLACEMENT.build.board je vrijednost dodana ARDUINO_, a zatim definirana prilikom sastavljanja koda. npr. -DARDUINO_SKYLAB_SKB369_Nano2replacement Ovo vam omogućuje da omogućite/onemogućite dijelove koda za određene ploče.

Sat niske frekvencije - Ova linija, SKYLAB_SKB369_NANO2_REPLACEMENT.menu.lfclk.lfrc.build.lfclk_flags, navodi izvor niskofrekventnog takta, koji se koristi za lp_timer. Postoje tri opcije, -DUSE_LFXO, -DUSE_LFRC i -DUSE_LFSYNT. Najbolji izbor je -DUSE_LFXO, ako ploča ima vanjski kristal od 32 kHz. Ako ne, onda upotrijebite -DUSE_LFRC, koji koristi unutarnji RC oscilator i vuče nešto više struje, ~ 10uA više, i mnogo je manje puta manje precizan. Nemojte koristiti -DUSE_LFSYNT jer to održava čip da radi sve vrijeme što dovodi do trenutnog izvlačenja mAs.

Softdevice - pfod_lp_nrf52 podržava samo nRF52 čipove i softdevice s132 tako da za ovaj blok nisu potrebne nikakve promjene, osim prefiksa.

Ponovno konfiguriranje nRF52 NFC pinova kao GPIO -a

Budite zadani na nRF52 pinovima, P0.09 i P0.10 su konfigurirani za upotrebu kao NFC i očekuju se da budu spojeni na NFC antenu. Ako ih trebate koristiti kao I/O pinove opće namjene (GPIO -i), tada morate dodati definiranje, -DCONFIG_NFCT_PINS_AS_GPIOS, u… menu.softdevice.s132.build.extra_flags postavke kompajliranja te ploče u datoteci board.txt.

Na primjer pfod_lp_nrf52.zip, ponovno konfigurira pinove GT832E_01 za upotrebu kao I/O. Odeljak GT832E_01 za ovu ploču, u datoteci boards.txt, ima dodatnu sledeću definiciju

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

Skripta povezivanja u pfod_lp_nrf52.zip je također izmijenjena kako bi se sačuvala ova postavka i ne treba je mijenjati.

Korak 7: Zaključak

Ovaj vodič je predstavio zamjenu za Redbear NanoV2 koristeći SKYLAB SKB369 modul. Monitor temperature i vlažnosti na baterije/solarni pogon korišten je kao primjer BLE projekta vrlo male snage u Arduinu za SKYLAB modul. Struje napajanja od ~ 29uA gdje se postižu podešavanjem parametara veze. To je rezultiralo vijekom trajanja dugmaste baterije CR2032 ~ 10 mjeseci. Duže za novčanice i baterije većeg kapaciteta. Dodavanjem dvije jeftine solarne ćelije lako se produžio vijek trajanja baterije za 50% ili više. Jaka sobna svetlost ili stolna lampa dovoljna su za napajanje monitora iz solarnih ćelija.

Ovaj vodič je također obuhvatio uklanjanje zaštite čipova s unaprijed programiranog nRF52 i kako postaviti novu definiciju ploče koja odgovara vašem PCB-u/krugu

Nije potrebno programiranje Androida. pfodApp rješava sve to.

Preporučuje se: