Sadržaj:

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

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

Video: Lako BLE vrlo male snage u Arduinu, dio 3 - zamjena za Nano V2 - koraci 3: 7 koraka (sa slikama)
Video: CASIO fx-991CW fx-570CW CLASSWIZ Calculator Full Example Manual 2024, Studeni
Anonim
Jednostavan BLE vrlo male snage u Arduinu, dio 3 - Zamjena Nano V2 - Rev 3
Jednostavan BLE vrlo male snage u Arduinu, dio 3 - Zamjena Nano V2 - Rev 3
Jednostavan BLE vrlo male snage u Arduinu, dio 3 - Zamjena Nano V2 - Rev 3
Jednostavan BLE vrlo male snage u Arduinu, dio 3 - Zamjena Nano V2 - Rev 3
Jednostavan BLE vrlo male snage u Arduinu, dio 3 - Zamjena Nano V2 - Rev 3
Jednostavan BLE vrlo male snage u Arduinu, dio 3 - Zamjena Nano V2 - Rev 3

Ažuriranje: 7. travnja 2019. - Rev 3 u 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 izravnog sunčevog svjetla. 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, programskim modulom i mjerenjem opskrbne struje. Obuhvaća i specijalizirane mjerače vremena i usporedbe male snage te oslobođene ulaze i upotrebu pfodApp -a za povezivanje i upravljanje nRF52 uređajem.

Dio 2 - Monitor vlažnosti temperature vrlo niske potrošnje napaja pomoću Redbear Nano V2 modula i senzora temperature / vlage Si7021 za izradu baterije / solarnog monitora male snage. Također obuhvaća modificiranje 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 korištenje drugih modula temeljenih 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 ploče nRF52 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 dio 2 s istim prilagođenim BLE parametrima za nisku potrošnju energije i može se napajati samo iz baterije ILI iz baterije + iz solarne ILI solarne jedinice. Podešavanje BLE parametara za malu snagu bilo je obrađeno u 2. dijelu

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

Rev 4 pfod_lp_nrf52.zip također podržava GT832E_01 modul, a 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 posljednjih 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 zapisnika. Nije potrebno Android programiranje, pfodApp rješava sve to. Android zaslon i grafikoni u potpunosti su kontrolirani vašom Arduino skicom tako da 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 2. dijelu, za osjetnik temperature / vlage koristi se Sparkfun Si7021 razvodna ploča. 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 čini se 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 značajke. Pogledaj 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 ulazno/izlazne 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 značajki. Nano V2 uključuje regulator od 3,3 V i opskrbne kondenzatore, dodatne komponente za korištenje opcije DC/DC pretvarača nRF52, čip antenu i uFL SMT konektor za antenu.

Druga alternativa je modul GT832E_01 koji koristi www.homesmartmesh.com. Rev 4 iz pfod_lp_nrf52.zip također 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 komponenti kristala 32Khz.

Nacrt

Ovaj projekt ima 4 relativna nezavisna dijela:-

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

Korak 2: Odabir komponenti i izrada

Odabir komponenti

Uz komponente nRF52832 i Si7021 odabrane u 2. dijelu, ovaj projekt dodaje regulator od 3,3 V i opskrbne kondenzatore.

Komponenta regulatora napona

Ovdje se koristi regulator MC87LC33-NRT. Može podnijeti do 12V ulaze i ima struju mirovanja <3.6uA, tipično 1.1uA. Nano V2 koji je koristio 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 određuje kako reagira kad ulazni napon padne ispod 3,3 V, dok podatkovni list TLV704 ne.

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

Opskrbni kondenzatori

Regulator MC87LC33-NRT treba neke opskrbne kondenzatore za stabilnost i odziv. Na podatkovnom listu preporuča se izlazni kondenzator> 0,1uF. SKYLAB SBK369 također 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 gdje su lemljeni preko Vin/GND pinova kao daljnji spremnik struje. Za usporedbu, 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 niski serijski otpor i nisku struju curenja. Otpor je tipično 100, 000MΩ ili 1000MΩ - µF, što je uvijek manje. Dakle, za 22uF imamo 22000MΩ, tj. Curenje od 0,15nA na 3,3V ili 0,6nA za četiri kondenzatora od 22uF. To je zanemarivo. Za usporedbu Niski ESR, Panasonic elektrolitski kondenzatori s 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.

Popis dijelova

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

  • SKYLAB SKB369 ~ US $ 5 npr. Aliexpress
  • Sparkfun Si7021 ploča za razbijanje ~ 8 USD
  • 2 x 53 mm x 30 mm 0,15 W 5V solarne ćelije npr. Overfly ~ 1,10 USD
  • 1 x PCB SKYLAB_TempHumiditySensor_R2.zip ~ 25 USD za 5 popusta na www.pcbcart.com
  • 1 x MC78LC33 3.3V regulator, npr. Digikey MC78LC33NTRGOSCT-ND ~ US $ 1
  • 2 x 0,1uF 50V keramika C1608X5R1H104K080A npr. Digikey 445-7456-1-ND ~ 0,3 USD
  • 4 x 22uF 16V keramika GRM21BR61C226ME44L npr. Digikey 490-10747-1-ND ~ 2 USD
  • 1 x BAT54CW, na pr. Digikey 497-12749-1-ND ~ 0,5 USD
  • 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 USD
  • 3 mm x 12 mm najlonski vijci, npr. Jaycar HP0140 ~ 3 AUD USD
  • 3 mm x 12 mm najlonske matice, npr. Jaycar HP0146 ~ 3 AUD $
  • Scotch Trajna traka za montažu Cat 4010 npr. s Amazona ~ 6,6 USD
  • Držač baterije CR2032, npr. HU2032-LF ~ 1,5 USD
  • CR2032 baterija ~ 1 USD
  • Perspex list, 3,5 mm i 8 mm
  • pfodApp ~ 10 USD
  • Lepljiva pasta npr. Jaycar NS-3046 ~ 13 AUD USD

Korak 3: Izgradnja

Graditeljstvo
Graditeljstvo
Graditeljstvo
Graditeljstvo
Graditeljstvo
Graditeljstvo

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

Ovo je shema (pdf verzija)

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

Gotovo sve komponente su uređaji za površinsko postavljanje (SMD). Kondenzatore i IC -ove može biti teško lemiti ručno. Predložena metoda je držanje PCB -a u škripcu i nanošenje male količine paste za lemljenje na jastučiće te postavljanje SMD komponenti, osim ploče SKB369 na PCB. Zatim toplinskim pištoljem nanesite toplinu na donju stranu PCB -a dok se pasta za lemljenje ne otopi, a zatim brzo prođite po vrhu ploče pazeći da komponente ne otpuhnu. Na kraju dodirnite komponente malim lemilicom s vrhom. Budite oprezni s kondenzatorima i otpornikom jer je lako rastopiti oba kraja i odvojiti komponentu tijekom lemljenja jednog kraja.

Ova revizija dodaje dodatne 22uF 16V keramičke kondenzatore. Ovi dodatni kondenzatori smanjuju trenutne skokove izvučene iz baterije, a također i smanjuju 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. Koristite dvije igle u kartonsku podlogu za postavljanje ploče SKB369 i pažljivo poravnajte igle. (Pogledajte gornju sliku primjera pomoću Revision 1 PCB -a) Zatim lemite jedan pin sa suprotne strane kako biste držali ploču na mjestu prije lemljenja ostalih pinova.

Zabilježite žicu spoja Gnd 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 pogreš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 s programatorom opisanim u 1. dijelu, kao što je prikazano gore.

S isključenim solarnim ćelijama i baterijama, Vin i Gnd su spojeni na Vdd i Gnd programera (žuti i zeleni vodiči), a SWCLK i SWDIO 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 alat za otklanjanje pogrešaka može pristupiti uređaju putem DAP -a. DAP implementira standardni ARM® CoreSight ™ serijski port za otklanjanje pogrešaka (SW-DP). SW-DP implementira Serial Wire Debug Protocol (SWD) koji je dvopolno serijsko sučelje, SWDCLK i SWDIO

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

CTRL -AP - Kontrolni pristupni port. Kontrolni pristupni port (CTRL-AP) prilagođeni je pristupni port koji omogućuje kontrolu uređaja čak i ako su drugi pristupni portovi u DAP-u onemogućeni zaštitom pristupnog porta. Zaštita pristupnog porta blokira program za otklanjanje pogreš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 isključiti samo izdavanjem naredbe ERASEALL putem CTRL-AP. Ova naredba će izbrisati Flash, UICR i RAM.

Odaberite CMSIS-DAP kao programera za Debugger programa Particle 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

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

U tom slučaju morate postaviti registarski nalog ERASEALL u nRF52 kako biste očistili memoriju i učinili uređaj ponovno programibilnim. 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. Unaprijed sastavljena verzija sustava Windows dostupna je s https://gnutoolchains.com/arm-eabi/openocd/ Najnoviji kod dostupan je s

Otvorite naredbeni redak i promijenite direktorij u direktorij za instalaciju OpenOCD i unesite naredbu

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

Odgovor je

Otvorite On-Chip Debugger 0.10.0 (2018-11-30) [https://github.com/sysprogs/openocd]Licensed under GNU GPL v2 Za izvješća o greškama pročitajte https://openocd.org/doc/doxygen/ bugs.html debug_level: 2 Info: automatski odabir prvog dostupnog prijenosa sesije "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 Podaci: CMSIS-DAP: SWD Podržani podaci: CMSIS-DAP: Verzija FW = 1,10 Podaci: CMSIS-DAP: Inicijalizirano sučelje (SWD) Podaci: SWCLK/TCK = 1 SWDIO/TMS = 1 TDI = 0 TDO = 0 nTRST = 0 nRESET = 1 Podaci: CMSIS-DAP: Sučelje spremno Info: takt 1000 kHz Podaci: SWD DPIDR 0x2ba01477 Pogreška: Nije moguće pronaći MEM-AP za kontrolu jezgre Podaci: Slušanje gdb veza na portu 3333

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

Telnet prozor će pokazati>, a naredbeni redak pokazat će 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 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 -a SKB369
Programiranje SKYLAB -a SKB369
Programiranje SKYLAB -a SKB369
Programiranje SKYLAB -a SKB369
Programiranje SKYLAB -a SKB369
Programiranje SKYLAB -a SKB369

Zatvorite Arduino i ponovno instalirajte najnoviju verziju podrške za pfod_lp_nrf52 slijedeći upute za instalaciju hardverske podrške pfod_lp_nrf52. Najnoviji pfod_lp_nrf52 uključuje zamjensku ploču SKYLAB SKB369 Nano2. Odaberite to kao ploču i tada ga možete programirati s 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, ponovno pokrenite Arduino i ponovno uključite USB kabel programatora te ponovno priključite USB napajanje modula nRF52 i pokušajte ponovno.

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 zaslonu sirovih podataka.

Zapisnička datoteka također sadrži dodatne podatke potrebne za ponovno stvaranje grafikona 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
Stvaranje nove definicije ploče Arduino NRF52
Stvaranje nove definicije ploče Arduino NRF52
Stvaranje nove definicije ploče Arduino NRF52
Stvaranje nove definicije ploče Arduino NRF52
Stvaranje nove definicije ploče Arduino NRF52
Stvaranje 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 boards.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 poddirektorij hardvera 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 svoju 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 ostalih direktorija varijanti ploče. Za zamjenu SKYLAB_SKB369_Nano2, u početku sam kopirao datoteke iz varijante RedBear_BLENano2.

pins_arduino.h datoteka

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 zanemaruju se postavke NUM_DIGITAL_PINS, NUM_ANALOG_INPUTS i NUM_ANALOG_OUTPUTS

Ako vaša ploča nudi više ili manje analognih pinova, ažurirajte odjeljak / * Analogne pinove * / u datoteci variants.h.

NAPOMENA: Za ploče NanoV2 i SKYLAB, analogni pinovi su preslikani u 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 zamjenska ploča SKYLAB_SKB369_Nano2 čini samo 6 dostupnih za usklađivanje s 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 iznimka. 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 dostupnima, ti unosi u g_ADigitalPinMap moraju preslikavati brojeve pinova nRF52832 AIN0, AIN1, AIN2 itd. tj. AIN0 je čip pin P0.02, AIN1 je čip pin P0.03 itd. pogledajte gornji raspored pinova nRF52832.

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

U pfod_lp_nrf52.zip poddirektoriji varijacija Redbear NanoV2, SKYLAB SKB369 i GT832E_01 imaju slike koje prikazuju preslikavanja postavljena pomoću variant.cpp. (Pogledajte gornje slike)

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-ove. 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 Zamjena Nano2SKYLAB_SKB369_NANO2_REPLACEMENT.name =*SKYLAB Zamjena SKB369 Nano2

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

SKYLAB_SKB369_NANO2_REPLACEMENT.bootloader.tool = sandeepmistry: openocd

SKYLAB_SKB369_NANO2_REPLACEMENT.build.mcu = cortex-m4

SKYLAB_SKB369_NANO2_REPLACEMENT.build.f_cpu = 16.000.000 SKYLAB_SKB369_NANO2_REPLACEMENT.build.board = SKYLAB_SKB369_Nano2replacement SKYLAB_SKB369_NANO2_REPLACEMENT.build.core = nRF5 SKYLAB_SKB369_NANO2_REPLACEMENT.build.variant = SKYLAB_SKB369_Nano2replacement SKYLAB_SKB369_NANO2_REPLACEMENT.build.variant_system_lib = SKYLAB_SKB369_NANO2_REPLACEMENT.build.extra_flags = -DNRF52 SKYLAB_SKB369_NANO2_REPLACEMENT.build.float_flags = -mfloat -abi = 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 = 409600 SKYLAB_SKB369_NANO2_REPLACEMENT.menu.softdevice.s132.build.extra_flags = - DNRF52 -DS132 -DNRF51_S132 SKYLAB_SKB369_NANO2_REPLACEMENT.menu.softdevice.s132.build.ldscript = armgcc_s132_nrf52832_xxaa.ld

board.txt Postavke

Komentari - retci koji počinju s # su komentari.

Prefiks - svaka ploča treba jedinstveni prefiks za identifikaciju svojih vrijednosti. Ovdje je prefiksSKYLAB_SKB369_NANO2_REPLACEMENT.

Naziv - Redak SKYLAB_SKB369_NANO2_REPLACEMENT.name navodi naziv ove ploče za prikaz u izborniku Arduino ploče.

Alat za prijenos - SKYLAB_SKB369_NANO2_REPLACEMENT.upload blok navodi koji će se alat koristiti za prijenos. 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 na ovoj ploči.txt

Build - U ovom bloku potrebno je ažurirati samo dvije linije. Redak SKYLAB_SKB369_NANO2_REPLACEMENT.build.variant navodi naziv direktorija ove ploče u poddirektoriju varijante. SKYLAB_SKB369_NANO2_REPLACEMENT.build.board je vrijednost dodana ARDUINO_, a zatim definirana tijekom sastavljanja koda. npr. -DARDUINO_SKYLAB_SKB369_Nano2replacement To vam omogućuje omogućavanje/onemogućavanje dijelova koda za određene ploče.

Sat niske frekvencije - ovaj redak, SKYLAB_SKB369_NANO2_REPLACEMENT.menu.lfclk.lfrc.build.lfclk_flags, navodi izvor niskofrekventnog sata 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 32Khz. Ako ne, tada upotrijebite -DUSE_LFRC, koji koristi unutarnji RC oscilator i crpi nešto više struje, ~ 10uA više i mnogo je manje puta manje točan. Nemojte koristiti -DUSE_LFSYNT jer to održava čip da radi cijelo vrijeme što rezultira izvlačenjem struje 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 -ova

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 igle opće namjene (GPIO -i), tada morate dodati definiranje, -DCONFIG_NFCT_PINS_AS_GPIOS, u… menu.softdevice.s132.build.extra_flags na toj ploči postaviti postavke kompiliranja u datoteku board.txt.

Na primjer pfod_lp_nrf52.zip, ponovno konfigurira pinove GT832E_01 za upotrebu kao I/O. Odjeljak GT832E_01 za ovu ploču, u datoteci boards.txt, ima dodanu sljedeć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 također je 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 pomoću SKYLAB SKB369 modula. Monitor temperature i vlažnosti zraka na baterije/solarno napajanje korišten je kao primjer BLE projekta vrlo male snage u Arduinu za SKYLAB modul. Dovodne struje od ~ 29uA gdje se postižu podešavanjem parametara veze. To je rezultiralo vijekom trajanja baterije CR2032 dugmaste ćelije ~ 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 svjetlost ili stolna lampa dovoljna su za napajanje monitora iz solarnih ćelija.

Ovaj vodič također je 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 za Android. pfodApp rješava sve to.

Preporučeni: