Բովանդակություն:
- Քայլ 1. Ինչու՞ է Nano V2 փոխարինումը:
- Քայլ 2. Բաղադրիչների ընտրություն և կառուցում
- Քայլ 3: Շինարարություն
- Քայլ 4. NRF52 ծածկագրման պաշտպանության դրոշի հեռացում
- Քայլ 5. SKYLAB SKB369 ծրագրավորում
- Քայլ 6. Ստեղծեք Arduino NRF52 խորհրդի նոր սահմանում
- Քայլ 7: Եզրակացություն
Video: Հեշտ Շատ ցածր էներգիայի BLE Arduino- ում Մաս 3 - Nano V2 փոխարինում - Rev 3: 7 քայլ (նկարներով)
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:48
Թարմացում ՝ 7 ապրիլի, 2019 թ. - lp_BLE_TempHumidity Rev 3, ավելացնում է Ամսաթիվ/ժամ գծագրեր ՝ օգտագործելով pfodApp V3.0.362+և տվյալների ուղարկման ժամանակ ավտոմատ ճնշում
Թարմացում ՝ 24 մարտի 2019 - lp_BLE_TempHumidity Rev 2, ավելացնում է սյուժեի ավելի շատ տարբերակներ և i2c_ClearBus, ավելացնում է GT832E_01 աջակցություն
Ներածություն
Այս ձեռնարկը ՝ A Redbear Nano V2 Replacement- ը, 3 -րդ մասն է: Սա այս նախագծի 2 -րդ վերանայումն է: Revision 2 PCB- ն ներառում է մետաղադրամի բջիջի և սենսորի տեղադրում, պարզեցնում է շինարարությունը և բարելավում օդի հոսքը սենսորի շուրջը ՝ պաշտպանելով այն արևի ուղիղ ճառագայթներից: Վերանայումը 1 այստեղ է:
Մաս 1 - Շատ ցածր էներգիայի BLE սարքերի ստեղծում, որոնք դյուրին դարձան Arduino- ի միջոցով ՝ Arduino- ն կարգավորելով nRF52 ցածր էներգիայի սարքերով, ծրագրավորման մոդուլով և չափելով մատակարարման հոսանքը: Այն նաև ընդգրկում է ցածր էներգիայի մասնագիտացված ժամաչափեր և համեմատիչներ և անջատված մուտքեր և օգտագործելով pfodApp ՝ nRF52 սարքին միանալու և վերահսկելու համար:
Մաս 2 - Շատ ցածր էներգիայի ջերմաստիճանի խոնավության մոնիտորը ներառում է Redbear Nano V2 մոդուլը և Si7021 ջերմաստիճանի / խոնավության տվիչը ՝ ցածր էներգիայի մարտկոց / արևային մոնիտոր կառուցելու համար: Այն նաև ներառում է Si7021 գրադարանի փոքր հզորության փոփոխում, BLE սարքի կարգավորում ՝ ընթացիկ սպառումը մինչև 29uA հասցնելու և ձեր բջջայինի համար ջերմաստիճանի/խոնավության հարմարեցված ցուցադրման նախագծում:
Մաս 3 - Redbear Nano V2 փոխարինում, այս մեկը, ներառում է այլ nRF52 մոդուլների օգտագործումը ՝ Nano V2- ի փոխարեն: Այն ներառում է մատակարարման բաղադրիչների ընտրություն, շինարարություն, հեռացնել nRF52 չիպերի ծրագրավորման պաշտպանությունը, օգտագործել NFC կապում որպես սովորական GPIO և սահմանել նոր nRF52 տախտակ Arduino- ում:
Այս հրահանգը գործնական կիրառում է 1 -ին մասի կառուցում ՝ շատ ցածր էներգիայի BLE սարքեր, որոնք հեշտացվել են Arduino- ի միջոցով ՝ կառուցելով շատ ցածր էներգիայի BLE ջերմաստիճանի և խոնավության մոնիտոր ՝ օգտագործելով SKYLAB SBK369 տախտակը ՝ որպես Nano V2 փոխարինող: Այս ձեռնարկը ներառում է, թե ինչպես ստեղծել տախտակի նոր սահմանում և ինչպես հեռացնել nRF52 ծրագրավորման պաշտպանությունը, որը թույլ կտա այն կրկին ծրագրավորել: Այս ձեռնարկը օգտագործում է 2 -րդ մասի նույն ուրվագիծը ՝ ցածր էներգիայի սպառման համար նույն կարգավորված BLE պարամետրերով և կարող է սնվել միայն մարտկոցից, կամ մարտկոցից + արևից կամ արևից: LEածր էներգիայի համար BLE պարամետրերի կարգավորումը լուսաբանվել է 2 -րդ մասում
Rev 3 of lp_BLE_TempHumidity- ը տվյալները գծագրում է ըստ ամսաթվի և ժամանակի ՝ օգտագործելով միայն Arduino millis (): Տես Arduino ամսաթիվը և ժամը ՝ օգտագործելով millis () և pfodApp ՝ օգտագործելով pfodApp- ի վերջին տարբերակը (V3.0.362+):
Rev 4 of pfod_lp_nrf52.zip- ը նաև աջակցում է GT832E_01 մոդուլը, և այս ձեռնարկը ներառում է NFC nRF52 կապում որպես ստանդարտ GPIO- ի օգտագործումը:
Այստեղ կառուցված մոնիտորը տարիներ շարունակ կաշխատի Coin Cell- ով կամ 2 x AAA մարտկոցներով, նույնիսկ ավելի երկար ՝ արևային օժանդակությամբ: Ինչպես նաև ցուցադրում է ընթացիկ ջերմաստիճանը և խոնավությունը, մոնիտորը պահում է 10 րոպեանոց ընթերցումների վերջին 36 ժամը և ժամային ընթերցումների վերջին 10 օրերը: Դրանք կարող են գծանշվել ձեր Android բջջայինի վրա և արժեքները պահպանվել տեղեկամատյանում: Android ծրագրավորում չի պահանջվում, pfodApp- ը զբաղվում է այդ ամենով: Android- ի ցուցադրումն ու գծապատկերն ամբողջությամբ վերահսկվում են ձեր Arduino էսքիզով, այնպես որ կարող եք այն հարմարեցնել ըստ պահանջի:
Մաս 2 -ը nRF52832 BLE բաղադրիչի համար օգտագործեց Redbear Nano V2 տախտակ: Այս նախագիծը այն փոխարինում է ավելի էժան SKYLAB SKB369 տախտակով: Ինչպես 2 -րդ մասում, ջերմաստիճանի / խոնավության սենսորի համար օգտագործվում է Sparkfun Si7021 ճեղքման տախտակը: Si7021- ի հետ օգտագործվում է փոփոխված ցածր էներգիայի գրադարան:
Քայլ 1. Ինչու՞ է Nano V2 փոխարինումը:
i) Nano V2- ը մի քանի ամիս արտադրությունից դուրս էր և կարծես չի տեղավորվում Particle.io շարքում, ուստի պարզ չէ, թե որքան ժամանակով այն հասանելի կլինի:
ii) Nano V2- ն ավելի թանկ է: Այնուամենայնիվ, այն ունի նաև լրացուցիչ հնարավորություններ: Տես ներքեւում.
iii) Nano V2- ը երկու կողմերում էլ ունի բաղադրիչներ, ինչը նրան տալիս է ավելի բարձր պրոֆիլ և ավելի դժվար է դարձնում տեղադրումը:
iv) Nano V2- ում հասանելի են սահմանափակ մուտքի/ելքային կապիչներ, իսկ D6- ից D10- ի օգտագործումը պահանջում է թռչող կապանքներ:
Թեև Nano V2 տախտակն ավելի թանկ է, քան SKYLAB SKB369 տախտակը, ~ US17 ընդդեմ 5 US5, Nano V2- ն իսկապես ավելի շատ հնարավորություններ ունի: Nano V2- ը ներառում է 3.3 Վ կարգավորիչ և մատակարարման կոնդենսատորներ, լրացուցիչ բաղադրիչներ nRF52 DC/DC փոխարկիչից օգտվելու համար, չիպային ալեհավաք և uFL SMT ալեհավաքի միակցիչ:
Մեկ այլ այլընտրանք է GT832E_01 մոդուլը, որն օգտագործվում է www.homesmartmesh.com- ի կողմից: Pfod_lp_nrf52.zip- ի Rev 4 -ը նաև աջակցում է GT832E_01 մոդուլի ծրագրավորմանը: SKYLAB SKB369- ը և GT832E_01- ը հասանելի են https://www.aliexpress.com կայքից
Redbear- ը (Particle.io) ունի նաև մերկ մոդուլ ՝ առանց 3V3 կարգավորիչի, DC/DC բաղադրիչների կամ 32 ԿՀց բյուրեղյա բաղադրիչների:
Ուրվագիծ
Այս նախագիծը ունի 4 հարաբերական անկախ մաս ՝
Բաղադրիչի ընտրություն և կառուցում nRF52 ծածկագրման պաշտպանության դրոշի հեռացում և էսքիզների ծրագրավորում Ստեղծեք նոր Arduino nRF52 տախտակի սահմանում Վերականգնում nRF52 NFC կապում որպես GPIO- ի
Քայլ 2. Բաղադրիչների ընտրություն և կառուցում
Բաղադրիչի ընտրություն
Բացի մաս 2 -ում ընտրված nRF52832 և Si7021 բաղադրիչներից, այս նախագիծը ավելացնում է 3.3 Վ կարգավորիչ և մատակարարման կոնդենսատորներ:
Լարման կարգավորիչի բաղադրիչը
Այստեղ օգտագործվող կարգավորիչը MC87LC33-NRT է: Այն կարող է աշխատել մինչև 12 Վ մուտքի համար և ունի հանգիստ հոսանք <3.6uA, սովորաբար ՝ 1.1uA: Nano V2- ը, որն օգտագործվում էր TLV704 կարգավորիչով, ունի մի փոքր ավելի բարձր հանդարտ հոսանք ՝ սովորաբար 3.4uA և կարող է կարգավորել մուտքային ավելի բարձր լարման ՝ մինչև 24 Վ: Փոխարենը ընտրվեց MC87LC33-NRT- ը, քանի որ նրա տվյալների թերթը սահմանում է, թե ինչպես է այն արձագանքում, քանի որ մուտքային լարումը ընկնում է 3.3 Վ-ից ցածր, մինչդեռ, ինչպես TLV704 տվյալների թերթը `ոչ:
TLV704- ը սահմանում է նվազագույն 2.5 Վ մուտքային լարումը, և տվյալների թերթից պարզ չէ, թե ինչ կլինի դրանից ցածր: NRF52832- ը կիջնի մինչև 1.7 Վ, իսկ Si7023- ը ՝ մինչև 1.9 Վ: MC87LC33-NRT- ն, մյուս կողմից, սահմանում է մուտքային/ելքային լարման տարբերություններ մինչև 0 Վ ցածր հոսանքների դեպքում (տվյալների թերթիկի նկ. 18): Այսպիսով, հաշվի առնելով բաղադրիչների ընտրությունը, MC87LC33-NRT- ն ընտրվեց, քանի որ այն ունի որոշակի կատարողականություն:
Մատակարարման կոնդենսատորներ
MC87LC33-NRT կարգավորիչին կայունության և արձագանքման համար անհրաժեշտ են որոշ մատակարարման կոնդենսատորներ: Տվյալների թերթիկում առաջարկվում է ելքային կոնդենսատոր> 0.1uF: SKYLAB SBK369- ը նաև նշում է 10uF/0.1uF կոնդենսատորներ տախտակին մոտ գտնվող մատակարարման վրա: Ավելի մեծ կոնդենսատորներն օգնում են մատակարարել nRF52 TX ընթացիկ ցատկերը: Այստեղ օգտագործվել են 4 x 22uF 25V և 3 x 0.1uF 50V կերամիկական կոնդենսատորներ: SKYLAB SBK369- ի մոտ տեղադրվել է մեկ 22uF և 0.1uF կոնդենսատոր, կայունությունը ապահովելու համար ՝ MC87LC33-NRT- ի ելքին մոտ ՝ 0.1uF, իսկ MC87LC33-NRT- ի մուտքի վրա ՝ 22uF և 0.1uF: ևս 2 x 22uF կոնդենսատորներ, որտեղ զոդվում են Vin/GND կապում որպես հետագա ընթացիկ ջրամբար: Համեմատության համար նշենք, որ NanoV2 տախտակը TLV704 կարգավորիչի մուտքի վրա ունի 22uF / 0.1uF և ելքի վրա `0.1uF:
Լրացուցիչ հոսանքի ջրամբարի կոնդենսատորները տեղադրվել են 3.3 Վ կարգավորիչի մուտքի վրա, որպեսզի արևային բջիջների հետ աշխատելիս դրանք ավելի բարձր լարման լիցքավորվեն: Ավելի բարձր լարման լիցքավորումը հավասար է ավելի շատ հոսանքի պահեստավորմանը `Tx ցատկերը մատակարարելու համար:
Կերամիկական X5R կոնդենսատորները օգտագործվում են, քանի որ դրանք ունեն ցածր շարքի դիմադրություն և ցածր արտահոսքի հոսանք: Սովորաբար դիմադրությունը 100, 000MΩ կամ 1000MΩ - µF է, որը երբևէ ավելի քիչ է: Այսպիսով, 22uF- ի համար մենք ունենք 22000MΩ, այսինքն `0.15nA արտահոսք 3.3V- ով կամ 0.6nA չորս 22uF չորս կոնդենսատորների համար: Դա աննշան է: Համեմատության համար Lowածր ESR- ի, ցածր արտահոսքի Panasonic էլեկտրոլիտիկ կոնդենսատորների արտահոսքի հոսանքները <0.01CV են: Այսպիսով, 22uF 16V կոնդենսատորի համար արտահոսքը <10uA է: Նշում. Սա արտահոսք է անվանական լարման դեպքում, 16V այս դեպքում: Ավելի ցածր լարման դեպքում արտահոսքն ավելի ցածր է, այսինքն ՝ <2.2uA ՝ 3.3V- ում:
Մասերի ցուցակ
Մեկ միավորի մոտավոր արժեքը ՝ 2018 թվականի դեկտեմբեր ամսվա դրությամբ, ~ 61 ԱՄՆ դոլար, առանց առաքման և ծրագրավորողի ՝ առանց մաս 1 -ի
- SKYLAB SKB369 5 5 ԱՄՆ դոլար, օրինակ ՝ Aliexpress
- Sparkfun Si7021 ճեղքման տախտակ ՝ 8 ԱՄՆ դոլար
- 2 x 53 մմ x 30 մմ 0.15W 5V արևային բջիջներ, օրինակ. Overfly 1. 1,10 ԱՄՆ դոլար
- 1 x PCB SKYLAB_TempHumiditySensor_R2.zip 25 25 ԱՄՆ դոլար 5 զեղչով www.pcbcart.com
- 1 x MC78LC33 3.3V կարգավորիչ, օրինակ. Digikey MC78LC33NTRGOSCT-ND ~ 1 ԱՄՆ դոլար
- 2 x 0.1uF 50V կերամիկական C1608X5R1H104K080A օրինակ. Digikey 445-7456-1-ND 0.3 0.3 ԱՄՆ դոլար
- 4 x 22uF 16V կերամիկական GRM21BR61C226ME44L օր. Digikey 490-10747-1-ND ~ 2 ԱՄՆ դոլար
- 1 x BAT54CW, օրինակ. Digikey 497-12749-1-ND 0.5 0.5 ԱՄՆ դոլար
- 1 x 470R 0.5W 1% դիմադրություն օրինակ. Digikey 541-470TCT-ND 0. 0,25 ԱՄՆ դոլար
- 1 x 10V 1W zener SMAZ10-13-F օրինակ. Digikey SMAZ10-FDICT-ND 0.5 0.5 ԱՄՆ դոլար
- 3 մմ x 12 մմ նեյլոնե պտուտակներ, օրինակ. Ayեյքար HP0140 ~ 3 ԱՄՆ դոլար
- 3 մմ x 12 մմ նեյլոնե ընկույզներ, օրինակ. Ayեյքար HP0146 ~ 3 ԱՄՆ դոլար
- Scotch Permanent Mounting Tape Cat 4010 օրինակ. Amazon- ից 6. 6,6 ԱՄՆ դոլար
- CR2032 մարտկոցի կրիչ, օրինակ. HU2032-LF 1.5 1.5 ԱՄՆ դոլար
- CR2032 մարտկոց ~ 1 ԱՄՆ դոլար
- Perspex թերթ ՝ 3,5 մմ և 8 մմ
- pfodApp ~ 10 ԱՄՆ դոլար
- Oldոդման կպցնել օրինակ Ayեյքար NS-3046 ~ 13 ԱՄՆ դոլար
Քայլ 3: Շինարարություն
Նախագիծը կառուցված է փոքր PCB- ի վրա: PCB- ն արտադրվել է pcbcart.com- ի կողմից Gerber- ի այս ֆայլերից `SKYLAB_TempHumiditySensor_R2.zip
Սա սխեմատիկ է (pdf տարբերակ)
Նախ կպցրեք SMD բաղադրիչները, այնուհետև ամրացրեք SKYLAB SKB369 տախտակը
Գրեթե բոլոր բաղադրիչները մակերեսային ամրացման սարքեր են (SMD): Կոնդենսատորները և IC- ները կարող են դժվար լինել ձեռքով զոդել: Առաջարկվող մեթոդն այն է, որ PCB- ն պահվի փոխնակ և մի փոքր քանակությամբ կպցնել կպցնել բարձիկներին և տեղադրել SMD բաղադրիչները, բացառությամբ SKB369 տախտակի վրա: Այնուհետև, օգտագործելով ջերմային ատրճանակ, ջերմություն կիրառեք PCB- ի ներքևում, մինչև զոդման մածուկը հալվի, այնուհետև արագ անցեք տախտակի վերևով ՝ զգույշ լինելով, որ բաղադրիչները չփչացնեն: Վերջապես մի փոքր ծայրով կպցրեք եռակցման երկաթով: Carefulգույշ եղեք կոնդենսատորների և դիմադրության հետ, քանի որ հեշտ է հալեցնել երկու ծայրերը և մի մասը զոդելիս տարրը թուլանալ:
Այս վերանայումը ավելացնում է լրացուցիչ 22uF 16V կերամիկական կոնդենսատորներ: Այս լրացուցիչ կոնդենսատորները նվազեցնում են մարտկոցից վերցված ընթացիկ թռիչքները, ինչպես նաև նվազեցնում լարման անկումները, երբ սնվում են արևային բջիջներից: Քանի դեռ արևային բջիջների լարումը մնում է մարտկոցի լարումից բարձր, ապա մարտկոցից հոսանք չի հանվում:
SMD բաղադրիչները ամրացնելուց հետո կարող եք զոդել SKYLAB SKB369 տախտակին: SKB369 ներդիրների մի կողմում կան փորձարկման կետերի երկու անցքեր: Օգտագործեք երկու կապում ստվարաթղթե հիմքի մեջ `SKB369 տախտակը տեղադրելու և կապումներն ուշադիր հավասարեցնելու համար: (Տե՛ս վերևի օրինակը ՝ օգտագործելով Revision 1 PCB- ն) Այնուհետև զոդեք հակառակ կողմի մեկ քորոցը, որպեսզի տախտակն իր տեղում պահի, մինչ մյուս կապիչները կպցնելը:
Ավարտված մասում ուշադրություն դարձրեք Gnd կապի լարին CLK- ից GND- ին: Սա տեղադրված է ծրագրավորումից հետո, որպեսզի CLK մուտքի վրա աղմուկը կանխի nRF52 չիպը բարձր ընթացիկ կարգաբերման ռեժիմը:
Մոնտաժային պատյան
Մոնտաժի պատյանը պատրաստված էր երկու կտոր պերսպեքսից ՝ 110 մմ x 35 մմ, 3 մմ հաստությամբ: Արեգակնային բջիջների տակ գտնվող 3.5 մմ կտորը կպչել է 3 մմ նեյլոնե պտուտակներ վերցնելու համար: Այս վերանայված կառուցվածքը ավելի պարզեցված է, քան Rev 1 -ը և բարելավում է սենսորի շուրջ օդի հոսքը: Յուրաքանչյուր ծայրում լրացուցիչ անցքերը տեղադրման համար են, օրինակ `օգտագործելով մալուխային կապեր:
Քայլ 4. NRF52 ծածկագրման պաշտպանության դրոշի հեռացում
Միացրեք Partերմաստիճանի/խոնավության տախտակը 1 -ին մասում նկարագրված merրագրավորողին, ինչպես ցույց է տրված վերևում:
Արևային բջիջներն ու մարտկոցները միացված չեն, Vin- ը և Gnd- ը միացված են ծրագրավորողի Vdd և Gnd (դեղին և կանաչ կապեր), իսկ SWCLK և SWDIO միացված են ծրագրավորողի վերնագրի տախտակի Clk և SIO (Սպիտակ և մոխրագույն կապարներ)
NRF52 ծրագրի պաշտպանությունը հեռացնելը
Սկանդինավյան Semi - Debug and Trace էջից DAP - Debug Access Port: Արտաքին վրիպազերծիչը կարող է սարքին մուտք գործել DAP- ի միջոցով: DAP- ն իրականացնում է ստանդարտ ARM® CoreSight ™ Serial Wire Debug Port (SW-DP): SW-DP- ն իրականացնում է Serial Wire Debug արձանագրությունը (SWD), որը երկփին սերիական ինտերֆեյս է ՝ SWDCLK և SWDIO
Կարևոր է. SWDIO գիծն ունի ներքին ձգման դիմադրություն: SWDCLK գիծն ունի ներքին քաշվող դիմադրություն:
CTRL -AP - Կառավարման մուտքի նավահանգիստ: Կառավարման մուտքի նավահանգիստը (CTRL-AP) սովորական մուտքի պորտ է, որը հնարավորություն է տալիս վերահսկել սարքը, նույնիսկ եթե DAP- ի մյուս մուտքի նավահանգիստներն անջատված են մուտքի նավահանգստի պաշտպանությամբ: Մուտքի նավահանգստի պաշտպանությունը արգելափակում է վրիպազերծիչը կարդալու և գրելու մուտքը CPU- ի բոլոր գրանցամատյաններին և հիշողության քարտեզագրված հասցեներին: Անջատեք մուտքի նավահանգստի պաշտպանությունը: Մուտքի նավահանգստի պաշտպանությունը կարող է անջատվել միայն CTRL-AP- ի միջոցով ERASEALL հրաման արձակելու միջոցով: Այս հրամանը կջնջի Flash- ը, UICR- ը և RAM- ը:
Ընտրեք CMSIS-DAP- ը որպես Particle's Debugger- ի ծրագրավորող և ընտրեք nRF5 Flash SoftDevice
Եթե ֆլեշն աշխատում է, ապա դա նորմալ է, բայց հաճախ մոդուլները պաշտպանված կլինեն վերակազմակերպումից, և դուք կստանաք այս սխալի ելքը Arduino պատուհանում
Բացեք On-Chip Debugger 0.10.0-dev-00254-g696fc0a (2016-04-10-10: 13) Լիցենզավորված է GNU GPL v2- ով ՝ վրիպակների մասին հաշվետվությունների համար կարդացեք https://openocd.org/doc/doxygen/bugs.html debug_level: 2 Տեղեկություն. տրանսպորտի միայն մեկ տարբերակ; autoselect 'swd' ադապտերների արագություն `10000 կՀց cortex_m reset_config sysresetreq Տեղեկություն. CMSIS-DAP: SWD Աջակցվող տեղեկատվություն. CMSIS-DAP: Ինտերֆեյս նախնական (SWD) Տեղեկություն. CMSIS-DAP: FW Տարբերակ = 1.10 Տեղեկություն` SWCLK/TCK = TMS = 1 TDI = 0 TDO = 0 nTRST = 0 nRESET = 1 Տեղեկություն. CMSIS-DAP: Ինտերֆեյսը պատրաստ է Տեղեկություն. Նվազեցնել արագության պահանջը. 10000kHz- ից մինչև 5000kHz առավելագույն տեղեկատվություն. Ժամացույցի արագություն 10000 kHz Info: SWD IDCODE 0x2ba01477 Սխալ. Չհաջողվեց գտնել -AP ՝ հիմնական սխալը վերահսկելու համար. Թիրախը դեռ ուսումնասիրված չէ:
Այդ դեպքում անհրաժեշտ է nRF52- ում տեղադրել ERASEALL հրամանի գրանցամատյանը `հիշողությունը մաքրելու և սարքը կրկին ծրագրավորելի դարձնելու համար: SandEepmistry nRF52- ով մատակարարված openOCD- ի տարբերակը չի ներառում apreg հրամանը, որն անհրաժեշտ է ERASEALL հրամանատարական գրանցամատյանում գրելու համար, այնպես որ անհրաժեշտ է տեղադրել ավելի ուշ տարբերակ:
Տեղադրեք OpenOCD տարբերակը OpenOCD-20181130 կամ ավելի բարձր: Windows- ի նախնական տարբերակը հասանելի է https://gnutoolchains.com/arm-eabi/openocd/ Վերջին կոդը հասանելի է
Բացեք հրամանի տողը և փոխեք dir- ը OpenOCD- ի տեղադրման գրացուցակին և մուտքագրեք հրամանը
bin / openocd.exe -d2 -f ինտերֆեյս/cmsis -dap.cfg -f target/nrf52.cfg
Արձագանքն է
Բացեք On-Chip Debugger 0.10.0 (2018-11-30) [https://github.com/sysprogs/openocderly Լիցենզավորված է GNU GPL v2- ի ներքո Սխալի հաշվետվությունների համար կարդացեք https://openocd.org/doc/doxygen/ bugs.html debug_level: 2 Տեղեկություն. առաջին հասանելի նստաշրջանի «swd» ավտոմատ ընտրություն: Անտեսելու համար օգտագործեք «ընտրեք տրանսպորտը»: ադապտերների արագություն ՝ 1000 կՀց cortex_m reset_config sysresetreq Տեղեկություն. 6666 նավահանգստում լսելը tcl կապերի մասին Տեղեկություն. Լսելով 4444 նավահանգստում հեռահաղորդակցման համար Տեղեկություններ ՝ CMSIS-DAP: SWD Աջակցվող տեղեկատվություն. Ինտերֆեյսի սկզբնականացված (SWD) Տեղեկություն ՝ SWCLK/TCK = 1 SWDIO/TMS = 1 TDI = 0 TDO = 0 nTRST = 0 nRESET = 1 Տեղեկություն ՝ CMSIS-DAP: Ինտերֆեյսի պատրաստ տեղեկատվություն. Ժամացույցի արագություն 1000 կՀց Տեղեկություն ՝ SWD DPIDR 0x2ba01477 Սխալ: Չհաջողվեց գտնել MEM-AP- ն ՝ հիմնական տեղեկությունները վերահսկելու համար. 3333 նավահանգստում լսելով gdb միացումները
Այնուհետեւ բացեք տերմինալի պատուհան, օրինակ. TeraTerm (Windows) կամ CoolTerm (Mac) և միացեք 127.0.0.1 պորտին 4444
Հեռախոսային պատուհանը ցույց կտա a>, իսկ հրամանի տողում `Info:
Հեռախոսային պատուհանում (այսինքն TeraTerm) typenrf52.dap apreg 1 0x04 այս վերադարձը 0x00000000 ցույց է տալիս, որ չիպը պաշտպանված է: Այնուհետև typenrf52.dap apreg 1 0x04 0x01 և thennrf52.dap apreg 1 0x04 այս վերադարձնում է 0x00000001 ցույց տալով, որ չիպը այժմ դրված է ERASEALL հաջորդ վերագործարկման ժամանակ:
Փակեք telnet կապը և օգտագործեք Ctrl-C ՝ հրամանի տողում openOCD ծրագրից դուրս գալու համար, այնուհետև միացրեք nRF52 մոդուլը և այն այժմ պատրաստ կլինի ծրագրավորման:
Այժմ կրկին փորձեք փակել փափուկ սարքը:
Այժմ կարող եք ծրագրավորել nRF52 մոդուլը Arduino- ից:
Քայլ 5. SKYLAB SKB369 ծրագրավորում
Փակեք Arduino- ն և նորից տեղադրեք pfod_lp_nrf52 աջակցության վերջին տարբերակը ՝ հետևելով Տեղադրեք pfod_lp_nrf52 ապարատային աջակցության ուղղություններին: Վերջին pfod_lp_nrf52- ը ներառում է SKYLAB SKB369 Nano2 փոխարինող տախտակ: Ընտրեք դա որպես տախտակ, այնուհետև կարող եք այն ծրագրավորել lp_BLE_TempHumidity, lp_BLE_TempHumidity_R3.zip վերանայման 3 -ով, ինչպես նկարագրված է Մաս 2 -ում:
Եթե ծրագրավորումը ձախողվի: Փակեք Arduino- ի բոլոր պատուհանները, հեռացրեք USB մալուխները, վերագործարկեք Arduino- ն և նորից միացրեք ծրագրավորողի USB մալուխը և նորից միացրեք nRF52 մոդուլի USB մատակարարումը և նորից փորձեք:
Այնուհետև միացեք pfodApp- ի միջոցով `ներկայիս և պատմական ջերմաստիճանն ու խոնավությունը ցուցադրելու համար: Պատմական սյուժեն ցուցադրելուց հետո ընթերցումները, միլիվայրկյան ժամանակային նշաններով, պահվում են ձեր բջջայինի մատյանում և հասանելի են նաև տվյալների հումքի էկրանին:
Մատյան ֆայլը պարունակում է նաև լրացուցիչ տվյալներ, որոնք անհրաժեշտ են աղյուսակում ամսաթվի և ժամի գծապատկերները նորից ստեղծելու համար: Մանրամասների համար տե՛ս Arduino ամսաթիվը և ժամը ՝ օգտագործելով millis () և pfodApp հավելվածները
Քայլ 6. Ստեղծեք Arduino NRF52 խորհրդի նոր սահմանում
Նոր nRF52 տախտակին աջակցելու համար հարկավոր է ա) տախտակի ֆայլերով տարբերակների գրացուցակում ավելացնել նոր գրացուցակ և բ) խմբագրել boards.txt ֆայլը ՝ Arduino- ին նոր տախտակ ավելացնելու համար:
Ավելացնելով nRF52 տախտակի նոր տարբերակ
Ինչպես նկարագրված է Մաս 1-ում, տեղադրելով pfod_lp_nrf52 ապարատային աջակցությունը, գտեք sandeepmistry փաթեթի ապարատային ենթատիրքը, որը դուք թարմացրել եք pfod_lp_nrf52 աջակցությամբ: Բացեք / ապարատային / nRF5 / 0.6.0 / տարբերակների ենթալեկտորիան և ստեղծեք նոր գրացուցակ ձեր նոր տախտակի համար, օրինակ ՝ SKYLAB_SKB369_Nano2replacement Նոր / ապարատային / nRF5 / 0.6.0 / variants / SKYLAB_SKB369_Nano2replacement գրացուցակում ստեղծեք երեք ֆայլ variant.h, variant.cpp և pins_arduino.h Դուք կարող եք դրանք պատճենել տախտակի տարբերակների այլ դիրեկտորիաներից: SKYLAB_SKB369_Nano2 փոխարինման համար ես սկզբում պատճենեցի ֆայլերը RedBear_BLENano2 տարբերակից:
pins_arduino.h ֆայլ
Pins_arduino.h ֆայլը փոփոխման կարիք չունի: Այն պարզապես ներառում է variant.h ֆայլը
variant.h ֆայլ
Խմբագրեք variant.h ֆայլը ՝ ձեր սալիկի ընդհանուր կապերի թիվը որոշելու համար ՝ PINS_COUNT
ՈEՇԱԴՐՈԹՅՈՆ. Sandeepmistry փաթեթում NUM_DIGITAL_PINS, NUM_ANALOG_INPUTS և NUM_ANALOG_OUTPUTS կարգավորումները անտեսվում են:
Եթե ձեր խորհուրդը քիչ թե շատ անալոգային կապում է հասանելի, թարմացրեք variant.h ֆայլի / * Անալոգային կապում * / բաժինը:
EԱՆՈԹՈԹՅՈՆ. NanoV2 և SKYLAB տախտակների համար անալոգային կապերը տեղակայված են թվային կապերի վրա A0 == D0 և այլն
Սա էական չէ: Անալոգային մուտքերը կարող եք նշանակել Arduino- ի ցանկացած հարմար քորոցի: Որպես օրինակ, տեսեք blue/variant.h և blue/variant.cpp ֆայլերը:
NRF52832 չիպն ունի 8 անալոգային մուտքագրման կապում, սակայն SKYLAB_SKB369_Nano2 փոխարինման տախտակը դրանցից միայն 6 -ն է մատչելի դարձնում Nano2- ին համապատասխանելու համար:
Varin.h ֆայլի բոլոր PIN համարները, բացառությամբ RESET_PIN- ի, Arduino- ի համարներն են: Դա #սահմանել PIN_A0 (0) ենթադրում է, որ arduino ուրվագծում D0- ը նույն PIN- ն է, ինչ A0- ն: RESET_PIN- ը բացառություն է: Այդ թիվը nRF52823 չիպային կապի համարն է, իսկ 21 -ը միակ վավեր ընտրությունն է: Այնուամենայնիվ, pfod_lp_nrf52 աջակցությունը չի միացնում nRF52832- ի վերակայման քորոցը
variant.cpp ֆայլը
Variant.cpp ֆայլում կա միայն մեկ մուտք ՝ g_ADigitalPinMap զանգվածը, որը Arduino- ի համարները քարտեզագրում է nRF52832 չիպ P0.. կապում
ՆՇՈ:Մ. NanoV2 և SKYLAB տախտակներում Arduino անալոգային կապերը A0, A1 … նույնն են, ինչ Arduino թվային կապում D0, D1 … ուստի g_ADigitalPinMap - ի առաջին գրառումները ՊԵՏՔ է քարտեզագրեն nRF52832 չիպի AINx կապի համարները:
Ձեր տախտակը հասանելի դարձնող անալոգային մուտքերի համար g_ADigitalPinMap գրառումները պետք է քարտեզագրեն nRF52832 AIN0, AIN1, AIN2 և այլն: այսինքն ՝ AIN0- ը չիպերի P0.02, AIN1- ը չիպերի P0.03 և այլն տես վերևում գտնվող nRF52832 կապի դասավորությունը:
Օգտագործեք (uint32_t) -1 անվավեր քարտեզագրման համար: Օրինակ, SKYLAB_SKB369_Nano2 փոխարինման տախտակը չունի ներկառուցված LED, D13, ուստի նրա դիրքը քարտեզագրված է (uint32_t) -1
Pfod_lp_nrf52.zip- ում Redbear NanoV2, SKYLAB SKB369 և GT832E_01 տարբերակների ենթա դիրեկտորիաներում կան պատկերներ, որոնք ցույց են տալիս variant.cpp- ի ստեղծած քարտեզագրումները: (Տե՛ս վերևի նկարները)
SKYLAB SKB369- ի դեպքում ընտրելու համար կան բազմաթիվ կապում: Միայն բավականաչափ քարտեզագրված է `համապատասխանելու NanoV2- ին: GT832E_01- ի դեպքում բոլոր առկա կապումներն անհրաժեշտ է քարտեզագրել: Նույնիսկ այդ դեպքում NanoV2- ի վեց (6) փոխարեն առկա է ընդամենը երեք (3) անալոգային մուտք: Բացի այդ, երկու NFC կապերը ՝ P0.09 և P0.10, պետք է նորից կազմաձևվեն որպես GPIO- ի: Տես nRF52 NFC կապում վերակազմակերպումը GPIO- ի ներքևում:
Boards.txt ֆայլի թարմացում
Ահա SKYLAB_SKB369_Nano2 փոխարինման գրառումը boards.txt ֆայլում:
## SKYLAB_SKB369 Nano2 փոխարինում SKYLAB_SKB369_NANO2_REPLACEMENT.name =*SKYLAB SKB369 Nano2 փոխարինում
SKYLAB_SKB369_NANO2_REPLACEMENT.upload.tool = sandeepmistry: openocd
SKYLAB_SKB369_NANO2_REPLACEMENT.upload.protocol = cmsis-dap SKYLAB_SKB369_NANO2_REPLACEMENT. SKYLAB_SKB369_NANO2_REPLACEMENT.upload.use_1200bps_touch = false SKYLAB_SKB369_NANO2_REPLACEMENT.upload.wait_for_upload_port = false SKYLAB_SKB369_NANO2_REPLACEMENT.upload.upload.up
SKYLAB_SKB369_NANO2_REPLACEMENT.bootloader.tool = sandeepmistry: openocd
SKYLAB_SKB369_NANO2_REPLACEMENT.build.mcu = կորտեքս-մ 4
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 = դժվար -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 Կարգավորումներ
Մեկնաբանություններ - # -ով սկսվող տողերը մեկնաբանություններ են:
Նախածանց - յուրաքանչյուր տախտակին անհրաժեշտ է յուրահատուկ նախածանց `իր արժեքները որոշելու համար: Այստեղ նախածանցը SKYLAB_SKB369_NANO2_REPLACEMENT է:
Անուն - SKYLAB_SKB369_NANO2_REPLACEMENT.name տողը նշում է այս տախտակի անունը, որը պետք է ցուցադրվի Arduino- ի տախտակի ընտրացանկում:
Վերբեռնման գործիք - SKYLAB_SKB369_NANO2_REPLACEMENT.upload բլոկը սահմանում է, թե որ գործիքը օգտագործել վերբեռնման համար: Եթե դուք օգտագործում եք Particle Debugger- ը, ապա օգտագործեք արձանագրություն = cmsis-dap, ինչպես ցույց է տրված վերևում:
Bootloader - Այս տողը նույնն է այս boards.txt- ի բոլոր տախտակների համար
Կառուցել - Այս բլոկում անհրաժեշտ է միայն երկու տող թարմացնել: SKYLAB_SKB369_NANO2_REPLACEMENT.build.variant տողը նշում է այս տախտակի գրացուցակի անունը տարբեր ենթագրեկտորում: SKYLAB_SKB369_NANO2_REPLACEMENT.build.board- ը ARDUINO_- ին կցված արժեքն է, այնուհետև սահմանվում է ծածկագիրը կազմելիս: օրինակ -DARDUINO_SKYLAB_SKB369_Nano2 փոխարինում Սա թույլ է տալիս միացնել/անջատել ծածկագրի մասերը որոշակի տախտակների համար:
Freածր հաճախականությամբ ժամացույց - Այս տողը ՝ SKYLAB_SKB369_NANO2_REPLACEMENT.menu.lfclk.lfrc.build.lfclk_flags, սահմանում է ցածր հաճախականության ժամացույցի աղբյուրը, որն օգտագործվում է lp_timer- ի համար: Կան երեք տարբերակ ՝ -DUSE_LFXO, -DUSE_LFRC և -DUSE_LFSYNT: Լավագույն ընտրությունը -DUSE_LFXO է, եթե տախտակն ունի արտաքին 32 ԿՀց բյուրեղ: Եթե ոչ, ապա օգտագործեք -DUSE_LFRC- ն, որն օգտագործում է ներքին RC տատանում և մի փոքր ավելի հոսանք է քաշում, u 10uA ավելի, և շատ ավելի քիչ ճշգրիտ: Մի օգտագործեք -DUSE_LFSYNT- ը, քանի որ դա չիպը անընդհատ աշխատեցնում է, ինչը հանգեցնում է mAs ընթացիկ վիճակահանությանը:
Softdevice.
NRF52 NFC կապում վերակազմավորումը որպես GPIO- ի
Լռելյայն եղեք nRF52 կապում, P0.09 և P0.10- ը կազմաձևված են որպես NFC օգտագործելու համար և ակնկալում են, որ դրանք միացված կլինեն NFC ալեհավաքին: Եթե Ձեզ անհրաժեշտ է օգտագործել դրանք որպես ընդհանուր նշանակության մուտքի/ելքի կապիչներ (GPIO), ապա այդ տախտակի… menu.softdevice.s132.build.extra_flags կազմաձևման պարամետրերը boards.txt ֆայլում պետք է ավելացնել defin, -DCONFIG_NFCT_PINS_AS_GPIOS:
Օրինակ ՝ pfod_lp_nrf52.zip, նորից կարգավորում է GT832E_01 կապում, որպես I/O օգտագործելու համար: Այս տախտակի համար GT832E_01 բաժինը ՝ boards.txt ֆայլում, ավելացվել է հետևյալ սահմանումը
GT832E_01.menu.softdevice.s132.build.extra_flags = -DNRF52 -DS132 -DNRF51_S132 -DCONFIG_NFCT_PINS_AS_GPIOS
Pfod_lp_nrf52.zip- ում կապող սցենարը նույնպես փոփոխվել է `այս կարգավորումը պահպանելու համար և փոփոխման կարիք չունի:
Քայլ 7: Եզրակացություն
Այս ձեռնարկը ներկայացրել է Redbear NanoV2- ի փոխարինումը `օգտագործելով SKYLAB SKB369 մոդուլը: Մարտկոցից/արևից սնվող ջերմաստիճանի խոնավության մոնիտորն օգտագործվել է որպես օրինակ ՝ Arduino- ում շատ ցածր էներգիայի BLE ծրագիր SKYLAB մոդուլի համար: Մատակարարման current 29uA հոսանքներ, որտեղ դրանք հասնում են միացման պարամետրերը կարգավորելու միջոցով: Սա հանգեցրեց CR2032 մետաղադրամի մարտկոցի մարտկոցի տևողության ~ 10 ամիս: Ավելի երկար հզորության մետաղադրամների բջիջների և մարտկոցների համար: Երկու էժան արևային բջիջ ավելացնելով ՝ մարտկոցի կյանքը կարող է երկարացվել 50% -ով կամ ավելի: Սենյակի պայծառ լույսը կամ գրասեղանի լամպը բավարար են մոնիտորը արևային բջիջներից սնուցելու համար:
Այս ձեռնարկը ներառում էր նաև նախապես ծրագրավորված nRF52 չիպերի պաշտպանությունը հեռացնելը և ինչպես ստեղծել տախտակի նոր սահմանում, որը կհամապատասխանի ձեր սեփական PCB/սխեմային:
Android ծրագրավորում չի պահանջվում: pfodApp- ը զբաղվում է այդ ամենով:
Խորհուրդ ենք տալիս:
Homeայրահեղ ցածր էներգիայի WiFi տան ավտոմատացման համակարգ. 6 քայլ (նկարներով)
Homeայրահեղ ցածր էներգիայի WiFi տան ավտոմատացման համակարգ. Այս նախագծում մենք ցույց ենք տալիս, թե ինչպես կարող եք մի քանի քայլով կառուցել հիմնական տեղական ավտոմատացման համակարգ: Մենք պատրաստվում ենք օգտագործել Raspberry Pi- ն, որը հանդես կգա որպես կենտրոնական WiFi սարք: Մինչդեռ վերջնական հանգույցների համար մենք պատրաստվում ենք օգտագործել IOT Cricket մարտկոցը սնուցելու համար
Ինչպե՞ս ճիշտ չափել անլար հաղորդակցության մոդուլների էներգիայի սպառումը ցածր էներգիայի սպառման դարաշրջանում: 6 քայլ
Ինչպե՞ս ճիշտ չափել անլար հաղորդակցության մոդուլների էներգիայի սպառումը ցածր էներգիայի սպառման դարաշրջանում. Ցածր էներգիայի սպառումը չափազանց կարևոր հասկացություն է իրերի ինտերնետում: IoT հանգույցների մեծ մասը պետք է սնուցվեն մարտկոցներով: Միայն անլար մոդուլի էներգիայի սպառումը ճիշտ չափելով ՝ մենք կարող ենք ճշգրիտ գնահատել, թե որքան մարտկոց եմ
DIY MusiLED, Երաժշտության համաժամեցված լուսադիոդներ մեկ կտտոցով Windows և Linux հավելվածով (32 բիթ և 64 բիթ): Հեշտ է վերստեղծել, Հեշտ օգտագործել, Հեշտ տեղափոխել ՝ 3 քայլ
DIY MusiLED, Երաժշտության համաժամեցված լուսադիոդներ ՝ մեկ կտտոցով Windows և Linux հավելվածով (32-բիթ և 64-բիթ): Հեշտ է վերստեղծել, դյուրին օգտագործել, հեշտ է տեղափոխել. LED- ները դրանք լուսավորելու են ըստ հարվածի էֆեկտների (Snare, High Hat, Kick)
Պարզ WiFi դեպի BLE (Bluetooth ցածր էներգիայի) կամուրջ. 9 քայլ (նկարներով)
Պարզ WiFi դեպի BLE (Bluetooth Energyածր էներգիա) կամուրջ. Թարմացրեք 2017 թվականի դեկտեմբերի 4 -ին. Վերանայված Feather nRF52 էսքիզներ և կարգաբերման խորհուրդներ: Ավելացված են արկղում տեղադրված կամրջի նկարներ: Այս պարզ նախագիծը WiFi- ով ապահովում է Bluetooth Low Energy (BLE) ցանկացած մոդուլ, որն իրականացնում է Nordic's UART- ը TX Notify- ով: Թ
UDuino. Շատ ցածր գնով Arduino համատեղելի զարգացման խորհուրդ. 7 քայլ (նկարներով)
UDuino. Շատ ցածր գնով Arduino համատեղելի զարգացման խորհուրդ. Arduino տախտակները հիանալի են նախատիպերի պատրաստման համար: Այնուամենայնիվ, դրանք բավականին թանկ են դառնում, երբ դուք ունեք միաժամանակ մի քանի նախագծեր կամ ավելի մեծ ծրագրի համար անհրաժեշտ են բազմաթիվ հսկիչ տախտակներ: Կան մի քանի հիանալի, ավելի էժան այլընտրանքներ (Boarduino, Freeduino), բայց