جدول المحتويات:
- الخطوة 1: اتصالات Arduino-GreenPAK
- الخطوة 2: تصدير بيانات GreenPAK NVM من ملف تصميم GreenPAK
- الخطوة 3: استخدم Arduino Sketch
- الخطوة 4: نصائح البرمجة وأفضل الممارسات
- الخطوة 5: مناقشة خطأ
فيديو: مثال على برمجة MTP Arduino: 5 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:38
في Instructable ، نعرض كيفية استخدام رسم برمجة SLG46824 / 6 Arduino لبرمجة جهاز Dialog SLG46824 / 6 GreenPAK ™ قابل للبرمجة متعدد الأوقات (MTP).
معظم أجهزة GreenPAK قابلة للبرمجة لمرة واحدة (OTP) ، مما يعني أنه بمجرد كتابة بنك الذاكرة غير المتطاير (NVM) ، لا يمكن الكتابة فوقه. تمتلك GreenPAKs المزودة بميزة MTP ، مثل SLG46824 و SLG46826 ، نوعًا مختلفًا من بنوك ذاكرة NVM التي يمكن برمجتها أكثر من مرة.
لقد كتبنا رسم تخطيطي من Arduino يسمح للمستخدم ببرمجة MTP GreenPAK باستخدام بعض أوامر الشاشة التسلسلية البسيطة. في Instructable ، نستخدم SLG46826 باعتباره GreenPAK الخاص بنا مع MTP.
نحن نقدم نموذج التعليمات البرمجية لـ Arduino Uno باستخدام منصة مفتوحة المصدر تعتمد على C / C ++. يجب على المصممين استقراء التقنيات المستخدمة في كود Arduino لمنصتهم الخاصة.
للحصول على معلومات محددة بخصوص مواصفات إشارة I2C وعنونة I2C ومساحات الذاكرة ، يرجى الرجوع إلى دليل البرمجة داخل النظام GreenPAK المتوفر في صفحة منتج SLG46826. يوفر Instructable هذا تنفيذًا بسيطًا لدليل البرمجة هذا.
فيما يلي وصفنا الخطوات اللازمة لفهم كيفية برمجة شريحة GreenPAK. ومع ذلك ، إذا كنت ترغب فقط في الحصول على نتيجة البرمجة ، فقم بتنزيل برنامج GreenPAK لعرض ملف تصميم GreenPAK المكتمل بالفعل. قم بتوصيل GreenPAK Development Kit بجهاز الكمبيوتر الخاص بك واضغط على البرنامج لإنشاء IC المخصص.
الخطوة 1: اتصالات Arduino-GreenPAK
لبرمجة NVM في SLG46826 GreenPAK مع رسم Arduino الخاص بنا ، سنحتاج أولاً إلى توصيل أربعة دبابيس Arduino Uno بـ GreenPAK. يمكنك توصيل هذه المسامير مباشرة بمحول GreenPAK Socket أو بلوحة اندلاع مع GreenPAK ملحومًا لأسفل.
يرجى ملاحظة أن مقاومات السحب الخارجية I2C لا تظهر في الشكل 1. يرجى توصيل المقاوم سحب 4.7 كيلو أوم من كل من SCL و SDA بمخرج Arduino 3.3 فولت.
الخطوة 2: تصدير بيانات GreenPAK NVM من ملف تصميم GreenPAK
سنقوم بتجميع تصميم GreenPAK بسيط للغاية لتوضيح كيفية تصدير بيانات NVM. التصميم أدناه عبارة عن ناقل حركة بسيط حيث يتم ربط المسامير الزرقاء الموجودة على اليسار بـ VDD (3.3 فولت) ، بينما يتم ربط المسامير الصفراء الموجودة على اليمين بـ VDD2 (1.8 فولت).
لتصدير المعلومات من هذا التصميم ، تحتاج إلى تحديد ملف ← تصدير ← تصدير NVM ، كما هو موضح في الشكل 3.
ستحتاج بعد ذلك إلى تحديد ملفات Intel HEX (*.hex) كنوع الملف وحفظ الملف.
الآن ، ستحتاج إلى فتح ملف.hex باستخدام محرر نصوص (مثل Notepad ++). لمعرفة المزيد حول صيغة ملف HEX وتنسيقه من Intel ، تحقق من صفحة Wikipedia الخاصة به. بالنسبة لهذا التطبيق ، نحن مهتمون فقط بجزء البيانات من الملف كما هو موضح في الشكل 5.
قم بتمييز ونسخ 256 بايت من بيانات تكوين NVM الموجودة داخل ملف HEX. يبلغ طول كل سطر نقوم بنسخه 32 حرفًا ، أي ما يعادل 16 بايت.
الصق المعلومات في قسم nvmString المميز في مخطط Arduino كما هو موضح في الشكل 6. إذا كنت تستخدم متحكمًا غير Arduino ، فيمكنك كتابة دالة لتحليل nvmData المحفوظة في ملف GreenPAK. GP6. (إذا فتحت ملف GreenPAK باستخدام محرر نصوص ، فسترى أننا نقوم بتخزين معلومات المشروع بتنسيق XML يسهل الوصول إليه.)
لتعيين بيانات EEPROM لتصميم GreenPAK الخاص بك ، حدد كتلة EEPROM من لوحة المكونات ، وافتح لوحة الخصائص الخاصة بها ، وانقر فوق "تعيين البيانات".
الآن يمكنك تحرير كل بايت في EEPROM بشكل فردي باستخدام واجهة المستخدم الرسومية الخاصة بنا.
بمجرد تعيين بيانات EEPROM ، يمكنك تصديرها إلى ملف HEX باستخدام نفس الطريقة الموضحة مسبقًا لتصدير بيانات NVM. أدخل 256 بايت من بيانات EEPROM في قسم eepromString في مخطط Arduino.
لكل تصميم مخصص ، من المهم التحقق من إعدادات الحماية ضمن علامة التبويب "الأمان" في إعدادات المشروع. تقوم علامة التبويب هذه بتكوين بتات الحماية لسجلات تكوين المصفوفة و NVM و EEPROM. في ظل تكوينات معينة ، يمكن أن يؤدي تحميل تسلسل NVM إلى قفل SLG46824 / 6 على تكوينه الحالي وإزالة وظيفة MTP الخاصة بالشريحة.
الخطوة 3: استخدم Arduino Sketch
قم بتحميل المخطط على Arduino وافتح الشاشة التسلسلية بمعدل باود 115200. يمكنك الآن استخدام أوامر MENU الخاصة بالرسم لتنفيذ عدة أوامر:
● القراءة - يقرأ إما بيانات NVM للجهاز أو بيانات EEPROM باستخدام عنوان الرقيق المحدد
● محو - يمسح إما بيانات NVM للجهاز أو بيانات EEPROM باستخدام عنوان الرقيق المحدد
● الكتابة - يمحو ثم يكتب إما بيانات NVM للجهاز أو بيانات EEPROM باستخدام عنوان الرقيق المحدد. يقوم هذا الأمر بكتابة البيانات المحفوظة في مصفوفات nvmString أو eepromString.
● Ping - يعرض قائمة بعناوين الأجهزة الفرعية المتصلة بناقل I2C
ستتم طباعة نتائج هذه الأوامر على وحدة تحكم الشاشة التسلسلية.
الخطوة 4: نصائح البرمجة وأفضل الممارسات
خلال فترة دعم SLG46824 / 6 ، قمنا بتوثيق بعض نصائح البرمجة للمساعدة في تجنب المزالق الشائعة المرتبطة بالمسح والكتابة في مساحة عنوان NVM. توضح الأقسام الفرعية التالية هذا الموضوع بمزيد من التفصيل.
1. تنفيذ عمليات كتابة صفحات NVM بدقة 16 بايت:
عند كتابة البيانات إلى NVM SLG46824 / 6 ، هناك ثلاث تقنيات يجب تجنبها:
● الصفحة يكتب بأقل من 16 بايت
● الصفحة يكتب بأكثر من 16 بايت
● كتابة الصفحة التي لا تبدأ عند التسجيل الأول داخل الصفحة (IE: 0x10 ، 0x20 ، إلخ.)
في حالة استخدام أي من الأساليب المذكورة أعلاه ، ستتجاهل واجهة MTP كتابة I2C لتجنب تحميل NVM بمعلومات غير صحيحة. نوصي بإجراء قراءة I2C لمساحة عنوان NVM بعد الكتابة للتحقق من نقل البيانات بشكل صحيح.
2. نقل بيانات NVM إلى سجلات تكوين المصفوفة
عند كتابة NVM ، لا يتم إعادة تحميل سجلات تكوين المصفوفة تلقائيًا ببيانات NVM المكتوبة حديثًا. يجب بدء النقل يدويًا عن طريق تدوير PAK VDD أو عن طريق إنشاء إعادة ضبط بسيطة باستخدام I2C. من خلال ضبط السجل في العنوان 0xC8 ، يعيد الجهاز تمكين تسلسل إعادة تشغيل الطاقة (POR) ويعيد تحميل بيانات التسجيل من NVM إلى السجلات.
3. إعادة تعيين عنوان I2C بعد مسح NVM:
عندما يتم مسح NVM ، سيتم تعيين عنوان NVM الذي يحتوي على عنوان I2C التابع إلى 0000. بعد المسح ، ستحتفظ الشريحة بعنوانها الفرعي الحالي ضمن سجلات التكوين حتى تتم إعادة تعيين الجهاز كما هو موضح أعلاه. بمجرد إعادة ضبط الشريحة ، يجب تعيين عنوان I2C التابع في العنوان 0xCA ضمن سجلات التكوين في كل مرة يتم فيها إعادة تدوير GreenPAK للطاقة أو إعادة تعيينها. يجب أن يتم ذلك حتى تتم كتابة صفحة عنوان الرقيق I2C الجديدة في NVM.
الخطوة 5: مناقشة خطأ
عند الكتابة إلى "Page Erase Byte" (العنوان: 0xE3) ، ينتج SLG46824 / 6 ACK غير متوافق مع I2C بعد جزء "البيانات" من الأمر I2C. يمكن تفسير هذا السلوك على أنه NACK اعتمادًا على تنفيذ سيد I2C.
لاستيعاب هذا السلوك ، قمنا بتعديل مبرمج Arduino عن طريق التعليق على الكود الموضح في الشكل 11. يتحقق هذا القسم من الكود من I2C ACK في نهاية كل أمر I2C في وظيفة eraseChip (). تُستخدم هذه الوظيفة لمسح صفحات NVM و EEPROM. نظرًا لأن هذا القسم من الكود يقع في حلقة For ، فإن "إرجاع -1 ؛" يؤدي الخط إلى إنهاء MCU للوظيفة قبل الأوان.
على الرغم من وجود NACK ، فإن وظائف المسح NVM و EEPROM ستعمل بشكل صحيح. للحصول على شرح مفصل لهذا السلوك ، يرجى الرجوع إلى "المشكلة 2: سلوك ACK غير المتوافق مع I2C لـ NVM و EEPROM Page Erase Byte" في مستند الخطأ SLG46824 / 6 (مراجعة XC) على موقع Dialog على الويب.
استنتاج
في Instructable ، نصف عملية استخدام مبرمج Arduino المقدم لتحميل سلاسل NVM و EEPROM المخصصة إلى GreenPAK IC. تم التعليق بدقة على الكود الموجود في Arduino Sketch ، ولكن إذا كانت لديك أي أسئلة بخصوص الرسم ، فيرجى الاتصال بأحد مهندسي التطبيق الميدانيين أو نشر سؤالك على منتدانا. لمزيد من المعلومات المتعمقة بشأن سجلات وإجراءات برمجة MTP ، يرجى الرجوع إلى دليل البرمجة داخل النظام الخاص بـ Dialog.
موصى به:
IoT Guru Cloud - مثال على مخطط بسيط: 4 خطوات
IoT Guru Cloud - مثال على الرسم البياني البسيط: توفر IoT Guru Cloud مجموعة من خدمات الواجهة الخلفية من خلال REST API ويمكنك دمج استدعاءات REST هذه في صفحة الويب الخاصة بك بسهولة. باستخدام Highcharts ، يمكنك عرض مخططات القياس الخاصة بك ببساطة من خلال مكالمة AJAX
كيفية برمجة NodeMCU على Arduino IDE: 5 خطوات
كيفية برمجة NodeMCU على Arduino IDE: يأتي Osoyoo NodeMCU مبرمجًا مسبقًا مع مترجم Lua ، لكن لا يتعين عليك استخدامه! بدلاً من ذلك ، يمكنك استخدام Arduino IDE الذي قد يكون نقطة انطلاق رائعة لمحبي Arduino للتعرف على التقنيات المحيطة بـ
مثال على الخزانة مع لوحة مفاتيح Arduino Matrix Keypad 4x4: 6 خطوات
مثال على Locker With Arduino Matrix Keypad 4x4: طريقتان لإدارة لوحة مفاتيح ذات 16 زرًا مع حد أدنى من المسامير
برمجة ESC على Arduino (Hobbyking ESC): 4 خطوات
برمجة ESC على Arduino (Hobbyking ESC): مرحبًا يا مجتمع ، سأوضح لك كيفية برمجة واستخدام Hobbyking ESC. لقد وجدت للتو بعض المعلومات والبرامج التعليمية ، والتي لم تساعدني كثيرًا حقًا ، لذلك قررت برمجة رسم تخطيطي خاص به ، وهو أمر سهل الفهم للغاية. ضمور
مثال على نشاط المعمل: 8 خطوات
مثال على نشاط المعمل: هذا مثال لبرنامج تعليمي معملي للمساعدة في توضيح توقعاتي لاستخدام Instructables في المختبرات والمشروعات. سينشئ هذا المعمل عدادًا ثنائيًا بسيطًا بمساعدة زر وثلاثة مصابيح LED. كما ترى ، كان هذا المشروع البسيط ب