- المكونات المطلوبة لبرمجة ATtiny85 عبر USB
- ATtiny85 متحكم IC - مقدمة
- وميض Boot-loader على ATtiny85 باستخدام Arduino Uno
- مخطط الدائرة لمبرمج ATtiny
- تثبيت برامج تشغيل Digispark
- إعداد Arduino IDE لبرنامج ATttiny85
عائلة ATtiny هي سلسلة من أصغر المتحكمات الدقيقة في سوق AVR. هذه المتحكمات الدقيقة قادرة على الاستفادة من العديد من المكتبات المتاحة على منصة Arduino. شريحة متحكم ATtiny85 عبارة عن متحكم دقيق AVR ذو 8 سنون و 8 بت. حجمها الصغير واستهلاكها المنخفض للطاقة يجعلها مناسبة تمامًا للمشاريع المحمولة ذات الآثار الصغيرة ومتطلبات الطاقة المنخفضة. لكن الحصول على الكود الخاص بك على الشريحة يمكن أن يكون تحديًا قليلاً لأنه لا يحتوي على أي واجهة USB مثل لوحات الميكروكونترولر.
في برنامجنا التعليمي السابق ، قمنا ببرمجة ATtiny85 باستخدام Arduino Uno. لكن ربط Attiny85 بـ Arduino واستخدام Arduino كمزود خدمة إنترنت قد يكون صعبًا ويستغرق وقتًا طويلاً. لذلك في هذا البرنامج التعليمي ، سنقوم ببناء لوحة برمجة ATtiny85 ، حتى نتمكن من إضافة البرنامج مباشرةً وبرمجته مثل لوحات التحكم الدقيقة الأخرى.
المكونات المطلوبة لبرمجة ATtiny85 عبر USB
- Arduino UNO (لأول مرة فقط أثناء تحميل أداة تحميل التشغيل)
- ATtiny85 إيك
- USB نوع التوصيل ذكر
- 3 مقاومات (2 × 47Ω & 1 × 1kΩ)
- 3 ثنائيات (2 × Zener Diode & 1 × IN5819 Diode)
- قاعدة IC ذات 8 سنون
- اللوح
- أسلاك توصيل
ATtiny85 متحكم IC - مقدمة
Atmel's ATtiny85 هو متحكم دقيق 8 بت عالي الأداء ومنخفض الطاقة يعتمد على هندسة RISC المتقدمة. تتميز شريحة وحدة التحكم الدقيقة هذه بذاكرة فلاش ISP 8KB ، 512B EEPROM ، 512 بايت SRAM ، 6 خطوط إدخال / إخراج للأغراض العامة ، 32 سجل عمل للأغراض العامة ، عداد / عداد 8 بت مع أوضاع مقارنة ، سرعة عالية 8 بت مؤقت / عداد ، USI ، المقاطعات الداخلية والخارجية ، محول A / D رباعي القنوات 10 بت ، مؤقت مراقبة قابل للبرمجة مع مذبذب داخلي ، ثلاثة أوضاع لتوفير الطاقة يمكن تحديدها بالبرمجيات ، و debugWIRE لتصحيح الأخطاء على الشريحة. ATtiny85 Pinout معطى أدناه:
تحتوي معظم دبابيس الإدخال / الإخراج في الشريحة على أكثر من وظيفة واحدة. يتم إعطاء وصف ATtiny85 دبوس لكل دبوس في الجدول أدناه:
رقم الدبوس |
اسم الدبوس |
دبوس الوصف |
1 |
PB5 (PCINT5 / ADC0 / dW) |
PCINT5: Pin Change Interrupt 0، Source5 إعادة تعيين: إعادة تعيين دبوس ADC0: قناة إدخال ADC 0 dW: تصحيح أخطاء WIRE I / O |
2 |
PB3 (PCINT3 / XTAL1 / CLKI / ADC3) |
PCINT3: Pin Change Interrupt 0، Source3 XTAL1: دبوس مذبذب كريستال 1 CLKI: إدخال الساعة الخارجية ADC3: قناة إدخال ADC 3 |
3 |
PB4 (PCINT4 / XTAL2 / CLKO / OC1B / ADC2) |
PCINT4: Pin Change Interrupt 0 ، المصدر 4 XTAL2: دبوس مذبذب كريستال 2 CLKO: إخراج ساعة النظام OC1B: مؤقت / عداد 1 قارن إخراج المطابقة ب ADC2: قناة إدخال ADC 2 |
4 |
GND |
دبوس الأرض |
5 |
PB0 (MOSI / DI / SDA / AIN0 / OC0A / AREF / PCINT0) |
MOSI: إخراج البيانات الرئيسية SPI / إدخال البيانات التابعة DI: إدخال بيانات USI (وضع الأسلاك الثلاثة) SDA: إدخال بيانات USI (وضع سلكي) AIN0: المقارنة التناظرية ، المدخلات الإيجابية OC0A: مؤقت / عداد 0 مقارنة مطابقة الإخراج أ AREF: مرجع تناظري خارجي PCINT0: Pin Change Interrupt 0 ، المصدر 0 |
6 |
PB1 (MISO / D0 / AIN1 / OC0B / OC1A / PCINT1) |
MISO: إدخال البيانات الرئيسية SPI / إخراج البيانات التابعة DO: إخراج بيانات USI (وضع الأسلاك الثلاثة) AIN1: المقارنة التناظرية ، المدخلات السلبية OC0B: Timer / Counter0 قارن إخراج المطابقة B OC1A: Timer / Counter1 قارن مطابقة الإخراج A PCINT1: Pin Change Interrupt 0 ، المصدر 1 |
7 |
PB2 (SCK / USCK / SCL / ADC1 / T0 / INT0 / PCINT2) |
SCK: إدخال الساعة التسلسلية USCK: ساعة USI (وضع الأسلاك الثلاثة) SCL: ساعة USI (وضعان سلك) ADC1: قناة إدخال ADC 1 T0: مصدر ساعة عداد / عداد 0 INT0: إدخال 0 للمقاطعة الخارجية PCINT2: Pin Change Interrupt 0 ، المصدر 2 |
8 |
VCC |
توريد دبوس الجهد |
وميض Boot-loader على ATtiny85 باستخدام Arduino Uno
ل برمجة ATtiny85 دون اردوينو ، فإن علينا أولا أن تحميل محمل فيه باستخدام لوحة UNO اردوينو، وهذا هو عملية لمرة واحدة وبعد الانتهاء من ذلك، ونحن لن تكون بحاجة لوحة UNO مرة أخرى. Boot-Loader هو برنامج خاص يتم تشغيله في وحدة التحكم الدقيقة التي يجب برمجتها. واحدة من أكثر الطرق ملاءمة لتحميل بيانات البرنامج على وحدة التحكم الدقيقة هي من خلال أداة تحميل التمهيد. يوجد Boot-loader على MCU ويقوم بتنفيذ التعليمات الواردة ، ثم يكتب معلومات البرنامج الجديدة في ذاكرة وحدة التحكم الدقيقة. يؤدي وميض محمل الإقلاع على متحكم دقيق إلى إزالة الحاجة إلى أجهزة خارجية خاصة (لوحات المبرمج) لبرمجة وحدة التحكم الدقيقة وستكون قادرًا على برمجته مباشرةً باستخدام اتصال USB. The Digispark ATtiny85يدير اللوح أداة تحميل التمهيد "micronucleus tiny85" ، التي كتبها Bluebie في الأصل. أداة تحميل التمهيد هي الكود المبرمج مسبقًا على Digispark ويسمح لها بالعمل كجهاز USB بحيث يمكن برمجتها بواسطة Arduino IDE. سنقوم أيضًا بتفليش نفس أداة تحميل الإقلاع digispark attiny85 على ATtiny85.
دليل خطوة بخطوة لفلاش bootloader على ATtiny85 باستخدام Arduino Uno و Arduino IDE موضح أدناه:
الخطوة 1: تكوين Arduino Uno كمزود خدمة إنترنت:
نظرًا لأن ATtiny85 هو مجرد متحكم دقيق ، فإنه يتطلب برمجة ISP (برمجة داخل النظام). لبرمجة ATtiny85 ، نحتاج أولاً إلى تكوين Arduino Uno كمزود خدمة إنترنت ليعمل كمبرمج لـ ATtiny85. لذلك ، قم بتوصيل Arduino Uno بالكمبيوتر المحمول وافتح Arduino IDE. بعد ذلك ، انتقل إلى ملف> مثال> ArduinoISP وقم بتحميل كود Arduino ISP.
الخطوة 2: مخطط الدائرة لمحمّل التمهيد اللامع على ATtiny85:
يتم تقديم المخطط الكامل لبرنامج Flashing Boot-loader على ATtiny85 أدناه:
يتم توصيل مكثف 10 µf بين دبوس Reset و GND في Arduino. يتم عرض التوصيلات الكاملة في الجدول أدناه:
ATtiny85 دبوس |
اردوينو أونو بين |
Vcc |
5 فولت |
GND |
GND |
دبوس 2 |
13 |
دبوس 1 |
12 |
دبوس 0 |
11 |
إعادة تعيين |
10 |
الآن قم بتوصيل Arduino Uno بالكمبيوتر المحمول وافتح Arduino IDE. ابحث عن منفذ COM الذي يتصل به Uno. في حالتي ، إنه COM5.
بعد ذلك ، قم بتنزيل ملفات ATtiny85 Boot-loader من الرابط المحدد. افتح " Burn_AT85_bootloader.bat " وقم بتغيير رقم منفذ COM "PCOM5" بأي رقم منفذ COM متصل به Uno. احفظ التغييرات قبل الخروج.
الآن انقل ملفي " Burn_AT85_bootloader.bat " و " ATtiny85.hex " المحررين إلى مجلد جذر Arduino IDE (C: \ Program Files (x86) Arduino).
بعد ذلك ، انقر بزر الماوس الأيمن فوق " Burn_AT85_bootloader.bat " وحدد "تشغيل كمسؤول". يستغرق وميض أداة تحميل التمهيد من 5 إلى 6 ثوانٍ تقريبًا. إذا سارت الأمور على ما يرام ، يجب أن تتلقى هذه الرسالة "تم عمل AVRdude. شكرًا لك. اضغط على أي مفتاح للمتابعة…".
مع هذا ، يتم تثبيت Boot-loader بنجاح على شريحة ATtiny85. حان الوقت الآن لتوصيل USB بـ ATtiny85 حتى نتمكن من برمجته مباشرة. فيما يلي مخطط الدائرة لبرمجة ATtiny85 عبر USB:
مخطط الدائرة لمبرمج ATtiny
المخطط مأخوذ من مخطط لوحة Digispark ATtiny85 ولكن نظرًا لأننا نهدف إلى بناء مبرمج لـ ATtiny85 ، فإننا نقوم فقط بتوصيل Male USB Plug مع ATtiny85.
R3 هو مقاوم سحب متصل بين دبابيس Vcc و PB3 من IC بينما تتم إضافة Zener Diodes (D1-D2) لحماية واجهة USB بالكامل. بعد لحام جميع المكونات الموجودة على لوحة الأداء ، سيبدو الأمر كما يلي:
تثبيت برامج تشغيل Digispark
لبرمجة ATtiny85 باستخدام USB ، يجب أن يكون لديك Digispark Drivers مثبتة على الكمبيوتر المحمول الخاص بك ، إذا لم يكن لديك ، يمكنك تنزيله باستخدام الرابط الموضح أعلاه. بعد ذلك ، قم باستخراج الملف المضغوط وانقر نقرًا مزدوجًا على تطبيق “ DPinst64.exe ” لتثبيت برامج التشغيل.
بمجرد تثبيت برامج التشغيل بنجاح ، قم بتوصيل لوحة ATtiny85 بالكمبيوتر المحمول. انتقل الآن إلى إدارة الأجهزة على نظام Windows الخاص بك وسيتم إدراج جهاز ATtiny85 ضمن "أجهزة libusb-win32" باسم "Digispark Bootloader". إذا لم تتمكن من العثور على "أجهزة libusb-win32" في مدير الجهاز ، فانتقل إلى عرض وانقر فوق "إظهار الأجهزة المخفية".
إعداد Arduino IDE لبرنامج ATttiny85
لبرمجة لوحة ATtiny85 مع Arduino IDE ، أولاً ، نحتاج إلى إضافة دعم لوحة Digispark إلى Arduino IDE. لذلك ، انتقل إلى ملف> تفضيلات وأضف الرابط أدناه في عناوين URL الإضافية لمدير اللوحات وانقر على "موافق".
بعد ذلك ، انتقل إلى الأدوات> Board> Board Manager وابحث عن Digistump AVR وقم بتثبيت أحدث إصدار.
بعد تثبيته ، ستتمكن الآن من رؤية إدخال جديد في قائمة اللوحة بعنوان "Digispark".
الآن ، انتقل إلى ملف> أمثلة> أساسيات وافتح مثال Blink.
قم بتغيير رقم التعريف الشخصي الموجود هناك من LED_BUILTIN إلى 0.
عد الآن إلى Tools -> Board وحدد لوحة " Digispark (افتراضي - 16 ميجا هرتز) ". ثم انقر فوق زر التحميل في Arduino IDE.
ملاحظة: قم بتوصيل لوحة ATtiny85 بالكمبيوتر ، فقط عندما يعرض Arduino IDE رسالة تقول "Plugin device now".
بمجرد تحميل الرمز ، يجب أن يبدأ مؤشر LED المتصل بـ ATtiny85 في الوميض.
هذه هي الطريقة التي يمكنك بها بناء لوحة برمجة Arduino ATtiny85 الخاصة بك. ويرد فيديو عمل لنفسه أدناه. إذا كان لديك أي أسئلة ، فاتركها في قسم التعليقات. لأية أسئلة فنية أخرى ، يمكنك أيضًا بدء مناقشة في منتدياتنا.