Orodha ya maudhui:

Rahisi Nguvu ya Chini sana BLE katika Arduino Sehemu ya 3 - Uingizwaji wa Nano V2 - Ufu 3: 7 Hatua (na Picha)
Rahisi Nguvu ya Chini sana BLE katika Arduino Sehemu ya 3 - Uingizwaji wa Nano V2 - Ufu 3: 7 Hatua (na Picha)

Video: Rahisi Nguvu ya Chini sana BLE katika Arduino Sehemu ya 3 - Uingizwaji wa Nano V2 - Ufu 3: 7 Hatua (na Picha)

Video: Rahisi Nguvu ya Chini sana BLE katika Arduino Sehemu ya 3 - Uingizwaji wa Nano V2 - Ufu 3: 7 Hatua (na Picha)
Video: Объяснение прошивки Marlin 2.0.x 2024, Novemba
Anonim
Rahisi Nguvu ya Chini sana BLE katika Arduino Sehemu ya 3 - Uingizwaji wa Nano V2 - Ufu 3
Rahisi Nguvu ya Chini sana BLE katika Arduino Sehemu ya 3 - Uingizwaji wa Nano V2 - Ufu 3
Rahisi Nguvu ya Chini sana BLE katika Arduino Sehemu ya 3 - Uingizwaji wa Nano V2 - Ufu 3
Rahisi Nguvu ya Chini sana BLE katika Arduino Sehemu ya 3 - Uingizwaji wa Nano V2 - Ufu 3
Rahisi Nguvu ya Chini sana BLE katika Arduino Sehemu ya 3 - Uingizwaji wa Nano V2 - Ufu 3
Rahisi Nguvu ya Chini sana BLE katika Arduino Sehemu ya 3 - Uingizwaji wa Nano V2 - Ufu 3

Sasisha: 7th Aprili 2019 - Rev 3 ya lp_BLE_TempHumidity, anaongeza viwanja vya Tarehe / Wakati, kwa kutumia pfodApp V3.0.362 +, na kupinduka kiotomatiki wakati wa kutuma data

Sasisho: 24th Machi 2019 - Rev 2 ya lp_BLE_TempHumidity, anaongeza chaguzi zaidi za njama na i2c_ClearBus, anaongeza msaada wa GT832E_01

>

Utangulizi

Mafunzo haya, Uingizwaji wa Redbear Nano V2, ni Sehemu ya 3 kati ya 3. Hii ni Marekebisho ya 2 ya mradi huu. Marekebisho 2 ya PCB ni pamoja na kuweka kwa seli ya sarafu na sensa, inarahisisha ujenzi na inaboresha mtiririko wa hewa karibu na sensa huku ikiikinga na jua moja kwa moja. Marekebisho 1 iko hapa.

Sehemu ya 1 - Kuunda vifaa vya Nguvu za Chini sana vilivyotengenezwa kwa urahisi na Arduino inashughulikia kuweka Arduino kuweka nambari za vifaa vya chini vya NRF52, moduli ya programu na kupima usambazaji wa sasa. Pia inashughulikia vipima muda maalum vya nguvu na kulinganisha na pembejeo zilizotengwa na kutumia pfodApp kuungana na kudhibiti kifaa cha nRF52.

Sehemu ya 2 - Mfuatiliaji wa Unyevu wa Joto la Chini sana unashughulikia kutumia moduli ya Redbear Nano V2 na sensorer ya joto / unyevu wa Si7021 kujenga betri ya nguvu / mfuatiliaji wa jua. Pia inashughulikia kurekebisha maktaba ya Si7021 kuwa nguvu ndogo, ikipanga kifaa cha BLE ili kupunguza matumizi yake ya sasa kuwa <29uA na kubuni onyesho la kawaida la joto / unyevu kwa simu yako ya rununu.

Sehemu ya 3 - Uingizwaji wa Redbear Nano V2, hii, inashughulikia kutumia moduli zingine za nRF52 badala ya Nano V2. Inashughulikia kuchagua vifaa vya usambazaji, ujenzi, kuondoa kinga ya programu ya nRF52, kwa kutumia pini za NFC kama GPIO ya kawaida, na kufafanua bodi mpya ya nRF52 huko Arduino.

Mafundisho haya ni matumizi ya vitendo ya Sehemu ya 1 ya vifaa vya Power Power BLE vilivyofanywa Rahisi na Arduino kwa kujenga Joto la chini sana la Power BLE na Monitor ya Humidity kwa kutumia bodi ya SKYLAB SBK369 kama nafasi ya Nano V2. Mafunzo haya inashughulikia jinsi ya kuunda ufafanuzi mpya wa bodi na jinsi ya kuondoa programu ya nRF52 kulinda kuiruhusu ipangiliwe tena. Mafunzo haya hutumia mchoro sawa na Sehemu ya 2 na vigezo sawa vya BLE kwa matumizi ya nguvu ndogo na inaweza kuwezeshwa kutoka kwa betri AU betri + jua au jua tu. Uwekaji wa vigezo vya BLE kwa nguvu ya chini ilifunikwa katika Sehemu ya 2

Rev 3 ya lp_BLE_TempHumidity inaweka data dhidi ya tarehe na wakati kwa kutumia milisiti ya Arduino (). Tazama Tarehe na Wakati wa Arduino ukitumia millis () na pfodApp ukitumia toleo la hivi karibuni la pfodApp (V3.0.362 +).

Rev 4 ya pfod_lp_nrf52.zip pia inasaidia moduli ya GT832E_01 na mafunzo haya inashughulikia kutumia pini za NFC nRF52 kama GPIO ya kawaida.

Mfuatiliaji uliojengwa hapa utatumika kwa miaka kwenye Kiini cha Sarafu au betri 2 x AAA, hata zaidi na msaada wa jua. Pamoja na kuonyesha hali ya joto na unyevu wa sasa, mfuatiliaji huhifadhi saa za mwisho za 36 za usomaji wa 10min na siku 10 za mwisho za usomaji wa saa. Hizi zinaweza kupangwa kwenye simu yako ya Android na maadili yaliyohifadhiwa kwenye faili ya kumbukumbu. Hakuna Programu ya Android inayohitajika, pfodApp inashughulikia yote hayo. Uonyesho na chati ya Android inadhibitiwa kabisa na mchoro wako wa Arduino ili uweze kuiboresha kama inavyotakiwa.

Sehemu ya 2 ilitumia bodi ya Redbear Nano V2 kwa sehemu ya nRF52832 BLE. Mradi huu unachukua nafasi ya bodi ya bei nafuu ya SKYLAB SKB369. Kama ilivyo katika Sehemu ya 2, bodi ya kuzuka ya Sparkfun Si7021 hutumiwa kwa Sensor ya Joto / Unyevu. Maktaba ya nguvu ya chini iliyobadilishwa hutumiwa na Si7021.

Hatua ya 1: Kwa nini ubadilishaji wa Nano V2?

i) Nano V2 ilikuwa nje ya uzalishaji kwa miezi kadhaa na haionekani kutoshea kwenye Particle.io kujipanga kwa hivyo haijulikani itapatikana kwa muda gani.

ii) Nano V2 ni ghali zaidi. Walakini pia ina huduma za ziada. Tazama hapa chini.

iii) Nano V2 ina vifaa pande zote mbili ambazo huipa wasifu wa juu na inafanya kuwa ngumu zaidi kupanda.

iv) Nano V2 ina pini ndogo za I / O zinazopatikana na kutumia D6 hadi D10 inahitaji njia za kuruka.

Ingawa bodi ya Nano V2 ni ghali zaidi basi bodi ya SKYLAB SKB369, ~ US17 dhidi ya ~ US5, Nano V2 ina huduma zaidi. Nano V2 inajumuisha mdhibiti wa 3.3V na capacitors ya usambazaji, vifaa vya ziada vya kutumia chaguo la kubadilisha fedha la nRF52 DC / DC, antena ya chip na kontakt ya antenna ya uFL SMT.

Njia nyingine ni moduli ya GT832E_01 inayotumiwa na www.homesmartmesh.com. Rev 4 ya pfod_lp_nrf52.zip pia inasaidia programu ya moduli ya GT832E_01. SKYLAB SKB369 na GT832E_01 zinapatikana kutoka

Redbear (Particle.io) pia ina moduli iliyo wazi bila mdhibiti wa 3V3, vifaa vya DC / DC au vifaa vya kioo vya 32Khz.

Muhtasari

Mradi huu una sehemu 4 zinazojitegemea: -

Uteuzi wa Sehemu na Ujenzi Kuondoa nRF52 bendera ya ulinzi wa usindikaji na kupanga mchoro Kuunda Ufafanuzi mpya wa Bodi ya Arduino nRF52 Kusanidi pini za NRF52 kama NPF

Hatua ya 2: Uteuzi wa Sehemu na Ujenzi

Uteuzi wa Sehemu

Kwa kuongeza vifaa vya nRF52832 na Si7021 vilivyochaguliwa katika Sehemu ya 2, mradi huu unaongeza mdhibiti wa 3.3V na capacitors ya usambazaji.

Sehemu ya Mdhibiti wa Voltage

Mdhibiti anayetumiwa hapa ni MC87LC33-NRT. Inaweza kushughulikia hadi pembejeo za 12V na ina sasa ya quiescent ya <3.6uA, kawaida 1.1uA. Nano V2 ilitumia mdhibiti wa TLV704 ina sasa ya juu zaidi ya utulivu, kawaida 3.4uA na inaweza kushughulikia voltages za kuingiza juu, hadi 24V. MC87LC33-NRT ilichaguliwa badala yake kwa sababu lahajedwali lake linabainisha jinsi inavyojibu kwani voltage ya pembejeo iko chini ya 3.3V ambapo kama datasheet ya TLV704 haifanyi.

TLV704 inataja voltage ya pembejeo ya kiwango cha chini cha 2.5V na haijulikani kutoka kwa lagi la data ni nini kitatokea chini ya hapo. NRF52832 itashuka hadi 1.7V na Si7023 itashuka hadi 1.9V. MC87LC33-NRT kwa upande mwingine inabainisha tofauti za pembejeo / pato la voltage hadi 0V kwa mikondo ya chini (Kielelezo 18 cha datasheet). Kwa hivyo kutokana na uchaguzi wa vifaa, MC87LC33-NRT ilichaguliwa kwa sababu ina utendaji maalum.

Ugavi Capacitors

Mdhibiti wa MC87LC33-NRT anahitaji capacitors za usambazaji kwa utulivu na majibu. Capacitor ya pato> 0.1uF inapendekezwa kwenye lahajedwali. SKYLAB SBK369 pia inataja 10uF / 0.1uF capacitors kwenye usambazaji karibu na bodi. Capacitors kubwa kusaidia katika kusambaza nRF52 TX spikes sasa. Hapa 4 x 22uF 25V na 3 x 0.1uF 50V kauri capacitors zilitumika. 22uF moja na 0.1uF capacitor iliwekwa karibu na SKYLAB SBK369, 0.1uF iliwekwa karibu na pato la MC87LC33-NRT ili kuhakikisha utulivu na 22uF na 0.1uF ziliwekwa kwenye pembejeo kwa MC87LC33-NRT na a zaidi 2 x 22uF capacitors ambapo inauzwa katika Vin / GND pini kama hifadhi zaidi ya sasa. Kwa kulinganisha bodi ya NanoV2 ina 22uF / 0.1uF kwenye pembejeo kwa mdhibiti wa TLV704 na 0.1uF kwenye pato lake.

Vipimo vya ziada vya hifadhi ya sasa viliwekwa kwenye pembejeo kwa mdhibiti wa 3.3V ili waweze kuchaji kwa voltage kubwa wakati wa kukimbia na seli za jua. Kuchaji kwa voltage ya juu ni sawa na kuhifadhi sasa zaidi ili kusambaza spikes za Tx.

Kauri X5R capacitors hutumiwa kwa sababu wana upinzani mdogo wa safu na sasa ya kuvuja kwa chini. Upinzani kawaida ni 100, 000MΩ au 1000MΩ - whichF ambayo huwa chini. Kwa hivyo kwa 22uF tuna 22000MΩ, i.e.kuvuja kwa 0.15nA kwa 3.3V au 0.6nA kwa capacitors nne 22uF. Hiyo ni kidogo. Kwa kulinganisha ESR ya chini, Vipunguzi vya umeme vya chini vya Kuvuja kwa Panasonic Electrolytic vina mikondo ya kuvuja ya <0.01CV. Kwa hivyo kwa 22uF 16V capacitor kuvuja ni <10uA. Kumbuka: Hii ni kuvuja kwa voltage iliyokadiriwa, 16V katika kesi hii. Kuvuja ni chini kwa voltages ya chini, i.e. <2.2uA saa 3.3V.

Orodha ya Sehemu

Gharama ya takriban kwa kila kitengo mnamo Desemba 2018, ~ US $ 61, bila usafirishaji na programu kutoka Sehemu ya 1

  • SKYLAB SKB369 ~ US $ 5 mfano Aliexpress
  • Bodi ya kuzuka ya Sparkfun Si7021 ~ US $ 8
  • 2 x 53mm x 30mm 0.15W 5V seli za jua n.k. Overfly ~ US $ 1.10
  • 1 x PCB SKYLAB_TempHumiditySensor_R2.zip ~ US $ 25 kwa punguzo 5 www.pcbcart.com
  • 1 x MC78LC33 3.3V mdhibiti, k.m. Digikey MC78LC33NTRGOSCT-ND ~ US $ 1
  • 2 x 0.1uF 50V kauri C1608X5R1H104K080A k.v. Digikey 445-7456-1-ND ~ US $ 0.3
  • 4 x 22uF 16V kauri GRM21BR61C226ME44L k.v. Digikey 490-10747-1-ND ~ US $ 2
  • 1 x BAT54CW, k.m. Digikey 497-12749-1-ND ~ Dola za Kimarekani 0.5
  • 1 x 470R 0.5W 1% ya kupinga.k. Digikey 541-470TCT-ND ~ US $ 0.25
  • 1 x 10V 1W zener SMAZ10-13-F k.v. Digikey SMAZ10-FDICT-ND ~ US $ 0.5
  • Skrufu za nylon 3mm x 12mm, n.k. Jaycar HP0140 ~ AUD $ 3
  • 3mm x 12mm karanga za nailoni, n.k. Jaycar HP0146 ~ AUD $ 3
  • Mkanda wa Kudumu wa Kudumu wa Scotch Paka 4010 k.v. kutoka Amazon ~ US $ 6.6
  • Mmiliki wa betri CR2032, n.k. HU2032-LF ~ Dola za Marekani 1.5
  • CR2032 betri ~ US $ 1
  • Karatasi ya jalada, 3.5mm na 8mm
  • pfodApp ~ US $ 10
  • Bandika Solder n.k. Jaycar NS-3046 ~ AUD $ 13

Hatua ya 3: Ujenzi

Ujenzi
Ujenzi
Ujenzi
Ujenzi
Ujenzi
Ujenzi

Mradi umejengwa kwenye PCB ndogo. PCB ilitengenezwa na pcbcart.com kutoka kwa faili hizi za Gerber, SKYLAB_TempHumiditySensor_R2.zip PCB inaiga pini ya Nano V2 nje na ina lengo la kutosha kutumiwa kwa miradi mingine ya BLE.

Huu ndio mpango (toleo la pdf)

Suuza kwanza vifaa vya SMD, kisha weka bodi ya SKYLAB SKB369

Karibu vifaa vyote ni vifaa vya mlima wa uso (SMD). Capacitors na IC inaweza kuwa ngumu kuuuza kwa mkono. Njia iliyopendekezwa ni kushikilia PCB kwa makamu na kutumia kiasi kidogo cha kuweka kwa solder kwenye pedi na kuweka vifaa vya SMD, isipokuwa bodi ya SKB369 kwenye PCB. Kisha ukitumia bunduki ya joto, weka moto kwa upande wa chini wa PCB mpaka siki ya solder itayeyuka na kisha fanya haraka juu ya bodi na kuwa mwangalifu usilipue vifaa. Mwishowe gusa vifaa na chuma kidogo cha kutengeneza ncha. Kuwa mwangalifu na capacitors na kontena kwani ni rahisi kuyeyuka mwisho wote na sehemu hiyo iwe huru wakati inaunganisha ncha moja.

Marekebisho haya yanaongeza nyongeza za kauri za 22uF 16V. Hizi capacitors za ziada hupunguza spikes za sasa zilizotolewa kutoka kwa betri na pia hupunguza majosho ya voltage wakati wa kuwezeshwa kutoka kwa seli za jua. Kwa muda mrefu kama voltage kutoka seli za jua inabaki juu ya voltage ya betri basi hakuna sasa inayotolewa kutoka kwa betri.

Baada ya vifaa vya SMD kuwekwa, unaweza kutengeneza kwenye bodi ya SKYLAB SKB369. Kuna mashimo mawili ya kipimo upande mmoja wa tabo za SKB369. Tumia pini mbili kwenye msingi wa kadibodi kuweka bodi ya SKB369 na upatanishe kwa uangalifu pini hizo. (Tazama picha ya mfano hapo juu ukitumia Urekebishaji 1 PCB) Kisha unganisha pini moja ya upande wa pili ili kushikilia ubao mahali hapo kabla ya kuuza pini zingine.

Kumbuka waya wa kiunga cha Gnd kutoka CLK hadi GND katika sehemu iliyomalizika. Hii imewekwa BAADA ya programu kuzuia kelele kwenye pembejeo ya CLK kutokana na kuchochea chip ya nRF52 kuwa hali ya juu ya utatuzi wa sasa

Kuweka Kesi

Kesi inayoongezeka ilitengenezwa kutoka kwa vipande viwili vya jicho, 110mm x 35mm, 3mm nene. Kipande cha 3.5mm chini ya seli za jua kiligongwa kuchukua screws za 3mm za nylon. Ujenzi huu uliorekebishwa ni rahisi kisha Rev 1 na inaboresha mtiririko wa hewa karibu na sensa. Mashimo ya ziada kila mwisho ni ya kuweka, kwa kutumia vifungo vya kebo kwa mfano.

Hatua ya 4: Kuondoa NRF52 Bendera ya Ulinzi wa Usimbuaji

Kuondoa NRF52 Bendera ya Ulinzi wa Usimbuaji
Kuondoa NRF52 Bendera ya Ulinzi wa Usimbuaji
Kuondoa NRF52 Bendera ya Ulinzi wa Usimbuaji
Kuondoa NRF52 Bendera ya Ulinzi wa Usimbuaji
Kuondoa NRF52 Bendera ya Ulinzi wa Usimbuaji
Kuondoa NRF52 Bendera ya Ulinzi wa Usimbuaji

Unganisha bodi ya Joto / Unyevu kwa Programu iliyofafanuliwa katika Sehemu ya 1 kama inavyoonyeshwa hapo juu.

Seli za jua na betri zikiwa hazijafunguliwa, Vin na Gnd wameunganishwa na programu ya Vdd na Gnd (ya Njano na Kijani inaongoza) na SWCLK na SWDIO zimeunganishwa kwa Clk na SIO ya bodi ya kichwa cha programu (White na Grey inaongoza)

Kuondoa ulinzi wa mpango wa nRF52

Kutoka Nordic Semi - Debug na Trace ukurasa DAP - Debug Access Port. Kitatuaji cha nje kinaweza kufikia kifaa kupitia DAP. DAP hutumia Kiwango cha kawaida cha Utaftaji wa nyaya za waya za ARM® CoreSight ™ (SW-DP). SW-DP hutumia itifaki ya Utaftaji wa nyaya za waya (SWD) ambayo ni kiwambo cha pini mbili, SWDCLK na SWDIO

Muhimu: Mstari wa SWDIO una kontena la kuvuta ndani. Mstari wa SWDCLK una kontena la ndani la kuvuta.

CTRL-AP - Dhibiti Ufikiaji wa Bandari. Bandari ya Ufikiaji wa Udhibiti (CTRL-AP) ni bandari ya ufikiaji wa kawaida ambayo inawezesha kudhibiti kifaa hata kama bandari zingine za ufikiaji kwenye DAP zinalemazwa na ulinzi wa bandari ya ufikiaji. Ufikiaji wa ulinzi wa bandari huzuia utatuaji kutoka kwa kusoma na kuandika ufikiaji wa rejista zote za CPU na anwani zilizo na ramani ya kumbukumbu. Lemaza ufikiaji wa ulinzi wa bandari. Ufikiaji wa ulinzi wa bandari unaweza kuzimwa tu kwa kutoa amri ya ERASEALL kupitia CTRL-AP. Amri hii itafuta Flash, UICR, na RAM.

Chagua CMSIS-DAP kama msanidi programu wa Chembe cha Kutengenezea na chagua nRF5 Flash SoftDevice

Ikiwa flash inafanya kazi, basi hiyo ni sawa, lakini moduli nyingi zitakuwa zimelindwa dhidi ya programu mpya na utapata pato hili la makosa katika dirisha la Arduino

Fungua Kitambulisho cha On-Chip 0.10.0-dev-00254-g696fc0a (2016-04-10-10: 13) Leseni chini ya GNU GPL v2 Kwa ripoti za mdudu, soma https://openocd.org/doc/doxygen/bugs.html debug_level: 2 Maelezo: chaguo moja tu ya usafirishaji; chagua kasi ya adapta ya autoselect: 10000 kHz cortex_m reset_config sysresetreq Info: CMSIS-DAP: SWD Maelezo Inayoungwa mkono: CMSIS-DAP: Interface Initialised (SWD) Maelezo: CMSIS-DAP: FW Version = 1.10 Info: SWCLK / TCK = 1 SWDIO / TMS = 1 TDI = 0 TDO = 0 nTRST = 0 nRESET = 1 Maelezo: CMSIS-DAP: Kiunga tayari Maelezo: punguza ombi la kasi: 10000kHz hadi 5000kHz Maelezo: kiwango cha saa 10000 kHz Maelezo: SWD IDCODE 0x2ba01477 Kosa: Haikuweza kupata MEM -AP kudhibiti Kosa la msingi: Lengo halijachunguzwa bado Kosa wakati wa kuangaza SoftDevice.

Katika kesi hiyo unahitaji kuweka rejista ya amri ya ERASEALL kwenye nRF52 ili kuondoa kumbukumbu na kukifanya kifaa kiweze kusanidi tena. Toleo la openOCD iliyotolewa na sandeepmistry nRF52 haijumuishi amri ya apreg inayohitajika kuandika kwa rejista ya amri ya ERASEALL kwa hivyo unahitaji kusanikisha toleo la baadaye.

Sakinisha toleo la OpenOCD OpenOCD-20181130 au zaidi. Toleo lililokusanywa mapema la Windows linapatikana kutoka https://gnutoolchains.com/arm-eabi/openocd/ Nambari ya hivi karibuni inapatikana kutoka

Fungua kidokezo cha amri na ubadilishe kwenye saraka ya usakinishaji ya OpenOCD na uingize amri

bin / openocd.exe -d2 -f interface / cmsis-dap.cfg -f lengo / nrf52.cfg

Jibu ni

Fungua Kitambulisho cha On-Chip 0.10.0 (2018-11-30) [https://github.com/sysprogs/openocd] Iliyopewa leseni chini ya GNU GPL v2 Kwa ripoti za mdudu, soma https://openocd.org/doc/doxygen/ bugs.html Kubatilisha matumizi 'usafiri chagua'. kasi ya adapta: 1000 kHz cortex_m reset_config sysresetreq Maelezo: Kusikiliza bandari 6666 kwa unganisho la tcl: Maelezo: Kusikiliza kwenye bandari 4444 kwa unganisho la telnet Habari: CMSIS-DAP: SWD Habari Inayoungwa mkono: CMSIS-DAP: FW Version = 1.10 Habari: CMSIS-DAP: Maelezo ya Kiingiliano Iliyoanzishwa: Haikuweza kupata MEM-AP kudhibiti Maelezo ya msingi: Kusikiliza kwenye bandari 3333 kwa unganisho la gdb

Kisha fungua dirisha la wastaafu k.m. TeraTerm (Windows) au CoolTerm (Mac) na unganisha kwa bandari ya 127.0.0.1 4444

Dirisha la telnet litaonyesha> na haraka ya amri itaonyesha Maelezo: kukubali unganisho la 'telnet' kwenye tcp / 4444

Katika dirisha la telnet (yaani TeraTerm) typenrf52.dap apreg 1 0x04hii inarudi 0x00000000 kuonyesha chip inalindwa. Kisha typenrf52.dap apreg 1 0x04 0x01and thennrf52.dap apreg 1 0x04hii inarudi 0x00000001 kuonyesha kuwa chip sasa imewekwa kwa ERASEALL kwenye kuwasha upya kwingine.

Funga uunganisho wa telnet na pia utumie Ctrl-C kutoka kwa mpango wa openOCD katika haraka ya amri na kisha mzunguko wa nguvu moduli ya nRF52 na itakuwa tayari kuandaa.

Sasa jaribu tena kuangaza kifaa laini.

Sasa unaweza kupanga moduli ya nRF52 kutoka Arduino.

Hatua ya 5: Kupanga SKYLAB SKB369

Kupanga SKYLAB SKB369
Kupanga SKYLAB SKB369
Kupanga SKYLAB SKB369
Kupanga SKYLAB SKB369
Kupanga SKYLAB SKB369
Kupanga SKYLAB SKB369

Funga Arduino na usakinishe tena toleo jipya la msaada wa pfod_lp_nrf52 kwa kufuata Sakinisha maelekezo ya msaada wa vifaa vya pfod_lp_nrf52. Pfod_lp_nrf52 ya hivi karibuni ni pamoja na bodi ya uingizwaji ya SKYLAB SKB369 Nano2. Chagua hiyo kama bodi na unaweza kuipanga na Marekebisho ya 3 ya lp_BLE_TempHumidity, lp_BLE_TempHumidity_R3.zip, kama ilivyoelezewa katika Sehemu ya 2.

Ikiwa programu inashindwa. Funga windows zote za Arduino, ondoa kebo za USB, anzisha tena Arduino na unganisha tena programu ya kebo ya USB na unganisha usambazaji wa moduli ya nRF52 tena na ujaribu tena.

Kisha unganisha kupitia pfodApp kuonyesha joto na unyevu wa sasa na wa kihistoria. Mara baada ya kuonyesha njama ya kihistoria, usomaji, na mihuri ya saa millisecond, huhifadhiwa kwenye faili ya kumbukumbu kwenye simu yako na pia inapatikana kwenye skrini ya data ghafi.

Faili ya kumbukumbu pia ina data ya ziada inayofaa kuunda tena viwanja vya tarehe na saa katika lahajedwali. Tazama Tarehe na Wakati wa Arduino ukitumia millis () na pfodApp kwa maelezo

Hatua ya 6: Kuunda Ufafanuzi mpya wa Bodi ya Arduino NRF52

Kuunda Ufafanuzi Mpya wa Bodi ya Arduino NRF52
Kuunda Ufafanuzi Mpya wa Bodi ya Arduino NRF52
Kuunda Ufafanuzi Mpya wa Bodi ya Arduino NRF52
Kuunda Ufafanuzi Mpya wa Bodi ya Arduino NRF52
Kuunda Ufafanuzi Mpya wa Bodi ya Arduino NRF52
Kuunda Ufafanuzi Mpya wa Bodi ya Arduino NRF52
Kuunda Ufafanuzi Mpya wa Bodi ya Arduino NRF52
Kuunda Ufafanuzi Mpya wa Bodi ya Arduino NRF52

Ili kusaidia bodi mpya ya nRF52 unahitaji a) ongeza saraka mpya chini ya saraka ya anuwai na faili za bodi na b) hariri faili ya board.txt kuongeza bodi mpya kwa Arduino.

Kuongeza tofauti mpya ya bodi ya nRF52

Kama ilivyoelezewa katika Sehemu ya 1, Kusanikisha msaada wa vifaa vya pfod_lp_nrf52, pata saraka ndogo ya vifaa vya kifurushi cha sandeepmistry ambayo umesasisha na msaada wa pfod_lp_nrf52. Fungua / vifaa / nRF5 / 0.6.0 / saraka ndogo na uunda saraka mpya ya bodi yako mpya, kmSKYLAB_SKB369_Nano2replacement Katika / vifaa / nRF5 / 0.6.0 / anuwai mpya / SKYLAB_SKB369_Nano2replacement directory tengeneza faili tatu tofauti.h, variant.cpp na pins_arduino.h Unaweza kuzinakili kutoka kwa saraka zingine tofauti za bodi. Kwa uwekaji wa SKYLAB_SKB369_Nano2, mwanzoni nilinakili faili kutoka kwa lahaja ya RedBear_BLENano2.

pins_arduino.h faili

Faili ya pins_arduino.h haiitaji kubadilishwa. Inajumuisha tu faili ya lahaja.h

lahaja.h faili

Hariri faili ya variant.h kufafanua jumla ya pini ambazo bodi yako itakuwa nayo, PINS_COUNT

KUMBUKA: Katika kifurushi cha sandeepmistry, mipangilio NUM_DIGITAL_PINS, NUM_ANALOG_INPUTS na NUM_ANALOG_OUTPUTS hupuuzwa

Ikiwa bodi yako itafanya pini za Analog zaidi au chini ipatikane, sasisha / * Pini za Analog * / sehemu ya faili ya variants.h.

KUMBUKA: Kwa bodi za NanoV2 na SKYLAB pini za Analog zimepangwa kwa pini za Dijitali A0 == D0 nk

Hii sio muhimu. Unaweza kupeana Pembejeo za Analog kwa pini yoyote rahisi ya Arduino. Angalia basi bluu / lahaja.h na faili za samawati / tofauti.cpp kwa mfano.

Chip ya nRF52832 ina pini 8 za pembejeo za analog, lakini bodi ya SKYLAB_SKB369_Nano2replacement inafanya 6 kati yao ipatikane na Nano2.

Nambari zote za pini, isipokuwa RESET_PIN, katika faili ya variant.h ni nambari za pini za Arduino. Hiyo ni #fafanua PIN_A0 (0) inamaanisha kuwa D0 katika mchoro wa arduino ni pini sawa na A0. RESET_PIN ni ubaguzi. Nambari hiyo ni nRF52823 nambari ya pini ya chip na 21 ndio chaguo pekee halali. Walakini msaada wa pfod_lp_nrf52 hauwezeshi kubandika tena kwenye nRF52832

variant.cpp faili

Kuna kiingilio kimoja tu katika faili ya variant.cpp, safu ya g_ADigitalPinMap ambayo inachora nambari za pini za Arduino kwa nRF52832 chip P0.. pini

KUMBUKA: Kwenye bodi za NanoV2 na SKYLAB, pini za Analog za Arduino A0, A1… ni sawa na pini za dijiti za Arduino D0, D1… kwa hivyo viingilio vya kwanza kwenye g_ADigitalPinMap LAZIMA ramani kwa nambari za siri za AINx kwenye chip ya nRF52832

Kwa Pembejeo za Analog bodi yako hufanya ipatikane, maingizo hayo katika g_ADigitalPinMap lazima ramani nRF52832 AIN0, AIN1, AIN2, nambari za siri. i.e. AIN0 ni chip pin P0.02, AIN1 ni chip pin P0.03 nk ona mpangilio wa siri wa nRF52832 hapo juu.

Tumia (uint32_t) -1 kwa ramani zisizo sahihi. Kwa mfano bodi ya uwekaji wa SKYLAB_SKB369_Nano2 haina kujengwa katika LED, D13, kwa hivyo msimamo wake umepangwa kwa (uint32_t) -1

Katika pfod_lp_nrf52.zip Redbear NanoV2, SKYLAB SKB369 na GT832E_01 saraka ndogo ndogo zina picha zinazoonyesha uchoraji uliowekwa na variant.cpp. (Tazama picha hapo juu)

Kwa upande wa SKYLAB SKB369, kuna pini nyingi za kuchagua. Ni za kutosha tu zimepangwa ili kufanana na NanoV2. Katika kesi ya GT832E_01, pini zote zinazopatikana zinahitaji kupangiliwa ramani. Hata wakati huo kuna pembejeo tatu tu (3) za analog zinazopatikana badala ya sita (6) kwenye NanoV2. Pamoja na hii pini mbili za NFC, P0.09 na P0.10, zinahitaji kusanidiwa tena kama ya GPIO. Angalia Kusanidi tena pini za NRF52 NFC kama GPIO hapa chini.

Kusasisha faili ya board.txt

Hapa kuna kuingia kwa SKYLAB_SKB369_Nano2 katika faili ya board.txt.

## SKYLAB_SKB369 Nano2 badala ya SKYLAB_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 = 524,288 SKYLAB_SKB369_NANO2_REPLACEMENT.upload.setup_command = usafirishaji kuchagua Swd; SKYLAB_SKB369_NANO2_REPLACEMENT.upload.use_1200bps_touch = uongo SKYLAB_SKB369_NANO2_REPLACEMENT.upload.wait_for_upload_port = uongo SKYLAB_SKB369_NANO2_REPLACEMENT.upload.native_usb

SKYLAB_SKB369_NANO2_REPLACEMENT.bootloader.tool = sandeepmistry: openocd

SKYLAB_SKB369_NANO2_REPLACEMENT.build.mcu = gamba-m4

SKYLAB_SKB369_NANO2_REPLACEMENT.build.f_cpu = 16,000,000 SKYLAB_SKB369_NANO2_REPLACEMENT.build.board = SKYLAB_SKB369_Nano2replacement SKYLAB_SKB369_NANO2_REPLACEMENT.build.core = nRF5 SKYLAB_SKB369_NANO2_REPLACEMENT.build.variant = SKYLAB_SKB369_Nano2replacement SKYLAB_SKB369_NANO2_REPLACEMENT.build.variant_system_lib = SKYLAB_SKB369_NANO2_REPLACEMENT.build.extra_flags = -DNRF52 SKYLAB_SKB369_NANO2_REPLACEMENT.build.float_flags = -mfloat -abi = ngumu -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

Mipangilio ya board.txt

Maoni - mistari inayoanza na # ni maoni.

Kiambishi awali - kila bodi inahitaji kiambishi awali cha kipekee ili kutambua maadili yake. Hapa kiambishi awali niSKYLAB_SKB369_NANO2_REPLACEMENT.

Jina - Mstari wa jina la SKYLAB_SKB369_NANO2_REPLACEMENT.inaelezea jina la bodi hii kuonyesha kwenye menyu ya bodi ya Arduino.

Zana ya kupakia - Kizuizi cha upakuaji cha SKYLAB_SKB369_NANO2_REPLACEMENT.inabainisha zana gani ya kutumia kupakia. Ikiwa unatumia Kitatuaji cha Chembe kisha tumia itifaki = cmsis-dap kama inavyoonyeshwa hapo juu.

Bootloader - Mstari huu ni sawa kwa bodi zote kwenye bodi hizi.txt

Jenga - Mistari miwili tu inahitaji kusasishwa kwenye kizuizi hiki. Mstari wa tofauti wa SKYLAB_SKB369_NANO2_REPLACEMENT.build.ubainisha bodi hii ni jina la saraka katika saraka ndogo tofauti. Bodi ya SKYLAB_SKB369_NANO2_REPLACEMENT.build ni thamani iliyoongezwa kwa ARDUINO_ na kisha kufafanuliwa wakati wa kuandaa nambari. mf. -DARDUINO_SKYLAB_SKB369_Nano2kuwekwa upya Hii inakuwezesha kuwezesha / kuzima sehemu za nambari kwa bodi maalum.

Saa ya chini ya Freq - Mstari huu, SKYLAB_SKB369_NANO2_REPLACEMENT.menu.lfclk.lfrc.build.lfclk_flags, inabainisha chanzo cha saa ya masafa ya chini, inayotumiwa kwa lp_timer. Kuna chaguzi tatu, -DUSE_LFXO, -DUSE_LFRC na -DUSE_LFSYNT. Chaguo bora ni -DUSE_LFXO, ikiwa bodi ina kioo cha nje cha 32Khz. Ikiwa sivyo basi tumia -DUSE_LFRC, ambayo hutumia oscillator ya ndani ya RC na inachora zaidi ya sasa, ~ 10uA zaidi, na ni sawa mara chache sana. Usitumie -DUSE_LFSYNT kwani hii inafanya chip kuendeshwa kila wakati na kusababisha mAs sasa kuteka.

Softdevice - pfod_lp_nrf52 inasaidia tu chips NRF52 na softdevice s132 kwa hivyo hakuna mabadiliko ya hitaji la kizuizi hiki, isipokuwa kiambishi awali.

Kusanidi tena pini za NRF52 kama za GPIO

Kuwa chaguomsingi kwenye pini za nRF52, P0.09 na P0.10 zimesanidiwa kutumiwa kama NFC na zinatarajia kuunganishwa na antena ya NFC. Ikiwa unahitaji kutumia hizi kama pini za I / O za kusudi la jumla (GPIO's) basi unahitaji kuongeza ufafanuzi, -DCONFIG_NFCT_PINS_AS_GPIOS, kwa bodi hiyo… menyu.softdevice.s132.build.extra_flags hukusanya mipangilio kwenye faili ya board.txt.

Kwa mfano pfod_lp_nrf52.zip, inasanidi tena pini za GT832E_01 kwa matumizi kama I / O. Sehemu ya GT832E_01 ya bodi hii, katika faili ya board.txt, ina ufafanuzi ufuatao ulioongezwa

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

Hati ya kiunganishi katika pfod_lp_nrf52.zip pia imebadilishwa ili kuhifadhi mpangilio huu na hauitaji kubadilishwa.

Hatua ya 7: Hitimisho

Mafunzo haya yamewasilisha ubadilishaji wa Redbear NanoV2 ukitumia moduli ya SKYLAB SKB369. Mfuatiliaji wa Unyevu wa Joto la joto / jua ulitumika kama mfano mradi wa nguvu ya chini sana wa BLE huko Arduino kwa moduli ya SKYLAB. Ugavi mikondo ya ~ 29uA ambapo inafanikiwa kwa kuweka vigezo vya unganisho. Hii ilisababisha maisha ya betri ya sarafu ya CR2032 ~ miezi 10. Muda mrefu kwa seli za sarafu za juu na betri. Kuongeza seli mbili za bei rahisi za jua kupanua maisha ya betri kwa 50% au zaidi. Taa ya chumba mkali au taa ya dawati inatosha kuwezesha mfuatiliaji kutoka kwa seli za jua.

Mafunzo haya pia yalifunikwa kuondoa kinga ya chip kutoka kwa nRF52 iliyowekwa mapema na jinsi ya kuanzisha ufafanuzi mpya wa bodi ili kufanana na PCB / mzunguko wako mwenyewe

Hakuna programu ya Android inahitajika. pfodApp hushughulikia yote hayo.

Ilipendekeza: