Բովանդակություն:

Հեշտ Շատ ցածր էներգիայի BLE Arduino- ում Մաս 3 - Nano V2 փոխարինում - Rev 3: 7 քայլ (նկարներով)
Հեշտ Շատ ցածր էներգիայի BLE Arduino- ում Մաս 3 - Nano V2 փոխարինում - Rev 3: 7 քայլ (նկարներով)

Video: Հեշտ Շատ ցածր էներգիայի BLE Arduino- ում Մաս 3 - Nano V2 փոխարինում - Rev 3: 7 քայլ (նկարներով)

Video: Հեշտ Շատ ցածր էներգիայի BLE Arduino- ում Մաս 3 - Nano V2 փոխարինում - Rev 3: 7 քայլ (նկարներով)
Video: How to use up to 10 push button switch with 1 Arduino input pin ANPB-V1 2024, Նոյեմբեր
Anonim
Հեշտ Շատ ցածր էներգիայի BLE Arduino- ում Մաս 3 - Nano V2 փոխարինում - Rev 3
Հեշտ Շատ ցածր էներգիայի BLE Arduino- ում Մաս 3 - Nano V2 փոխարինում - Rev 3
Հեշտ Շատ ցածր էներգիայի BLE Arduino- ում Մաս 3 - Nano V2 փոխարինում - Rev 3
Հեշտ Շատ ցածր էներգիայի BLE Arduino- ում Մաս 3 - Nano V2 փոխարինում - Rev 3
Հեշտ Շատ ցածր էներգիայի BLE Arduino- ում Մաս 3 - Nano V2 փոխարինում - Rev 3
Հեշտ Շատ ցածր էներգիայի BLE Arduino- ում Մաս 3 - Nano V2 փոխարինում - Rev 3

Թարմացում ՝ 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 ծածկագրման պաշտպանության դրոշի հեռացում

NRF52 ծածկագրման պաշտպանության դրոշի հեռացում
NRF52 ծածկագրման պաշտպանության դրոշի հեռացում
NRF52 ծածկագրման պաշտպանության դրոշի հեռացում
NRF52 ծածկագրման պաշտպանության դրոշի հեռացում
NRF52 ծածկագրման պաշտպանության դրոշի հեռացում
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 ծրագրավորում

SKYLAB SKB369 ծրագրավորում
SKYLAB SKB369 ծրագրավորում
SKYLAB SKB369 ծրագրավորում
SKYLAB SKB369 ծրագրավորում
SKYLAB SKB369 ծրագրավորում
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 խորհրդի նոր սահմանում

Ստեղծելով Arduino NRF52 տախտակի նոր սահմանում
Ստեղծելով Arduino NRF52 տախտակի նոր սահմանում
Ստեղծելով Arduino NRF52 տախտակի նոր սահմանում
Ստեղծելով Arduino NRF52 տախտակի նոր սահմանում
Ստեղծելով Arduino NRF52 տախտակի նոր սահմանում
Ստեղծելով Arduino NRF52 տախտակի նոր սահմանում
Ստեղծելով Arduino NRF52 տախտակի նոր սահմանում
Ստեղծելով 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- ը զբաղվում է այդ ամենով:

Խորհուրդ ենք տալիս: