Агуулгын хүснэгт:
- Алхам 1: Нано V2 -ийг яагаад солих ёстой гэж?
- Алхам 2: Бүрэлдэхүүн хэсгүүдийг сонгох, барих
- Алхам 3: Барилга
- Алхам 4: NRF52 кодлох хамгаалалтын тугийг зайлуулах
- Алхам 5: SKYLAB SKB369 програмчлах
- Алхам 6: Шинэ Arduino NRF52 самбарын тодорхойлолтыг бий болгох
- Алхам 7: Дүгнэлт
Видео: Arduino 3 -р хэсэгт маш бага хүч чадалтай BLE 3 - Nano V2 солих - Илч 3: 7 алхам (зурагтай)
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:03
Шинэчлэлт: 2019 оны 4 -р сарын 7 - lp_BLE_TempHumidity -ийн 3 -р Rev, pfodApp V3.0.362+ашиглан өгөгдөл илгээхдээ Огноо/Цагийн график, автомат тохируулгыг нэмнэ.
Шинэчлэлт: 2019 оны 3 -р сарын 24 - lp_BLE_TempHumidity -ийн Rev 2, илүү олон талбайн сонголтууд болон i2c_ClearBus -ийг нэмж, GT832E_01 дэмжлэгийг нэмэв
Танилцуулга
Энэхүү гарын авлага нь Redbear Nano V2 -ийг орлуулах нь 3 -р хэсгийн 3 -р хэсэг юм. Энэ бол энэхүү төслийн 2 -р хувилбар юм. Revision 2 ПХБ нь зоосны үүр болон мэдрэгчийг бэхлэх ажлыг багтаасан бөгөөд угсралтын ажлыг хөнгөвчилж, нарны шууд тусгалаас хамгаалж мэдрэгчийн эргэн тойронд агаарын урсгалыг сайжруулдаг. 1 -р хувилбар энд байна.
1 -р хэсэг - Arduino -ийн тусламжтайгаар маш бага хүч чадалтай BLE төхөөрөмжүүдийг бүтээх нь Arduino -ийг nRF52 бага чадлын төхөөрөмж, програмчлалын модуль, хангамжийн гүйдлийг хэмжих кодыг тохируулах боломжийг олгодог. Энэ нь nRF52 төхөөрөмжийг холбох, удирдахын тулд бага хүчдэлийн тусгай таймер, харьцуулагч, зарагдсан оролт, pfodApp -ийг ашигладаг.
2 -р хэсэг - Цахилгаан багатай температурын чийгшлийн монитор нь Redbear Nano V2 модуль, Si7021 температур / чийгшлийн мэдрэгч ашиглан бага чадалтай батерей / нарны дэлгэц бүтээдэг. Энэ нь мөн Si7021 номын санг бага хүчин чадалтай болгож өөрчлөх, BLE төхөөрөмжийг одоогийн хэрэглээг <29uA хүртэл бууруулах, гар утсандаа тохируулсан температур/чийгшлийн дэлгэц зохион бүтээхэд хамаарна.
3 -р хэсэг - Redbear Nano V2 -ийн орлуулалт нь Nano V2 -ийн оронд бусад nRF52 дээр суурилсан модулиудыг хамарна. Энэ нь хангамжийн бүрэлдэхүүн хэсгүүдийг сонгох, бүтээн байгуулалт хийх, nRF52 чип програмчлалын хамгаалалтыг арилгах, NFC зүүг ердийн GPIO болгон ашиглах, Arduino -д шинэ nRF52 хавтанг тодорхойлох зэрэг багтана.
Энэхүү зааварчилгаа нь Nano V2 -ийг орлох SKYLAB SBK369 хавтанг ашиглан маш бага чадалтай BLE температур ба чийгшлийн мониторыг бүтээх замаар Arduino -ийн тусламжтайгаар бүтээсэн 1 -р хэсгийн маш бага чадалтай BLE төхөөрөмжүүдийн практик хэрэглээ юм. Энэхүү гарын авлагад самбарын шинэ тодорхойлолтыг хэрхэн үүсгэх, nRF52 програмчлалын хамгаалалтыг хэрхэн дахин програмчлахыг зөвшөөрөх талаар авч үзэх болно. Энэхүү заавар нь 2 -р хэсгийн ижил тоймыг ашиглан BLE -ийн ижил тохируулгатай бөгөөд бага эрчим хүчний хэрэглээнд зориулагдсан бөгөөд зөвхөн батарей эсвэл зай + нарны эсвэл нарны гэрлээр тэжээх боломжтой. Бага чадлын хувьд BLE параметрүүдийн тааруулалтыг 2 -р хэсэгт оруулсан болно
Lp_BLE_TempHumidity -ийн Rev 3 нь өгөгдлийг зөвхөн Arduino millis () ашиглан огноо, цагийн эсрэг харуулдаг. Arduino -ийн огноо, цагийг millis () болон pfodApp ашиглан pfodApp -ийн хамгийн сүүлийн хувилбарыг (V3.0.362+) ашиглан үзнэ үү.
Pfod_lp_nrf52.zip -ийн Rev 4 нь GT832E_01 модулийг дэмждэг бөгөөд энэхүү заавар нь NFC nRF52 тээглүүрийг стандарт GPIO болгон ашигладаг.
Энд бүтээгдсэн дэлгэц нь Coin Cell эсвэл 2 x AAA батерейгаар олон жил ажиллах бөгөөд нарны туслалцаатайгаар илүү удаан ажиллах болно. Одоогийн температур, чийгшлийг харуулахын зэрэгцээ дэлгэц нь сүүлийн 36 цагийн 10 минутын уншилт, сүүлийн 10 хоногийн цагийн уншилтыг хадгалдаг. Эдгээрийг таны Андройд гар утсан дээр болон бүртгэлийн файлд хадгалсан утгыг диаграммд оруулах боломжтой. Андройд програмчлал шаардлагагүй, pfodApp энэ бүхнийг зохицуулдаг. Андройд дэлгэц, диаграмыг Arduino -ийн ноорогоор бүрэн хянадаг тул та үүнийг хүссэн үедээ өөрчлөх боломжтой.
2 -р хэсэг нь nRF52832 BLE бүрэлдэхүүн хэсгийн Redbear Nano V2 хавтанг ашигласан. Энэхүү төсөл нь үүнийг хямд үнэтэй SKYLAB SKB369 хавтангаар сольсон. 2 -р хэсгийн нэгэн адил Sparkfun Si7021 хавтанг температур / чийгшил мэдрэгчийн хувьд ашигладаг. Бага хүчин чадалтай номын санг Si7021 -т ашигладаг.
Алхам 1: Нано V2 -ийг яагаад солих ёстой гэж?
i) Nano V2 нь хэдэн сарын турш үйлдвэрлэгдээгүй байсан бөгөөд Particle.io -ийн бүрэлдэхүүнд багтахгүй байгаа тул хэр удаан ашиглах нь тодорхойгүй байна.
ii) Nano V2 нь илүү үнэтэй байдаг. Гэсэн хэдий ч энэ нь нэмэлт шинж чанартай байдаг. Доороос үзнэ үү.
iii) Nano V2 нь хоёр талдаа бүрдэл хэсгүүдтэй бөгөөд энэ нь илүү өндөр дүр төрхийг өгч, холбоход илүү төвөгтэй болгодог.
iv) Nano V2 нь хязгаарлагдмал I/O тээглүүртэй бөгөөд D6 -аас D10 -ийг ашиглах нь нисдэг хөтөч шаарддаг.
Nano V2 хавтан нь SKYLAB SKB369 самбараас ~ US17 ба US5 -аас 5 үнэтэй боловч Nano V2 нь илүү олон онцлог шинж чанартай байдаг. Nano V2 нь 3.3V зохицуулагч ба тэжээлийн конденсатор, nRF52 DC/DC хөрвүүлэгч сонголтыг ашиглах нэмэлт бүрэлдэхүүн хэсгүүд, чип антенн болон uFL SMT антенны холбогчийг агуулдаг.
Өөр нэг хувилбар бол www.homesmartmesh.com ашигладаг GT832E_01 модуль юм. 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.3V хүчдэлийн зохицуулагч болон тэжээлийн конденсаторыг нэмж оруулсан болно.
Хүчдэл зохицуулагчийн бүрэлдэхүүн хэсэг
Энд ашигладаг зохицуулагч нь MC87LC33-NRT юм. Энэ нь 12V хүртэлх оролтыг зохицуулах чадвартай бөгөөд тайван гүйдэл нь <3.6uA, ихэвчлэн 1.1uA байдаг. Nano V2 нь TLV704 зохицуулагчийг ашигладаг бөгөөд бага зэрэг өндөр гүйдэлтэй, ихэвчлэн 3.4uA бөгөөд 24В хүртэл өндөр оролтын хүчдэлийг зохицуулж чаддаг. MC87LC33-NRT-ийн оронд түүний өгөгдлийн хүснэгтэд оролтын хүчдэл 3.3V-аас доогуур байхад TLV704 өгөгдлийн хүснэгтэд байхгүй тохиолдолд хэрхэн хариу өгөхийг зааж өгсөн тул сонгосон болно.
TLV704 нь хамгийн бага 2.5V оролтын хүчдэлийг тодорхойлдог бөгөөд үүний доор юу болох нь мэдээллийн хуудаснаас тодорхойгүй байна. NRF52832 нь 1.7V хүртэл, Si7023 нь 1.9V хүртэл ажиллах болно. Нөгөө талаар MC87LC33-NRT нь бага гүйдлийн хувьд 0V хүртэл оролт/гаралтын хүчдэлийн ялгааг тодорхойлдог (мэдээллийн хүснэгтийн 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 байрлуулжээ. Цаашид одоогийн усан сан болгон Vin/GND тээглүүрээр гагнасан 2 x 22uF конденсатор. Харьцуулахын тулд NanoV2 самбар нь TLV704 зохицуулагчийн оролт дээр 22uF / 0.1uF, гаралт дээр 0.1uF байна.
Нэмэлт гүйдлийн усан сангийн конденсаторыг 3.3V зохицуулагчийн оролт дээр суурилуулсан бөгөөд ингэснээр нарны зайтай ажиллах үед илүү өндөр хүчдэлд цэнэглэгдэх болно. Илүү өндөр хүчдэлд цэнэглэх нь Tx -ийн үсрэлтийг хангахын тулд илүү их гүйдэл хадгалахтай тэнцэнэ.
Керамик X5R конденсаторыг цувралын эсэргүүцэл багатай, алдагдах гүйдэл багатай тул ашигладаг. Эсэргүүцэл нь ихэвчлэн 100, 000MΩ эсвэл 1000MΩ - µF байдаг бөгөөд энэ нь хэзээ ч хамаагүй бага байдаг. Тиймээс 22uF -ийн хувьд бид 22000MΩ, өөрөөр хэлбэл 3.3V буюу 0.16nA алдагдал буюу дөрвөн 22uF конденсаторын хувьд 0.6nA байна. Энэ нь ач холбогдолгүй юм. Бага ESR -ийг харьцуулахын тулд бага алдагдалтай Panasonic электролитийн конденсаторууд нь <0.01CV алдагдалтай байдаг. Тиймээс 22uF 16V конденсаторын хувьд алдагдал нь <10uA байна. Тэмдэглэл: Энэ бол нэрлэсэн хүчдэлийн алдагдал, энэ тохиолдолд 16V байна. Бага хүчдэлийн үед алдагдал бага, өөрөөр хэлбэл 3.3V -д <2.2uA байна.
Эд ангиудын жагсаалт
2018 оны 12 -р сарын байдлаар нэгжийн ойролцоогоор зардал, ~ 61 доллар, 1 -р хэсгийн тээвэрлэлт болон програмистыг оруулаагүй болно
- SKYLAB SKB369 ~ US $ 5, жишээ нь Aliexpress
- Sparkfun Si7021 таслагч самбар ~ 8 доллар
- 2 x 53mm x 30mm 0.15W 5V нарны зай, жишээ нь. Overfly ~ 1.10 доллар
- 1 x ПХБ -ийн SKYLAB_TempHumiditySensor_R2.zip ~ 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 ам.доллар
- 4 x 22uF 16V керамик GRM21BR61C226ME44L жишээ нь. Digikey 490-10747-1-ND ~ 2 ам
- 1 x BAT54CW, жишээ нь. Digikey 497-12749-1-ND ~ 0.5 ам
- 1 x 470R 0.5W 1% эсэргүүцэл. Digikey 541-470TCT-ND ~ 0.25 ам.доллар
- 1 x 10V 1W zener SMAZ10-13-F жишээ нь. Digikey SMAZ10-FDICT-ND ~ 0.5 ам
- 3мм х 12мм нейлон эрэг, жишээ нь. Jaycar HP0140 ~ AUD $ 3
- 3 мм x 12 мм хэмжээтэй нейлон самар, жишээ нь. Jaycar HP0146 ~ 3 австрали доллар
- Scotch Байнгын холбох соронзон муур Cat 4010 жишээ нь. Амазоноос ~ 6.6 доллар
- CR2032 батерейны эзэмшигч, жишээ нь. HU2032-LF ~ 1.5 ам
- CR2032 батерей ~ 1 доллар
- Perspex хуудас, 3.5 мм ба 8 мм
- pfodApp ~ 10 доллар
- Гагнах оо Jaycar NS-3046 ~ 13 AUD доллар
Алхам 3: Барилга
Төслийг жижиг ПХБ дээр хийсэн болно. ПХБ -ийг pcbcart.com компани эдгээр Gerber файлуудаас үйлдвэрлэсэн бөгөөд SKYLAB_TempHumiditySensor_R2.zip ПХБ нь Nano V2 зүүг дуурайдаг бөгөөд бусад BLE төслүүдэд ашиглахад ерөнхий зориулалттай юм.
Энэ бол схем (pdf хувилбар)
Эхлээд SMD эд ангиудыг гагнаж, дараа нь SKYLAB SKB369 хавтанг холбоно уу
Бараг бүх бүрэлдэхүүн хэсгүүд нь гадаргуу дээр холбох төхөөрөмжүүд (SMD) юм. Конденсатор ба IC -ийг гараар гагнахад хэцүү байдаг. Санал болгож буй арга бол ПХБ -ийг дэд байранд байлгаж, бага хэмжээний гагнуурын зуурмагийг дэвсгэрт хийж, SKB369 самбараас бусад SMD эд ангиудыг ПХБ дээр байрлуулах явдал юм. Дараа нь дулааны буу ашиглан гагнуурын зуурмаг хайлах хүртэл ПХБ -ийн доод хэсэгт дулааныг түрхээд дараа нь эд ангиудыг үлээлгэхээс болгоомжилж хавтангийн дээд талд хурдан өнгөрнө. Эцэст нь бүрэлдэхүүн хэсгүүдийг жижиг үзүүртэй гагнуураар арчина. Конденсатор ба резистортой болгоомжтой байгаарай, учир нь хоёр үзүүрийг хайлуулж, нэг үзүүрийг гагнах үед бүрэлдэхүүн хэсгийг суллахад хялбар байдаг.
Энэхүү засвар нь нэмэлт 22uF 16V керамик конденсаторыг нэмж оруулсан болно. Эдгээр нэмэлт конденсаторууд нь батерейгаас гарах гүйдлийн огцом өсөлтийг бууруулж, нарны зайнаас тэжээх үед хүчдэлийн бууралтыг бууруулдаг. Нарны зайн хүчдэл нь батерейны хүчдэлээс дээгүүр хэвээр байвал батерейгаас гүйдэл гарахгүй.
SMD -ийн бүрэлдэхүүн хэсгүүдийг суурилуулсны дараа та SKYLAB SKB369 самбар дээр гагнах боломжтой. SKB369 табуудын нэг талд хоёр туршилтын цэгийн нүх байдаг. SKB369 хавтанг байрлуулахын тулд хоёр зүү ашиглан картон сууринд хийж, тээглүүрийг сайтар тэгшлээрэй. (Revision 1 ПХБ ашиглан дээрх жишээг үзнэ үү.) Дараа нь нөгөө тээглүүрийг гагнахаасаа өмнө самбарыг байрлуулахын тулд эсрэг талын нэг зүүг гагнана.
Дууссан хэсэгт CLK -аас GND хүртэлх Gnd холбоосын утсыг анхаарна уу. Энэ нь CLR оролт дээрх дуу чимээ нь nRF52 чипийг өндөр гүйдлийн дибаг хийх горимд оруулахаас сэргийлэхийн тулд програмчлалын дараа суулгасан болно
Суулгах хайрцаг
Бэхэлгээний хайрцгийг 110 мм x 35 мм, 3 мм зузаантай хоёр ширхэг перексээс хийсэн. Нарны элементийн доорх 3.5 мм хэмжээтэй хэсгийг 3 мм -ийн нейлон боолттой болгохын тулд товшсон байна. Энэхүү шинэчилсэн бүтэц нь Rev 1 -ээс илүү хялбар бөгөөд мэдрэгчийн эргэн тойрон дахь агаарын урсгалыг сайжруулдаг. Төгсгөл бүрийн нэмэлт нүхнүүд нь жишээ нь кабелийн бэхэлгээ ашиглан бэхлэх зориулалттай.
Алхам 4: NRF52 кодлох хамгаалалтын тугийг зайлуулах
Температур/чийгшлийн самбарыг дээр дурдсанчлан 1 -р хэсэгт тайлбарласан програмисттай холбоно уу.
Нарны зай болон батерейг салгасан тохиолдолд Вин ба Гнд нь програмистын Vdd ба Gnd (Шар ба Ногоон утас), SWCLK ба SWDIO нь програмистын толгойн самбарын Clk ба SIO (Цагаан ба Саарал туяа) -тай холбогддог.
NRF52 програмын хамгаалалтыг арилгаж байна
Нордикийн хагас - Debug and Trace хуудаснаас DAP - Debug Access Port. Гадны дибаг хийгч нь DAP -ээр дамжуулан төхөөрөмжид хандах боломжтой. DAP нь стандарт ARM® CoreSight ™ Serial Wire Debug Port (SW-DP) -ийг ашигладаг. SW-DP нь SWDCLK ба SWDIO гэсэн хоёр зүү бүхий цуваа интерфэйс болох Serial Wire Debug Protocol (SWD) -ийг хэрэгжүүлдэг.
Чухал: SWDIO шугам нь дотоод татах эсэргүүцэлтэй байдаг. SWDCLK шугам нь дотоод татах эсэргүүцэлтэй байдаг.
CTRL -AP - Хандалтын порт. Хандалтын Хандалтын Порт (CTRL-AP) нь хандалтын портын хамгаалалтаар DAP дахь бусад хандалтын портууд идэвхгүй болсон байсан ч гэсэн төхөөрөмжийг хянах боломжийг олгодог тусгай хандалтын порт юм. Хандалтын портын хамгаалалт нь дибаг хийгчийг CPU-ийн бүх регистрүүд болон санах ойн зурагтай хаягууд руу унших, бичих хандалтыг хаадаг. Хандалтын портын хамгаалалтыг идэвхгүй болгох. Хандалтын портын хамгаалалтыг зөвхөн CTRL-AP-ээр дамжуулан ERASEALL командыг өгч идэвхгүй болгох боломжтой. Энэ тушаал нь Flash, UICR, RAM -ийг устгах болно.
Particle's Debugger програмистаар CMSIS-DAP-ийг сонгоод 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 Мэдээлэл: зөвхөн нэг тээврийн сонголт; автоматаар сонгох 'swd' адаптерийн хурд: 10000 кГц cortex_m reset_config sysresetreq Мэдээлэл: CMSIS-DAP: SWD Дэмжигдсэн мэдээлэл: CMSIS-DAP: Интерфейс эхлүүлсэн (SWD) мэдээлэл: CMSIS-DAP: FW хувилбар = 1.10 мэдээлэл: SWCLW/TCK/1 TMS = 1 TDI = 0 TDO = 0 nTRST = 0 nRESET = 1 Мэдээлэл: CMSIS-DAP: Интерфэйс бэлэн мэдээлэл: хурдны хүсэлтийг багасгах: 10000kHz-ээс 5000kHz хамгийн их мэдээлэл: цагийн хурд 10000 kHz Мэдээлэл: SWD IDCODE 0x2ba01477 Алдаа: MEM-ийг олж чадсангүй. -AP цөмийг хянах Алдаа: Зорилго нь хараахан шалгагдаагүй байгаа бөгөөд SoftDevice -ийг асаахад алдаа гарлаа.
Энэ тохиолдолд та санах ойг цэвэрлэж, төхөөрөмжийг дахин програмчлах боломжтой болгохын тулд nRF52 дахь ERASEALL командын бүртгэлийг тохируулах хэрэгтэй. NRF52 sandeepmistry -тэй нийлүүлсэн openOCD -ийн хувилбарт ERASEALL командын бүртгэлд бичихэд шаардлагатай apreg командыг оруулаагүй тул та дараагийн хувилбарыг суулгах хэрэгтэй болно.
OpenOCD-ийн OpenOCD-20181130 ба түүнээс дээш хувилбарыг суулгана уу. Windows-ийн урьдчилан эмхэтгэсэн хувилбарыг https://gnutoolchains.com/arm-eabi/openocd/ дээрээс авах боломжтой. Хамгийн сүүлийн кодыг https://gnutoolchains.com/arm-eabi/openocd/ сайтаас авах боломжтой.
Тушаал хүлээх мөрийг нээж dirO -г OpenOCD суулгах лавлах руу оруулаад командыг оруулна уу
bin / openocd.exe -d2 -f интерфейс/cmsis -dap.cfg -f зорилтот/nrf52.cfg
Хариулт нь ийм байна
On-Chip Debugger 0.10.0 (2018-11-30) -ийг нээнэ үү [https://github.com/sysprogs/openocd] GNU GPL v2-ийн дагуу лицензлэгдсэн алдааны тайланг https://openocd.org/doc/doxygen/ дээрээс уншина уу. bugs.html debug_level: 2 Мэдээлэл: анхны боломжтой сессийн тээвэрлэлтийг автоматаар сонгох "swd". Давхардуулахын тулд 'transport select' -г ашиглана уу. адаптерийн хурд: 1000 kHz cortex_m reset_config sysresetreq Мэдээлэл: tcl холболтын 6666 порт дээр сонсож байна Мэдээлэл: 4444 порт дээр телнет холболтыг сонсож байна Мэдээлэл: CMSIS-DAP: SWD дэмжигдсэн мэдээлэл: CMSIS-DAP: FW хувилбар = 1.10 мэдээлэл: CMSIS-DAP: Интерфэйсийг эхлүүлсэн (SWD) мэдээлэл: SWCLK/TCK = 1 SWDIO/TMS = 1 TDI = 0 TDO = 0 nTRST = 0 nRESET = 1 Мэдээлэл: CMSIS-DAP: Интерфэйс бэлэн мэдээлэл: цагийн хурд 1000 кГц Мэдээлэл: SWD DPIDR 0x2ba01477 Алдаа: Гол мэдээлэлийг хянах MEM-AP олдсонгүй: gdb холболтыг 3333 порт дээр сонсох
Дараа нь терминал цонх нээнэ үү. TeraTerm (Windows) эсвэл CoolTerm (Mac) ба 127.0.0.1 4444 порт руу холбогдоно уу
Telnet цонхонд a> гарч ирэх бөгөөд командын мөрөнд Мэдээллийг харуулах болно: tcp/4444 дээрх 'telnet' холболтыг хүлээн авах
Telnet цонхонд (өөрөөр хэлбэл TeraTerm) typenrf52.dap apreg 1 0x04 </i> энэ нь чип хамгаалагдсан болохыг харуулсан 0x00000000 буцаана. Дараа нь typenrf52.dap apreg 1 0x04 0x01 ба thennrf52.dap apreg 1 0x04 энэ нь 0x00000001 -ийг буцааж өгдөг бөгөөд энэ нь чипийг дараагийн дахин асаахад ERASEALL болгож тохируулсан болно.
Телнет холболтыг хаагаад Ctrl-C-ийг ашиглан openOCD програмаас командын мөрөнд гарч, дараа нь nRF52 модулийг асаахад програм бэлэн болно.
Одоо зөөлөн төхөөрөмжийг дахин асааж үзээрэй.
Та одоо nRF52 модулийг Arduino -аас програмчилж болно.
Алхам 5: SKYLAB SKB369 програмчлах
Arduino-г хааж, pfod_lp_nrf52 техник хангамжийн дэмжлэгийн зааврыг дагаж pfod_lp_nrf52 дэмжлэгийн хамгийн сүүлийн хувилбарыг дахин суулгана уу. Хамгийн сүүлийн үеийн pfod_lp_nrf52 нь SKYLAB SKB369 Nano2 солих самбарыг агуулдаг. Үүнийг самбар болгон сонгоод 2 -р хэсэгт тайлбарласны дагуу lp_BLE_TempHumidity, lp_BLE_TempHumidity_R3.zip -ийн 3 -р хувилбараар програмчилж болно.
Хэрэв програмчлал амжилтгүй болбол. Arduino -ийн бүх цонхыг хааж, USB кабелийг салгаад Arduino -г дахин эхлүүлээд програмистын USB кабелийг залгаж, nRF52 модулийн USB тэжээлийг дахин залгаад дахин оролдоно уу.
Дараа нь pfodApp -ээр холбогдож одоогийн болон түүхэн температур, чийгшлийг харуулна. Түүхэн хуйвалдааныг харуулсны дараа миллисекундын цагийн тэмдэг бүхий уншилтууд гар утсан дээрх бүртгэлийн файлд хадгалагдах бөгөөд түүхий өгөгдлийн дэлгэц дээр гарч ирнэ.
Бүртгэлийн файл нь хүснэгт дэх огноо, цагийг дахин үүсгэхэд шаардлагатай нэмэлт өгөгдлийг агуулдаг. Дэлгэрэнгүй мэдээллийг millis () болон pfodApp ашиглан Arduino Огноо, Цагийг үзнэ үү
Алхам 6: Шинэ Arduino NRF52 самбарын тодорхойлолтыг бий болгох
Шинэ nRF52 самбарыг дэмжихийн тулд та а) самбарын файлуудтай хувилбарын лавлах дор шинэ лавлах нэмэх, б) шинэ самбарыг Arduino -д нэмэхийн тулд board.txt файлыг засварлах хэрэгтэй.
NRF52 самбарын шинэ хувилбарыг нэмж байна
Pfod_lp_nrf52 техник хангамжийн дэмжлэгийг суулгах тухай 1-р хэсэгт тайлбарласны дагуу pfod_lp_nrf52-ийн дэмжлэгээр шинэчлэгдсэн sandeepmistry багцын техник хангамжийн дэд санг олоорой. / Hardware / nRF5 / 0.6.0 / variants дэд директорыг нээгээд шинэ самбартаа зориулж шинэ директор үүсгэнэ үү, жишээ нь: SKYLAB_SKB369_Nano2replacement Шинэ / hardware / nRF5 / 0.6.0 / variants / SKYLAB_SKB369_Nano2 Replacement директорт гурван файлын хувилбар үүсгэнэ.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 зүүгийн нийт тоог тодорхойлно уу
ТАЙЛБАР: Sandeepmistry багцад NUM_DIGITAL_PINS, NUM_ANALOG_INPUTS болон NUM_ANALOG_OUTPUTS тохиргоог үл тоомсорлодог
Хэрэв таны самбар аналог тээглүүрийг их бага хэмжээгээр ашиглах боломжтой болговол variants.h файлын / * Аналог зүү * / хэсгийг шинэчилнэ үү.
ТАЙЛБАР: NanoV2 ба SKYLAB хавтангийн хувьд аналог тээглүүрийг дижитал тээглүүрээр A0 == D0 г.м
Энэ нь чухал биш юм. Та аналог оролтыг ямар ч тохиромжтой Arduino зүү рүү оноож болно. Жишээ нь blue/variant.h болон blue/variant.cpp файлуудыг үзнэ үү.
NRF52832 чип нь 8 аналог оролтын зүүтэй боловч SKYLAB_SKB369_Nano2 орлуулах самбар нь зөвхөн 6 ширхэгийг Nano2 -тэй нийцүүлэх боломжтой болгодог.
Variant.h файл дахь RESET_PIN -ээс бусад бүх пин дугаарууд нь Arduino зүү дугаарууд юм. Энэ нь #define PIN_A0 (0) нь arduino ноорог дээрх D0 нь A0 -тай ижил зүү гэсэн үг юм. RESET_PIN нь үл хамаарах зүйл юм. Энэ дугаар нь nRF52823 чипийн зүү дугаар бөгөөд 21 нь цорын ганц зөв сонголт юм. Гэсэн хэдий ч pfod_lp_nrf52 дэмжлэг нь nRF52832 дээрх дахин тохируулах зүүг идэвхжүүлдэггүй.
variant.cpp файл
Variant.cpp файлд Arduino зүү дугаарыг nRF52832 чип P0.. pin -тэй харуулдаг g_ADigitalPinMap массивт ганцхан оролт байдаг.
ТАЙЛБАР: 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 (6) оронд зөвхөн 3 (3) аналог оролт байдаг. Үүний зэрэгцээ P0.09 ба P0.10 гэсэн хоёр NFC зүүг GPIO болгон дахин тохируулах шаардлагатай байна. NRF52 NFC зүүг GPIO -ийн дагуу дахин тохируулахыг үзнэ үү.
Tables.txt файлыг шинэчилж байна
SKYLAB_SKB369_Nano2 орлуулах оруулга нь board.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.upload.target = nrf52 SKYLAB_SKB369_NANO2_REPLACEMCSUBSUBSUB_SUBLAB SKYLAB_SKB369_NANO2_REPLACEMENT.upload.use_1200bps_touch = худал SKYLAB_SKB369_NANO2_REPLACEMENT.upload.wait_for_upload_port = хуурамч SKYLAB_SKB369_NANO2_load. REPLACEMENT.upload.use_1200bps_touch
SKYLAB_SKB369_NANO2_REPLACEMENT.bootloader.tool = sandeepmistry: openocd
SKYLAB_SKB369_NANO2_REPLACEMENT.build.mcu = cortex-m4
SKYLAB_SKB369_NANO2_REPLACEMENT.build.f_cpu = 16000000 SKYLAB_SKB369_NANO2_REPLACEMENT.build.board = SKYLAB_SKB369_Nano2replacement SKYLAB_SKB369_NANO2_REPLACEMENT.build.core = nRF5 SKYLAB_SKB369_NANO2_REPLACEMENT.build.variant = SKYLAB_SKB369_Nano2replacement SKYLAB_SKB369_NANO2_REPLACEMENT.build.variant_system_lib = SKYLAB_SKB369_NANO2_REPLACEMENT.build.extra_flags = -DNRF52 SKYLAB_SKB369_NANO2_REPLACEMENT.build.float_flags = -mfloat -abi = hard -mfpu = fpv4-sp-d16 SKYLAB_SKB369_NANO2_REPLACEMENT.build.ldscript = nrf52_xxaa.ld
SKYLAB_SKB369_NANO2_REPLACEMENT.menu.lfclk.lfrc.build.lfclk_flags = -DUSE_LFXO
SKYLAB_SKB369_NANO2_REPLACEMENT.menu.softdevice.s132 = S132
SKYLAB_SKB369_NANO2_REPLACEMENT.menu.softdevice.s132.softdevice = S132 SKYLAB_SKB369_NANO2_REPLACEMENT.menu.softdevice.s132.softdeviceversion = 2.0.1 SKYLAB_SKB369_NANO2_REPLACEMENT.menu.softdevice.s132.upload.maximum_size = 409600 SKYLAB_SKB369_NANO2_REPLACEMENT.menu.softdevice.s132.build.extra_flags = - DNRF52 -DS132 -DNRF51_S132 SKYLAB_SKB369_NANO2_REPLACEMENT.menu.softdevice.s132.build.ldscript = armgcc_s132_nrf52832_xxaa.ld
board.txt Тохиргоо
Сэтгэгдэл - # -ээр эхэлсэн мөрүүд нь сэтгэгдэл юм.
Угтвар - самбар бүр өөрийн утгыг тодорхойлох өвөрмөц угтвар хэрэгтэй. Энд угтвар ньSKYLAB_SKB369_NANO2_REPLACEMENT юм.
Нэр - SKYLAB_SKB369_NANO2_REPLACEMENT.name мөр нь Arduino -ийн самбарын цэсэнд харуулах энэ самбарын нэрийг заана.
Байршуулах хэрэгсэл - SKYLAB_SKB369_NANO2_REPLACEMENT.upload блок нь байршуулахдаа ямар хэрэгслийг ашиглахыг зааж өгдөг. Хэрэв та бөөмийн дибаг хийгчийг ашиглаж байгаа бол дээр үзүүлсэн шиг protocol = cmsis-dap ашиглана уу.
Bootloader - Энэ мөр нь энэ самбар дээрх бүх самбаруудын хувьд ижил байна.txt
Бүтээх - Энэ блок дээр зөвхөн хоёр мөрийг шинэчлэх шаардлагатай. SKYLAB_SKB369_NANO2_REPLACEMENT.build.variant мөрөнд энэ самбарын директорын нэрийг хувилбарын дэд санд зааж өгнө. SKYLAB_SKB369_NANO2_REPLACEMENT.build.board нь ARDUINO_ -д хавсаргаад дараа нь кодыг эмхэтгэхдээ тодорхойлсон утга юм. жишээ нь -DARDUINO_SKYLAB_SKB369_Nano2 орлуулалт Энэ нь танд тодорхой самбаруудын кодын хэсгийг идэвхжүүлэх/идэвхгүй болгох боломжийг олгодог.
Бага давтамжтай цаг - Энэ мөр, SKYLAB_SKB369_NANO2_REPLACEMENT.menu.lfclk.lfrc.build.lfclk_flags, lp_timer -д ашиглагддаг нам давтамжийн цагийн эх үүсвэрийг зааж өгдөг. -DUSE_LFXO, -DUSE_LFRC ба -DUSE_LFSYNT гэсэн гурван сонголт байдаг. Хэрэв самбар нь гаднах 32 кГц болортой бол хамгийн сайн сонголт бол -DUSE_LFXO юм. Хэрэв тийм биш бол дотоод RC осцилляторыг ашигладаг, арай илүү гүйдэл авдаг ~ 10UA илүү нарийвчлалтай байдаг. -DUSE_LFSYNT -ийг бүү ашигла, учир нь энэ нь чипийг байнга ажиллуулдаг бөгөөд ингэснээр одоогийн mAs сугалаа гардаг.
Softdevice - pfod_lp_nrf52 нь зөвхөн nRF52 чипс болон softdevice s132 -ийг дэмждэг тул уг угтвараас бусад блокыг өөрчлөх шаардлагагүй болно.
NRF52 NFC тээглүүрийг GPIO болгож дахин тохируулж байна
NRF52 тээглүүр дээр анхдагч байх ёстой, P0.09 ба P0.10 нь NFC хэлбэрээр ашиглахаар тохируулагдсан бөгөөд NFC антентай холбогдохыг хүлээж байна. Хэрэв та эдгээрийг ерөнхий зориулалтын I/O зүү (GPIO) болгон ашиглах шаардлагатай бол та самбарын … menu.softdevice.s132.build.extra_flags тохиргоог board.txt файлд хөрвүүлэх ёстой.
Жишээлбэл pfod_lp_nrf52.zip, GT832E_01 тээглүүрийг I/O болгон ашиглахаар дахин тохируулдаг. Bu самбарын GT832E_01 хэсэгт, board.txt файлд дараах тодорхойлолтыг нэмж оруулсан болно
GT832E_01.menu.softdevice.s132.build.extra_flags = -DNRF52 -DS132 -DNRF51_S132 -DCONFIG_NFCT_PINS_AS_GPIOS
Pfod_lp_nrf52.zip дээрх холбогч скриптийг мөн энэ тохиргоог хадгалахын тулд өөрчилсөн бөгөөд үүнийг өөрчлөх шаардлагагүй юм.
Алхам 7: Дүгнэлт
Энэхүү гарын авлагад SKYLAB SKB369 модулийг ашиглан Redbear NanoV2 -ийн орлуулалтыг танилцуулсан болно. Батерей/нарны эрчим хүчээр ажилладаг чийгшлийн мониторыг SKYLAB модульд зориулан Arduino дахь маш бага чадлын BLE төслийн жишээ болгон ашигласан. ~ 29uA -ийн нийлүүлэлтийн гүйдэл, холболтын параметрүүдийг тааруулах замаар олж авдаг. Үүний үр дүнд CR2032 зоосны батерейны ашиглалтын хугацаа ~ 10 сар байна. Илүү өндөр хүчин чадалтай зоосны эсүүд болон батерейны хувьд илүү урт. Хямд үнэтэй хоёр нарны зай нэмж өгснөөр батерейны ашиглалтын хугацаа 50% ба түүнээс дээш нэмэгдсэн. Нарны зайнаас дэлгэцийг асаахад өрөөний тод гэрэл эсвэл ширээний гэрэл хангалттай.
Энэхүү гарын авлагад урьдчилан програмчлагдсан nRF52-ээс чипний хамгаалалтыг арилгах, өөрийн ПХБ/хэлхээнд тохирсон шинэ хавтангийн тодорхойлолтыг хэрхэн тохируулах талаар оруулсан болно.
Андройд програмчлал шаардлагагүй. pfodApp энэ бүхнийг зохицуулдаг.
Зөвлөмж болгож буй:
Долгион солих -- 555: 4 алхамыг ашиглан бага зэрэг солих
Долгион солих || 555 -ийг ашиглаж буй ХАМГИЙН БИЧЛЭГЭЭР СОНГОЛТ: Сайн байцгаана уу Өнөөдөр би энгийн мэдрэгчгүй унтраалга хийж байна, үүнийг хэт улаан туяаны мэдрэгч, 555 таймер IC -ийн тусламжтайгаар гараа даллахад идэвхжүүлнэ үү. Үүнийг ажиллуулцгаая. 555 нь дэлгүүр дээрээ флиплоп хэлбэрээр ажилладаг
[3D хэвлэх] 30W өндөр хүч чадалтай гар чийдэн: 15 алхам (зурагтай)
[3D хэвлэх] 30W өндөр чадалтай гар чийдэн: Хэрэв та үүнийг уншиж байгаа бол асар их халаагч, батерейтай DIY маш хүчирхэг гэрлийн эх үүсвэрийг харуулсан Youtube видеонуудын нэгийг та үзсэн байх. Магадгүй тэд үүнийг "дэнлүү" гэж нэрлэдэг байх, гэхдээ би үргэлж лант гэсэн өөр ойлголттой байсан
Шатны шөнийн гэрэл - Маш бага хүч ба 2 мэдрэгч: 5 алхам
Шатны шөнийн чийдэн - Маш бага хүч чадал ба 2 мэдрэгч: Би энэ хэт ягаан туяаны хөдөлгөөн мэдрэгч бүхий бага чадалтай шөнийн чийдэнг бүтээсэн бөгөөд ингэснээр би нэг төхөөрөмжийг шатан дундуур суулгаж, хэн нэгэн дээшээ эсвэл ирж буй хүнээр өдөөж болно. шатаар буух. Би бас загвараа маш бага хүч чадлаар хийсэн
Бага хүч чадалтай Arduino температурын хяналт: 4 алхам
Бага хүчирхэг Arduino температурын хяналт: Энэхүү зааварт бид DS18B20 температур мэдрэгч ашиглан өөр нэг температур хэмжигчийг бий болгодог. Гэхдээ энэ төсөл арай өөр. Энэ нь батерейгаар бараг 1.5 жил ажиллах боломжтой! Тийм ээ! Arduino бага чадлын номын санг ашигласнаар бид энэ төслийг ажиллуулж болно
Өндөр хүч чадалтай LED гэрэл М.К2: 10 алхам (зурагтай)
Өндөр хүчирхэг LED гэрэл асдаг M.k2: Өмнө нь LED гэрлийн дор ургамал ургуулж байсан тул өндөр хүчдэлийн LED ашиглан том систем бүтээхийг хүсч байна гэж бодсон ……… уучлалт гуйж байна. Би үхсэн морийг ташуурдаж байгаа бололтой, энэ бол миний хамгийн сүүлчийн зааварчилгаа болно