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

AVR / Arduino وامض مع Raspberry Pi: 3 خطوات (بالصور)
AVR / Arduino وامض مع Raspberry Pi: 3 خطوات (بالصور)

فيديو: AVR / Arduino وامض مع Raspberry Pi: 3 خطوات (بالصور)

فيديو: AVR / Arduino وامض مع Raspberry Pi: 3 خطوات (بالصور)
فيديو: Why does PCB to blinky LED take so long? 🧑🏼‍🏭 2024, شهر نوفمبر
Anonim
AVR / Arduino وامض مع Raspberry Pi
AVR / Arduino وامض مع Raspberry Pi

المبرمج داخل النظام (ISP) هو جهاز يمكنك استخدامه لبرمجة العديد من وحدات التحكم الدقيقة ، على سبيل المثال ATMega328p الذي يمثل عقول Arduino Uno. يمكنك شراء شيء مثل USBtinyISP ، أو يمكنك حتى استخدام Arduino. سيوضح لك هذا التوجيه كيفية استخدام Raspberry Pi كمزود خدمة إنترنت.

يمكن استخدام برنامج avrdude ، وهو ما يستخدمه Arduino IDE تحت الغطاء لفلاش الرقائق ، مع العديد من المبرمجين. أحد خياراته هو استخدام دبابيس SPI على منفذ توسيع Pi. سأشرح كيفية إجراء التوصيلات المناسبة ، ووضع دائرة بسيطة على لوحة perfboard بحيث لا تضطر إلى إعادة الأسلاك في كل مرة تريد فيها وميض شريحة ، وكيفية تثبيت واستخدام avrdude. سأوضح لك أيضًا كيفية تجميع البرامج باستخدام Arduino IDE على شريحة AVR مثل ATmega أو ATtiny باستخدام هذه الطريقة.

الأشياء المطلوبة:

  • Raspberry Pi مع تثبيت أحدث إصدار من Raspbian
  • مقبس رأس ذكر 40 سنًا (أو 26 سنًا إذا كان لديك Pi أقدم)
  • كابل IDE للاتصال بـ Pi الخاص بك
  • مرنان بلوري 16 ميجا هرتز
  • مكثفات 22 pF (2)
  • LED (1) للإشارة إلى حالة المبرمج
  • 8 ، 14 ، و / أو 28 دبوس IC مآخذ ، اعتمادًا على شكل الرقائق التي تريد وميضها
  • بعض بيرفبوارد ، أسلاك ، جندى

الخطوة 1: بناء مرفق الإسكافي

مرفق بناء الإسكافي
مرفق بناء الإسكافي
مرفق بناء الإسكافي
مرفق بناء الإسكافي
مرفق بناء الإسكافي
مرفق بناء الإسكافي

الواجهة الطرفية التسلسلية (SPI) ، والتي تسمى أيضًا المسلسل بأربعة أسلاك ، هي طريقة للتواصل بين جهاز رئيسي واحد وجهاز تابع واحد أو أكثر. سنستخدم هذا لفلاش الرقائق ، حيث يكون Pi هو الرئيسي والشريحة هي العبيد. ستقوم بإجراء الاتصالات التالية بين Pi والشريحة الخاصة بك (انظر pinouts أعلاه لمختلف منافذ AVRs و Pi للتوسع لمعرفة أي دبابيس هي):

  • قم بتوصيل دبابيس MOSI (master-out-slave-in) معًا
  • قم بتوصيل دبابيس SCLK (الساعة المشتركة) معًا
  • قم بتوصيل دبابيس MISO (master-in-slave-out) مع المقاوم 220 أوم ، لحماية Pi من أي جهد كهربائي مرتفع بشكل غير متوقع من الشريحة
  • قم بتوصيل GPIO 25 على Pi مباشرة بدبوس RESET على الشريحة. يقوم Pi بسحب هذا الدبوس منخفضًا عند البرمجة ، لذلك نستخدم مقاومًا 10K لإبقائه مرتفعًا عند عدم البرمجة ، ومصباح LED بمقاوم حماية 1K يعمل على جهد موجب ليمنحنا بعض الملاحظات المرئية اللطيفة عند البرمجة.

نقوم بتوصيل دبابيس الأرض والطاقة (3.3 فولت) بين Pi والرقائق التي نريد برمجتها. في حالة عدم معرفتك بالفعل ، فإن دبابيس Raspberry Pi ليست متسامحة مع 5 فولت - سوف تتلف إذا ظهر عليها أكثر من 3.3 فولت. إذا كانت الرقائق التي تتم برمجتها تحتاج إلى طاقة 5 فولت لسبب ما ، فيمكننا استخدام شريحة شيفتر المستوى لحماية دبابيس باي ، لكنني لم أواجه أي مشاكل في استخدام 3.3 فولت - لذا أوصي بتشغيلها بأمان وتوفير المكونات.

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

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

الخطوة 2: تثبيت واستخدام Avrdude

تثبيت واستخدام Avrdude
تثبيت واستخدام Avrdude
تثبيت واستخدام Avrdude
تثبيت واستخدام Avrdude
تثبيت واستخدام Avrdude
تثبيت واستخدام Avrdude
تثبيت واستخدام Avrdude
تثبيت واستخدام Avrdude

لتثبيت avrdude على Pi الخاص بك ، فقط اكتب

sudo apt-get install avrdude

ستحتاج بعد ذلك إلى تمكين واجهة SPI ، إذا لم تكن قيد التشغيل بالفعل. توجد طريقة سطر أوامر للقيام بذلك ، ولكن من الأسهل بكثير استخدام أداة تكوين Raspberry Pi. نوع

sudo raspi-config

وانتقل إلى خيارات الواجهة لتشغيل SPI.

من أجل وميض الشريحة الخاصة بك ، قم بتوصيل كابل الشريط من Pi الخاص بك بالموصل الموجود في دائرة perfboard وأدخل الشريحة في مقبس IC المناسب (تأكد من أنه يواجه الاتجاه الصحيح).

عند وميض أحد البرامج ، يجب عليك أيضًا التأكد من ضبط الصمامات في الشريحة بشكل صحيح. هذه في الحقيقة مجرد بتات في الشريحة التي قمت بضبطها لإخبارها بسرعة الساعة التي تعمل بها ، وما إذا كنت تريد مسح EEPROM عند كتابة الشريحة ، وما إلى ذلك. يمكنك قراءة مواصفات AVR الكاملة لمعرفة كيفية ضبط كل بت ، ولكن من الأسهل كثيرًا استخدام حاسبة الصمامات المتوفرة على engbedded.com/fusecalc. حدد اسم جزء AVR الذي تستخدمه واختر الخيارات التي تريدها في منطقة "تحديد الميزة". عادةً ما أتأكد من أن إعدادات الساعة صحيحة وأترك الأشياء الأخرى على الوضع الافتراضي. سترغب دائمًا في ترك "تم تمكين البرمجة التسلسلية" و "إعادة التعيين معطلة" بدون تحديد - وإلا فلن تتمكن من إعادة برمجة الشريحة. عندما يكون لديك الإعدادات الصحيحة ، يمكنك التمرير لأسفل في منطقة "الإعدادات الحالية" ونسخ وسيطات AVRDUDE كما هو موضح في الصورة.

لتعيين الصمامات ، أدخل الأمر

sudo avrdude -c linuxspi -P /dev/spidev0.0 -p

حيث يتوافق اسم partname مع الشريحة التي تستخدمها. يمكنك العثور على قائمة أسماء الأجزاء عن طريق إدخال sudo ardude -c linuxspi -p؟ type. لتفليش برنامجك ، تأكد من وجوده في دليلك الحالي وأدخل

sudo avrdude -c linuxspi -P /dev/spidev0.0 -p -U فلاش: w:: i

بعد كلا الأمرين ، سيضيء مؤشر LED أثناء تعديل الشريحة.

الخطوة 3: الحصول على برامج Arduino على AVRs

الحصول على برامج Arduino على AVRs
الحصول على برامج Arduino على AVRs
الحصول على برامج Arduino على AVRs
الحصول على برامج Arduino على AVRs
الحصول على برامج Arduino على AVRs
الحصول على برامج Arduino على AVRs

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

أولاً ، ستحتاج إلى إضافة معلومات حول شرائح AVR التي ستومضها حتى يعرف IDE كيفية تجميعها. قام James Sleeman بتجميع بعض ملفات الإعداد بشكل مفيد للغاية ، والتي تتوفر على github. لاستخدامها ، افتح قائمة "التفضيلات" في Arduino IDE وانقر فوق المربع المجاور لحقل "عناوين URL لمدير اللوحات الإضافية". انسخ عناوين URL التالية والصقها في مربع الحوار الذي يظهر:

بعد ذلك ، انتقل إلى قائمة "الأدوات" وابحث عن خيار "Boards Manager …" في القائمة الفرعية "Board". قم بالتمرير لأسفل إلى أسفل القائمة في مربع حوار Boards Manager وقم بتثبيت لوحات DIY ATmega و DIY ATtiny.

لتجميع برامجك ، تأكد أولاً من تحديد الشريحة الصحيحة في قائمة "المعالج" ، بالإضافة إلى سرعة المعالج الصحيحة. حدد خيار "Use Bootloader: No" ، لأننا سنقوم بالتحميل مباشرة باستخدام Pi وبالتالي يمكننا استخدام المساحة الإضافية التي عادةً ما يشغلها محمل الإقلاع Arduino. الآن ، انقر فوق الزر "تحقق" (علامة الاختيار). سيؤدي ذلك إلى تجميع برنامجك دون محاولة تحميله (بما أنك تقوم بهذه الخطوة بنفسك).

بافتراض أن كل شيء يسير على ما يرام ، فأنت بحاجة الآن إلى نقل البرنامج المترجم إلى Pi الخاص بك. يخفيهم IDE في مكان مؤقت ، لأنه مصمم لتحميل البرامج بنفسه. على نظام Windows ، يكون في AppData / Local / Temp في دليل المستخدم الخاص بك ، في مجلد يبدأ بـ "arduino_build". ابحث عن ملف.hex - هذا هو برنامجك! أرسلها إلى Pi عبر FTP أو باستخدام محرك أقراص USB ، وأنت في العمل.

يتطلب القيام بذلك أن يكون لديك جهاز كمبيوتر يعمل بنظام Windows أو جهاز Mac لتجميع البرامج الخاصة بك ، والتي ترسلها بعد ذلك إلى Pi. سيكون من الرائع حقًا القيام بذلك على Pi نفسه ، ولكن لسوء الحظ ، فإن الإصدار الرسمي من Arduino IDE المتاح في مستودع Raspbian قديم نوعًا ما وليس به مدير مجلس الإدارة. بدون ذلك ، فإن إضافة الإعدادات المناسبة لتجميع AVRs العارية يكون أصعب قليلاً. هناك دروس لتجميع إصدار أحدث من Arduino على Pi الخاص بك - إذا كان هذا هو ما تريد القيام به ، فابحث عنها! أشعر أيضًا أنه من الممكن جعل IDE يستخدم مبرمج linuxspi لإصدار وميض شريحة من داخل IDE نفسه (أي باستخدام زر "تنزيل") ، ولكن هذا يتجاوز مستوى صبري ومهاراتي - إذا كنت تعلم طريقة ، انشرها في التعليقات! أخيرًا ، يمكنك فقط كتابة البرامج مباشرةً في AVR-C وتجميعها على Pi باستخدام avr-gcc ، مما يمنحك منصة تطوير AVR كاملة في Raspberry Pi. لقد فعلت القليل من ذلك ، وإذا كنت تريد أن تسلك هذا الطريق ، فأنا أحييك. احصل على وميض!

موصى به: