جدول المحتويات:

سهل للغاية منخفض الطاقة BLE في الجزء 3 من Arduino - استبدال Nano V2 - Rev 3: 7 خطوات (مع صور)
سهل للغاية منخفض الطاقة BLE في الجزء 3 من Arduino - استبدال Nano V2 - Rev 3: 7 خطوات (مع صور)

فيديو: سهل للغاية منخفض الطاقة BLE في الجزء 3 من Arduino - استبدال Nano V2 - Rev 3: 7 خطوات (مع صور)

فيديو: سهل للغاية منخفض الطاقة BLE في الجزء 3 من Arduino - استبدال Nano V2 - Rev 3: 7 خطوات (مع صور)
فيديو: Using Digispark Attiny85 Mini Arduino boards: Lesson 108 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 - المراجعة 3 من lp_BLE_TempHumidity ، ويضيف مخططات التاريخ / الوقت ، باستخدام pfodApp V3.0.362 + ، والاختناق التلقائي عند إرسال البيانات

تحديث: 24 مارس 2019 - Rev 2 من lp_BLE_TempHumidity ، ويضيف المزيد من خيارات المؤامرة و i2c_ClearBus ، ويضيف دعم GT832E_01

مقدمة

هذا البرنامج التعليمي ، استبدال Redbear Nano V2 ، هو الجزء 3 من 3. هذه هي المراجعة 2 لهذا المشروع. يشتمل الإصدار 2 من ثنائي الفينيل متعدد الكلور على تركيب لخلية العملة المعدنية والمستشعر ، ويبسط البناء ويحسن تدفق الهواء حول المستشعر مع حمايته من أشعة الشمس المباشرة. المراجعة 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.

هذه التعليمات عبارة عن تطبيق عملي للجزء الأول من بناء أجهزة BLE منخفضة الطاقة جدًا والتي أصبحت سهلة مع Arduino من خلال إنشاء جهاز مراقبة درجة الحرارة والرطوبة BLE منخفض الطاقة للغاية باستخدام لوحة SKYLAB SBK369 كبديل Nano V2. يغطي هذا البرنامج التعليمي كيفية إنشاء تعريف لوحة جديد وكيفية إزالة حماية البرمجة nRF52 للسماح بإعادة برمجتها. يستخدم هذا البرنامج التعليمي نفس الرسم التخطيطي للجزء 2 مع نفس معلمات BLE المضبوطة لاستهلاك منخفض للطاقة ويمكن تشغيله من البطارية أو البطارية + الطاقة الشمسية أو الشمسية فقط. تمت تغطية ضبط معلمات BLE للطاقة المنخفضة في الجزء 2

Rev 3 من lp_BLE_TempHumidity يرسم البيانات مقابل التاريخ والوقت باستخدام فقط Arduino millis (). راجع تاريخ ووقت Arduino باستخدام millis () و pfodApp باستخدام أحدث إصدار من pfodApp (V3.0.362 +).

يدعم Rev 4 من pfod_lp_nrf52.zip أيضًا وحدة GT832E_01 ويغطي هذا البرنامج التعليمي استخدام دبابيس NFC nRF52 كمنافذ GPIO قياسية.

ستعمل الشاشة التي تم إنشاؤها هنا لسنوات على Coin Cell أو 2 × بطاريات AAA ، حتى لفترة أطول بمساعدة الطاقة الشمسية. بالإضافة إلى عرض درجة الحرارة والرطوبة الحالية ، تخزن الشاشة آخر 36 ساعة من قراءات 10 دقائق وآخر 10 أيام من قراءات الساعة. يمكن رسمها على هاتف Android الخاص بك والقيم المحفوظة في ملف السجل. لا حاجة لبرمجة Android ، يتولى pfodApp كل ذلك. يتم التحكم في شاشة Android والرسوم البيانية بالكامل بواسطة رسم Arduino الخاص بك حتى تتمكن من تخصيصه كما هو مطلوب.

استخدم الجزء 2 لوحة Redbear Nano V2 لمكون nRF52832 BLE. يستبدل هذا المشروع ذلك بلوحة SKYLAB SKB369 أرخص. كما هو الحال في الجزء 2 ، يتم استخدام لوحة الاختراق Sparkfun Si7021 في مستشعر درجة الحرارة / الرطوبة. يتم استخدام مكتبة معدلة منخفضة الطاقة مع Si7021.

الخطوة 1: لماذا استبدال Nano V2؟

ط) توقف إنتاج Nano V2 لعدة أشهر ولا يبدو أنه يتناسب مع مجموعة Particle.io ، لذلك ليس من الواضح كم من الوقت سيكون متاحًا.

ب) نانو V2 أغلى ثمناً. ومع ذلك ، فإنه يحتوي أيضًا على ميزات إضافية. انظر أدناه.

iii) يحتوي Nano V2 على مكونات على كلا الجانبين مما يمنحه مظهرًا أعلى ويجعله أكثر صعوبة في التركيب.

4) يحتوي Nano V2 على عدد محدود من منافذ الإدخال / الإخراج المتاحة واستخدام D6 إلى D10 يتطلب عملاء محتملين.

على الرغم من أن لوحة Nano V2 أغلى ثمناً من لوحة SKYLAB SKB369 ، ~ US17 مقابل ~ US5 ، فإن Nano V2 لديها المزيد من الميزات. يشتمل Nano V2 على منظم 3.3 فولت ومكثفات إمداد ومكونات إضافية لاستخدام خيار محول nRF52 DC / DC وهوائي رقاقة وموصل هوائي uFL SMT.

البديل الآخر هو وحدة GT832E_01 المستخدمة من قبل www.homesmartmesh.com. يدعم Rev 4 من pfod_lp_nrf52.zip أيضًا برمجة وحدة GT832E_01. يتوفر SKYLAB SKB369 و GT832E_01 من

يحتوي Redbear (Particle.io) أيضًا على وحدة مكشوفة بدون منظم 3V3 أو مكونات DC / DC أو مكونات بلورية 32 كيلو هرتز.

الخطوط العريضة

يتكون هذا المشروع من 4 أجزاء مستقلة نسبية: -

اختيار المكون والبناء إزالة علامة حماية تشفير nRF52 وبرمجة الرسم التخطيطي إنشاء تعريف لوحة Arduino nRF52 جديد إعادة تكوين دبابيس nRF52 NFC على أنها GPIO

الخطوة 2: اختيار المكونات والبناء

اختيار المكونات

بالإضافة إلى مكونات nRF52832 و Si7021 المحددة في الجزء 2 ، يضيف هذا المشروع منظم 3.3 فولت ومكثفات الإمداد.

مكون منظم الجهد

المنظم المستخدم هنا هو MC87LC33-NRT. يمكنه التعامل مع ما يصل إلى مدخلات 12V ولديه تيار هادئ <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.1 فائق التوهج في ورقة البيانات. يحدد SKYLAB SBK369 أيضًا مكثفات 10 فائق التوهج / 0.1 فائق التوهج على العرض بالقرب من اللوحة. تساعد المكثفات الأكبر في توفير المسامير الحالية nRF52 TX. هنا تم استخدام مكثفات سيراميك 4 × 22 فائق التوهج 25 فولت و 3 × 0.1 فائق التوهج 50 فولت. تم وضع مكثف واحد 22 فائق التوهج ومكثف 0.1 فائق التوهج بالقرب من SKYLAB SBK369 ، وتم وضع 0.1 فائق التوهج بالقرب من إخراج MC87LC33-NRT لضمان الاستقرار وتم وضع 22 فائق التوهج و 0.1 فائق التوهج على الإدخال إلى MC87LC33-NRT و مكثفات إضافية 2 × 22 فائق التوهج حيث يتم لحامها عبر دبابيس Vin / GND كخزان تيار إضافي. للمقارنة ، تحتوي لوحة NanoV2 على 22 فائق التوهج / 0.1 فائق التوهج على المدخلات إلى منظم TLV704 و 0.1 فائق التوهج على إخراجها.

تم تثبيت مكثفات الخزان الحالية الإضافية على المدخلات لمنظم 3.3 فولت بحيث يتم شحنها بجهد أعلى عند العمل بالخلايا الشمسية. الشحن إلى جهد أعلى يعني تخزين المزيد من التيار لتزويد طفرات Tx.

يتم استخدام مكثفات X5R الخزفية لأنها تتميز بمقاومة منخفضة للسلسلة وتيار منخفض للتسرب. المقاومة عادة 100 ، 000MΩ أو 1000MΩ - F أي أقل من أي وقت مضى. لذلك بالنسبة لـ 22 فائق التوهج ، لدينا 22000 متر مكعب ، أي تسرب 0.15nA عند 3.3 فولت أو 0.6 نانومتر للمكثفات الأربعة 22 فائق التوهج. هذا لا يكاد يذكر. للمقارنة منخفضة ESR ، منخفضة التسرب مكثفات باناسونيك كهربائيا لها تيارات تسرب <0.01CV. لذلك بالنسبة لمكثف 22 فائق التوهج 16 فولت ، يكون التسرب <10uA. ملحوظة: هذا هو التسرب في الجهد المقنن ، 16 فولت في هذه الحالة. يكون التسرب أقل عند الفولتية المنخفضة ، أي <2.2uA عند 3.3 فولت.

قائمة الاجزاء

التكلفة التقريبية لكل وحدة في ديسمبر 2018 ، حوالي 61 دولارًا أمريكيًا ، باستثناء الشحن والمبرمج من الجزء الأول

  • SKYLAB SKB369 ~ 5 دولارات أمريكية على سبيل المثال AliExpress
  • لوحة اندلاع Sparkfun Si7021 ~ 8 دولارات أمريكية
  • 2 × 53 مم × 30 مم 0.15 واط 5 فولت الخلايا الشمسية على سبيل المثال Overfly ~ 1.10 دولار أمريكي
  • 1 × PCB SKYLAB_TempHumiditySensor_R2.zip ~ 25 دولارًا أمريكيًا مقابل 5 خصم www.pcbcart.com
  • 1 × MC78LC33 منظم 3.3 فولت ، على سبيل المثال Digikey MC78LC33NTRGOSCT-ND ~ 1 دولار أمريكي
  • 2 × 0.1 فائق التوهج 50 فولت سيراميك C1608X5R1H104K080A على سبيل المثال Digikey 445-7456-1-ND ~ 0.3 دولار أمريكي
  • 4 × 22 فائق التوهج 16 فولت سيراميك GRM21BR61C226ME44L على سبيل المثال Digikey 490-10747-1-ND ~ 2 دولار أمريكي
  • 1 × BAT54CW ، على سبيل المثال Digikey 497-12749-1-ND ~ 0.5 دولار أمريكي
  • 1 × 470R 0.5 واط 1٪ المقاوم على سبيل المثال Digikey 541-470TCT-ND ~ 0.25 دولار أمريكي
  • 1 × 10 فولت 1 واط زينر SMAZ10-13-F على سبيل المثال Digikey SMAZ10-FDICT-ND ~ 0.5 دولار أمريكي
  • 3 مم × 12 مم مسامير النايلون ، على سبيل المثال Jaycar HP0140 ~ 3 دولارات أسترالية
  • 3 مم × 12 مم نايلون المكسرات ، على سبيل المثال Jaycar HP0146 ~ 3 دولارات أسترالية
  • شريط سكوتش للتركيب الدائم Cat 4010 ، على سبيل المثال من أمازون ~ 6.6 دولار أمريكي
  • حامل بطارية CR2032 ، على سبيل المثال HU2032-LF ~ 1.5 دولار أمريكي
  • بطارية CR2032 ~ 1 دولار أمريكي
  • ورقة برسبيكس ، 3.5 مم و 8 مم
  • pfodApp ~ 10 دولارات أمريكية
  • لصق جندى على سبيل المثال Jaycar NS-3046 ~ 13 دولارًا أستراليًا

الخطوة الثالثة: البناء

بناء
بناء
بناء
بناء
بناء
بناء

تم بناء المشروع على ثنائي الفينيل متعدد الكلور صغير. تم تصنيع PCB بواسطة pcbcart.com من ملفات Gerber هذه ، SKYLAB_TempHumiditySensor_R2.zip يحاكي PCB دبوس Nano V2 وهو غرض عام بما يكفي لاستخدامه في مشاريع BLE الأخرى.

هذا هو التخطيطي (نسخة pdf)

قم أولاً بلحام مكونات SMD ، ثم قم بتركيب لوحة SKYLAB SKB369

جميع المكونات تقريبًا عبارة عن أجهزة مثبتة على السطح (SMD). قد يكون من الصعب لحام المكثفات و IC يدويًا. الطريقة المقترحة هي تثبيت PCB في نائب وتطبيق كمية صغيرة من معجون اللحام على الوسادات ووضع مكونات SMD ، باستثناء لوحة SKB369 على PCB. ثم باستخدام مسدس حراري ، قم بتطبيق الحرارة على الجانب السفلي من PCB حتى يذوب معجون اللحام ثم قم بتمرير سريع فوق الجزء العلوي من اللوحة مع الحرص على عدم تفجير المكونات. أخيرًا ، قم بلمس المكونات باستخدام مكواة لحام صغيرة. كن حذرًا مع المكثفات والمقاوم لأنه من السهل إذابة كلا الطرفين وجعل المكون مفكوكًا أثناء لحام طرف واحد.

تضيف هذه المراجعة مكثفات سيراميك 22 فائق التوهج 16 فولت إضافية. تعمل هذه المكثفات الإضافية على تقليل الارتفاعات الحالية المسحوبة من البطارية وتقليل انخفاض الجهد عند تشغيلها من الخلايا الشمسية. طالما ظل الجهد من الخلايا الشمسية أعلى من جهد البطارية ، فلن يتم سحب أي تيار من البطارية.

بعد تركيب مكونات SMD ، يمكنك اللحام في لوحة SKYLAB SKB369. توجد فتحتان في نقطة الاختبار على جانب واحد من علامات التبويب SKB369. استخدم دبابيس في قاعدة من الورق المقوى لوضع لوحة SKB369 ومحاذاة المسامير بعناية. (انظر مثال الصورة أعلاه باستخدام Revision 1 PCB) ثم قم بلحام دبوس واحد من الجانب الآخر لتثبيت اللوحة في مكانها قبل لحام المسامير الأخرى.

لاحظ سلك ارتباط Gnd من CLK إلى GND في الجزء النهائي. يتم تثبيت هذا بعد البرمجة لمنع الضوضاء على إدخال CLK من تشغيل شريحة nRF52 في وضع تصحيح الأخطاء الحالي العالي

حالة متزايدة

تم تصنيع علبة التثبيت من قطعتين من البرسبيكس ، 110 مم × 35 مم ، سماكة 3 مم. تم استغلال القطعة مقاس 3.5 مم الموجودة أسفل الخلايا الشمسية لأخذ مسامير النايلون مقاس 3 مم. هذا الهيكل المعدل هو مبسط ثم Rev 1 ويحسن تدفق الهواء حول المستشعر. الثقوب الإضافية في كل طرف للتركيب ، باستخدام روابط الكابلات على سبيل المثال.

الخطوة 4: إزالة علامة حماية التشفير NRF52

إزالة علامة حماية الترميز NRF52
إزالة علامة حماية الترميز NRF52
إزالة علامة حماية الترميز NRF52
إزالة علامة حماية الترميز NRF52
إزالة علامة حماية الترميز NRF52
إزالة علامة حماية الترميز NRF52

قم بتوصيل لوحة درجة الحرارة / الرطوبة بالمبرمج الموضح في الجزء 1 كما هو موضح أعلاه.

مع فصل الخلايا الشمسية والبطاريات ، يتم توصيل Vin و Gnd إلى Vdd و Gnd للمبرمج (الخيوط الصفراء والخضراء) ويتم توصيل SWCLK و SWDIO بـ Clk و SIO بلوحة رأس المبرمج (الخيوط البيضاء والرمادية)

إزالة حماية برنامج nRF52

من صفحة Nordic Semi - Debug and Trace DAP - منفذ الوصول إلى التصحيح. يمكن لمصحح أخطاء خارجي الوصول إلى الجهاز عبر DAP. يقوم DAP بتنفيذ منفذ ARM® CoreSight ™ Serial Wire Debug Debug (SW-DP) القياسي. ينفذ SW-DP بروتوكول تصحيح أخطاء السلك التسلسلي (SWD) وهو واجهة تسلسلية ثنائية الطرف ، SWDCLK و SWDIO

هام: يحتوي خط SWDIO على مقاوم سحب داخلي. يحتوي خط SWDCLK على مقاوم منسدل داخلي.

CTRL-AP - منفذ الوصول للتحكم. منفذ وصول التحكم (CTRL-AP) هو منفذ وصول مخصص يتيح التحكم في الجهاز حتى إذا تم تعطيل منافذ الوصول الأخرى في DAP بواسطة حماية منفذ الوصول. تمنع حماية منفذ الوصول مصحح الأخطاء من الوصول للقراءة والكتابة إلى جميع سجلات وحدة المعالجة المركزية والعناوين المعينة للذاكرة. تعطيل حماية منفذ الوصول. لا يمكن تعطيل حماية منفذ الوصول إلا عن طريق إصدار أمر ERASEALL عبر CTRL-AP. سيؤدي هذا الأمر إلى مسح الفلاش و UICR وذاكرة الوصول العشوائي.

حدد 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 معلومات: خيار نقل واحد فقط ؛ التحديد التلقائي لسرعة محول 'swd': 10000 كيلو هرتز cortex_m reset_config sysresetreq Info: CMSIS-DAP: SWD Supported Info: CMSIS-DAP: Interface Initialised (SWD) Info: CMSIS-DAP: FW Version = 1.10 Info: SWCLK / TCK = 1 SWDIO / TMS = 1 TDI = 0 TDO = 0 nTRST = 0 nRESET = 1 معلومات: CMSIS-DAP: واجهة جاهزة المعلومات: تقليل طلب السرعة: 10000 كيلو هرتز إلى 5000 كيلو هرتز كحد أقصى المعلومات: سرعة الساعة 10000 كيلو هرتز المعلومات: SWD IDCODE 0x2ba01477 خطأ: تعذر العثور على MEM -AP للتحكم في الخطأ الأساسي: الهدف لم يتم فحصه بعد خطأ أثناء وميض SoftDevice.

في هذه الحالة ، تحتاج إلى ضبط تسجيل الأمر ERASEALL في nRF52 لمسح الذاكرة وجعل الجهاز قابلاً للبرمجة مرة أخرى. لا يتضمن إصدار openOCD المزود مع sandeepmistry nRF52 الأمر apreg المطلوب للكتابة إلى سجل أوامر ERASEALL لذا تحتاج إلى تثبيت إصدار لاحق.

قم بتثبيت إصدار OpenOCD OpenOCD-20181130 أو إصدار أحدث. يتوفر إصدار Windows المجمع مسبقًا من https://gnutoolchains.com/arm-eabi/openocd/ يتوفر أحدث رمز من

افتح موجه الأوامر وقم بتغيير dir إلى دليل تثبيت OpenOCD وأدخل الأمر

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

الرد

فتح On-Chip Debugger 0.10.0 (2018-11-30) [https://github.com/sysprogs/openocd]Licensed ضمن GNU GPL v2 لتقارير الأخطاء ، اقرأ https://openocd.org/doc/doxygen/ bugs.html debug_level: 2 معلومات: التحديد التلقائي لأول جلسة نقل متاحة للجلسة "swd". لتجاوز استخدام "تحديد النقل". سرعة المحول: 1000 كيلو هرتز cortex_m reset_config sysresetreq معلومات: الاستماع على المنفذ 6666 لاتصالات tcl معلومات: الاستماع على المنفذ 4444 لاتصالات telnet معلومات: 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 للتحكم في المعلومات الأساسية: الاستماع على المنفذ 3333 لاتصالات gdb

ثم افتح نافذة طرفية على سبيل المثال TeraTerm (Windows) أو CoolTerm (Mac) والاتصال بمنفذ 127.0.0.1 4444

ستعرض نافذة telnet a> وسيعرض موجه الأوامر معلومات: قبول اتصال "telnet" على tcp / 4444

في نافذة telnet (على سبيل المثال TeraTerm) ، اكتب نوع rf52.dap apreg 1 0x04 ، تُرجع هذه الإرجاع 0x00000000 لتظهر أن الشريحة محمية. ثم اكتب 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. حدد ذلك باعتباره اللوحة ويمكنك بعد ذلك برمجته باستخدام المراجعة 3 من lp_BLE_TempHumidity ، lp_BLE_TempHumidity_R3.zip ، كما هو موضح في الجزء 2.

إذا فشلت البرمجة. أغلق جميع نوافذ Arduino ، وأزل كبلات USB ، وأعد تشغيل Arduino وقم بتوصيل كبل USB للمبرمج مرة أخرى وقم بتوصيل مصدر USB الخاص بوحدة nRF52 مرة أخرى وحاول مرة أخرى.

ثم اتصل عبر pfodApp لعرض درجة الحرارة والرطوبة الحالية والتاريخية. بمجرد عرض المؤامرة التاريخية ، يتم حفظ القراءات ، مع الطوابع الزمنية بالمللي ثانية ، في ملف السجل على هاتفك المحمول ومتاح أيضًا في شاشة البيانات الأولية.

يحتوي ملف السجل أيضًا على البيانات الإضافية الضرورية لإعادة إنشاء مخططات التاريخ والوقت في جدول بيانات. راجع تاريخ ووقت Arduino باستخدام millis () و pfodApp للحصول على التفاصيل

الخطوة 6: إنشاء تعريف لوحة Arduino NRF52 جديد

إنشاء تعريف لوحة Arduino NRF52 جديد
إنشاء تعريف لوحة Arduino NRF52 جديد
إنشاء تعريف لوحة Arduino NRF52 جديد
إنشاء تعريف لوحة Arduino NRF52 جديد
إنشاء تعريف لوحة Arduino NRF52 جديد
إنشاء تعريف لوحة Arduino NRF52 جديد
إنشاء تعريف لوحة Arduino NRF52 جديد
إنشاء تعريف لوحة Arduino NRF52 جديد

لدعم لوحة nRF52 جديدة ، تحتاج إلى أ) إضافة دليل جديد ضمن دليل المتغيرات مع ملفات اللوحة و ب) قم بتحرير ملف board.txt لإضافة اللوحة الجديدة إلى Arduino.

إضافة متغير جديد للوحة nRF52

كما هو موضح في الجزء 1 ، تثبيت دعم الأجهزة pfod_lp_nrf52 ، ابحث عن الدليل الفرعي للأجهزة لحزمة sandeepmistry التي قمت بتحديثها باستخدام دعم pfod_lp_nrf52. افتح الدليل الفرعي / الأجهزة / nRF5 / 0.6.0 / variants وأنشئ دليلًا جديدًا للوحة الجديدة الخاصة بك ، على سبيل المثالSKYLAB_SKB369_Nano2replacement في / الأجهزة الجديدة / nRF5 / 0.6.0 / variants / SKYLAB_SKB369_Nano2replacement directory قم بإنشاء ثلاثة ملفات مختلفة. h ، variant.cpp و pin_arduino.h يمكنك نسخهما من دليل متغيرات اللوحة الأخرى. بالنسبة لاستبدال SKYLAB_SKB369_Nano2 ، قمت في البداية بنسخ الملفات من متغير RedBear_BLENano2.

ملف pin_arduino.h

لا يلزم تغيير ملف pin_arduino.h. يتضمن فقط ملف variant.h

ملف variant.h

قم بتحرير ملف variant.h لتحديد العدد الإجمالي للدبابيس التي ستكون في منتداك ، PINS_COUNT

ملاحظة: في حزمة sandeepmistry ، تم تجاهل NUM_DIGITAL_PINS و NUM_ANALOG_INPUTS و NUM_ANALOG_OUTPUTS من الإعدادات

إذا كانت اللوحة الخاصة بك تتيح أكثر أو أقل من الدبابيس التناظرية ، فقم بتحديث قسم / * Analog Pins * / من ملف variants.h.

ملاحظة: بالنسبة للوحات NanoV2 و SKYLAB ، يتم تعيين المسامير التناظرية على المسامير الرقمية A0 == D0 وما إلى ذلك

هذا ليس ضروريا. يمكنك تعيين المدخلات التناظرية لأي دبوس Arduino مناسب. انظر ثم ملفات blue / variant.h و blue / variant.cpp للحصول على مثال.

تحتوي شريحة nRF52832 على 8 دبابيس إدخال تناظرية ، لكن لوحة الاستبدال SKYLAB_SKB369_Nano2 تجعل 6 منها فقط متاحة لمطابقة Nano2.

جميع أرقام الدبوس ، باستثناء RESET_PIN ، في ملف variant.h هي أرقام دبوس Arduino. هذا هو #define PIN_A0 (0) يعني أن D0 في رسم اردوينو هو نفس الدبوس مثل 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 على أرقام دبوس AINx على شريحة nRF52832

بالنسبة للمدخلات التناظرية التي تتيحها اللوحة الخاصة بك ، يجب أن تعين تلك الإدخالات في 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 ، يجب تعيين جميع المسامير المتاحة. حتى ذلك الحين ، لا يتوفر سوى ثلاثة (3) مدخلات تناظرية بدلاً من ستة (6) على NanoV2. بالإضافة إلى ذلك ، يحتاج دبابيس NFC ، P0.09 و P0.10 ، إلى إعادة تكوينهما على أنهما GPIO. راجع إعادة تكوين دبابيس nRF52 NFC مثل GPIO أدناه.

تحديث ملف board.txt

هذا هو إدخال SKYLAB_SKB369_Nano2replacement في ملف board.txt.

## SKYLAB_SKB369 استبدال Nano2SKYLAB_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_REPLACEMENT.upload.maximum_size_NANO2_REPLACEMENT. SKYLAB_SKB369_NANO2_REPLACEMENT.upload.use_1200bps_touch = خطأ SKYLAB_SKB369_NANO2_REPLACEMENT.upload.wait_for_upload_port = false SKYLAB_SKB369_NANO2_REPLACEMENT.upload.native_usb = false

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 الأداة التي يجب استخدامها للتحميل. إذا كنت تستخدم Particle Debugger ، فاستخدم Protocol = cmsis-dap كما هو موضح أعلاه.

Bootloader - هذا الخط هو نفسه لجميع اللوحات في هذا المجالس

بناء - يجب تحديث سطرين فقط في هذه الكتلة. يحدد سطر SKYLAB_SKB369_NANO2_REPLACEMENT.build.variant لهذا اللوحة اسم الدليل في الدليل الفرعي البديل. SKYLAB_SKB369_NANO2_REPLACEMENT.build.board هي القيمة الملحقة بـ ARDUINO_ ثم يتم تحديدها أثناء تجميع الكود. على سبيل المثال -DARDUINO_SKYLAB_SKB369_Nano2replacement هذا يتيح لك تمكين / تعطيل أجزاء من الكود للوحات معينة.

ساعة التردد المنخفض - يحدد هذا الخط ، SKYLAB_SKB369_NANO2_REPLACEMENT.menu.lfclk.lfrc.build.lfclk_flags ، مصدر ساعة التردد المنخفض ، المستخدمة في lp_timer. هناك ثلاثة خيارات ، -DUSE_LFXO و -DUSE_LFRC و -DUSE_LFSYNT. الخيار الأفضل هو -DUSE_LFXO ، إذا كانت اللوحة بها بلورة خارجية 32 كيلو هرتز. إذا لم يكن الأمر كذلك ، فاستخدم -DUSE_LFRC ، الذي يستخدم مذبذب RC داخليًا ويجذب تيارًا أكثر قليلاً ، ~ 10uA أكثر ، وأقل دقة مرات بكثير. لا تستخدم -DUSE_LFSYNT لأن هذا يحافظ على تشغيل الشريحة طوال الوقت مما يؤدي إلى سحب التيار mAs.

Softdevice - يدعم pfod_lp_nrf52 فقط شرائح nRF52 و softdevice s132 لذلك لا تحتاج إلى تغييرات لهذه الكتلة ، بخلاف البادئة.

إعادة تكوين دبابيس nRF52 NFC على أنها GPIO

كن افتراضيًا على دبابيس nRF52 ، تم تكوين P0.09 و P0.10 للاستخدام كـ NFC ونتوقع أن يتم توصيلهما بهوائي NFC. إذا كنت بحاجة إلى استخدام هذه كدبابيس إدخال / إخراج للأغراض العامة (GPIO's) ، فأنت بحاجة إلى إضافة تعريف ، -DCONFIG_NFCT_PINS_AS_GPIOS ، إلى القائمة… menu.softdevice.s132.build.extra_flags في اللوحة.

على سبيل المثال ، pfod_lp_nrf52.zip ، يعيد تكوين دبابيس GT832E_01 لاستخدامها كإدخال / إخراج. قسم 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: الخاتمة

قدم هذا البرنامج التعليمي بديلاً لـ Redbear NanoV2 باستخدام وحدة SKYLAB SKB369. تم استخدام جهاز مراقبة درجة حرارة الرطوبة الذي يعمل بالبطارية / بالطاقة الشمسية كمثال على مشروع BLE منخفض الطاقة للغاية في Arduino لوحدة SKYLAB. تيارات العرض ~ 29uA حيث يتم تحقيق ذلك عن طريق ضبط معلمات الاتصال. نتج عن ذلك عمر بطارية خلية العملة المعدنية CR2032 ~ 10 أشهر. يعد أطول لخلايا وبطاريات عملة ذات سعة أكبر. تؤدي إضافة خليتين شمسيتين رخيصتين إلى إطالة عمر البطارية بسهولة بنسبة 50٪ أو أكثر. يكفي ضوء الغرفة الساطع أو المصباح المكتبي لتشغيل الشاشة من الخلايا الشمسية.

غطى هذا البرنامج التعليمي أيضًا إزالة حماية الشريحة من nRF52 المبرمج مسبقًا وكيفية إعداد تعريف لوحة جديد لمطابقة PCB / الدائرة الخاصة بك

لا حاجة لبرمجة أندرويد. يعالج pfodApp كل ذلك.

موصى به: