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

اردوينو 3.3 فولت مع ساعة خارجية 8 ميجا هرتز يتم برمجتها من Arduino Uno من خلال ICSP / ISP (مع المراقبة التسلسلية!): 4 خطوات
اردوينو 3.3 فولت مع ساعة خارجية 8 ميجا هرتز يتم برمجتها من Arduino Uno من خلال ICSP / ISP (مع المراقبة التسلسلية!): 4 خطوات

فيديو: اردوينو 3.3 فولت مع ساعة خارجية 8 ميجا هرتز يتم برمجتها من Arduino Uno من خلال ICSP / ISP (مع المراقبة التسلسلية!): 4 خطوات

فيديو: اردوينو 3.3 فولت مع ساعة خارجية 8 ميجا هرتز يتم برمجتها من Arduino Uno من خلال ICSP / ISP (مع المراقبة التسلسلية!): 4 خطوات
فيديو: 유압기술자가 알아야 하는 마이컴 기술 1 (Micom skills that hydraulic engineers need to know 1) 2024, شهر نوفمبر
Anonim
اردوينو 3.3 فولت مع ساعة خارجية 8 ميجاهرتز تتم برمجتها من Arduino Uno من خلال ICSP / ISP (مع المراقبة التسلسلية!)
اردوينو 3.3 فولت مع ساعة خارجية 8 ميجاهرتز تتم برمجتها من Arduino Uno من خلال ICSP / ISP (مع المراقبة التسلسلية!)
اردوينو 3.3 فولت مع ساعة خارجية 8 ميجاهرتز تتم برمجتها من Arduino Uno من خلال ICSP / ISP (مع المراقبة التسلسلية!)
اردوينو 3.3 فولت مع ساعة خارجية 8 ميجاهرتز تتم برمجتها من Arduino Uno من خلال ICSP / ISP (مع المراقبة التسلسلية!)

أهداف:

  • لبناء Arduino مستقل يعمل على 3.3 فولت من ساعة خارجية 8 ميجا هرتز.
  • لبرمجتها عبر ISP (المعروف أيضًا باسم ICSP ، البرمجة التسلسلية داخل الدائرة) من Arduino Uno (يعمل بجهد 5 فولت)

    لتحرير ملف bootloader ونسخ أداة bootloader (عبر ISP)

  • لتتمكن من قراءة المعلومات التسلسلية من Arduino المستقل عبر كابل FTDI

    لتتمكن من قراءة المعلومات التسلسلية من Arduino المستقل بدون كابل FTDI

الديباجة:

كنت أحاول إنشاء مشروعي المستقل ولكني لم أر أي أدلة شاملة حول تشغيل Arduino وبرمجته ومراقبته - لا سيما إذا كان يعمل على مدار الساعة الخارجية 8 ميجا هرتز و 3.3 فولت والمبرمج بواسطة Arduino UNO. لقد جمعت عددًا من الأدلة المنفصلة وحاولت الإشارة إلى المكان الذي حصلت فيه على المعلومات لمنح الائتمان عند استحقاق الائتمان. هذا الدليل هو نتيجة لعدة أيام في البحث عن حلول والعثور على أجزاء منه في الوقت الذي كنت أقوم فيه ببناء مشروعي الخاص ، كما أنني قمت بربط العديد من المنتجات المفيدة التي قد تأتي في متناول اليد ليس لأنني انتمي إلى أي من الشركات ، ولكن لأنه من المناسب تضمين العناصر المحددة التي أشير إليها.

أسئلة شائعة قبل أن نبدأ:

لماذا تحتاج إلى برمجته مع ISP والمراقبة عبر FTDI؟ لماذا لا يمكنك فقط برمجته عبر FTDI؟

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

لماذا لا أستخدم فقط كبل ISP مع مراقبة تسلسلية ، مثل هذا؟

ربما ، مثلي ، لم يكن لديك واحدة ، وبدلاً من الانتظار حتى يتم شحنها ، فأنت تريد استخدام ما لديك! تصادف أن لديّ كابل FTDI (على الرغم من أنك ستجد في النهاية أنك لست بحاجة إليه: فهو يجعل حياتك أسهل).

ألا أحتاج إلى ناقل حركة منطقي من Uno إلى Arduino المستقل؟

نعم ، أنت تفعل ذلك ، لكنني سأريك كيف تصنع واحدة بنفسك. مثل كبل ISP ، لم يكن لدي واحد.

أريد أن أفرغه من الطاقة الخارجية. كيف يمكنني فعل ذلك؟

هناك الكثير من الأدلة التي توضح كيفية تشغيل Arduino مستقل من طاقة البطارية. سأكتب كيف فعلت ذلك واربطها هنا [سوف تدرج لاحقًا].

الدليل

الخطوة 1: بناء اردوينو المستقل

بناء اردوينو المستقلة
بناء اردوينو المستقلة
بناء اردوينو المستقلة
بناء اردوينو المستقلة

1) قم ببناء Arduino المستقل من هذا الرابط. الجزء الوحيد من الدليل الذي تحتاجه هو "أساسيات ATMEGA8 / 168/328".

  • يمكنك تشغيل Arduino المستقل من 3.3 فولت من Arduino Uno. (يمكنك تخطي القسم الأول من البرنامج التعليمي بعنوان "إضافة دائرة لمصدر طاقة".
  • استبدل ساعة 16 ميجا هرتز بساعة 8 ميجا هرتز.
  • أضف 0.1 قبعات uF بين: VCC و Gnd (كلا الجانبين) VRef و Gnd.

    • لم يتم تضمينها في الصورة ولكن لديّها في مشاريعي!
    • أعلم أنه مذبذب 16 ميجا هرتز في الصورة. التقطت الصورة قبل أن أكتشف كل ما فعلته في الدليل!

مصدر صورة pinout ATMEGA328p هنا.

نصائح عامة حول استكشاف الأخطاء وإصلاحها

  • تأكد من إعادة تعيين الضبط عاليًا عبر المقاوم 10k من VCC إلى الطرف 1 من ATMEGA. إذا كان الدبوس مؤرضًا أو عائمًا فلن يعمل.
  • تحقق جيدًا من إدخال الأسلاك والمذبذب بشكل صحيح.
  • تأكد من استخدام مكثفات 22pF لمذبذب 8 ميجا هرتز. انها لن تعمل خلاف ذلك.
  • تأكد من تشغيل الجهاز.

الخطوة 2: توصيلات ISP

أسلاك ISP
أسلاك ISP
أسلاك ISP
أسلاك ISP

2) إنشاء جزء ISP

ستتبع هذا الدليل هنا بخطوة صغيرة ولكنها مهمة للغاية.

السبب في أنه لا يمكنك اتباع الدليل فقط هو أنك تفتقد جزءًا مهمًا: لا يمكنك برمجة جهاز 3.3 فولت مباشرة من اتصالات 5 فولت. (على الأقل ، لم أستطع: لن ينجح الأمر حتى فعلت هذا). تحتاج إلى إدخال مبدل مستوى منطقي يقوم بتحويل إشارات 5 فولت من UNO إلى 3.3V Standalone Arduino.

إذا لم يكن لديك لوحة شيفتر ذات مستوى منطقي ، فيمكنك إنشاء واحدة باستخدام المقاومات. كل مبدل المستوى المنطقي هو في الحقيقة (طالما أنك تقوم بالتحويل لأسفل) هو مقسم جهد. ستحتاج إلى 6 من نفس المقاومات ، لا شيء مرتفع جدًا أو منخفض جدًا. لقد استخدمت مقاومات 220 أوم ، لكنني متأكد من أنه حتى مقاومات 10 كيلو ستعمل.

بالنسبة لـ SCK (الرقم الرقمي 13) و MOSI (الرقم الرقمي 11) ، استخدم مقسم الجهد لخفض الجهد بمقدار الثلث. في الأساس ، سيكون لديك Uno SCK و MOSI ، ثم المقاوم (220 أوم) ، ثم SCK و MOSI متصلان بمقاومات Arduino المستقلة ومقاومان (إجمالي 440 أوم) بالأرض.

لذلك ، اقرأ الدليل المرتبط في بداية هذا القسم ، ولكن قم بتضمين فواصل الجهد بين SCK و MOSI. تذكر أن SCK و MISO و MOSI و RESET هي دبابيس 13 و 12 و 11 و 10 على Uno ولكنها دبابيس 19 و 18 و 17 و 1 على Arduino المستقل!

نصائح عامة حول استكشاف الأخطاء وإصلاحها

  • تحقق من الأسلاك

    • إذا كنت تحصل على توقيع جهاز لجميع 0 عند محاولة كتابة برنامج ، فمن المؤكد تقريبًا أن الأسلاك الخاصة بك متوقفة ، أو أن Arduino المستقل لا يحصل على الطاقة.
    • تأكد أيضًا من حصولك على سلك إعادة الضبط من 10 على Uno إلى 1 على Arduino المستقل
  • تحقق من مقسمات الجهد

    تأكد من حصولك على فواصل الجهد بنسبة 1: 2 (الجانب العالي: الجانب المنخفض) للمقاومات لكل من SCK و MOSI. على سبيل المثال مقاوم 220 على الجانب + 5v ثم 2220 مقاومات أوم (إجمالي 440 أوم) باتجاه الأرض مع الإشارة نحو Arduino المستقل في المنتصف

الخطوة 3: قم بتحرير ملف Bootloader ، انسخ Bootloader ، وقم بتحميل Sketch الخاص بك

قم بتحرير ملف Bootloader ، انسخ Bootloader ، وقم بتحميل Sketch الخاص بك
قم بتحرير ملف Bootloader ، انسخ Bootloader ، وقم بتحميل Sketch الخاص بك
قم بتحرير ملف Bootloader ، انسخ Bootloader ، وقم بتحميل Sketch الخاص بك
قم بتحرير ملف Bootloader ، انسخ Bootloader ، وقم بتحميل Sketch الخاص بك

3) قم بتحرير ملف bootloader (board.txt) وحرق أداة تحميل التشغيل على Arduino المستقل. تحميل الرسم الخاص بك

تحرير ملف bootloader

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

يمكنك إزالة الكشف عن انقطاع التيار الكهربائي تمامًا ، لكنني لا أوصي به. بدلاً من ذلك ، سنقوم بتخفيضه من 2.7 فولت (ما جاء على شبتي كإعداد افتراضي) واستبداله بـ 1.8 فولت. في النهاية ، ومع ذلك ، يمكنك اختيار إعدادات اللون البني الفاتح التي تريدها باستخدام حاسبة الصمامات هنا.

كان ملف لوحاتي في الموقع التالي:

C: / Program Files (x86) Arduino / Hardware / arduino / avr

ومع ذلك ، قد يكون لديك أكثر من ملف board.txt في مجلد الأجهزة بخلاف ملف / arudino /. ستقوم بتحرير ملف board.txt في / arduino / location لأنك ستقوم بتعديل قسم ATMEGA328p (3.3 فولت ، 8 ميجاهرتز).

قد تفقد ملف board.txt الذي تم تحريره إذا قمت بإعادة تثبيت Arduino IDE أو تحديثه (وفقًا لهذا المنشور). هذا يعني أنه إذا قمت بتحديث Arduino IDE ، فسيتعين عليك تغيير هذه الإعدادات مرة أخرى إذا كنت تريد إنشاء آخر من نفس Arduino المستقل.

في ملف board.txt ، قم بالتمرير لأسفل أو ابحث عن "Pro Mini". القسم بعنوان "pro.name = Arduino Pro أو Pro Mini". قم بالتمرير لأسفل إلى القسم الفرعي "pro.menu.cpu.8MHzatmega328 = ATmega328P (3.3V، 8 MHz)".

ابحث عن السطر الذي يقول "pro.menu.cpu.8MHzatmega328.bootloader.extended_fuses = _"

قم بتغيير الإعدادات إلى xFE. (pro.menu.cpu.8MHzatmega328.bootloader.extended_fuses = 0xFE).

حفظ وخروج.

حرق Bootloader

بمجرد القيام بذلك ، يمكنك اتباع قسم "التعليمات" في دليل مزود خدمة الإنترنت من الخطوات من 1 إلى 5.

بعض الأشياء لتوضيح:

  • عندما تقوم بتحميل رسم تخطيطي "Arduino as ISP" ، فأنت بحاجة إلى التأكد من تحديد منفذ COM والمعالج الصحيحين.

    في هذه الحالة ، هذا يعني أنك حددت منفذ COM الخاص بـ Arduino في Tools-> Port: COM X (Arduino Uno) واللوحة هي Arduio Uno

  • حدد المبرمج الصحيح: ضمن أدوات-> مبرمج-> Arduino كـ ISP.

    ليس ArduinoISP أو ArduinoISP.org

  • قبل حرق bootloder ، قم بتغيير اللوحة "Pro أو Pro Mini" والمعالج إلى "ATMEGA328p (3.3 فولت ، 8 ميجاهرتز)".

    لن ترى قسم المعالج حتى تحدد نوع اللوحة الصحيح

انسخ محمل الإقلاع على Arduino المستقل قبل أن تحاول كتابة الرسومات عليه.

تحميل الرسم

هذا مهم جدا. أنت الآن قادر على برمجة إما Arduino: Uno و Standalone. إذا لم تقم بالتحميل إلى الجهاز الصحيح ، فيجب عليك تكرار القسم أعلاه وإعادة كتابة Arduino كبرنامج ISP على Uno.

عند تحميل الرسم التخطيطي الخاص بك ، تأكد من النقر فوق أدوات -> تحميل باستخدام مبرمج أو انقر فوق Ctrl + Shift + U. يمكنك أيضًا الضغط باستمرار على Shift والنقر فوق رمز السهم ، ولكن لا تنقر فوق رمز السهم دون الضغط باستمرار على Shift.

نصائح عامة حول استكشاف الأخطاء وإصلاحها

  • قم بتشغيل الإخراج المطول لاستكشاف الأخطاء وإصلاحها.
  • "توقيع الجهاز هو كل 0!" [من المحتمل جدًا أن يحدث هذا.]

    • انظر قسم الأسلاك ISP. إما أنك قمت بتوصيل Arduino المستقل بسلك غير صحيح أو لم يتم تشغيله.
    • تأكد من تحديد منفذ COM الصحيح واللوحة / المعالج. عندما تقوم بنسخ أداة تحميل التشغيل ، يجب عليك التأكد من أنك تقوم بحرق أداة تحميل التشغيل Pro Mini 3.3V 8 MHz وإلا فلن يتم ضبط الصمامات بشكل صحيح.
  • "لقد قمت بتحرير ملف board.txt ولكن لا أرى التعديلات"

    تأكد من تحرير ملف board.txt الصحيح. حاول تحديث Arduino IDE إذا كانت التعديلات لا تعمل ، أو قم بإزالة المجلدات الأخرى في / الجهاز / المجلد الخاص بك مؤقتًا

  • "لا يمكنني العثور على القسم المصغر للمحترفين في board.txt!"

    أنت لا تبحث في ملف board.txt الصحيح. تحقق من مجلد Arduino // Hardware / arduino /

الخطوة 4: الاتصال التسلسلي

4) مراقبة الجهاز المستقل عبر الاتصال التسلسلي

يمكنك فعل ذلك حقًا عبر طريقتين ، لذلك إذا لم يكن لديك حتى كابل FTDI / لوحة اختراق ، فهذه ليست نهاية العالم. وتذكر أن الرسم الذي قمت بتحميله إلى Arduino المستقل يجب أن يحتوي على عبارات Serial.print لتقرأها: إذا لم تكتبه في البرنامج ، فلن ترى أي شيء!

إذا لم يكن لديك كابل FTDI

بعد قيامك بنسخ محمل الإقلاع وكتابة البرنامج الذي تريده ، يمكنك (بعناية فائقة وتذكر الاتجاه الذي يعود إليه) إزالة شريحة ATMEGA328 DIP من Arduino Uno. أوصي باستخدام مسطح الرأس لهذا الغرض.

يمكنك توصيل Arduino's RX المستقل بـ Uno's RX و TX بـ TX. نعم ، عادة ما يكون العكس ، ولكن يمكنك التفكير في Uno على أنه "يعيد توجيه" المعلومات إلى الشاشة التسلسلية لـ IDE. لهذا السبب لا تقوم بتوصيل RX بـ TX و TX ro RX في هذه الحالة. عند تشغيل برنامجك ، تأكد من اختيار منفذ COM الخاص بـ Arduino Uno وافتح المونتور التسلسلي. ستتمكن من رؤية الإخراج التسلسلي المستقل لاردوينو.

(يُنسب هذا الحل إلى Robin2 هنا.)

إذا كان لديك كابل / لوحة FTDI

(أنا أستخدم لوحة FTDI الخاصة بشركة Sparkfun والتي قمت بتحويلها إلى 3.3 فولت باستخدام لوحة اللحام الموجودة في الخلف)

ما عليك سوى توصيل GND الخاص بلوحة الاختراق بأرض Arduino المستقل وتوصيل RX الخاص بلوحة الاختراق بـ TX و TX لـ Arduino. (إذا كنت تقوم بالمراقبة التسلسلية JUST ولا تكتب أي شيء مرة أخرى ، فيمكنك فقط توصيل RX للوحة التوصيل بـ Arduino TX).

ضع في اعتبارك في هذه المرحلة أن لديك خيار تشغيل Arduino المستقل عبر كابل Uno أو FTDI. لا تقم بتوصيل كلا مصدري الطاقة في نفس الوقت! لاحظ أنه سيتعين عليك تغيير منفذ COM لأنه سيكون مختلفًا عن منفذ Arduino Uno COM.

نصائح عامة حول استكشاف الأخطاء وإصلاحها

  • "أنا لا أرى أي شيء!"

    • تحقق مما إذا كان لديك منفذ COM الصحيح ممكّنًا.
    • تحقق مما إذا كان لديك أحدث برامج تشغيل FTDI.
    • تأكد من توصيل الأرض.
  • "كل ما أراه هو إخراج القمامة في الشاشة التسلسلية!"

    • أنت تحصل على شيء وهو علامة جيدة.
    • ومع ذلك ، تحقق من جهد لوحة FTDI.
    • يقوم Arduino المستقل بإخراج 3.3 فولت على TX الخاص به وقد لا تلتقطه لوحة FTDI إذا كانت تتوقع 5 فولت.
    • تحقق من معدل الباود.
    • تأكد من توصيل الأرض وتوصيل مصدر طاقة واحد فقط! (على سبيل المثال ، لا تقم بتشغيل Arduino المستقل من Uno ولوحة FTDI الخاصة بك.

موصى به: