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

كيفية استخدام Dragon Rider 500 مع AVR Dragon الخاص بك: 10 خطوات
كيفية استخدام Dragon Rider 500 مع AVR Dragon الخاص بك: 10 خطوات

فيديو: كيفية استخدام Dragon Rider 500 مع AVR Dragon الخاص بك: 10 خطوات

فيديو: كيفية استخدام Dragon Rider 500 مع AVR Dragon الخاص بك: 10 خطوات
فيديو: Burning an Arduino Bootloader with an AVR Dragon 2024, شهر نوفمبر
Anonim
كيفية استخدام Dragon Rider 500 مع AVR Dragon
كيفية استخدام Dragon Rider 500 مع AVR Dragon

هذه التعليمات عبارة عن دورة تدريبية مكثفة حول كيفية استخدام بعض ميزات Dragon Rider 500 من Ecros Technologies. يرجى العلم أن هناك دليل مستخدم مفصل للغاية متاح على موقع Ecros على الويب.

The Dragon Rider هي لوحة واجهة للاستخدام مع مبرمج متحكم AVR يسمى AVR Dragon من Atmel. لمزيد من المعلومات: موقع Atmel's Wesite: https://www.atmel.com/ رابط AVR Dragon: https://www.atmel.com/dyn/products/tools_card.asp؟ tool_id = 3891 Dragon Rider 500 by Ecros Technology: https://www.ecrostech.com/AtmelAvr/DragonRider/index.htm تجميع Dragon Rider 500 Instructable: https://www.instructables.com/id/Assembling-the-Dragon-Rider-500-for-use-with- the-A / تعرف على كل شيء عن ميكروكنترولر AVR: https://www.avrfreaks.net قد ينمو هذا التوجيه بمرور الوقت ، لذا تحقق مرة تلو الأخرى!

الخطوة 1: AVR Dude

أنت بحاجة إلى بعض برامج البرمجة لاستخدام AVR Dragon للبرمجة. أستخدم AVRdude مع نظام التشغيل Ubuntu (لينكس) وأنا سعيد جدًا بالنتائج. لن يتعامل هذا التوجيه مع تعقيدات برامج البرمجة. إذا كنت لا تعرف كيفية إعداد أو استخدام برنامج البرمجة ، فتحقق من هذا التوجيه لتزويدك بالسرعة: AVR-dragon / تخميني هو أنك إذا اشتريت Dragon Rider 500 وقمت بتجميعه ، فأنت تعرف بالفعل كيفية برمجة شريحة باستخدام AVR Dragon….. فصاعدًا!

الخطوة 2: ATtiny2313 - وميض مصابيح LED

ATtiny2313 - وميض المصابيح
ATtiny2313 - وميض المصابيح
ATtiny2313 - وميض المصابيح
ATtiny2313 - وميض المصابيح
ATtiny2313 - وميض المصابيح
ATtiny2313 - وميض المصابيح

لنقم ببرمجة ATtiny2313 وهو متحكم دقيق مكون من 20 سنًا. يحتوي Dragon Rider 500 على مآخذ للعديد من وحدات التحكم الدقيقة AVR مختلفة الحجم. وتشمل هذه: 8 ، 20 ، 28 ، و 40 دبوس. اعتمادًا على المقبس الذي تستخدمه ، يجب ضبط وصلات العبور على لوحة Dragon Rider بشكل مختلف.

إعدادات الطائر

اضبط وصلات العبور على Dragon Rider بحيث تقوم القطع بتوصيل المسامير التالية. (pin4 هو الدبوس المركزي لـ J22-J-24) الدبابيس: J5 - 23J6 - 23J7 - 12J16 - 23J22 - 41J23 - 41J24 - 41 هذا إعداد أساسي يسمح لـ ISP (في برمجة النظام).

بلينكي بلينكي

البرمجة لا تفيد إلا إذا كان لديك شيء لبرمجته. لقد كتبت مثالًا قصيرًا جدًا للرمز ليومض مؤشر LED الخاص بـ Dragon Rider واحدًا تلو الآخر. استخدم كابل الشريط لتوصيل رأس LED (J29) برأس PortB (J2).

برمجة

لقد قمت بتضمين ملف C بالإضافة إلى ملف makefile وملف hex. كما ذكرت في المقدمة ، لا يمكنني تغطية جانب البرنامج من البرمجة في Instructable. برنامج كما تفعل مع AVR Dragon ، حيث أن Dragon Rider لا يغير جانب البرنامج للأشياء على الإطلاق.

الخطوة 3: استخدام الوظيفة الإضافية LCD

استخدام الوظيفة الإضافية LCD
استخدام الوظيفة الإضافية LCD

إليك طريقة بسيطة لاستخدام الوظيفة الإضافية LCD. سيؤدي هذا إلى كتابة "Dragon Rider" على شاشة LCD.

المعدات:

  • اتيني 2313
  • R / W Jumper: يجب توصيل R / W بـ "BIT1" على لوحة Dragon Rider (انظر الشرح في التجميع Instructable)
  • J23: يجب تثبيت هذا الموصل لبرمجة ISP ولكن بعد ذلك يتم إزالته حتى تعمل شاشة LCD بشكل صحيح.
  • قم بتوصيل شاشة LCD بالمنفذ B باستخدام كابل الشريط (J31 إلى J2)

برمجة

أنا أستخدم مكتبة Peter Fleury LCD لتشغيل شاشة LCD في وضع 4 بت. تحقق من الصفحة الرئيسية لبيتر لتنزيل المكتبة. ستحتاج إلى التأكد من أن lcd.c مجمع مع الكود الخاص بك وأنك تجري التغييرات التالية على lcd.h:

نحن نستخدم مذبذب RC الداخلي لذا يجب ضبط XTAL على 1 ميجا هرتز:

#define XTAL 1000000

  • يجب ضبط إعدادات المنفذ على PORTB:
  • #define LCD_PORT PORTB

  • يجب تكييف Pinout لـ 4 خطوط بيانات:
  • #define LCD_DATA0_PIN 4 #define LCD_DATA1_PIN 5 #define LCD_DATA2_PIN 6 #define LCD_DATA3_PIN 7

  • يجب تكييف Pinout لـ RS و RW و E:
  • #define LCD_RS_PIN 3 #define LCD_RW_PIN 1 #define LCD_E_PIN 2

    البرنامج الرئيسي بسيط للغاية بفضل العمل الذي قام به Peter Fleury في مكتبة LCD الخاصة به.

    #include #include "lcd.h" int main (void) {lcd_init (LCD_DISP_ON)؛ // تهيئة شاشة LCD مع إيقاف تشغيل المؤشر lcd_clrscr () ؛ // مسح شاشة LCD lcd_gotoxy (5 ، 0) ؛ // حرك المؤشر إلى هذا الموقع lcd_puts ("التنين") ؛ // ضع هذه السلسلة على شاشة LCD lcd_gotoxy (6 ، 1) ؛ // حرك المؤشر إلى هذا الموقع lcd_puts ("رايدر") ؛ // ضع هذه السلسلة على شاشة LCD لـ (؛ ؛) {// لا تفعل شيئًا إلى الأبد (الرسالة معروضة بالفعل على شاشة LCD)}}

    الكود مرفق

    يشتمل الرمز المرفق على مكتبة شاشات الكريستال السائل الخاصة ببيتر فلوري (lcd.c و lcd.h) بإذن منه. شكرا لك بيتر! التغيير الوحيد الذي قمت به هو ضبط المسامير المناسبة في التعريفات. يرجى زيارة موقعه لتنزيل الحزمة: https://www.jump.to/fleury لقد قمت أيضًا بتضمين ملف makefile الذي استخدمه كتبه Eric B. Weddington و Jorg Wunsch. لقد أرسلت رئيس الوزراء إلى Jorg في avrfreaks.net لكنني لم أتلق ردًا منه أبدًا. هناك بعض التغييرات في ملف makefile لتكييفه مع استخدام Linux و Dragon. شكرًا لكما ، يرجى تحديد تفضيلاتك لي من خلال مشاركة عملك.

    الخطوة 4: 28-pin UC ISP Programming (ATmega8)

    28-pin UC ISP Programming (ATmega8)
    28-pin UC ISP Programming (ATmega8)
    28-pin UC ISP Programming (ATmega8)
    28-pin UC ISP Programming (ATmega8)

    ستستخدم عملية تعديل المشروع التالية ATmega8 وهي عبارة عن 28 سنًا avr. هنا مجموعة العبور الأساسية لبرمجة ISP للميكروكونترولر 28 سنًا.

    إعدادات الطائر

    اضبط وصلات العبور على Dragon Rider بحيث تقوم القطع بتوصيل المسامير التالية. (pin4 هو الدبوس المركزي لـ J22-J-24) الدبابيس: J11 - 23J12 - 23J13 - 12J16 - 23J22 - 42J23 - 42J24 - 42

    معلومات تقنية

    • يتيح لك توصيل J11 و J12 بهذه الطريقة استخدام تلك المسامير كدبابيس إدخال / إخراج. سيكون البديل هو توجيه هذه المسامير لإجراء اتصال مع البلورة الخارجية.
    • يتيح لنا توصيل J13 بهذه الطريقة استخدامه كدبوس إعادة الضبط. البديل هو توجيه هذا الدبوس إلى رأس PORTC لاستخدامه كدبوس I / O. (قد يكون لهذا العديد من العيوب ، بما في ذلك عدم القدرة على برمجة هذه الشريحة باستخدام ISP).
    • يتم توصيل J16 و J22-J24 بهذه الطريقة لتوجيه المسامير المناسبة (إعادة التعيين و MISO و MOSI و SCK) إلى رأس ISP الخاص بـ AVR Dragon.

    الخطوة 5: استخدام LCD والأزرار المتقدم: الساعة الكبيرة

    استخدام LCD والأزرار المتقدم: الساعة الكبيرة
    استخدام LCD والأزرار المتقدم: الساعة الكبيرة

    هذا مشروع ممتع يستخدم شاشة LCD والأزرار. سنتعامل مع وظائف Real Time Clock والحروف المخصصة على شاشة LCD. في الصورة في الأسفل يمكنك رؤية الساعة 7:26:07 مساءً معروضة بأعداد كبيرة على شاشة LCD. يستخدم كل رقم شبكة 2 × 2 من الأحرف المعروضة لإظهار العدد الكبير. يستخدم هذا الخط المكتوب أصلاً بواسطة Xtinus لمشروع XBMC. تستخدم الأزرار لضبط الساعة. يعمل اليسار على زيادة الساعات ، وزاد Up للدقائق ، ولليمين للتبديل بين 12 و 24 ساعة ، و Enter يعيد تعيين الثواني إلى الصفر. لا تحافظ الساعة على وقت جيد لأننا نستخدم مذبذبًا داخليًا غير دقيق للغاية ، ولكن يمكن بسهولة تغيير هذا البرنامج لاستخدام بلورة خارجية أكثر دقة. شاهد هذا في العمل في الفيديو أدناه. شرح كيفية عمل هذا الرمز بالترتيب ، لكن ليس لدي الوقت الآن. في الوقت الحالي ، قم بتوصيل رأس LCD (J31) بـ PORTD (J4) ورأس الزر (J30) بـ PORTB (J2). تأكد من أن كل من SW1 و SW2 في وضع إيقاف التشغيل. قم بتوصيل AVR Dragon بكابل USB وقم بتوصيل الطرف الآخر من هذا الكبل بجهاز الكمبيوتر الخاص بك. قم بتشغيل SW2 وبرمجة ATmega8 باستخدام برنامج البرمجة الذي تختاره (ملف hex أدناه ؛ تم حرق الصمامات وفقًا لإعدادات المصنع). هذا أثناء انقطاع التيار الكهربائي.

    الخطوة السادسة: برمجة الجهد العالي

    لقد استخدمت البرمجة المتوازية ذات الجهد العالي لإحياء ATtiny2313 الذي قمت بضبط إعدادات الصمامات الخاطئة عليه. كنت في حاجة إليها للمرة الثانية عند العمل على هذا التوجيه لأنني كتبت عن طريق الخطأ إعداد lfuse الذي أردت تسجيله في hfuse … خطأ. البرمجة المتوازية ذات الجهد العالي هي أداة سهلة الاستخدام تحت تصرفك! فيما يلي قوائم بإعدادات العبور الخاصة بي: استخدمها على مسؤوليتك الخاصة ، يمكن أن يتسبب هذا النوع من البرمجة في إتلاف أجهزتك إذا لم تكن تعرف ما الذي تفعله !! البرمجة المتوازية عالية الجهد: ATtiny2313 في المقبس U3: SW1 - OFFSW2 - ONJ5 و J6 و J7 - قم بتوصيل pin1 و pin2XTAL1 - قم بتوصيل pin1 و pin2J16 - قم بتوصيل كبلات pin1 و pin22x5 IDC: PROG_CTRL بـ PORT D ، PROG_DATA إلى PORT BAll وصلات العبور الأخرى غير المتصلة J8-J13 ، J18 ، J19 ، J20 ، J22-J28 ، J24) بالنسبة للرقائق الأخرى ، يجب أن تكون قادرًا على معرفة الإعدادات التي تحتاجها من دليل مستخدم Atmel الخاص بـ STK500.

    الخطوة 7: التوسيع إلى ما بعد اللوحة

    التوسيع إلى ما بعد المجلس
    التوسيع إلى ما بعد المجلس

    أجد أنه من السهل جدًا التعامل مع اللوح. يتيح ذلك قدرًا أكبر من المرونة في إنشاء النماذج الأولية وتطوير الكود في نفس الوقت. أدناه سترى لوحتين متصلتين بـ Dragon Rider. أقوم بتوصيل الكابلات الشريطية بالمنافذ المناسبة في أحد طرفيها. في الجانب الآخر ، أستخدم أسلاك توصيل لتوصيل موصل ICD المناسب بألواح التجارب.

    الخطوة 8: الخاتمة

    هناك الكثير مما يمكن أن يشارك في هذا Instructable. الليلة فقط أكملت محولًا يسمح لك باستخدام رأس البرمجة ذي الستة أسنان دون إزالة التنين من Dragon Rider. سأضع معلومات حول كيفية إنشاء واحدة بنفسك … قريبًا. إذا كان لديك أشياء أخرى تعتقد أنه يجب إضافتها ، فاترك تعليقًا.

    الخطوة 9: إضافة 6-Pin ISP

    إضافة 6 دبوس ISP
    إضافة 6 دبوس ISP
    إضافة 6 دبوس ISP
    إضافة 6 دبوس ISP
    إضافة 6 دبوس ISP
    إضافة 6 دبوس ISP

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

    تحذير!

    هذا اختراق. إذا كنت لا تعرف بالضبط كيف يعمل هذا ، فلا تفعل ذلك

    لقد تم تحذيرك لقد قمت بإنشاء لوحة مهايئ خاصة بي ووصلة توصيل ذات 3 سنون لتزويد رأس isp ذي 6 سنون. ما تفعله هو ضبط Dragon Rider على البرنامج ومتحكم 8-pin. باستخدام مقبس ثلاثي السنون ، أقوم بتوصيل J8 لتوصيل السنون 1 و 3. وهذا يوجه إشارة الساعة إلى موصل PortB. ثم قمت بتشغيل كابل توصيل من موصل PortB إلى لوحة المحول الخاص بي وفويلا! هناك صور أدناه…. من فضلك ، من فضلك ، من فضلك ، لا تفعل هذا ما لم تفهم حقًا ما تفعله لأنك قد تلحق الضرر بـ AVR Dragon الخاص بك أو ما هو أسوأ إذا قمت بهذا الخطأ.

    Pinout: PortB ISP1 42 13 34 NC5 NC6 57 NC8 NC9 610 2

    الخطوة 10: قارئ RSS باستخدام الاتصال التسلسلي وشاشة LCD

    قارئ RSS باستخدام اتصال تسلسلي وشاشة LCD
    قارئ RSS باستخدام اتصال تسلسلي وشاشة LCD
    قارئ RSS باستخدام اتصال تسلسلي وشاشة LCD
    قارئ RSS باستخدام اتصال تسلسلي وشاشة LCD

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

    المعدات

    نحن نستخدم Dragon Rider 500 كلوحة تطوير. يوفر هذا كل الأجهزة التي تحتاجها (بافتراض أن لديك جميع مجموعات الوظائف الإضافية). ومع ذلك ، يمكنك بالتأكيد القيام بذلك من خلال إعداد الأجهزة الخاصة بك:

    • متحكم ATmega8 (أو أي متحكم يحتوي على USART ودبابيس كافية لجميع التوصيلات
    • طريقة لبرمجة المتحكم الدقيق (أستخدم AVR Dragon)
    • شريحة MAX232 للاتصالات التسلسلية
    • موصل DB9
    • HD44780 شاشة LCD
    • كريستال (استخدمت بلورة 8 ميجا هرتز)
    • مكثفات ومقاومات متنوعة

    يتم توفير مخطط أدناه. في Dragon Rider سنحتاج إلى استخدام بعض الإبداع لتوجيه الاتصالات. عادة يمكن توصيل المنفذ D مباشرة برأس LCD. ليس هذا هو الحال هنا لأن USART المطلوب للاتصال التسلسلي يستخدم PD0 و PD1. علاوة على ذلك ، لا يمكن استخدام المنفذ B لأن PB6 و PB7 قيد الاستخدام للبلورة الخارجية. الصورة أدناه هي الحل الخاص بي لهذه المشكلة. أقوم بتوصيل كبل الشريط برؤوس شاشة LCD والمنفذ B والمنفذ D ، ثم استخدم أسلاك التوصيل لعمل المسارات الصحيحة. لا تنس توصيل الجهد والأرضي برأس LCD.

    برمجة

    يأتي برنامج هذا المشروع في جزأين ، البرنامج الثابت الخاص بالمتحكم الدقيق ونص بايثون لتخليص موجزات RSS وإرسالها عبر الاتصال التسلسلي. AVR Firmware أنا أستخدم مكتبة Peter Fleury LCD مرة أخرى (https://jump.to / فلوري). إنه قوي وموجز ومتعدد الاستخدامات وسهل التغيير لإعداد أجهزتك. إذا نظرت إلى ملف الرأس المرفق (lcd.h) ، فسترى أنني أعمل في وضع 4 بت مع المنفذ D باعتباره بتات البيانات ، والمنفذ B هو بتات التحكم. مفهوم هذا البرنامج الثابت بسيط جدًا:

    • بمجرد تشغيل وحدة التحكم الدقيقة ، تعرض "قارئ RSS" ثم تنتظر البيانات التسلسلية.
    • يؤدي كل بايت من البيانات التسلسلية المستلمة إلى تحويل مخزن مؤقت من 16 حرفًا إلى اليسار وإضافة البايت إلى المخزن المؤقت ، ثم عرض المخزن المؤقت.
    • يتم قبول ثلاثة أوامر خاصة بواسطة وحدة التحكم الدقيقة: 0x00 و 0x01 و 0x02. هذه شاشة واضحة ، والانتقال إلى السطر 0 ، والانتقال إلى السطر 1 على التوالي.

    لقد كتبت Python ScryptI نصًا بلغة Pyton لكشط بيانات RSS وإرسالها عبر الاتصال التسلسلي. هذا يتطلب وحدة python "pyserial" والتي ربما يتعين عليك تثبيتها على نظامك حتى يعمل. يمكن تكوين موجز RSS في أعلى ملف pyton. لاحظ أنك بحاجة إلى إدخال اسم للخلاصة بالإضافة إلى عنوان url الخاص بها. هناك ثلاثة أمثلة ، أنا متأكد من أنه يمكنك اتباعها من أجل التوافق الصحيح

    • قم بتجميع الأجهزة
    • قم ببرمجة وحدة التحكم الدقيقة (يمكن استخدام dragon_rss.hex إذا كنت لا تريد تجميع هذا بنفسك). إعدادات الصمامات لـ ATmega8 باستخدام بلورة 8 ميجا هرتز: lfuse = 0xEF hfuse = 0xD9
    • قم بتشغيل Dragon Rider وتأكد من توصيل الكبل التسلسلي (يجب أن تقرأ شاشة LCD: "قارئ RSS")
    • قم بتنفيذ برنامج python (python serial_rss.py)
    • يتمتع

    موصى به: