
أي نوع من الهراء ، ربما يفكر بعض القراء عندما يرون عنوان المنشور. هل ارتكب المؤلف خطأ في المورد؟ أم كان من المخطط وضعها في محور "Geek Health"؟ وسوف يكونون على حق جزئيًا ، ولكن جزئيًا فقط ... تحت الخفض ، سوف نتحدث عن طريقة لتخفيض وتحسين استهلاك الطاقة للأجهزة الإلكترونية.
منذ بعض الوقت ، سقطت لوحة X-NUCLEO-LPM01A في يدي ، والتي كانت في الوقت الحالي في وضع الخمول حتى قررت دراسة استهلاك الطاقة لجهاز واحد مصمم بقوة ذاتية.

تم تطوير هذه اللوحة بواسطة STMicroelectronics وتم وضعها على أنها "درع الطاقة ، لوحة توسيع Nucleo لقياس استهلاك الطاقة". لم أجد وصفًا توضيحيًا باللغة الروسية على الشبكة من أجل العمل مع هذا القرص ، وقررت معرفة ذلك بنفسي ، وفي نفس الوقت مشاركة المعلومات مع مجتمع habro-المجتمع المحترم.
إذا قمنا بتسليط الضوء على اللوحة الرئيسية ، فإن لوحة التوسيع هي مصدر طاقة قابل للبرمجة من 1.8 إلى 3.3 فولت مع إمكانية قياس الحمل الحالي في الوقت الفعلي (في الوضع الديناميكي حتى
50 مللي أمبير) مع تردد أخذ العينات يصل إلى 100 كيلو هرتز. يمكن للجهاز العمل بشكل مستقل وكجزء من مجمع برامج الأجهزة. لعرض القيم المقاسة بيانياً ، يتم استخدام الأداة المساعدة STM32Cube MonitorPower . يسمح لك هذا البرنامج أيضًا بتعيين جميع المعلمات اللازمة وإجراء المعالجة عند وقوع حدث (إطلاق المشغل). تم شحذ X-NUCLEO-LPM01A للعمل مع لوحات Nucleo-32 (64 ، 144) ، و Arduino Nano (Uno) ، ولهذا الغرض يتم وضع الدروع المقابلة عليها ، لكن من الممكن العمل مع اللوحات التعسفية. تُظهر الصورة أدناه اتصال الجهاز قيد الدراسة بأحد الموصلات الموجودة على اللوحة.

بالإضافة إلى برنامج التطبيق ، يدعم X-NUCLEO-LPM01A وضع الأوامر ، والذي يجب أن يعمل عليه أي برنامج طرفي . (هنا يبدو أنني متحمس قليلاً ، بدأ HTerm بضربة جزاء ، لكن كان علي أن ألعب قليلاً مع ZOC المفضلة لدي). علاوة على ذلك ، واستنادا إلى الوصف ، من خلال استخدام برنامج تشغيل VCP ، يمكن للجهاز صب البيانات في منفذ COM بسرعة تصل إلى 3686400 باود. يتم ضمان مثل هذه السرعة العالية بشكل خاص عن طريق إرسال دفق بيانات ثنائي (لترددات أخذ العينات أعلى من 50 كيلو هرتز) ، بالنسبة إلى أحرف ASCII ، تكون السرعة أقل قليلاً.
بشكل أكثر تحديدًا ، المهمة التي سأحاول حلها باستخدام X-NUCLEO-LPM01A هي:
للحصول على معلومات حول استهلاك الطاقة الديناميكي للعقد ذات الاهتمام في المنتج المصمم باستخدام المشغل المشغل X-NUCLEO-LPM01A في الأماكن التي تمت دراستها من رمز البرنامج.
في عملية التشغيل المستمر للجهاز لتنظيم تراكم الشظايا اللازمة للتحليل المعمم اللاحق.
توضح لقطة الشاشة أدناه السجل الحالي لبطاقة SD أثناء تسجيل البيانات.

STM32Cube MonitorPower لا يسمح فقط من الناحية النوعية ، ولكن أيضًا يقيِّم أيضًا استهلاك الطاقة للجهاز قيد الدراسة. يتم عرض الحد الأدنى والحد الأقصى ومتوسط قيم التيار المستهلك وقيمة الطاقة المدمجة في الجزء السفلي من الصورة. تتوفر مثل هذه البيانات للقياس بالكامل وللشظية المحددة.
في دليل المستخدم ، تجدر الإشارة إلى أن إطلاق الزناد للقياس يتم بواسطة دفعة على ساق درع اردوينو D7. كما اتضح ، مجرد بداية واحدة للعملية مع أعمال التسجيل المستمر اللاحقة. لم تنجح محاولة لتنظيم وضع بدء التشغيل لتسجيل التيار (على جبهتي النبض). أي أنه بمجرد بدء التسجيل في المكان المناسب من الجبهة الصاعدة ، لا يمكن إبطاء العملية بجبهة من النبض. وهذا ليس ما توقعت الحصول عليه من هذا الجهاز.
يمكن ضبط وضع بدء التشغيل المتحكم فيه بالكامل باستخدام تسلسل الأوامر من البرنامج الطرفيالفريق | الوصف |
htc | القبض على السيطرة المضيف |
فولت 3300-03 | امدادات التيار الكهربائي على قناة قياس 3300 بالسيارات |
acqtime 0 | قياس مستمر دون حد زمني |
التكرار 10000 | تردد أخذ العينات 10 كيلو هرتز |
ابدأ | بداية القياس |
... | القياس (يتم سكب البيانات في المحطة) |
توقف | نهاية القياس |
المشكلة هي أن هذا عنصر تحكم يدوي غير متزامن مع الأحداث في وحدة التحكم الهدف. بالطبع ، يمكنك محاولة تشكيل التسلسل المشار إليه من الأوامر على جانب الجهاز قيد الدراسة ، وليس المضيف ، ولكن بعد ذلك سينتقل دفق إخراج البيانات من X-NUCLEO-LPM01A أيضًا إلى وحدة التحكم وليس من الواضح ما يجب القيام به بها ، كما أن إعادة توجيه الإخراج "مكان ما_أخرى- مكان آخر" غير متاح أيضًا ، على الرغم من وجود دبابيس UART Tx أو Rx على السبورة ، فإنها تظهر كـ "محفوظة" في الدليل وربما لا تشارك في إصدار البرنامج الثابت الحالي). لقد خرجت من هذا الموقف على النحو التالي:
يتم تكوين تسلسل الأوامر التالي على جانب المضيف (الكمبيوتر)الفريق | الوصف |
htc | القبض على السيطرة المضيف |
فولت 3300-03 | امدادات التيار الكهربائي على قناة قياس 3300 بالسيارات |
acqtime 1 | مدة القياس (يمكن استخدام مجموعة من 10 tos إلى 10 ثوانٍ) |
trigsrc d7 | تزامن بداية القياس مع ارتفاع الحافة نبض على دبوس D7 |
التكرار 10000 | تردد أخذ العينات 10 كيلو هرتز |
ابدأ | بداية القياس |
... | القياس (تبدأ البيانات على حافة النبض وتتوقف صب بعد الوقت المحدد في acqtime) |
الآن سيتم التقاط البيانات على دفعات ، وليس في دفق مستمر. يتيح لك هذا النهج استكشاف استهلاك الدائرة في أماكن مختلفة من البرنامج وعلى فترات زمنية مختلفة ، والتي تكون بعيدة كل البعد عن بعضها البعض. أي إذا كانت هناك حاجة لجمع معلومات حول استهلاك الطاقة لجهاز يعمل ساعة (يوم ، أسبوع) ، فلن تحتاج إلى كتابة دفق مستمر ، وحتى مع معدل أخذ العينات الأقصى ، ثم فهم هذه الفوضى ، ولكن فقط قم بتوفير خوارزمية التشغيل المذكورة أعلاه. وإذا كان البرنامج الطرفي يكتب علامات الوقت إلى سجله ، كما هو موضح في الصورة أدناه ، فسيكون من السهل للغاية تحليل سجل الأحداث من هذا الملف.

يشبه مسجل الفيديو مع اكتشاف الحركة والطوابع الزمنية.
اسمحوا لي أن أقدم لكم بضع لقطات تم الحصول عليها باستخدام X-NUCLEO-LPM01A . الأول هو استهلاك الطاقة لجهاز التحكم أثناء قراءة البيانات من ADC المدمج. تتم قراءة 32 قيمة بواسطة المقاطعة الموقت بتردد 4 كيلو هرتز ويتم تخزينها في الذاكرة.

في الثاني - قراءة البيانات وحفظها بشكل مشابه ، لكن وحدة التحكم "تسمح لنفسها بالنوم" فقط بعد كل قياس ، إلى أن تحدث مقاطعة الموقت التالي ، وذلك باستخدام أحد أوضاع توفير الطاقة المتاحة.

هناك ملحوظة ملحوظة في الاستهلاك الحالي أثناء القياس ، حوالي 6 مللي أمبير. لا يطالب هذان المثالان بتحسين استهلاك الطاقة للأجهزة منخفضة الطاقة ، ولكنهما يوضحان إمكانات X-NUCLEO-LPM01A ، التي يمكنها قياس التيارات من 1 nA.
في الختام ، سأقول أنه ، في رأيي المتواضع ، يبدو أن هذا devkit أداة مناسبة تمامًا يمكن أن تأخذ مكانها الصحيح بجوار منظار الذبذبات ومحلل إشارة المنطق على طاولة التضمين. كما أن استخدام الطريقة الموصوفة لن يسمح فقط بـ "تخفيف شهية جهاز التحكم" في تطوير الأجهزة الحساسة للطاقة ، ولكن أيضًا لفهم ديناميات العمليات في أنماط توفير الطاقة المتنوعة التي يستخدمها مطورو الأجهزة الإلكترونية الحديثة بشكل أفضل.
تكلفة اللوحة - أكثر من 7000 روبل ، تلقي بظلالها على قوس قزح الصورة ، ولكن هل يمكن لمثل هذه الكمية الضئيلة في العصر الحديث أن تمنع مهووس حقيقي من إمكانية امتلاك هذا devkit الرائع؟
ملاحظة: على الرغم من الإشارة في UM إلى أن UART محجوز للتطبيقات المستقبلية ، إلا أنني ما زلت عالقًا عليها ووجدت أنه يعيش كواجهة ثانية (I / O مكررة من VCP) بسرعة 921600 8N1 ويمكن استخدامها كأمر ، البدء والتوقف لبداية - نهاية القياس. سيكون عيب هذا النهج التوافر الإلزامي لـ UART مجانًا على جانب وحدة التحكم قيد الدراسة ، ناهيك عن حقيقة أن 921600 باود غالباً ما يكون مستحيلًا عند ترددات ساعة منخفضة.
PPS بالفعل بعد كتابة المقال ، لاحظت وجود اختلاف في الصور الأخيرة من ~ 2 مللي أمبير عند مدخل القياس وفي نهايته. ربما لم أغلق ساعات توقيت ADC ، أو تركت الموقت للعمل ، ولكن هذا كما يحب ليونيد كانيفسكي أن يقول: "قصة مختلفة تمامًا" ...