Obsah:

Jednoduché BLE s veľmi nízkym výkonom v Arduino, časť 3 - Výmena Nano V2 - krok 3: 7 (s obrázkami)
Jednoduché BLE s veľmi nízkym výkonom v Arduino, časť 3 - Výmena Nano V2 - krok 3: 7 (s obrázkami)

Video: Jednoduché BLE s veľmi nízkym výkonom v Arduino, časť 3 - Výmena Nano V2 - krok 3: 7 (s obrázkami)

Video: Jednoduché BLE s veľmi nízkym výkonom v Arduino, časť 3 - Výmena Nano V2 - krok 3: 7 (s obrázkami)
Video: Управление 32 сервомоторами с помощью PCA9685 и Arduino: V3 2024, December
Anonim
Jednoduché BLE s veľmi nízkym výkonom v Arduino, časť 3 - Výmena Nano V2 - rev
Jednoduché BLE s veľmi nízkym výkonom v Arduino, časť 3 - Výmena Nano V2 - rev
Jednoduché BLE s veľmi nízkym výkonom v Arduino, časť 3 - Výmena Nano V2 - rev
Jednoduché BLE s veľmi nízkym výkonom v Arduino, časť 3 - Výmena Nano V2 - rev
Jednoduché BLE s veľmi nízkym výkonom v Arduino, časť 3 - Výmena Nano V2 - rev
Jednoduché BLE s veľmi nízkym výkonom v Arduino, časť 3 - Výmena Nano V2 - rev

Aktualizácia: 7. apríla 2019 - Rev. 3 lp_BLE_TempHumidity, pridáva grafy dátumu a času pomocou programu pfodApp V3.0.362+a automatické obmedzovanie pri odosielaní údajov

Aktualizácia: 24. marca 2019 - Rev 2 lp_BLE_TempHumidity, pridáva ďalšie možnosti vykresľovania a i2c_ClearBus, pridáva podporu GT832E_01

Úvod

Tento tutoriál, Náhrada za Redbear Nano V2, je časťou 3 z 3. Toto je revízia 2 tohto projektu. PCB revízie 2 obsahuje montáž na gombíkový článok a snímač, zjednodušuje konštrukciu a zlepšuje prúdenie vzduchu okolo snímača a chráni ho pred priamym slnečným žiarením. Revízia 1 je tu.

Časť 1 - Budovanie zariadení BLE s veľmi nízkym výkonom, ktoré sú jednoduché, s Arduino pokrýva osadenie Arduina na kódovanie zariadení s nízkym výkonom nRF52, programovacieho modulu a merania napájacieho prúdu. Zahŕňa tiež špecializované časovače a komparátory s nízkym výkonom a odblokované vstupy a používanie pfodApp na pripojenie a ovládanie zariadenia nRF52.

Časť 2 - Monitor vlhkosti vzduchu s veľmi nízkou spotrebou zahŕňa modul Redbear Nano V2 a snímač teploty / vlhkosti Si7021 na výrobu batérie / solárneho monitora s nízkym výkonom. Zahŕňa tiež úpravu knižnice Si7021 na nízky výkon, vyladenie zariadenia BLE tak, aby sa znížila jeho aktuálna spotreba na <29uA, a návrh vlastného displeja teploty/vlhkosti pre váš mobil.

Časť 3 - Náhrada Redbear Nano V2, táto, zahŕňa použitie iných modulov založených na nRF52 namiesto Nano V2. Zahŕňa výber komponentov dodávky, konštrukciu, odstránenie ochrany programovania čipov nRF52, používanie pinov NFC ako normálneho GPIO a definovanie novej dosky nRF52 v Arduine.

Tento návod je praktickou aplikáciou časti 1 Budovanie zariadení BLE s veľmi nízkym výkonom, ktoré je ľahké vykonať pomocou Arduina, skonštruovaním monitora teploty a vlhkosti BLE s veľmi nízkym výkonom pomocou dosky SKYLAB SBK369 ako náhrady za Nano V2. Tento tutoriál sa zaoberá tým, ako vytvoriť novú definíciu dosky a ako odstrániť ochranu programovania nRF52, aby bolo možné ju znovu naprogramovať. Tento tutoriál používa rovnaký náčrt ako časť 2 s rovnakými vyladenými parametrami BLE pre nízku spotrebu energie a je možné ho napájať iba z batérie ALEBO batérie + solárnej alebo slnečnej. Ladenie parametrov BLE pre nízky výkon bolo popísané v časti 2

Rev 3 of lp_BLE_TempHumidity vykresľuje údaje podľa dátumu a času iba pomocou Arduino millis (). Pozrite si dátum a čas Arduino pomocou millis () a pfodApp pomocou najnovšej verzie pfodApp (V3.0.362+).

Rev 4 of pfod_lp_nrf52.zip tiež podporuje modul GT832E_01 a tento návod sa zaoberá používaním pinov NFC nRF52 ako štandardných GPIO.

Tu zostrojený monitor pobeží roky na Coin Cell alebo 2 x AAA batériách, ešte dlhšie so solárnym asistentom. Monitor zobrazuje aktuálnu teplotu a vlhkosť a ukladá posledných 36 hodín, 10 minút a posledných 10 dní, odčítané po hodinách. Tieto je možné zmapovať na vašom mobile Android a hodnoty uložiť do súboru denníka. Nie je potrebné žiadne programovanie pre Android, o to všetko sa postará pfodApp. Zobrazenie a grafy pre Android sú úplne riadené vašou skicou Arduino, takže si ich môžete prispôsobiť podľa potreby.

Časť 2 použila dosku Redbear Nano V2 pre komponent nRF52832 BLE. Tento projekt to nahrádza lacnejšou doskou SKYLAB SKB369. Rovnako ako v časti 2 sa na snímač teploty / vlhkosti používa oddeľovacia doska Sparkfun Si7021. So Si7021 sa používa upravená knižnica nízkeho výkonu.

Krok 1: Prečo výmena za Nano V2?

i) Nano V2 bol niekoľko mesiacov mimo výroby a zdá sa, že nezapadá do zostavy Particle.io, takže nie je jasné, ako dlho bude k dispozícii.

ii) Nano V2 je drahší. Má však aj ďalšie funkcie. Pozri nižšie.

iii) Nano V2 má komponenty na oboch stranách, čo mu dodáva vyšší profil a sťažuje montáž.

iv) Nano V2 má k dispozícii obmedzené I/O piny a používanie D6 až D10 vyžaduje voľné vedenie.

Aj keď je doska Nano V2 drahšia ako doska SKYLAB SKB369, ~ US17 oproti ~ US5, Nano V2 má viac funkcií. Nano V2 obsahuje 3,3 V regulátor a napájacie kondenzátory, ďalšie komponenty na použitie možnosti meniča DCR DC nRF52, čipovú anténu a konektor antény uFL SMT.

Ďalšou alternatívou je modul GT832E_01, ktorý používa www.homesmartmesh.com. Rev 4 of pfod_lp_nrf52.zip tiež podporuje programovanie modulu GT832E_01. SKYLAB SKB369 a GT832E_01 sú k dispozícii na

Redbear (Particle.io) má tiež holý modul bez regulátora 3V3, súčasti DC/DC alebo kryštálové komponenty 32 kHz.

Obrys

Tento projekt má 4 relatívne nezávislé časti:-

Výber a konštrukcia súčiastok Odstránenie príznaku ochrany kódovania nRF52 a naprogramovanie náčrtu Vytvorenie novej definície dosky Arduino nRF52 Rekonfigurácia pinov nRF52 NFC ako GPIO

Krok 2: Výber a konštrukcia komponentov

Výber komponentov

Okrem komponentov nRF52832 a Si7021 vybraných v časti 2 tento projekt pridáva regulátor 3,3 V a napájacie kondenzátory.

Komponent regulátora napätia

Tu je použitý regulátor MC87LC33-NRT. Dokáže zvládnuť až 12V vstupy a má pokojový prúd <3,6uA, typicky 1,1uA. Nano V2 používajúci regulátor TLV704 má o niečo vyšší pokojový prúd, typicky 3,4uA, a dokáže zvládnuť vyššie vstupné napätie až do 24V. Namiesto toho bol zvolený MC87LC33-NRT, pretože jeho technický list špecifikuje, ako reaguje, keď vstupné napätie klesne pod 3,3 V, kde ako údajový list TLV704 nie.

TLV704 špecifikuje vstupné napätie minimálne 2,5 V a z technického listu nie je zrejmé, čo sa bude diať pod tým. NRF52832 bude pracovať na 1,7 V a Si7023 na 1,9 V. Na druhej strane MC87LC33-NRT špecifikuje rozdiely vstupného/výstupného napätia až do 0 V pre nízke prúdy (obr. 18 údajového listu). Vzhľadom na výber komponentov bol teda zvolený MC87LC33-NRT, pretože má určený výkon.

Napájacie kondenzátory

Regulátor MC87LC33-NRT potrebuje na zaistenie stability a odozvy niekoľko napájacích kondenzátorov. V dátovom liste sa odporúča výstupný kondenzátor> 0,1uF. SKYLAB SBK369 tiež špecifikuje kondenzátory 10uF/0,1uF na napájaní blízko dosky. Väčšie kondenzátory pomáhajú dodávať prúdové špičky nRF52 TX. Tu boli použité keramické kondenzátory 4 x 22uF 25V a 3 x 0,1uF 50V. Jeden 22uF a 0,1uF kondenzátor bol umiestnený blízko SKYLAB SBK369, 0,1uF bol umiestnený blízko výstupu MC87LC33-NRT, aby bola zaistená stabilita a 22uF a 0,1uF boli umiestnené na vstup do MC87LC33-NRT a ďalšie 2 x 22uF kondenzátory sú spájkované cez piny Vin/GND ako ďalší rezervoár prúdu. Na porovnanie, doska NanoV2 má 22uF / 0,1uF na vstupe do regulátora TLV704 a 0,1uF na svojom výstupe.

Kondenzátory zásobníka extra prúdu boli nainštalované na vstup do regulátora 3,3 V, aby sa pri prevádzke so solárnymi článkami nabíjali na vyššie napätie. Nabíjanie na vyššie napätie sa rovná uloženiu väčšieho prúdu na napájanie hrotov Tx.

Používajú sa keramické kondenzátory X5R, pretože majú nízky sériový odpor a nízky zvodový prúd. Odpor je obvykle 100 000 000 MΩ alebo 1 000 MΩ - µF, čo je niekedy menej. Takže pre 22uF máme 22 000MΩ, t.j. únik 0,15nA pri 3,3V alebo 0,6nA pre štyri 22uF kondenzátory. To je zanedbateľné. Na porovnanie Elektrolytické kondenzátory Panasonic s nízkym ESR a nízkym únikom majú zvodové prúdy <0,01 CV. Takže pre kondenzátor 22uF 16V je únik <10uA. Poznámka: Toto je únik pri menovitom napätí, v tomto prípade 16V. Pri nižších napätiach je únik nižší, t.j. <2,2 uA pri 3,3 V.

Zoznam položiek

Približné náklady na jednotku k decembru 2018, ~ 61 USD, bez poštovného a programátora z časti 1

  • SKYLAB SKB369 ~ 5 USD, napr. Aliexpress
  • Oddeľovacia doska Sparkfun Si7021 ~ 8 USD
  • 2 x 53 mm x 30 mm 0,15 W 5V solárne články napr. Overfly ~ 1,10 USD
  • 1 x PCB SKYLAB_TempHumiditySensor_R2.zip ~ 25 USD za zľavu 5 www.pcbcart.com
  • 1 x regulátor MC78LC33 3,3 V, napr. Digikey MC78LC33NTRGOSCT-ND ~ 1 USD
  • 2 x 0,1uF 50V keramika C1608X5R1H104K080A napr. Digikey 445-7456-1-ND ~ 0,3 USD
  • 4 x 22uF 16V keramický GRM21BR61C226ME44L napr. Digikey 490-10747-1-ND ~ 2 USD
  • 1 x BAT54CW, napr. Digikey 497-12749-1-ND ~ 0,5 USD
  • 1 x 470R 0,5 W 1% odpor napr. Digikey 541-470TCT-ND ~ 0,25 USD
  • 1 x 10V 1W zener SMAZ10-13-F napr. Digikey SMAZ10-FDICT-ND ~ 0,5 USD
  • Nylonové skrutky 3 mm x 12 mm, napr. Jaycar HP0140 ~ 3 AUD
  • Nylonové matice 3 mm x 12 mm, napr. Jaycar HP0146 ~ AUD $ 3
  • Scotch Permanentná montážna páska Cat 4010 napr. od Amazonu ~ 6,6 USD
  • Držiak batérie CR2032, napr. HU2032-LF ~ 1,5 USD
  • Batéria CR2032 ~ 1 USD
  • Doska Perspex, 3,5 mm a 8 mm
  • pfodApp ~ 10 USD
  • Spájkovacia pasta napr. Jaycar NS-3046 ~ AUD 13 dolárov

Krok 3: Konštrukcia

Konštrukcia
Konštrukcia
Konštrukcia
Konštrukcia
Konštrukcia
Konštrukcia

Projekt je postavený na malom PCB. DPS vyrobila spoločnosť pcbcart.com z týchto súborov Gerber, SKYLAB_TempHumiditySensor_R2.zip Doska plošných spojov napodobňuje vývod Nano V2 a je dostatočne univerzálna na to, aby sa dala použiť aj na iné projekty BLE.

Toto je schéma (verzia pdf)

Najprv spájkujte súčiastky SMD a potom namontujte dosku SKYLAB SKB369

Takmer všetky komponenty sú zariadenia pre povrchovú montáž (SMD). Kondenzátory a integrované obvody je ťažké spájkovať ručne. Navrhovaná metóda je držať DPS vo zveráku a naniesť na podložky malé množstvo spájkovacej pasty a umiestniť súčiastky SMD, okrem dosky SKB369, na DPS. Potom pomocou tepelnej pištole naneste teplo na spodnú stranu DPS, kým sa spájkovacia pasta neroztopí, a potom urobte rýchly prechod cez hornú časť dosky, pričom dávajte pozor, aby ste komponenty neodfúkli. Nakoniec opravte súčiastky malou spájkovačkou. Buďte opatrní pri kondenzátoroch a odpore, pretože je ľahké roztaviť oba konce a nechať komponent uvoľniť pri spájkovaní jedného konca.

Táto revízia pridala ďalšie 22uF 16V keramické kondenzátory. Tieto ďalšie kondenzátory znižujú prúdové špičky odoberané z batérie a tiež znižujú poklesy napätia pri napájaní zo solárnych článkov. Pokiaľ napätie zo solárnych článkov zostane nad napätím batérie, z batérie sa neodoberá žiadny prúd.

Po montáži súčiastok SMD môžete spájkovať na doske SKYLAB SKB369. Na jednej strane chlopní SKB369 sú dva otvory pre testovacie body. Pomocou dvoch kolíkov do kartónovej základne umiestnite dosku SKB369 a kolíky opatrne zarovnajte. (Pozrite si ukážkovú fotografiu vyššie pomocou dosky plošných spojov revízie 1) Potom spájkujte jeden kolík na opačnej strane, aby doska držala na mieste, a až potom spájkujte ostatné kolíky.

V hotovej časti si všimnite prepojovací vodič Gnd od CLK k GND. Toto je nainštalované PO programovaní, aby sa zabránilo šumu na vstupe CLK v spustení čipu nRF52 do režimu vysokého aktuálneho ladenia

Montážny kufrík

Montážne puzdro bolo vyrobené z dvoch kusov perspexu, 110 mm x 35 mm, hrúbky 3 mm. 3,5 mm kus pod solárnymi článkami sa poklepal a odobral 3 mm nylonové skrutky. Táto revidovaná konštrukcia je oproti Rev 1 jednoduchšia a zlepšuje prúdenie vzduchu okolo snímača. Extra otvory na každom konci sú určené na montáž, napríklad pomocou káblových zväzkov.

Krok 4: Odstránenie vlajky na ochranu kódovania NRF52

Odstránenie vlajky na ochranu kódovania NRF52
Odstránenie vlajky na ochranu kódovania NRF52
Odstránenie vlajky na ochranu kódovania NRF52
Odstránenie vlajky na ochranu kódovania NRF52
Odstránenie vlajky na ochranu kódovania NRF52
Odstránenie vlajky na ochranu kódovania NRF52

Pripojte dosku teploty/vlhkosti k programátoru popísanému v časti 1, ako je uvedené vyššie.

Keď sú solárne články a batérie odpojené, Vin a Gnd sú pripojené k programátoru Vdd a Gnd (žltý a zelený vodič) a SWCLK a SWDIO sú pripojené k Clk a SIO na doske záhlavia programátora (biely a sivý vodič)

Odstránenie ochrany programu nRF52

Zo stránky Nordic Semi - Debug and Trace DAP - Debug Access Port. Externý debugger má prístup k zariadeniu prostredníctvom DAP. DAP implementuje štandardný port ARM® CoreSight ™ Serial Wire Debug Port (SW-DP). SW-DP implementuje protokol Serial Wire Debug (SWD), ktorý je dvojpólovým sériovým rozhraním, SWDCLK a SWDIO

Dôležité: Rad SWDIO má vnútorný výsuvný odpor. Linka SWDCLK má vnútorný sťahovací odpor.

CTRL -AP - Riadiaci prístupový port. Riadiaci prístupový port (CTRL-AP) je vlastný prístupový port, ktorý umožňuje ovládanie zariadenia, aj keď sú ostatné prístupové porty v DAP deaktivované ochranou prístupového portu. Ochrana prístupových portov blokuje debuggeru prístup na čítanie a zápis do všetkých registrov CPU a adries mapovaných do pamäte. Vypnite ochranu prístupového portu. Ochranu prístupového portu je možné deaktivovať iba zadaním príkazu ERASEALL cez CTRL-AP. Tento príkaz vymaže Flash, UICR a RAM.

Vyberte CMSIS-DAP ako programátor ladiaceho programu Particle a zvoľte nRF5 Flash SoftDevice

Ak blesk funguje, je to v poriadku, ale moduly budú často chránené pred preprogramovaním a tento chybový výstup dostanete v okne Arduino

Otvorte ladiaci program na čipe 0.10.0-dev-00254-g696fc0a (2016-04-10-10: 13) s licenciou GNU GPL v2 Hlásenia chýb nájdete na stránke https://openocd.org/doc/doxygen/bugs.html debug_level: 2 Info: iba jedna možnosť dopravy; autoselect 'rýchlosť' adaptéra 'swd: 10 000 kHz TMS = 1 TDI = 0 TDO = 0 nTRST = 0 nRESET = 1 Informácie: CMSIS-DAP: Rozhranie pripravené na informácie: Požiadavka na zníženie rýchlosti: maximálne 10000kHz až 5000kHz Informácie: rýchlosť hodín 10 000 kHz Informácie: SWD IDCODE 0x2ba01477 Chyba: Nepodarilo sa nájsť MEM -AP na ovládanie jadra Chyba: Cieľ ešte nebol preskúmaný Chyba pri blikaní SoftDevice.

V takom prípade musíte v registri nRF52 nastaviť register príkazov ERASEALL, aby sa vyčistila pamäť a zariadenie sa znova dalo programovať. Verzia openOCD dodávaná s sandeepmistry nRF52 neobsahuje príkaz apreg potrebný na zápis do registra príkazov ERASEALL, takže si musíte nainštalovať novšiu verziu.

Nainštalujte verziu OpenOCD OpenOCD-20181130 alebo novšiu. Predkompilovaná verzia systému Windows je k dispozícii na adrese https://gnutoolchains.com/arm-eabi/openocd/ Najnovší kód je k dispozícii na adrese

Otvorte príkazový riadok a zmeňte adresár na inštalačný adresár OpenOCD a zadajte príkaz

bin / openocd.exe -d2 -f rozhranie/cmsis -dap.cfg -f cieľ/nrf52.cfg

Odpoveď je

Open On-Chip Debugger 0.10.0 (2018-11-30) [https://github.com/sysprogs/openocd]Licencované pod GNU GPL v2 Hlásenia chýb nájdete na stránke https://openocd.org/doc/doxygen/ bugs.html úroveň ladenia: 2 Informácie: automatický výber prvého dostupného prenosu „swd“relácie. Na prepísanie použite „výber dopravy“. rýchlosť adaptéra: 1000 kHz cortex_m reset_config sysresetreq Informácie: Počúvanie na porte 6666 pre pripojenia tcl Informácie: Počúvanie na porte 4444 pre pripojenia telnet Informácie: CMSIS-DAP: Podporované informácie SWD: CMSIS-DAP: Verzia FW = 1,10 Informácie: CMSIS-DAP: Informácie o inicializácii rozhrania (SWD): SWCLK/TCK = 1 SWDIO/TMS = 1 TDI = 0 TDO = 0 nTRST = 0 nRESET = 1 Informácie: CMSIS-DAP: Rozhranie pripravené na informácie: rýchlosť hodín 1000 kHz Informácie: SWD DPIDR 0x2ba01477 Chyba: Nebolo možné nájsť MEM-AP na ovládanie jadra. Informácie: Počúvanie portov 3333 pre pripojenia gdb

Potom otvorte okno terminálu, napr. TeraTerm (Windows) alebo CoolTerm (Mac) a pripojte sa k portu 127.0.0.1 4444

V okne telnetu sa zobrazí> a na príkazovom riadku sa zobrazí informácia: prijatie pripojenia „telnet“na serveri tcp/4444

V okne telnetu (t.j. TeraTerm) typenrf52.dap apreg 1 0x04toto vráti 0x00000000, čo znamená, že čip je chránený. Potom typenrf52.dap apreg 1 0x04 0x01 a thennrf52.dap apreg 1 0x04this vráti 0x00000001, čo ukazuje, že čip je teraz pri nasledujúcom reštarte nastavený na ERASEALL.

Zatvorte spojenie telnet a tiež pomocou Ctrl-C ukončite program openOCD v príkazovom riadku a potom vypnite a zapnite modul nRF52 a bude pripravený na programovanie.

Teraz skúste znova zablikať na softvérovom zariadení.

Teraz môžete modul nRF52 naprogramovať z Arduina.

Krok 5: Programovanie SKYLAB SKB369

Programovanie SKYLAB SKB369
Programovanie SKYLAB SKB369
Programovanie SKYLAB SKB369
Programovanie SKYLAB SKB369
Programovanie SKYLAB SKB369
Programovanie SKYLAB SKB369

Zatvorte Arduino a znova nainštalujte najnovšiu verziu podpory pfod_lp_nrf52 podľa pokynov na inštaláciu hardvérovej podpory pfod_lp_nrf52. Najnovší pfod_lp_nrf52 obsahuje náhradnú dosku SKYLAB SKB369 Nano2. Vyberte to ako dosku a potom ho môžete naprogramovať pomocou revízie 3 súboru lp_BLE_TempHumidity, lp_BLE_TempHumidity_R3.zip, ako je popísané v časti 2.

Ak programovanie zlyhá. Zatvorte všetky okná Arduino, odpojte káble USB, reštartujte Arduino a znova zapojte kábel USB programátora a znova zapojte napájanie USB modulu nRF52 a skúste to znova.

Potom sa pripojte cez pfodApp a zobrazte aktuálnu a historickú teplotu a vlhkosť. Akonáhle zobrazíte historický diagram, hodnoty, s milisekundovými časovými pečiatkami, sa uložia do súboru denníka vo vašom mobile a sú tiež k dispozícii na obrazovke s nespracovanými údajmi.

Súbor denníka obsahuje aj ďalšie údaje potrebné na opätovné vytvorenie diagramov dátumu a času v tabuľke. Podrobnosti nájdete v časti Dátum a čas Arduino pomocou millis () a pfodApp

Krok 6: Vytvorenie novej definície dosky Arduino NRF52

Vytvorenie novej definície dosky Arduino NRF52
Vytvorenie novej definície dosky Arduino NRF52
Vytvorenie novej definície dosky Arduino NRF52
Vytvorenie novej definície dosky Arduino NRF52
Vytvorenie novej definície dosky Arduino NRF52
Vytvorenie novej definície dosky Arduino NRF52
Vytvorenie novej definície dosky Arduino NRF52
Vytvorenie novej definície dosky Arduino NRF52

Na podporu novej dosky nRF52 musíte a) a) pridať nový adresár do adresára variantov so súbormi dosiek a b) upraviť súbor boards.txt a pridať novú dosku do Arduina.

Pridanie nového variantu dosky nRF52

Ako je popísané v časti 1, Inštalácia hardvérovej podpory pfod_lp_nrf52, vyhľadajte podadresár hardvéru balíka sandeepmistry, ktorý ste aktualizovali pomocou podpory pfod_lp_nrf52. Otvorte podadresár / hardware / nRF5 / 0.6.0 / variant a vytvorte nový adresár pre svoju novú dosku, napr. SKYLAB_SKB369_Nano2replacement V novom adresári / hardware / nRF5 / 0.6.0 / variant / SKYLAB_SKB369_Nano2replacement vytvorte tri súbory variant.h, variant.cpp a pins_arduino.h Môžete ich skopírovať z iných adresárov variantov dosky. Pri náhrade SKYLAB_SKB369_Nano2 som pôvodne skopíroval súbory z variantu RedBear_BLENano2.

súbor pins_arduino.h

Súbor pins_arduino.h nie je potrebné meniť. Obsahuje iba súbor variant.h

variant.h súbor

Upravte súbor variant.h tak, aby definoval celkový počet pinov, ktoré bude mať vaša nástenka, PINS_COUNT

POZNÁMKA: V balíku sandeepmistry sa ignorujú nastavenia NUM_DIGITAL_PINS, NUM_ANALOG_INPUTS a NUM_ANALOG_OUTPUTS

Ak vaša doska sprístupňuje viac alebo menej analógových pinov, aktualizujte časť / * Analog Pins * / v súbore variants.h.

POZNÁMKA: Pri doskách NanoV2 a SKYLAB sú analógové piny mapované na digitálne piny A0 == D0 atď

To nie je podstatné. Analógové vstupy môžete priradiť ľubovoľnému pohodlnému pinu Arduino. Príklad nájdete v súboroch blue/variant.h a blue/variant.cpp.

Čip nRF52832 má 8 analógových vstupných pinov, ale doska SKYLAB_SKB369_Nano2replacement poskytuje iba 6 z nich, aby zodpovedali Nano2.

Všetky čísla pinov, okrem RESET_PIN, v súbore variant.h sú čísla pinov Arduino. To je #define PIN_A0 (0) znamená, že D0 v náčrte arduina je rovnaký pin ako A0. RESET_PIN je výnimkou. Toto číslo je číslo PIN čipu nRF52823 a 21 je jediná platná voľba. Podpora pfod_lp_nrf52 však neumožňuje resetovací kolík na nRF52832

variant.cpp súbor

V súbore variant.cpp je iba jeden záznam, pole g_ADigitalPinMap , ktoré mapuje čísla pinov Arduino na piny čipu nRF52832 P0..

POZNÁMKA: Na doskách NanoV2 a SKYLAB sú analógové piny Arduino A0, A1… rovnaké ako digitálne piny Arduino D0, D1 …, takže prvé položky v g_ADigitalPinMap MUSIA mapovať na čísla pinov AINx na čipe nRF52832

Pre analógové vstupy, ktoré vaša doska sprístupňuje, musia tieto položky v g_ADigitalPinMap mapovať čísla pinov nRF52832 AIN0, AIN1, AIN2 atď. tj. AIN0 je čipový pin P0.02, AIN1 je čipový pin P0.03 atď. Pozrite si rozloženie pinov nRF52832 vyššie.

Na neplatné mapovania použite (uint32_t) -1. Napríklad náhradná doska SKYLAB_SKB369_Nano2 nemá vstavanú diódu LED, D13, takže jej poloha je mapovaná na (uint32_t) -1

V priečinku pfod_lp_nrf52.zip majú podadresáre variantov Redbear NanoV2, SKYLAB SKB369 a GT832E_01 obrázky zobrazujúce mapovania nastavené variantom.cpp. (Pozri obrázky vyššie)

V prípade SKYLAB SKB369 je na výber veľa kolíkov. Mapovaných je len toľko, aby zodpovedali NanoV2. V prípade GT832E_01 je potrebné zmapovať všetky dostupné piny. Aj napriek tomu sú na NanoV2 k dispozícii iba tri (3) analógové vstupy namiesto šiestich (6). Okrem toho je potrebné dva piny NFC, P0.09 a P0.10, znova nakonfigurovať ako GPIO. Pozrite si časť Konfigurácia pinov nRF52 NFC ako GPIO nižšie.

Aktualizácia súboru boards.txt

Tu je záznam SKYLAB_SKB369_Nano2replacement v súbore boards.txt.

## Náhrada SKYLAB_SKB369 Nano2SKYLAB_SKB369_NANO2_REPLACEMENT.name =*Výmena SKYLAB 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.maximum_size = 524288Y SK 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 = 16000000 SKYLAB_SKB369_NANO2_REPLACEMENT.build.board = SKYLAB_SKB369_Nano2replacement SKYLAB_SKB369_NANO2_REPLACEMENT.build.core = nRF5 SKYLAB_SKB369_NANO2_REPLACEMENT.build.variant = SKYLAB_SKB369_Nano2replacement SKYLAB_SKB369_NANO2_REPLACEMENT.build.variant_system_lib = SKYLAB_SKB369_NANO2_REPLACEMENT.build.extra_flags = -DNRF52 SKYLAB_SKB369_NANO2_REPLACEMENT.build.float_flags = -mfloat -abi = hard -mfpu = fpv4-sp-d16 SKYLAB_SKB369_NANO2_REPLACEMENT.build.ldscript = nrf52_xxaa.ld

SKYLAB_SKB369_NANO2_REPLACEMENT.menu.lfclk.lfrc.build.lfclk_flags = -DUSE_LFXO

SKYLAB_SKB369_NANO2_REPLACEMENT.menu.softdevice.s132 = S132

SKYLAB_SKB369_NANO2_REPLACEMENT.menu.softdevice.s132.softdevice = S132 SKYLAB_SKB369_NANO2_REPLACEMENT.menu.softdevice.s132.softdeviceversion = 2.0.1 SKYLAB_SKB369_NANO2_REPLACEMENT.menu.softdevice.s132.upload.maximum_size = 409600 SKYLAB_SKB369_NANO2_REPLACEMENT.menu.softdevice.s132.build.extra_flags = - DNRF52 -DS132 -DNRF51_S132 SKYLAB_SKB369_NANO2_REPLACEMENT.menu.softdevice.s132.build.ldscript = armgcc_s132_nrf52832_xxaa.ld

board.txt Nastavenia

Komentáre - riadky začínajúce na # sú komentáre.

Predpona - každá doska potrebuje na identifikáciu svojich hodnôt jedinečnú predponu. Tu je predponaSKYLAB_SKB369_NANO2_REPLACEMENT.

Názov - Riadok SKYLAB_SKB369_NANO2_REPLACEMENT.name určuje názov tejto dosky, ktorá sa má zobraziť v ponuke dosky Arduino.

Nástroj na nahrávanie - Blok SKYLAB_SKB369_NANO2_REPLACEMENT.upload určuje, ktorý nástroj sa má použiť na nahrávanie. Ak používate ladič častíc, použite protokol = cmsis-dap, ako je uvedené vyššie.

Bootloader - tento riadok je rovnaký pre všetky dosky v tomto súbore boards.txt

Zostaviť - v tomto bloku je potrebné aktualizovať iba dva riadky. Riadok SKYLAB_SKB369_NANO2_REPLACEMENT.build.variant určuje názov adresára tejto dosky vo variantnom podadresári. SKYLAB_SKB369_NANO2_REPLACEMENT.build.board je hodnota pripojená k ARDUINO_ a potom definovaná pri kompilácii kódu. napr. -DARDUINO_SKYLAB_SKB369_Nano2replacement To vám umožní povoliť/zakázať časti kódu pre konkrétne dosky.

Hodiny s nízkou frekvenciou - Tento riadok, SKYLAB_SKB369_NANO2_REPLACEMENT.menu.lfclk.lfrc.build.lfclk_flags, určuje zdroj nízkofrekvenčných hodín použitých pre lp_timer. Existujú tri možnosti, -DUSE_LFXO, -DUSE_LFRC a -DUSE_LFSYNT. Najlepšia voľba je -DUSE_LFXO, ak má doska externý kryštál 32 kHz. Ak nie, použite -DUSE_LFRC, ktorý používa interný RC oscilátor a čerpá o niečo viac prúdu, ~ 10uA viac a je oveľa menej krát menej presný. Nepoužívajte -DUSE_LFSYNT, pretože to udržuje čip stále v prevádzke, čo vedie k odberu prúdu mAs.

Softdevice - pfod_lp_nrf52 podporuje iba čipy nRF52 a softdevice s132, takže pre tento blok nie sú potrebné žiadne zmeny, okrem predpony.

Prekonfigurujte piny nRF52 NFC na GPIO

Na kolíkoch nRF52 sú predvolené hodnoty, P0.09 a P0.10 sú nakonfigurované na použitie ako NFC a očakávajú, že budú pripojené k anténe NFC. Ak ich chcete použiť ako univerzálne vstupno -výstupné piny (GPIO), potom musíte pridať definíciu -DCONFIG_NFCT_PINS_AS_GPIOS k… menu.softdevice.s132.build.extra_flags zostaviť nastavenia v súbore boards.txt.

Napríklad pfod_lp_nrf52.zip, znova nakonfiguruje piny GT832E_01 na použitie ako I/O. Sekcia GT832E_01 pre túto dosku v súbore boards.txt má pridanú nasledujúcu definíciu

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

Skript linkera v súbore pfod_lp_nrf52.zip bol tiež upravený, aby zachoval toto nastavenie a nie je potrebné ho meniť.

Krok 7: Záver

Tento tutoriál predstavil náhradu za Redbear NanoV2 pomocou modulu SKYLAB SKB369. Ako príklad BLE projektu s veľmi nízkym výkonom v Arduine pre modul SKYLAB bol použitý batériovo/solárne napájaný monitor teploty teploty. Napájacie prúdy ~ 29uA sa dosiahnu vyladením parametrov pripojenia. Výsledkom bola životnosť gombíkovej batérie CR2032 ~ 10 mesiacov. Dlhšie pre gombíkové články a batérie s vyššou kapacitou. Pridaním dvoch lacných solárnych článkov sa ľahko predĺži životnosť batérie o 50% a viac. Na napájanie monitora zo solárnych článkov postačuje jasné izbové svetlo alebo stolná lampa.

Tento tutoriál sa tiež zaoberal odstránením ochrany čipu z predprogramovaného nRF52 a toho, ako nastaviť novú definíciu dosky tak, aby zodpovedala vášmu vlastnému PCB/obvodu

Nie je potrebné žiadne programovanie pre Android. pfodApp to všetko zvláda.

Odporúča: