Obsah:

Snadné BLE s velmi nízkým výkonem v Arduino Část 3 - Výměna Nano V2 - Rev 3: 7 kroků (s obrázky)
Snadné BLE s velmi nízkým výkonem v Arduino Část 3 - Výměna Nano V2 - Rev 3: 7 kroků (s obrázky)

Video: Snadné BLE s velmi nízkým výkonem v Arduino Část 3 - Výměna Nano V2 - Rev 3: 7 kroků (s obrázky)

Video: Snadné BLE s velmi nízkým výkonem v Arduino Část 3 - Výměna Nano V2 - Rev 3: 7 kroků (s obrázky)
Video: Hardware Build of LoRa Transmitter, BME280 Sensor based on Arduino ESP32 (EP08) 2024, Prosinec
Anonim
Snadné BLE s velmi nízkým výkonem v Arduino Část 3 - Výměna Nano V2 - Rev 3
Snadné BLE s velmi nízkým výkonem v Arduino Část 3 - Výměna Nano V2 - Rev 3
Snadné BLE s velmi nízkým výkonem v Arduino Část 3 - Výměna Nano V2 - Rev 3
Snadné BLE s velmi nízkým výkonem v Arduino Část 3 - Výměna Nano V2 - Rev 3
Snadné BLE s velmi nízkým výkonem v Arduino Část 3 - Výměna Nano V2 - Rev 3
Snadné BLE s velmi nízkým výkonem v Arduino Část 3 - Výměna Nano V2 - Rev 3

Aktualizace: 7. dubna 2019 - rev.

Aktualizace: 24. března 2019 - 2. revize lp_BLE_TempHumidity, přidává další možnosti vykreslování a i2c_ClearBus, přidává podporu GT832E_01

Úvod

Tento výukový program, Náhrada za Redbear Nano V2, je částí 3 ze 3. Toto je revize 2 tohoto projektu. Revize 2 PCB obsahuje montáž na knoflíkový článek a senzor, zjednodušuje konstrukci a zlepšuje proudění vzduchu kolem snímače a chrání jej před přímým slunečním zářením. Revize 1 je zde.

Část 1 - Budování velmi nízkoenergetických zařízení BLE usnadněných pomocí Arduino pokrývá osazení Arduina pro kódování zařízení s nízkou spotřebou nRF52, programovacího modulu a měření napájecího proudu. Zahrnuje také specializované časovače a komparátory s nízkým výkonem a odpojené vstupy a použití pfodApp k připojení a ovládání zařízení nRF52.

Část 2 - Monitor vlhkosti vzduchu s velmi nízkou spotřebou pokrývá pomocí modulu Redbear Nano V2 a snímače teploty / vlhkosti Si7021 sestavu baterie / solárního monitoru s nízkým výkonem. Zahrnuje také úpravu knihovny Si7021 na nízkou spotřebu, vyladění zařízení BLE tak, aby se snížila jeho aktuální spotřeba na <29uA, a návrh vlastního zobrazení teploty/vlhkosti pro váš mobil.

Část 3 - Náhrada Redbear Nano V2, tato, pokrývá použití jiných modulů založených na nRF52 namísto Nano V2. Zahrnuje výběr napájecích komponent, konstrukci, odstranění ochrany programování čipů nRF52, používání pinů NFC jako normálního GPIO a definování nové desky nRF52 v Arduinu.

Tento instruktáž je praktickou aplikací části 1 Budování BLE zařízení s velmi nízkou spotřebou, které bylo s Arduinem snadné, vytvořením monitoru teploty a vlhkosti BLE s velmi nízkou spotřebou pomocí desky SKYLAB SBK369 jako náhrady za Nano V2. Tento tutoriál popisuje, jak vytvořit novou definici desky a jak odebrat ochranu programování nRF52, aby bylo možné ji znovu naprogramovat. Tento tutoriál používá stejný náčrt jako část 2 se stejnými vyladěnými parametry BLE pro nízkou spotřebu energie a lze jej napájet pouze z baterie NEBO z baterie + ze solárního NEBO solárního. Ladění parametrů BLE pro nízký výkon bylo popsáno v části 2

Rev 3 of lp_BLE_TempHumidity vykresluje data podle data a času pouze pomocí Arduino millis (). Viz Datum a čas Arduino pomocí millis () a pfodApp pomocí nejnovější verze pfodApp (V3.0.362+).

Rev 4 of pfod_lp_nrf52.zip také podporuje modul GT832E_01 a tento návod pokrývá použití pinů NFC nRF52 jako standardních GPIO.

Zde postavený monitor poběží roky na Coin Cell nebo 2 x AAA bateriích, ještě déle se solární asistencí. Kromě zobrazení aktuální teploty a vlhkosti monitor ukládá posledních 36 hodin odečtů po 10 minutách a posledních 10 dní odečtů po hodinách. Ty lze zaznamenat do mobilního zařízení Android a hodnoty uložit do souboru protokolu. Není vyžadováno žádné programování pro Android, o vše se stará pfodApp. Zobrazení a grafy pro Android jsou plně řízeny vaší skicou Arduino, takže si ji můžete přizpůsobit podle potřeby.

Část 2 použila desku Redbear Nano V2 pro komponentu nRF52832 BLE. Tento projekt to nahrazuje levnější deskou SKYLAB SKB369. Stejně jako v části 2 je pro snímač teploty / vlhkosti použita rozpojovací deska Sparkfun Si7021. Se Si7021 se používá upravená knihovna s nízkým výkonem.

Krok 1: Proč výměna Nano V2?

i) Nano V2 byl několik měsíců mimo výrobu a nezdá se, že by zapadal do řady Particle.io, takže není jasné, jak dlouho bude k dispozici.

ii) Nano V2 je dražší. Má však také další funkce. Viz. níže.

iii) Nano V2 má součásti na obou stranách, což mu dodává vyšší profil a ztěžuje montáž.

iv) Nano V2 má k dispozici omezené I/O piny a použití D6 až D10 vyžaduje volné vodiče.

Přestože je deska Nano V2 dražší než deska SKYLAB SKB369, ~ US17 versus ~ US5, Nano V2 má více funkcí. Nano V2 obsahuje 3,3 V regulátor a napájecí kondenzátory, další komponenty pro použití volitelného měniče DC/DC nRF52, čipovou anténu a uFL SMT anténní konektor.

Další alternativou je modul GT832E_01, který používá www.homesmartmesh.com. Rev 4 of pfod_lp_nrf52.zip také podporuje programování modulu GT832E_01. SKYLAB SKB369 a GT832E_01 jsou k dispozici na

Redbear (Particle.io) má také holý modul bez 3V3 regulátoru, DC/DC komponent nebo 32Khz krystalových komponentů.

Obrys

Tento projekt má 4 relativně nezávislé části:-

Výběr a konstrukce součásti Odstranění příznaku ochrany kódování nRF52 a programování náčrtu Vytvoření nové definice desky Arduino nRF52 Rekonfigurace pinů nRF52 NFC jako GPIO

Krok 2: Výběr a konstrukce součásti

Výběr komponent

Kromě součástí nRF52832 a Si7021 vybraných v části 2 tento projekt přidává regulátor 3,3 V a napájecí kondenzátory.

Součást regulátoru napětí

Zde použitý regulátor je MC87LC33-NRT. Dokáže zvládnout až 12V vstupy a má klidový proud <3,6uA, typicky 1,1uA. Nano V2 používá regulátor TLV704 s mírně vyšším klidovým proudem, typicky 3,4uA, a zvládne vyšší vstupní napětí až 24V. Místo toho byl vybrán MC87LC33-NRT, protože jeho datový list určuje, jak reaguje, když vstupní napětí klesne pod 3,3 V, kde jako datový list TLV704 ne.

TLV704 specifikuje vstupní napětí minimálně 2,5 V a z datového listu není jasné, co se stane pod tím. NRF52832 poběží na 1,7 V a Si7023 na 1,9 V. MC87LC33-NRT na druhé straně specifikuje rozdíly vstupního/výstupního napětí až do 0 V pro nízké proudy (obr. 18 datového listu). Vzhledem k výběru komponent byl tedy vybrán MC87LC33-NRT, protože má specifikovaný výkon.

Napájecí kondenzátory

Regulátor MC87LC33-NRT potřebuje nějaké napájecí kondenzátory pro stabilitu a odezvu. V datovém listu je doporučen výstupní kondenzátor> 0,1 uF. SKYLAB SBK369 také specifikuje kondenzátory 10uF/0,1uF na napájení blízko desky. Větší kondenzátory pomáhají při napájení proudových špiček nRF52 TX. Zde byly použity keramické kondenzátory 4 x 22uF 25V a 3 x 0,1uF 50V. Jeden 22uF a 0,1uF kondenzátor byl umístěn blízko SKYLAB SBK369, 0,1uF byl umístěn blízko výstupu MC87LC33-NRT, aby byla zajištěna stabilita a 22uF a 0,1uF byly umístěny na vstup do MC87LC33-NRT a další 2 x 22uF kondenzátory pájené přes piny Vin/GND jako další proudový rezervoár. Pro srovnání deska NanoV2 má 22uF / 0,1uF na vstupu do regulátoru TLV704 a 0,1uF na svém výstupu.

Extra proudové zásobníkové kondenzátory byly instalovány na vstup do regulátoru 3,3 V, aby se při provozu se solárními články nabíjely na vyšší napětí. Nabíjení na vyšší napětí se rovná uložení většího proudu pro napájení špiček Tx.

Používají se keramické kondenzátory X5R, protože mají nízký sériový odpor a nízký svodový proud. Odpor je typicky 100, 000MΩ nebo 1000MΩ - µF, což je někdy méně. Takže pro 22uF máme 22000MΩ, tj. 0,15nA únik při 3,3V nebo 0,6nA pro čtyři 22uF kondenzátory. To je zanedbatelné. Pro srovnání Nízké ESR, Nízké svodové elektrolytické kondenzátory Panasonic mají svodové proudy <0,01CV. Takže u kondenzátoru 22uF 16V je únik <10uA. Poznámka: Toto je únik při jmenovitém napětí, v tomto případě 16V. Únik je nižší při nižších napětích, tj. <2,2 uA při 3,3 V.

Seznam dílů

Přibližné náklady na jednotku k prosinci 2018, ~ 61 USD, bez poštovného a programátoru z části 1

  • SKYLAB SKB369 ~ 5 USD, např. Aliexpress
  • Odlamovací deska Sparkfun Si7021 ~ 8 USD
  • 2 x 53 mm x 30 mm 0,15 W 5V solární články, např. Přelétnout ~ 1,10 USD
  • 1 x PCB SKYLAB_TempHumiditySensor_R2.zip ~ 25 USD za 5 slev www.pcbcart.com
  • 1 x regulátor MC78LC33 3,3 V, např. Digikey MC78LC33NTRGOSCT-ND ~ 1 USD
  • 2 x 0,1uF 50V keramický C1608X5R1H104K080A např. Digikey 445-7456-1-ND ~ 0,3 USD
  • 4 x 22uF 16V keramický GRM21BR61C226ME44L např. Digikey 490-10747-1-ND ~ 2 USD
  • 1 x BAT54CW, např. Digikey 497-12749-1-ND ~ 0,5 USD
  • 1 x 470R 0,5 W 1% odpor, např. Digikey 541-470TCT-ND ~ 0,25 USD
  • 1 x 10V 1W zener SMAZ10-13-F např. Digikey SMAZ10-FDICT-ND ~ 0,5 USD
  • Nylonové šrouby 3 mm x 12 mm, např. Jaycar HP0140 ~ AUD $ 3
  • Nylonové matice 3 mm x 12 mm, např. Jaycar HP0146 ~ AUD $ 3
  • Scotch Permanentní montážní páska Cat 4010 např. od Amazonu ~ 6,6 USD
  • Držák baterie CR2032, např. HU2032-LF ~ 1,5 USD
  • Baterie CR2032 ~ 1 USD
  • Plech Perspex, 3,5 mm a 8 mm
  • pfodApp ~ 10 USD
  • Pájecí pasta např. Jaycar NS-3046 ~ AUD $ 13

Krok 3: Konstrukce

Konstrukce
Konstrukce
Konstrukce
Konstrukce
Konstrukce
Konstrukce

Projekt je postaven na malém PCB. Desku plošných spojů vyrobila společnost pcbcart.com z těchto souborů Gerber, SKYLAB_TempHumiditySensor_R2.zip Deska plošných spojů napodobuje vývod Nano V2 a je dostatečně obecná, aby mohla být použita pro jiné projekty BLE.

Toto je schéma (verze pdf)

Nejprve připájejte komponenty SMD a poté namontujte desku SKYLAB SKB369

Téměř všechny součásti jsou zařízení pro povrchovou montáž (SMD). Kondenzátory a integrované obvody mohou být obtížně pájitelné ručně. Navrhovanou metodou je držet desku plošných spojů ve svěráku a na podložky nanést malé množství pájecí pasty a umístit součásti SMD, kromě desky SKB369 na desku plošných spojů. Poté pomocí horkovzdušné pistole naneste teplo na spodní stranu desky plošných spojů, dokud se pájecí pasta nerozpustí, a poté proveďte rychlý průchod přes horní část desky, přičemž dávejte pozor, abyste komponenty neodfoukli. Nakonec součásti upravte pomocí malé páječky s hroty. Buďte opatrní s kondenzátory a rezistorem, protože je snadné roztavit oba konce a nechat součást uvolnit při pájení jednoho konce.

Tato revize přidat další 22uF 16V keramické kondenzátory. Tyto přídavné kondenzátory snižují proudové špičky odebírané z baterie a také snižují poklesy napětí při napájení ze solárních článků. Dokud napětí ze solárních článků zůstane nad napětím baterie, nebude z baterie odebírán žádný proud.

Poté, co jsou namontovány součásti SMD, můžete pájet na desce SKYLAB SKB369. Na jedné straně karet SKB369 jsou dva otvory pro testovací body. Pomocí dvou kolíků do lepenkové základny umístěte desku SKB369 a pečlivě zarovnejte kolíky. (Viz ukázková fotografie výše pomocí desky plošných spojů Revize 1) Poté pájejte jeden kolík opačné strany, aby deska držela na místě, než pájíte ostatní piny.

Všimněte si propojovacího kabelu Gnd od CLK k GND v hotové části. Toto je nainstalováno PO programování, aby se zabránilo šumu na vstupu CLK ve spuštění čipu nRF52 do režimu vysokého aktuálního ladění

Montážní pouzdro

Montážní pouzdro bylo vyrobeno ze dvou kusů plexiskla, 110 mm x 35 mm, tloušťky 3 mm. Kus 3,5 mm pod solárními články byl poklepán, aby se do něj odšroubovaly 3 mm nylonové šrouby. Tato revidovaná konstrukce je jednodušší než Rev 1 a zlepšuje proudění vzduchu kolem snímače. Extra otvory na obou koncích slouží k montáži, například pomocí stahovacích pásků.

Krok 4: Odstranění vlajky ochrany kódování NRF52

Odstranění vlajky ochrany kódování NRF52
Odstranění vlajky ochrany kódování NRF52
Odstranění vlajky ochrany kódování NRF52
Odstranění vlajky ochrany kódování NRF52
Odstranění vlajky ochrany kódování NRF52
Odstranění vlajky ochrany kódování NRF52

Připojte desku teploty/vlhkosti k programátoru popsanému v části 1, jak je uvedeno výše.

Když jsou solární články a baterie odpojeny, Vin a Gnd jsou připojeny k programátoru Vdd a Gnd (žlutý a zelený vodič) a SWCLK a SWDIO jsou připojeny k Clk a SIO desky programátoru (bílý a šedý vodič)

Odebrání ochrany programu nRF52

Ze stránky Nordic Semi - Debug and Trace DAP - Debug Access Port. Externí ladicí program má přístup k zařízení prostřednictvím DAP. DAP implementuje standardní ARM® CoreSight ™ Serial Wire Debug Port (SW-DP). SW-DP implementuje protokol Serial Wire Debug Protocol (SWD), což je dvoukolíkové sériové rozhraní, SWDCLK a SWDIO

Důležité: Linka SWDIO má vnitřní výsuvný odpor. Linka SWDCLK má vnitřní stahovací odpor.

CTRL -AP - ovládání přístupového portu. Control Access Port (CTRL-AP) je vlastní přístupový port, který umožňuje ovládání zařízení, i když jsou ostatní přístupové porty v DAP deaktivovány ochranou přístupového portu. Ochrana přístupových portů blokuje debuggeru přístup ke čtení a zápisu do všech registrů CPU a adres mapovaných v paměti. Zakázat ochranu přístupového portu. Ochranu přístupového portu lze deaktivovat pouze zadáním příkazu ERASEALL přes CTRL-AP. Tento příkaz vymaže Flash, UICR a RAM.

Vyberte CMSIS-DAP jako programátor pro Particle's Debugger a vyberte nRF5 Flash SoftDevice

Pokud flash funguje, je to v pořádku, ale často budou moduly chráněny před přeprogramováním a tento chybový výstup získáte v okně Arduino

Open On-Chip Debugger 0.10.0-dev-00254-g696fc0a (2016-04-10-10: 13) Licencováno pod GNU GPL v2 Hlášení o chybách naleznete na adrese https://openocd.org/doc/doxygen/bugs.html debug_level: 2 Info: pouze jedna možnost přepravy; autoselect rychlost 'swd' adaptéru: 10000 kHz TMS = 1 TDI = 0 TDO = 0 nTRST = 0 nRESET = 1 Informace: CMSIS-DAP: Rozhraní připraveno Informace: požadavek na snížení rychlosti: 10000kHz až 5000kHz maximum Informace: rychlost hodin 10000 kHz Informace: SWD IDCODE 0x2ba01477 Chyba: Nelze najít MEM -AP k ovládání jádra Chyba: Cíl dosud nezkoumán Chyba při blikání SoftDevice.

V takovém případě musíte v registru nRF52 nastavit registr příkazů ERASEALL, aby se paměť vyčistila a zařízení bylo znovu programovatelné. Verze openOCD dodávaná s sandeepmistry nRF52 neobsahuje příkaz apreg potřebný k zápisu do registru příkazů ERASEALL, takže je třeba nainstalovat novější verzi.

Nainstalujte verzi OpenOCD OpenOCD-20181130 nebo vyšší. Předkompilovaná verze systému Windows je k dispozici na adrese https://gnutoolchains.com/arm-eabi/openocd/ Nejnovější kód je k dispozici na adrese

Otevřete příkazový řádek a změňte adresář na instalační adresář OpenOCD a zadejte příkaz

bin / openocd.exe -d2 -f rozhraní/cmsis -dap.cfg -f cíl/nrf52.cfg

Odpověď je

Open On-Chip Debugger 0.10.0 (2018-11-30) [https://github.com/sysprogs/openocd]Licencováno pod GNU GPL v2 Hlášení o chybách si přečtěte https://openocd.org/doc/doxygen/ bugs.html debug_level: 2 Info: automatické vybírání prvního dostupného přenosu relace "swd". Chcete -li přepsat, použijte 'transport select'. rychlost adaptéru: 1000 kHz cortex_m reset_config sysresetreq Informace: Poslech na portu 6666 pro připojení tcl Informace: Poslech na portu 4444 pro připojení telnet Informace: CMSIS-DAP: Podporované informace SWD: CMSIS-DAP: Verze FW = 1,10 Informace: CMSIS-DAP: Interface Initializised (SWD) Info: SWCLK/TCK = 1 SWDIO/TMS = 1 TDI = 0 TDO = 0 nTRST = 0 nRESET = 1 Info: CMSIS-DAP: Interface ready Info: clock speed 1000 kHz Info: SWD DPIDR 0x2ba01477 Error: Nelze najít MEM-AP pro ovládání jádra Informace: Poslech na portu 3333 pro připojení gdb

Poté otevřete okno terminálu, např. TeraTerm (Windows) nebo CoolTerm (Mac) a připojte se k portu 127.0.0.1 4444

V okně telnetu se zobrazí> a na příkazovém řádku se zobrazí informace: přijetí připojení „telnet“na TCP/4444

V okně telnetu (tj. TeraTerm) typenrf52.dap apreg 1 0x04this vrací 0x00000000 ukazující, že je čip chráněn. Poté typenrf52.dap apreg 1 0x04 0x01 a thennrf52.dap apreg 1 0x04this vrátí 0x00000001, což ukazuje, že čip je nyní při příštím restartu nastaven na ERASEALL.

Zavřete připojení telnet a také pomocí Ctrl-C ukončete program openOCD v příkazovém řádku a poté vypněte a zapněte modul nRF52 a bude připraven k programování.

Nyní zkuste znovu spustit softdevice.

Nyní můžete modul nRF52 naprogramovat z Arduina.

Krok 5: Programování SKYLAB SKB369

Programování SKYLAB SKB369
Programování SKYLAB SKB369
Programování SKYLAB SKB369
Programování SKYLAB SKB369
Programování SKYLAB SKB369
Programování SKYLAB SKB369

Zavřete Arduino a znovu nainstalujte nejnovější verzi podpory pfod_lp_nrf52 podle pokynů pro instalaci hardwarové podpory pfod_lp_nrf52. Nejnovější pfod_lp_nrf52 obsahuje náhradní desku SKYLAB SKB369 Nano2. Vyberte to jako desku a poté ji můžete naprogramovat pomocí Revize 3 lp_BLE_TempHumidity, lp_BLE_TempHumidity_R3.zip, jak je popsáno v části 2.

Pokud programování selže. Zavřete všechna okna Arduino, odpojte USB kabely, restartujte Arduino a znovu zapojte USB kabel programátoru a znovu zapojte USB napájení modulu nRF52 a zkuste to znovu.

Poté se připojte přes pfodApp a zobrazte aktuální a historickou teplotu a vlhkost. Jakmile zobrazíte historický graf, odečty s milisekundovými časovými razítky se uloží do souboru protokolu na vašem mobilním telefonu a jsou také k dispozici na obrazovce s nezpracovanými daty.

Soubor protokolu také obsahuje další data nezbytná k opětovnému vytvoření grafů data a času v tabulce. Podrobnosti najdete v části Datum a čas Arduino pomocí millis () a pfodApp

Krok 6: Vytvoření nové definice desky Arduino NRF52

Vytvoření nové definice desky Arduino NRF52
Vytvoření nové definice desky Arduino NRF52
Vytvoření nové definice desky Arduino NRF52
Vytvoření nové definice desky Arduino NRF52
Vytvoření nové definice desky Arduino NRF52
Vytvoření nové definice desky Arduino NRF52
Vytvoření nové definice desky Arduino NRF52
Vytvoření nové definice desky Arduino NRF52

K podpoře nové desky nRF52 musíte a) a) přidat nový adresář do adresáře variant se soubory desky a b) upravit soubor boards.txt a přidat novou desku do Arduina.

Přidání nové varianty desky nRF52

Jak je popsáno v části 1, Instalace hardwarové podpory pfod_lp_nrf52, vyhledejte hardwarový podadresář balíčku sandeepmistry, který jste aktualizovali pomocí podpory pfod_lp_nrf52. Otevřete podadresář / hardware / nRF5 / 0.6.0 / variant a vytvořte pro novou desku nový adresář, např. SKYLAB_SKB369_Nano2replacement V novém adresáři / hardware / nRF5 / 0.6.0 / variant / SKYLAB_SKB369_Nano2replacement vytvořte variantu tří souborů.h, variant.cpp a pins_arduino.h Můžete je zkopírovat z adresářů jiných variant desek. Pro SKYLAB_SKB369_Nano2replacement jsem původně zkopíroval soubory z varianty RedBear_BLENano2.

soubor pins_arduino.h

Soubor pins_arduino.h není třeba měnit. Obsahuje pouze soubor variant.h

variant.h soubor

Upravte soubor variant.h a definujte celkový počet pinů, které bude vaše deska mít, PINS_COUNT

POZNÁMKA: V balíčku sandeepmistry jsou ignorována nastavení NUM_DIGITAL_PINS, NUM_ANALOG_INPUTS a NUM_ANALOG_OUTPUTS

Pokud vaše deska zpřístupňuje více či méně analogových pinů, aktualizujte sekci / * Analog Pins * / v souboru variants.h.

POZNÁMKA: U desek NanoV2 a SKYLAB jsou analogové piny mapovány na digitální piny A0 == D0 atd

To není podstatné. Analogové vstupy můžete přiřadit jakémukoli pohodlnému pinu Arduino. Příklad najdete v souborech blue/variant.h a blue/variant.cpp.

Čip nRF52832 má 8 analogových vstupních pinů, ale deska SKYLAB_SKB369_Nano2replacement poskytuje pouze 6 z nich, aby odpovídaly Nano2.

Všechna čísla pinů, kromě RESET_PIN, v souboru variant.h jsou čísla pinů Arduino. To je #define PIN_A0 (0) znamená, že D0 v náčrtu arduina je stejný pin jako A0. RESET_PIN je výjimkou. Toto číslo je číslo PIN čipu nRF52823 a 21 je jediná platná volba. Podpora pfod_lp_nrf52 však nepovoluje resetovací kolík na nRF52832

variant.cpp soubor

V souboru variant.cpp je pouze jeden záznam, pole g_ADigitalPinMap , které mapuje čísla pinů Arduino na piny čipu nRF52832 P0..

POZNÁMKA: Na deskách NanoV2 a SKYLAB jsou analogové piny Arduino A0, A1… stejné jako digitální piny Arduino D0, D1 … takže první položky v g_ADigitalPinMap MUSÍ mapovat na čísla pinů AINx na čipu nRF52832

Pro analogové vstupy, které vaše deska zpřístupňuje, musí tyto položky v g_ADigitalPinMap mapovat čísla pinů nRF52832 AIN0, AIN1, AIN2 atd. tj. AIN0 je čipový pin P0.02, AIN1 je čipový pin P0.03 atd. viz rozložení pinů nRF52832 výše.

Pro neplatná mapování použijte (uint32_t) -1. Například deska SKYLAB_SKB369_Nano2 nemá vestavěnou LED, D13, takže její poloha je mapována na (uint32_t) -1

V pfod_lp_nrf52.zip mají podadresáře variant Redbear NanoV2, SKYLAB SKB369 a GT832E_01 obrázky zobrazující mapování nastavená variantou.cpp. (Viz obrázky výše)

V případě SKYLAB SKB369 je na výběr spousta kolíků. Mapováno je pouze tolik, aby odpovídalo NanoV2. V případě GT832E_01 je třeba namapovat všechny dostupné piny. I přesto jsou na NanoV2 k dispozici pouze tři (3) analogové vstupy místo šesti (6). Kromě toho je třeba dva piny NFC, P0.09 a P0.10, znovu nakonfigurovat jako GPIO. Viz část Překonfigurace pinů NFC nRF52 jako GPIO níže.

Aktualizace souboru boards.txt

Zde je položka SKYLAB_SKB369_Nano2replacement v souboru boards.txt.

## SKYLAB_SKB369 Nano2 ReplacementSKYLAB_SKB369_NANO2_REPLACEMENT.name =*SKYLAB SKB369 Nano2 Replacement

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 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 Nastavení

Komentáře - řádky začínající na # jsou komentáře.

Předpona - každá deska potřebuje jedinečný předponu k identifikaci svých hodnot. Zde je předpona SKYLAB_SKB369_NANO2_REPLACEMENT.

Název - Řádek SKYLAB_SKB369_NANO2_REPLACEMENT.name určuje název této desky, která se má zobrazit v nabídce desky Arduina.

Nástroj pro nahrávání - Blok SKYLAB_SKB369_NANO2_REPLACEMENT.upload určuje, který nástroj se má použít pro nahrávání. Pokud používáte ladič částic, použijte protokol = cmsis-dap, jak je uvedeno výše.

Bootloader - tento řádek je stejný pro všechny desky v tomto boards.txt

Build - V tomto bloku je třeba aktualizovat pouze dva řádky. Řádek SKYLAB_SKB369_NANO2_REPLACEMENT.build.variant určuje název adresáře této desky ve variantním podadresáři. SKYLAB_SKB369_NANO2_REPLACEMENT.build.board je hodnota připojená k ARDUINO_ a poté definovaná při kompilaci kódu. např. -DARDUINO_SKYLAB_SKB369_Nano2replacement To vám umožní povolit/zakázat části kódu pro konkrétní desky.

Hodiny s nízkou frekvencí - Tento řádek, SKYLAB_SKB369_NANO2_REPLACEMENT.menu.lfclk.lfrc.build.lfclk_flags, určuje zdroj nízkofrekvenčních hodin použitých pro lp_timer. Existují tři možnosti, -DUSE_LFXO, -DUSE_LFRC a -DUSE_LFSYNT. Nejlepší volbou je -DUSE_LFXO, pokud má deska externí 32Khz krystal. Pokud ne, použijte -DUSE_LFRC, který používá interní RC oscilátor a čerpá o něco více proudu, ~ 10uA více a je mnohem méněkrát méně přesný. Nepoužívejte -DUSE_LFSYNT, protože to udržuje čip v chodu po celou dobu, což vede k odběru proudu mAs.

Softdevice - pfod_lp_nrf52 podporuje pouze čipy nRF52 a softdevice s132, takže pro tento blok nejsou nutné žádné změny kromě předpony.

Překonfigurování pinů nRF52 NFC na GPIO

Jako výchozí na pinech nRF52 jsou P0.09 a P0.10 nakonfigurovány pro použití jako NFC a očekávají připojení k anténě NFC. Pokud je potřebujete použít jako obecné I/O piny (GPIO), pak musíte přidat definici -DCONFIG_NFCT_PINS_AS_GPIOS do… menu.softdevice.s132.build.extra_flags zkompilovat nastavení v souboru boards.txt.

Například pfod_lp_nrf52.zip, znovu nakonfiguruje piny GT832E_01 pro použití jako I/O. Sekce GT832E_01 pro tuto desku v souboru boards.txt má přidanou následující definici

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

Pro zachování tohoto nastavení byl také upraven skript linkeru v souboru pfod_lp_nrf52.zip, který není třeba měnit.

Krok 7: Závěr

Tento tutoriál představil náhradu za Redbear NanoV2 pomocí modulu SKYLAB SKB369. Jako příklad velmi nízkoenergetického BLE projektu v Arduinu pro modul SKYLAB byl použit bateriový/solární monitor teploty vlhkosti. Napájecí proudy ~ 29uA jsou dosaženy vyladěním parametrů připojení. Výsledkem byla životnost knoflíkové baterie CR2032 ~ 10 měsíců. Delší pro knoflíkové články a baterie s vyšší kapacitou. Přidáním dvou levných solárních článků se snadno prodlouží životnost baterie o 50% a více. K napájení monitoru ze solárních článků stačí jasné osvětlení místnosti nebo stolní lampa.

Tento tutoriál se také zabýval odstraněním ochrany čipů z předprogramovaného nRF52 a jak nastavit novou definici desky tak, aby odpovídala vašemu vlastnímu PCB/obvodu

Není vyžadováno žádné programování pro Android. pfodApp to všechno zvládá.

Doporučuje: