Tartalomjegyzék:

Egyszerű, nagyon alacsony teljesítményű BLE az Arduino 3. részében - Nano V2 csere - Rev 3: 7 lépés (képekkel)
Egyszerű, nagyon alacsony teljesítményű BLE az Arduino 3. részében - Nano V2 csere - Rev 3: 7 lépés (képekkel)

Videó: Egyszerű, nagyon alacsony teljesítményű BLE az Arduino 3. részében - Nano V2 csere - Rev 3: 7 lépés (képekkel)

Videó: Egyszerű, nagyon alacsony teljesítményű BLE az Arduino 3. részében - Nano V2 csere - Rev 3: 7 lépés (képekkel)
Videó: iPhone Introducing❓ Steve Jobs in 2007❕ #part6 (Full Subtitle) 2024, December
Anonim
Egyszerű, nagyon alacsony teljesítményű BLE az Arduino 3. részében - Nano V2 csere - Rev 3
Egyszerű, nagyon alacsony teljesítményű BLE az Arduino 3. részében - Nano V2 csere - Rev 3
Könnyű, nagyon alacsony teljesítményű BLE az Arduino 3. részében - Nano V2 csere - Rev 3
Könnyű, nagyon alacsony teljesítményű BLE az Arduino 3. részében - Nano V2 csere - Rev 3
Könnyű, nagyon alacsony teljesítményű BLE az Arduino 3. részében - Nano V2 csere - Rev 3
Könnyű, nagyon alacsony teljesítményű BLE az Arduino 3. részében - Nano V2 csere - Rev 3

Frissítés: 2019. április 7.

Frissítés: 2019. március 24

Bevezetés

Ez az oktatóanyag, a Redbear Nano V2 csere, a 3. rész 3. része. Ez a projekt 2. felülvizsgálata. A Revision 2 PCB tartalmazza a gombelem és az érzékelő felszerelését, egyszerűsíti a konstrukciót és javítja a levegő áramlását az érzékelő körül, miközben védi a közvetlen napfénytől. Az 1 -es verzió itt van.

1. rész - Nagyon kis teljesítményű BLE eszközök egyszerűvé tétele az Arduino burkolatokkal Az Arduino beállítása az nRF52 kis teljesítményű eszközök kódolására, a programozó modul és a tápáram mérése. Ezenkívül kiterjed a speciális kis fogyasztású időzítőkre és összehasonlítókra, valamint a visszakapcsolt bemenetekre, valamint a pfodApp használatával az nRF52 eszközhöz való csatlakozáshoz és vezérléshez.

2. rész - Egy nagyon alacsony energiafogyasztású hőmérséklet -páratartalom -monitor fedezi a Redbear Nano V2 modult és a Si7021 hőmérséklet- / páratartalom -érzékelőt, hogy kis teljesítményű akkumulátort / napelem -monitort építsen. Magában foglalja továbbá a Si7021 könyvtár alacsony energiaigényűre történő módosítását, a BLE eszköz beállítását, hogy áramfogyasztását <29uA -ra csökkentse, és egyedi hőmérséklet/páratartalom kijelzőt tervezzen a mobiljához.

3. rész - A Redbear Nano V2 csere, ez a Nano V2 helyett más nRF52 alapú modulok használatára vonatkozik. Ez magában foglalja az ellátási alkatrészek kiválasztását, a konstrukciót, az nRF52 chip programozási védelmének eltávolítását, az NFC csapok használatát normál GPIO -ként, és egy új nRF52 kártya meghatározását az Arduino -ban.

Ez az utasítás gyakorlati része az 1. résznek: Nagyon alacsony teljesítményű BLE -eszközök építése, amelyek megkönnyítették az Arduino -t azáltal, hogy nagyon alacsony teljesítményű BLE hőmérséklet- és páratartalom -figyelőt építettek fel SKYLAB SBK369 tábla használatával, Nano V2 csereként. Ez az oktatóanyag bemutatja, hogyan hozhat létre új tábladefiníciót, és hogyan távolíthatja el az nRF52 programozási védelmet, hogy lehetővé tegye annak újraprogramozását. Ez az oktatóanyag ugyanazt a vázlatot használja, mint a 2. rész, ugyanazokkal a hangolt BLE paraméterekkel az alacsony energiafogyasztás érdekében, és akkumulátorról VAGY elemről + szoláris VAGY szolárról működtethető. A BLE paraméterek kis teljesítményre történő hangolását a 2. rész ismertette

Az lp_BLE_TempHumidity 3. verziója ábrázolja az adatokat a dátum és az idő függvényében, csak az Arduino millis () használatával. Lásd: Arduino Dátum és idő a millis () és a pfodApp használatával a pfodApp legújabb verziójával (V3.0.362+).

A pfod_lp_nrf52.zip 4. verziója támogatja a GT832E_01 modult is, és ez az oktatóanyag kiterjed az NFC nRF52 csapok szabványos GPIO -k használatára.

Az itt felépített monitor évekig működik Coin Cell vagy 2 x AAA elemekkel, napelemes asszisztenssel még tovább. Az aktuális hőmérséklet és páratartalom megjelenítése mellett a monitor tárolja az utolsó 36 óra 10 perces leolvasást és az utolsó 10 nap óránkénti leolvasását. Ezeket az Android mobilján lehet diagramozni, és a naplófájlba mentett értékeket. Nincs szükség Android programozásra, a pfodApp mindezt kezeli. Az Android kijelzőjét és diagramját teljesen az Arduino vázlata vezérli, így igény szerint testreszabhatja.

A 2. rész Redbear Nano V2 táblát használt az nRF52832 BLE komponenshez. Ez a projekt ezt helyettesíti egy olcsóbb SKYLAB SKB369 táblával. A 2. részhez hasonlóan a Sparkfun Si7021 kitörőtáblát használják a hőmérséklet / páratartalom érzékelőhöz. A Si7021 készülékkel módosított, kis fogyasztású könyvtárat használnak.

1. lépés: Miért Nano V2 csere?

i) A Nano V2 néhány hónapig nem volt gyártva, és úgy tűnik, nem illeszkedik a Particle.io termékcsaládba, így nem világos, hogy mennyi ideig lesz elérhető.

ii) A Nano V2 drágább. Ugyanakkor extra funkciókkal is rendelkezik. Lásd lejjebb.

iii) A Nano V2 mindkét oldalán alkatrészek találhatók, ami magasabb profilt biztosít és megnehezíti a felszerelést.

iv) A Nano V2 korlátozott számú I/O érintkezővel rendelkezik, és a D6 - D10 használatához repülő vezetékek szükségesek.

Bár a Nano V2 kártya drágább, mint a SKYLAB SKB369 kártya, ~ US17 versus ~ US5, a Nano V2 több funkcióval rendelkezik. A Nano V2 tartalmaz egy 3,3 V -os szabályozót és tápkondenzátorokat, az nRF52 DC/DC átalakító opció használatához szükséges kiegészítő alkatrészeket, egy chip antennát és egy uFL SMT antennacsatlakozót.

Egy másik alternatíva a www.homesmartmesh.com által használt GT832E_01 modul. A pfod_lp_nrf52.zip 4. verziója támogatja a GT832E_01 modul programozását is. A SKYLAB SKB369 és a GT832E_01 elérhető a https://www.aliexpress.com webhelyen

A Redbear (Particle.io) csupasz modullal is rendelkezik, 3V3 szabályozó, DC/DC komponensek vagy 32Khz kristálykomponensek nélkül.

Vázlat

Ez a projekt 4 relatív független részből áll:-

Alkatrész kiválasztása és felépítése Az nRF52 kódolási védelmi zászló eltávolítása és a vázlat programozása Új Arduino nRF52 kártya definíció létrehozása Az nRF52 NFC csapok újrakonfigurálása GPIO -ként

2. lépés: Alkatrész kiválasztása és felépítése

Alkatrész kiválasztása

A 2. részben kiválasztott nRF52832 és Si7021 komponenseken kívül ez a projekt hozzáad egy 3.3V -os szabályozót és tápkondenzátorokat.

Feszültségszabályozó alkatrész

Az itt használt szabályozó az MC87LC33-NRT. Akár 12 V -os bemenetet is képes kezelni, és nyugalmi árama <3,6uA, jellemzően 1,1uA. A Nano V2 egy TLV704 szabályozónál valamivel nagyobb nyugalmi árammal rendelkezik, jellemzően 3,4uA, és képes kezelni a magasabb bemeneti feszültségeket, akár 24 V -ot. Az MC87LC33-NRT-t választották helyette, mert az adatlapja meghatározza, hogyan reagál, amikor a bemeneti feszültség 3,3 V alá csökken, ahol a TLV704 adatlap nem.

A TLV704 minimum 2,5 V bemeneti feszültséget határoz meg, és az adatlapból nem derül ki, hogy mi fog történni alatta. Az nRF52832 1,7 V -ra, a Si7023 pedig 1,9 V feszültségre csökken. Az MC87LC33-NRT viszont a bemeneti/kimeneti feszültségkülönbségeket 0 V-ig határozza meg kis áramok esetén (az adatlap 18. ábrája). Tekintettel az alkatrészek választására, az MC87LC33-NRT-t választották, mert rendelkezik a megadott teljesítménnyel.

Ellátási kondenzátorok

Az MC87LC33-NRT szabályozónak szüksége van néhány tápkondenzátorra a stabilitás és a válasz érdekében. > 0,1uF> kimeneti kondenzátor ajánlott az adatlapon. A SKYLAB SBK369 10uF/0,1uF kondenzátorokat is előír a tápegységhez a tábla közelében. A nagyobb kondenzátorok segítik az nRF52 TX áramcsúcsok ellátását. Itt 4 x 22uF 25V és 3 x 0,1uF 50V kerámia kondenzátorokat használtak. Egy 22uF és 0,1uF kondenzátort helyeztünk az SKYLAB SBK369 közelébe, 0,1uF-ot az MC87LC33-NRT kimenetéhez, a stabilitás biztosítása érdekében, 22uF és 0,1uF pedig az MC87LC33-NRT bemenetére, és egy további 2 x 22uF kondenzátor, ahol a Vin/GND csapokon keresztül forrasztottak további áramtartályként. Összehasonlításképpen, a NanoV2 kártya 22uF / 0,1uF a TLV704 szabályozó bemenetén és 0,1uF a kimenetén.

Az extraáramú tározó kondenzátorokat a 3,3 V -os szabályozó bemenetére szereltük fel, hogy napelemekkel való üzemeltetéskor nagyobb feszültségre töltsék fel őket. A magasabb feszültségre való feltöltés nagyobb áram tárolását jelenti a Tx tüskék ellátásához.

A kerámia X5R kondenzátorokat azért használják, mert alacsony soros ellenállással és alacsony szivárgási árammal rendelkeznek. Az ellenállás jellemzően 100, 000MΩ vagy 1000MΩ - µF, ami valaha kisebb. Tehát 22uF esetén 22000MΩ, azaz 0,15 nA szivárgás 3,3 V vagy 0,6 nA esetén a négy 22uF kondenzátor esetében. Ez elhanyagolható. Összehasonlításképpen: Alacsony ESR, alacsony szivárgás A Panasonic elektrolit kondenzátorok szivárgási árama <0,01 CV. Tehát egy 22uF 16V -os kondenzátor esetében a szivárgás <10uA. Megjegyzés: Ez a szivárgás a névleges feszültségnél, ebben az esetben 16V. A szivárgás alacsonyabb feszültségeknél kisebb, azaz <2,2uA 3,3 V -nál.

Alkatrész lista

Hozzávetőleges egységköltség 2018. decemberben, ~ 61 USD, a szállítás és az 1. rész programozója nélkül

  • SKYLAB SKB369 ~ 5 USD, pl. Aliexpress
  • Sparkfun Si7021 kitörőtábla ~ 8 USD
  • 2 x 53mm x 30mm 0,15W 5V napelem pl. Overfly ~ 1,10 USD
  • 1 x PCB SKYLAB_TempHumiditySensor_R2.zip ~ 25 USD 5 kedvezményért www.pcbcart.com
  • 1 x MC78LC33 3.3V szabályozó, pl. Digikey MC78LC33NTRGOSCT-ND ~ 1 USD
  • 2 x 0,1uF 50V kerámia C1608X5R1H104K080A pl. Digikey 445-7456-1-ND ~ 0,3 USD
  • 4 x 22uF 16V kerámia GRM21BR61C226ME44L pl. Digikey 490-10747-1-ND ~ 2 USD
  • 1 x BAT54CW, pl. Digikey 497-12749-1-ND ~ 0,5 USD
  • 1 x 470R 0,5W 1% -os ellenállás pl. Digikey 541-470TCT-ND ~ 0,25 USD
  • 1 x 10V 1W zener SMAZ10-13-F pl. Digikey SMAZ10-FDICT-ND ~ 0,5 USD
  • 3mm x 12mm nylon csavarok, pl. Jaycar HP0140 ~ 3 AUD
  • 3 mm x 12 mm -es nylon anyák, pl. Jaycar HP0146 ~ 3 AUD
  • Scotch tartós rögzítőszalag Cat 4010 pl. az Amazon -tól ~ 6,6 USD
  • CR2032 elemtartó, pl. HU2032-LF ~ 1,5 USD
  • CR2032 akkumulátor ~ 1 USD
  • Perspex lemez, 3,5 mm és 8 mm
  • pfodApp ~ 10 USD
  • Forrasztópaszta pl. Jaycar NS-3046 ~ 13 AUD

3. lépés: Építés

Építkezés
Építkezés
Építkezés
Építkezés
Építkezés
Építkezés

A projekt egy kis NYÁK -ra épül. A NYÁK -ot a pcbcart.com gyártotta ezekből a Gerber -fájlokból, SKYLAB_TempHumiditySensor_R2.zip. A NYÁK utánozza a Nano V2 csatlakozót, és elég általános célú ahhoz, hogy más BLE projektekhez is használható legyen.

Ez a vázlat (pdf verzió)

Először forrasztja be az SMD alkatrészeket, majd szerelje fel a SKYLAB SKB369 lapot

Szinte minden alkatrész felületre szerelhető eszköz (SMD). A kondenzátorokat és az IC -ket nehéz lehet kézzel forrasztani. A javasolt módszer az, hogy a PCB -t satuban tartsuk, és kis mennyiségű forrasztópasztát vigyünk a párnákra, és helyezzük az SMD alkatrészeket, kivéve az SKB369 lapot a NYÁK -ra. Ezután hőpisztoly segítségével melegítse fel a NYÁK alsó oldalát, amíg a forrasztópaszta el nem olvad, majd gyorsan haladjon át a tábla tetején, ügyelve arra, hogy ne fújja le az alkatrészeket. Végül érintse meg az alkatrészeket egy kis hegyes forrasztópáka segítségével. Legyen óvatos a kondenzátorokkal és az ellenállással, mivel könnyen megolvasztható mindkét vége, és az alkatrészek kilazulhatnak az egyik vég forrasztása közben.

Ez a felülvizsgálat további 22uF 16V kerámia kondenzátorokat ad hozzá. Ezek az extra kondenzátorok csökkentik az akkumulátor áramfelvételét, és csökkentik a feszültségcsökkenést is, ha a napelemekről táplálják. Mindaddig, amíg a napelemek feszültsége az akkumulátor feszültsége felett marad, addig az akkumulátor nem vesz áramot.

Az SMD alkatrészek felszerelése után forraszthat a SKYLAB SKB369 táblába. Az SKB369 fülek egyik oldalán két tesztpont lyuk található. Használjon két csapot egy kartondobozba az SKB369 tábla elhelyezéséhez, és óvatosan igazítsa a csapokat. (Lásd a fenti példaképet a Revision 1 NYÁK használatával.) Ezután forrasztja az ellenkező oldal egyik csapját, hogy a táblát a helyén tartsa, mielőtt a többi tüskét forrasztja.

Vegye figyelembe a Gnd összekötő vezetéket a CLK -tól a GND -ig a kész részben. Ezt a programozás UTÁN telepíti, hogy megakadályozza, hogy a CLK bemenet zajja az nRF52 chipet nagy áramú hibakeresési módba kapcsolja

Szerelő tok

A rögzítő tok két perspex darabból készült, 110 mm x 35 mm, 3 mm vastag. A 3,5 mm -es darabot a napelemek alatt megérintették, hogy elvegyék a 3 mm -es nylon csavarokat. Ez a felülvizsgált konstrukció egyszerűsíti az 1. verziót, és javítja a levegő áramlását az érzékelő körül. A két végén található további lyukak a szereléshez szolgálnak, például kábelkötegek segítségével.

4. lépés: Az NRF52 kódolásvédelmi zászló eltávolítása

Az NRF52 kódolásvédelmi zászló eltávolítása
Az NRF52 kódolásvédelmi zászló eltávolítása
Az NRF52 kódolásvédelmi zászló eltávolítása
Az NRF52 kódolásvédelmi zászló eltávolítása
Az NRF52 kódolásvédelmi zászló eltávolítása
Az NRF52 kódolásvédelmi zászló eltávolítása

Csatlakoztassa a hőmérséklet/páratartalom kártyát az 1. részben leírt programozóhoz a fentiek szerint.

A napelemek és az elemek kihúzásakor a Vin és Gnd a programozó Vdd és Gnd (sárga és zöld vezetékei), az SWCLK és SWDIO pedig a programozó fejlécének Clk és SIO csatlakozójához (a fehér és szürke vezetékek) kapcsolódnak.

Az nRF52 programvédelem eltávolítása

A Nordic Semi - Debug and Trace oldalról DAP - Debug Access Port. Egy külső hibakereső hozzáférhet az eszközhöz a DAP -on keresztül. A DAP szabványos ARM® CoreSight ™ soros vezetékes hibakeresési portot (SW-DP) valósít meg. Az SW-DP megvalósítja a soros vezeték hibakeresési protokollt (SWD), amely kétpólusú soros interfész, SWDCLK és SWDIO

Fontos: Az SWDIO vonal belső felhúzó ellenállással rendelkezik. Az SWDCLK vezeték belső lehúzható ellenállással rendelkezik.

CTRL -AP - Hozzáférési port vezérlése. A vezérlő hozzáférési port (CTRL-AP) egy egyéni hozzáférési port, amely lehetővé teszi az eszköz vezérlését akkor is, ha a hozzáférési port védelme letiltja a DAP többi hozzáférési portját. A hozzáférési port védelem blokkolja a hibakereső olvasási és írási hozzáférését az összes CPU-regiszterhez és memórialeképezett címhez. Kapcsolja ki a hozzáférési port védelmét. A hozzáférési port védelme csak akkor tiltható le, ha a CTRL-AP-n keresztül ERASEALL parancsot ad ki. Ez a parancs törli a Flash -t, az UICR -t és a RAM -ot.

Válassza ki a CMSIS-DAP programozót a Particle Debugger programozásához, majd válassza az nRF5 Flash SoftDevice lehetőséget

Ha a vaku működik, akkor ez rendben van, de gyakran a modulok védve vannak az újraprogramozás ellen, és ezt a hibaüzenetet az Arduino ablakban kapja meg

Open On-Chip Debugger 0.10.0-dev-00254-g696fc0a (2016-04-10-10: 13) GNU GPL v2 licenc alatt Hibabejelentésekért olvassa el a következő címet: debug_level: 2 Info: csak egy szállítási lehetőség; automatikus "swd" adapter sebesség: 10000 kHz cortex_m reset_config sysresetreq Információ: CMSIS-DAP: SWD Támogatott információ: CMSIS-DAP: Interfész inicializált (SWD) Információ: CMSIS-DAP: FW verzió = 1.10 Információ: SWCLK/TCK = 1 SWDIO/ TMS = 1 TDI = 0 TDO = 0 nTRST = 0 nRESET = 1 Info: CMSIS-DAP: Interface ready Info: sebességcsökkentés kérése: 10000kHz-5000kHz maximum Info: órajel 10000 kHz Info: SWD IDCODE 0x2ba01477 Hiba: Nem található MEM -AP a mag vezérléséhez Hiba: A célt még nem vizsgálták Hiba a SoftDevice villogása közben.

Ebben az esetben be kell állítania az ERASEALL parancsregisztert az nRF52 -ben, hogy törölje a memóriát, és újra programozhatóvá tegye az eszközt. Az OpenOCD sandeepmistry nRF52 verziója nem tartalmazza az ERASEALL parancsregiszterbe íráshoz szükséges apreg parancsot, ezért telepítenie kell egy újabb verziót.

Telepítse az OpenOCD OpenOCD-20181130 vagy újabb verzióját. A Windows előre lefordított verziója elérhető a https://gnutoolchains.com/arm-eabi/openocd/ webhelyről. A legújabb kód a https://gnutoolchains.com/arm-eabi/openocd/ címen érhető el

Nyisson meg egy parancssort, és módosítsa a dir parancsot az OpenOCD telepítési könyvtárába, és írja be a parancsot

bin / openocd.exe -d2 -f interfész/cmsis -dap.cfg -f target/nrf52.cfg

A válasz az

Open On-Chip Debugger 0.10.0 (2018-11-30) [https://github.com/sysprogs/openocd]Licensed by GNU GPL v2 A hibabejelentésekért olvassa el a következő címet: bugs.html debug_level: 2 Információ: az első elérhető munkamenet-szállítás "swd" automatikus kiválasztása. A felülbíráláshoz használja a 'transport select' lehetőséget. adapter sebessége: 1000 kHz cortex_m reset_config sysresetreq Info: Hallgatás a 6666-os porton tcl kapcsolatokhoz Info: Hallgatás a 4444-es porton telnet kapcsolatokhoz Info: CMSIS-DAP: SWD Támogatott információ: CMSIS-DAP: FW verzió = 1.10 Információ: CMSIS-DAP: Interfész inicializált (SWD) információ: SWCLK/TCK = 1 SWDIO/TMS = 1 TDI = 0 TDO = 0 nTRST = 0 nRESET = 1 Info: CMSIS-DAP: Interface ready Info: órajel 1000 kHz Info: SWD DPIDR 0x2ba01477 Hiba: Nem található MEM-AP a vezérléshez. Info: Figyelem a 3333-as porton gdb-kapcsolatokhoz

Ezután nyisson meg egy terminál ablakot pl. TeraTerm (Windows) vagy CoolTerm (Mac), és csatlakozzon a 127.0.0.1 4444 -es porthoz

A telnet ablakban megjelenik a>, a parancssorban pedig az Info: Telnet kapcsolat elfogadása a tcp/4444 -en

A telnet ablakban (azaz TeraTerm) typenrf52.dap apreg 1 0x04ez 0x00000000 értéket ad vissza, amely azt mutatja, hogy a chip védett. Ekkor a typenrf52.dap apreg 1 0x04 0x01és thennrf52.dap apreg 1 0x04this 0x00000001 értéket ad vissza, ami azt mutatja, hogy a chip a következő újraindításkor ERASEALL értékre van állítva.

Zárja be a telnet kapcsolatot, és a Ctrl-C billentyűvel lépjen ki az openOCD programból a parancssorban, majd kapcsolja be az nRF52 modult, és készen áll a programozásra.

Most próbálja meg újra villogni a lágy eszközt.

Most már programozhatja az nRF52 modult az Arduino programból.

5. lépés: A SKYLAB SKB369 programozása

A SKYLAB SKB369 programozása
A SKYLAB SKB369 programozása
A SKYLAB SKB369 programozása
A SKYLAB SKB369 programozása
A SKYLAB SKB369 programozása
A SKYLAB SKB369 programozása

Zárja be az Arduino alkalmazást, és telepítse újra a pfod_lp_nrf52 támogatás legújabb verzióját a Pfod_lp_nrf52 telepítése hardvertámogatási utasítások követésével. A legújabb pfod_lp_nrf52 tartalmazza a SKYLAB SKB369 Nano2 cserelapot. Válassza ki ezt táblának, majd programozhatja az lp_BLE_TempHumidity 3. verziójával, lp_BLE_TempHumidity_R3.zip -vel, a 2. részben leírtak szerint.

Ha a programozás sikertelen. Zárja be az összes Arduino ablakot, húzza ki az USB -kábeleket, indítsa újra az Arduino -t, és dugja vissza a programozó USB -kábelét, majd csatlakoztassa vissza az nRF52 modul USB -tápellátását, és próbálja újra.

Ezután csatlakozzon a pfodApp segítségével az aktuális és korábbi hőmérséklet és páratartalom megjelenítéséhez. Miután megjelenítette az előzményeket, a leolvasott értékek ezredmásodperces időbélyegzővel kerülnek mentésre a naplófájlba a mobilján, és elérhetők a nyers adatok képernyőn is.

A naplófájl tartalmazza azokat a további adatokat is, amelyek szükségesek a dátum- és időábrák újbóli létrehozásához egy táblázatban. A részletekért lásd az Arduino dátumát és idejét a millis () és a pfodApp használatával

6. lépés: Új Arduino NRF52 kártya definíció létrehozása

Új Arduino NRF52 kártya definíció létrehozása
Új Arduino NRF52 kártya definíció létrehozása
Új Arduino NRF52 kártya definíció létrehozása
Új Arduino NRF52 kártya definíció létrehozása
Új Arduino NRF52 kártya definíció létrehozása
Új Arduino NRF52 kártya definíció létrehozása
Új Arduino NRF52 kártya definíció létrehozása
Új Arduino NRF52 kártya definíció létrehozása

Egy új nRF52 tábla támogatásához a) hozzá kell adnia egy új könyvtárat a változatok könyvtárához a táblafájlokkal, és b) szerkeszteni kell a boards.txt fájlt, hogy hozzáadja az új táblát az Arduino -hoz.

Új nRF52 kártya változat hozzáadása

Az 1. részben leírtak szerint, A pfod_lp_nrf52 hardvertámogatás telepítése, keresse meg a sandeepmistry csomag hardver alkönyvtárát, amelyet a pfod_lp_nrf52 támogatással frissített. Nyissa meg a / hardware / nRF5 / 0.6.0 / variants alkönyvtárat, és hozzon létre egy új könyvtárat az új táblához, pl. variant.cpp és pins_arduino.h Másolhatja őket a többi táblavariáns könyvtárból. A SKYLAB_SKB369_Nano2pótláshoz eredetileg a RedBear_BLENano2 változatból másoltam a fájlokat.

pins_arduino.h fájl

A pins_arduino.h fájlt nem kell módosítani. Csak a Variant.h fájlt tartalmazza

variant.h fájl

Szerkessze a Variant.h fájlt, hogy meghatározza a táblán lévő összes PIN -kódot, PINS_COUNT

MEGJEGYZÉS: A sandeepmistry csomagban NUM_DIGITAL_PINS, NUM_ANALOG_INPUTS és NUM_ANALOG_OUTPUTS beállítást figyelmen kívül hagynak

Ha az alaplap többé -kevésbé analóg tűket tesz elérhetővé, frissítse a /.analóg tűk * / részt a variants.h fájlban.

MEGJEGYZÉS: A NanoV2 és SKYLAB kártyák esetén az analóg érintkezők a digitális tüskékhez vannak leképezve A0 == D0 stb

Ez nem elengedhetetlen. Az analóg bemeneteket bármelyik kényelmes Arduino tűhöz rendelheti. Lásd például a blue/variant.h és a blue/variant.cpp fájlokat.

Az nRF52832 chip 8 analóg bemeneti tűvel rendelkezik, de az SKYLAB_SKB369_Nano2 cserelap csak 6 -ot tesz elérhetővé a Nano2 -hez.

A Variant.h fájl összes PIN -kódja, a RESET_PIN kivételével, Arduino pin -szám. Vagyis a #define PIN_A0 (0) azt jelenti, hogy az arduino vázlat D0 ugyanaz a pin, mint az A0. A RESET_PIN kivétel. Ez a szám az nRF52823 chip pin száma, és a 21 az egyetlen érvényes választás. A pfod_lp_nrf52 támogatás azonban nem teszi lehetővé az nRF52832 nullázócsapját

variant.cpp fájl

A Variant.cpp fájlban csak egy bejegyzés található, a g_ADigitalPinMap tömb, amely leképezi az Arduino pin -számokat az nRF52832 P0 chiphez.

MEGJEGYZÉS: A NanoV2 és SKYLAB kártyákon az A0, A1… Arduino analóg érintkezők megegyeznek az Arduino D0, D1… digitális tűivel, ezért a g_ADigitalPinMap első bejegyzéseit KELL KAPCSOLNI az nRF52832 chipen található AINx pin számokkal

Az alaplap által rendelkezésre bocsátott analóg bemenetekhez a g_ADigitalPinMap bejegyzéseinek le kell képezniük az nRF52832 AIN0, AIN1, AIN2 stb. Pin számokat. azaz az AIN0 a P0.02 chipes tű, az AIN1 a P0.03 chipes tű stb.

Használja az (uint32_t) -1 értéket érvénytelen leképezésekhez. Például a SKYLAB_SKB369_Nano2 cserepanelben nincs beépített LED, D13, így a pozíciója az (uint32_t) -1

A pfod_lp_nrf52.zip fájlban a Redbear NanoV2, SKYLAB SKB369 és GT832E_01 változatok alkönyvtárai a Variant.cpp által beállított leképezéseket ábrázoló képeket tartalmaznak. (Lásd a fenti képeket)

A SKYLAB SKB369 esetében rengeteg csap közül lehet választani. Csak annyi van feltérképezve, hogy megfeleljen a NanoV2 -nek. A GT832E_01 esetében az összes rendelkezésre álló csapot le kell térképezni. Még akkor is csak három (3) analóg bemenet áll rendelkezésre a NanoV2 hat (6) helyett. Ezen kívül a két NFC-t, a P0.09-et és a P0.10-et újra kell konfigurálni GPIO-ként. Lásd alább az nRF52 NFC csapok újrakonfigurálása GPIO -ként.

Boards.txt fájl frissítése

Itt van a SKYLAB_SKB369_Nano2replacement bejegyzés a boards.txt fájlban.

## SKYLAB_SKB369 Nano2 csereSKYLAB_SKB369_NANO2_REPLACEMENT.name =*SKYLAB SKB369 Nano2 csere

SKYLAB_SKB369_NANO2_REPLACEMENT.upload.tool = sandeepmistry: openocd

SKYLAB_SKB369_NANO2_REPLACEMENT. SKYLAB_SKB369_NANO2_REPLACEMENT.upload.use_1200bps_touch = hamis SKYLAB_SKB369_NANO2_REPLACEMENT.upload.wait_for_upload_port = false

SKYLAB_SKB369_NANO2_REPLACEMENT.bootloader.tool = sandeepmistry: openocd

SKYLAB_SKB369_NANO2_REPLACEMENT.build.mcu = kéreg-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 = kemény -mfpu = fpv4-sp-d16 SKYLAB_SKB369_NANO2_REPLACEMENT.build.ldscript = nrf52_xxaa.ld

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

SKYLAB_SKB369_NANO2_REPLACEMENT.menu.softdevice.s132 = S132

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

board.txt Beállítások

Megjegyzések - # -vel kezdődő sorok megjegyzések.

Előtag - minden tábla egyedi előtagot igényel az értékeinek azonosításához. Itt az előtag: SKYLAB_SKB369_NANO2_REPLACEMENT.

Név - A SKYLAB_SKB369_NANO2_REPLACEMENT.name sor határozza meg ennek a táblának a nevét, amelyet meg kell jeleníteni az Arduino tábla menüjében.

Feltöltő eszköz - A SKYLAB_SKB369_NANO2_REPLACEMENT.upblokk megadja, hogy melyik eszközt kell használni a feltöltéshez. Ha a Részecske-hibakeresőt használja, akkor használja a protokollt = cmsis-dap a fentiek szerint.

Bootloader - Ez a sor ugyanaz a táblákon ezen a táblán.txt

Felépítés - Ebben a blokkban csak két sort kell frissíteni. A SKYLAB_SKB369_NANO2_REPLACEMENT.build.variant sor határozza meg ennek a táblának a könyvtárnevét a változat alkönyvtárában. A SKYLAB_SKB369_NANO2_REPLACEMENT.build.board az ARDUINO_ -hoz fűzött, majd a kód összeállításakor meghatározott érték. például. -DARDUINO_SKYLAB_SKB369_Nano2replacement Ezzel engedélyezheti/letilthatja a kód egyes részeihez tartozó kódrészleteket.

Alacsony frekvenciájú óra - Ez a sor, SKYLAB_SKB369_NANO2_REPLACEMENT.menu.lfclk.lfrc.build.lfclk_flags, meghatározza az lp_timerhez használt alacsony frekvenciájú óra forrását. Három lehetőség közül választhat: -DUSE_LFXO, -DUSE_LFRC és -DUSE_LFSYNT. A legjobb választás a -DUSE_LFXO, ha a tábla külső 32 kHz -es kristályt tartalmaz. Ha nem, akkor használja a -DUSE_LFRC -t, amely belső RC oszcillátort használ, és valamivel nagyobb áramot, ~ 10uA -t vesz fel, és sokkal kevésbé pontos. Ne használja a -DUSE_LFSYNT -t, mivel ez folyamatosan fenntartja a chipet, ami mAs áramfelvételt eredményez.

Softdevice - A pfod_lp_nrf52 csak az nRF52 chipeket és a softdevice s132 -t támogatja, így az előtagon kívül nincs szükség semmilyen változtatásra ezen a blokkon.

Az nRF52 NFC csapok újrakonfigurálása GPIO -ként

Alapértelmezés szerint az nRF52 csapoknál a P0.09 és a P0.10 NFC -ként van konfigurálva, és várhatóan NFC -antennához csatlakoznak. Ha ezeket általános célú I/O pin -ként (GPIO) kell használni, akkor hozzá kell adnia egy definíciót, -DCONFIG_NFCT_PINS_AS_GPIOS, az adott tábla… menu.softdevice.s132.build.extra_flags fordítási beállításaihoz a boards.txt fájlban.

Például pfod_lp_nrf52.zip, konfigurálja újra a GT832E_01 csapokat I/O-ként való használatra. A táblához tartozó GT832E_01 szakasz, a boards.txt fájlban a következő definícióval rendelkezik

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

A pfod_lp_nrf52.zip fájlban található linker szkript is módosult a beállítás megőrzése érdekében, és nem kell módosítani.

7. lépés: Következtetés

Ez az oktatóanyag a Redbear NanoV2 helyettesítését mutatta be SKYLAB SKB369 modul használatával. Akkumulátoros/napenergiával működő hőmérséklet -páratartalom -figyelőt használtak például nagyon alacsony fogyasztású BLE projektként Arduino -ban a SKYLAB modulhoz. A ~ 29uA tápáramokat a csatlakozási paraméterek beállításával érik el. Ennek eredményeként egy CR2032 -es gombelem akkumulátor élettartama ~ 10 hónap. Hosszabb a nagyobb kapacitású érmecellákhoz és elemekhez. Két olcsó napelem hozzáadásával az akkumulátor élettartama 50% -kal vagy annál tovább meghosszabbítható. Egy erős szobafény vagy egy asztali lámpa elegendő ahhoz, hogy a monitort a napelemekről táplálja.

Ez az oktatóanyag kiterjedt a chipvédelem eltávolítására is egy előre programozott nRF52-ről, valamint arról, hogyan állíthat be új kártya definíciót a saját PCB/áramköréhez

Nincs szükség Android programozásra. A pfodApp mindezt kezeli.

Ajánlott: