Obsah:
- Krok 1: Prečo výmena za Nano V2?
- Krok 2: Výber a konštrukcia komponentov
- Krok 3: Konštrukcia
- Krok 4: Odstránenie vlajky na ochranu kódovania NRF52
- Krok 5: Programovanie SKYLAB SKB369
- Krok 6: Vytvorenie novej definície dosky Arduino NRF52
- Krok 7: Záver
Video: Jednoduché BLE s veľmi nízkym výkonom v Arduino, časť 3 - Výmena Nano V2 - krok 3: 7 (s obrázkami)
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:58
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
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
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
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
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:
Domáci automatizačný systém WiFi s extrémne nízkym výkonom: 6 krokov (s obrázkami)
Domáci automatizačný systém WiFi s extrémne nízkym výkonom: V tomto projekte vám ukážeme, ako môžete v niekoľkých krokoch vybudovať základný miestny systém domácej automatizácie. Budeme používať Raspberry Pi, ktoré bude fungovať ako centrálne zariadenie WiFi. Zatiaľ čo pre koncové uzly použijeme kriket IOT na výrobu batérie
Ako si vyrobiť vlastnú dosku plošných spojov pomocou laserového gravírovača s nízkym výkonom: 8 krokov (s obrázkami)
Ako si vyrobiť vlastnú dosku plošných spojov pomocou laseru s nízkym výkonom: Pokiaľ ide o výrobu domácej dosky plošných spojov, na internete nájdete niekoľko spôsobov: od tých najzákladnejších s použitím iba pera po sofistikovanejšie používanie 3D tlačiarní a ďalšieho vybavenia. A tento návod padá na posledný prípad! V tomto projekte sh
Meteostanica s nízkym výkonom: 6 krokov (s obrázkami)
Nízkoenergetická meteorologická stanica: Teraz v tretej verzii, ktorá bola testovaná viac ako dva roky, sa moja meteorologická stanica aktualizuje, aby sa dosiahol nižší výkon a spoľahlivosť prenosu údajov. Spotreba energie - nie je problém v iných mesiacoch ako v decembri a januári, ale
Meteostanica Arduino s extrémne nízkym výkonom: 5 krokov
Meteostanica Arduino s extrémne nízkym výkonom: Táto príručka vám ukáže, ako postaviť meteorologickú stanicu s mimoriadne nízkym výkonom pomocou rádiového modulu arduino nano, bme 280 a rf433, ktorý na 2 LiPo 18650 a jeho schopnosti vydrží približne 1,5 až 2 roky. rozšíriť ho pridaním ďalších senzorov a solárnej
Veľmi jednoduché napriek tomu veľmi efektívny žart (počítačový žart): 3 kroky
Veľmi jednoduché … napriek tomu veľmi efektívna žart (počítačová žart): Tento návod je VEĽMI jednoduchý, ale VEĽMI účinný! Čo sa stane, je: Skryjete všetky ikony na ploche obete. Obeť sa vydesí, keď uvidí počítač potom, ako urobíte žart. Počítač to nemôže nijako poškodiť