أجهزة الكمبيوتر شبابيك إنترنت

كيفية الاتصال وكتابة برنامج وفلاش وحدة التحكم الدقيقة ATtiny2313. نقوم بتوصيل الزر بوحدة التحكم الدقيقة ATtiny2313، وهو برنامج بسيط لاستعادة تكوين ATtiny13 Fuse-bit

تحظى وحدات التحكم الدقيقة Atmel AVR بشعبية كبيرة بين هواة الراديو منذ عدة سنوات. الميزة الخاصة لأعضاء MK هذه هي أنه يمكنك كتابة "البرامج الثابتة" فيها في الوضعين المتوازي والتسلسلي.

استعادة تكوين بت الصمامات ATtiny13

في ممارسة راديو الهواة، الأكثر استخدامًا هو المبرمجون التسلسليون (SPI - الواجهة الطرفية التسلسلية)، الذين يتمتعون بعدد من المزايا: دوائرهم عادةً ما تكون أبسط من تلك الخاصة بالمبرمجين المتوازيين (في الحالات القصوى، يمكنك حتى التعامل مع خمسة موصلات) واثنين من المقاومات)؛ هناك العديد من الخيارات لكل من المبرمجين أنفسهم وبرامج التحكم لأنظمة التشغيل المختلفة؛ لتوصيل المبرمج، يمكنك اختيار أي منفذ كمبيوتر تقريبًا - توجد مخططات لكل من LPT وCOM، بالإضافة إلى مبرمجي USB. بالإضافة إلى ذلك، يسمح لك هذا المبرمج "بفلاش" MK دون فكه من الجهاز (ISP - قابل للبرمجة في النظام).

ومع ذلك، لا يزال يتم تجريد وضع برمجة SPI؛ ولا تتوفر فيه بعض إمكانيات البرمجة الموازية الكاملة. المشكلة الأكثر شيوعًا في البرمجة التسلسلية هي عدم القدرة على تنفيذ أي إجراءات باستخدام MK، إذا تم تغيير بعض خلايا الصمامات الخاصة بـ MK بالنسبة إلى القيم الافتراضية - في هذه الحالة، فإن الشريحة "تضرب" ولا تعمل التواصل مع الكمبيوتر: لم يعد من الممكن استخدامه للقراءة أو "الوميض" بواسطة مبرمج تسلسلي. ويبدو أنه معطل، في حين أن برنامج PonyProg، على سبيل المثال، ينتج رسالة الخطأ التالية: "الجهاز مفقود أو جهاز غير معروف (-24)، على الرغم من أنه في الدائرة النهائية، يمكن أن يعمل MK بشكل طبيعي تمامًا.

قد يكون سبب "عدم الاتصال" هذا، على سبيل المثال، ضبط بت RSTDISBL على الصفر (والصفر في بتات المصهر الخاصة بـ AVR يعني أن هذه البتة مبرمجة) - مما يؤدي إلى إيقاف تشغيل مدخلات إعادة الضبط الخارجية وإيقاف تشغيلها إلى خط إدخال/إخراج عادي؛ وبدون إعادة ضبط خارجي، لن يتمكن MK من الدخول إلى وضع برمجة SPI، ولن يتمكن جهاز الكمبيوتر من الوصول إليه. سبب آخر يجعل وحدة MCU "غير مرئية" لمبرمج SPI هو الافتقار إلى تسجيل الوقت: يمكن ضبط وحدات المصهر التي تتحكم في مولد الساعة (CKSEL0-3) بطريقة تجعل وحدة MCU تقوم بإيقاف تشغيل دوائر الساعة الداخلية و تتطلب مذبذبًا خارجيًا - مصدر الساعة؛ وبدون تسجيل الوقت، برمجة SPI مستحيلة.

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

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

تم تصميم الجهاز "لمعالجة" ATtiny2313 MK، ولكن يمكن تحويله لأي طراز AVR آخر - Tiny وMeda - والذي تم إرفاق "كود مصدر" للبرنامج الثابت به تعليق جيد، مما يجعل من الممكن إعادة كتابته فيما يتعلق بـ MK الذي يحتاج إلى سيارة إسعاف في هذه اللحظة. جوهر تشغيل مثل هذا الجهاز هو وضع "المريض" في وضع البرمجة المتوازية ومحاكاة إشارات المبرمج "الحقيقي" المسؤولة عن تغيير حالة خلايا الصمامات على خطوطه ؛ ثم اكتب القيم الافتراضية لخلايا الصمامات في عضو الكنيست هذا.

يقوم هذا الجهاز بتعيين قيم المصنع لجميع بايتات الصمامات: عالية ومنخفضة وإضافية؛ وبالإضافة إلى ذلك، فإنه يمحو أيضًا ذاكرة البرامج والبيانات "المريضة" - ونتيجة لذلك يكتسب حالة الدائرة الدقيقة "النظيفة". تم بالفعل وصف أجهزة مماثلة في الأدبيات الإذاعية للهواة وعلى الإنترنت (تحت أسماء Fuse Doctor، وAVR Doctor، وAVR Reanimator، وAVR Aibolit، وما إلى ذلك)، ولكن هذا الجهاز يحتوي على العديد من الميزات التي تجعل العمل معه أكثر متعة قليلاً. أولاً، في جميع التصاميم المعروفة للمؤلف، كان "الطبيب" و"المريض" متصلين ببعضهما البعض، عمليًا "من القدم إلى القدم" (باستثناء بعض المحطات الطرفية، وفقًا للمخطط، بالنسبة لـ "الطبيب" ولا ينبغي أن يكون "المريض" متصلاً).

أي الخطوط РВ0-РВ7 - للخطوط РВ0-РВ7، الخط PD6 - للخط PD6، وما إلى ذلك - والتي، في حالة تجميع الدائرة بطريقة مطبوعة، تعقد التثبيت بشكل كبير - كانت هناك حاجة إلى العديد من وصلات العبور، أو مضاعفة الأسلاك ذات الجوانب (على الرغم من أن بعض المؤلفين اقترحوا ببساطة تركيب الدوائر الدقيقة فوق بعضها البعض، وثني الأطراف غير المتصلة إلى الجانب ولحام المقاومات/الموصلات عليها؛ ونحن نعرف ذلك جيدًا). هنا يتم ترتيب الدوائر الدقيقة "جنبًا إلى جنب"، "مقبس"، مما يجعل تخطيط لوحة الدوائر المطبوعة بسيطًا للغاية.

في نسخة المؤلف، التي تظهر في الشكل 2، تكرر إلى حد كبير مخطط الدائرة وتحتوي على ثلاثة وصلات صغيرة فقط. حجم اللوحة - 60x60 ملم. ثانيًا، تتطلب بعض الأجهزة جهدين: 5 فولت لتشغيل MK، و12 فولت لخط إعادة ضبط "المريض" للدخول في وضع البرمجة. تتطلب هذه الدائرة جهدًا واحدًا فقط، والذي يمكن أن يختلف في نطاق واسع إلى حد ما - الشيء الرئيسي هو أنه لا يقل عن 12 فولت. ثالثًا، لا تسمح معظم الأجهزة الموصوفة باستبدال "الساخن" لـ "المرضى" في حالة وجودها من الضروري "علاج" العديد من أعضاء الكنيست على التوالي - بعد كل "وميض" يحتاجون إلى إيقاف تشغيل الطاقة، واستبدال الجهاز "المريض"، ثم تشغيل الطاقة مرة أخرى، وما إلى ذلك. يقوم هذا الجهاز بتعيين جميع المخرجات لتسجيل الدخول.

O بعد كل "وميض" والذي يسمح لك "بمعالجة" الدوائر الدقيقة باستخدام "ناقل" - قم بتوصيل الطاقة، وقم بتثبيت "المريض"، واضغط على زر "ابدأ"، وانظر إلى نتيجة "العلاج" على HL1 ، قم بإزالته، وأدخل "مريضًا" جديدًا، واضغط على "نظرت إلى HL1"، وقم بإزالته، وإدخاله، وما إلى ذلك. وكل هذا دون انقطاع التيار الكهربائي (على الأقل افتح "خيمة" في سوق الراديو!). حسنا، رابعا، في كثير من الأحيان في مثل هذه الأجهزة لا يوجد التحقق من قطع الصمامات المسجلة وإشارة إلى نتيجة "المعالجة" (من النوع "الناجح / غير الناجح").

في هذا التصميم، يتم توفير التحقق، ويتم الإشارة إلى نتائجه بواسطة مصباح LED HL1، والذي يمكن أن يحتوي على ثلاث حالات:

  1. يضيء بشكل مستمر - تم الانتهاء من برمجة "المريض".
    ناجحة، وقراءة بايتات الصمامات تتطابق مع تلك المكتوبة؛
    الجهاز ينتظر "المريض" التالي؛
  2. يومض بتردد 2 هرتز - خطأ في
    برمجة "المريض":
    قراءة بايتات الصمامات لا تتطابق مع تلك المكتوبة؛ لم يدخل "المريض" في وضع البرمجة، أو لم يتم تثبيته أو به خلل (في
    يوفر البرنامج فحصًا لوجود "مريض" - يقوم AVR العامل بتعيين المنطق 1 على خط BSV/RDY (دبوس 3 لـ ATtiny2313) عند الدخول في وضع البرمجة المتوازية)؛ الجهاز ينتظر التالي
    "مريض"؛
  3. OFF - عملية البرمجة والتحقق جارية. تستغرق برمجة "مريض" سليم أقل من ثانية، ويجب ألا تكون حالة LED هذه ملحوظة في الظروف العادية. إذا كان مؤشر LED في حالة إيقاف التشغيل لفترة طويلة نسبيًا، فمن المرجح أن تكون عملية "الوميض" قد دخلت في دورة بسبب حقيقة أن "المريض" المعيب عالق في وضع التسجيل ولا يقوم بتعيين BSY / إشارة الاستعداد RDY المتوقعة من قبل "الطبيب".

كما ذكرنا سابقًا، فإن الجهاز عالمي تمامًا ويمكن استخدامه "لعلاج" أي عضو MK من سلسلة AVR تقريبًا. في هذه الحالة، ليس من الضروري على الإطلاق عمل نسخة منفصلة من الجهاز لمختلف وحدات التحكم الدقيقة التي تختلف في عدد وموقع المسامير - يكفي ببساطة إضافة محولات، حسب الضرورة، لتوصيل "المريض" التالي "واحد، وأعد كتابة برنامج التحكم وفقًا لذلك. المحول عبارة عن مقبس DIP-20، يتم إدخاله مع "أرجله" في لوحة "المريض" الموجودة على لوحة الجهاز. من الأعلى إلى هذا المقبس (إلى جهات اتصال دبابيس الدائرة الدقيقة) يتم لحام الموصلات (أو إدخالها ببساطة) في تلك الأماكن التي تقترب فيها خطوط الطاقة والتحكم من "المريض" على اللوحة.

يتم لحام الأطراف الأخرى لهذه الموصلات بأطراف المقبس الثاني - تحت MK الذي يتطلب "المعالجة" - وفقًا لموقع خطوط التحكم الخاصة به، والذي يمكن تحديده في ورقة البيانات الخاصة. اتضح أنه نوع من الموصل، يتم إدخال القابس (مجرد مقبس DIP-20) في مقبس DIP-20 الخاص بـ "المريض" الموجود على اللوحة، ويتم إدخال "مريض" جديد في المقبس الخاص به (مأخذ آخر). أما البرنامج فقد يحتاج إلى تصحيح، لأن... غالبًا ما تتطلب النماذج المختلفة لوحدات AVR MCU إجراءات مختلفة للدخول إلى وضع البرمجة ولتغيير بايتات المصهر. بالإضافة إلى ذلك، تختلف بايتات المصهر نفسها (بما في ذلك عددها) باختلاف نماذج MK - يمكن الحصول على معلومات أكثر تفصيلاً في [L. 1،2،3]، أو في وثائق الشركة.

ولتسهيل فهم البرنامج الأصلي، قدمت له تعليقات مفصلة. بصفته "طبيبًا"، يستخدم هذا الجهاز نفس وحدة التحكم الدقيقة ATtiny2313 مثل "المريض" - ويتم تثبيته أيضًا على المقبس بحيث يمكن إزالته واستخدامه في مشاريع أخرى بعد استعادة جميع الدوائر الدقيقة "المريضة". للعمل في هذا الجهاز، يجب أن تكون جميع قطع الصمامات الخاصة بـ "الطبيب" هي نفسها تلك المثبتة فيه افتراضيًا (من المصنع)؛ الشيء الوحيد هو أنه من أجل تشغيل أكثر استقرارًا (خاصة مع جهد إمداد غير مستقر) في "الطبيب" يمكنك تمكين نظام BOD عن طريق ضبطه على مستوى 2.7 فولت (عن طريق ضبط بت المصهر BODLEVEL1 على الصفر).

لا يحتاج "الطبيب" إلى كوارتز خارجي، فهو يعمل من مذبذب RC مدمج. يمكن استبدال شريحة DA1 (78L05) بالشريحة التناظرية المحلية KR1157EN502، أو شريحة 7805 الأقوى - ولكنها أغلى بكثير، ولا تحتاج إلى قوتها لهذه الدائرة. يعمل الترانزستور VT1 هنا في وضع المفتاح، ويمكن أن يكون من أي بنية NPN - على سبيل المثال، KT315، 2SC1815، 2SC9014، 2SC1749S، وما إلى ذلك؛ ولكن بالنسبة لبعض النماذج، سيتعين عليك تغيير تخطيط اللوحة. يمكن أن يكون صمام الأمان الثنائي VD1 أي شيء، بتيار لا يقل عن 150 مللي أمبير. وتتمثل مهمتها في حماية الدائرة من انعكاس الطاقة العرضي. جميع المقاومات في الدائرة صغيرة الحجم، 0.125 واط - قد تختلف قيمها عن تلك المشار إليها ضمن نطاق واسع إلى حد ما. LED HL1 - أي مؤشر.

وفي الختام، أود أن أتحدث عن ميزة مثيرة للاهتمام لسلوك بعض نسخ ATtiny2313 MKعندما تتم برمجتها بواسطة SPI باستخدام برنامج PonyProg2000 (ربما تتصرف نماذج MK الأخرى بنفس الطريقة، بما في ذلك مع البرامج الأخرى - ولكن لم تتح للمؤلف فرصة تجربة أي شيء آخر غير مجموعة ATtiny2313-PonyProg2000). جوهر المشكلة هو كما يلي: في بعض الأحيان، عند محاولة قراءة أو كتابة متحكم دقيق، يعرض برنامج PonyProg رسالة الخطأ "جهاز مفقود أو جهاز غير معروف (-24)" - وهذا على الرغم من عدم وجود وحدات بت في هذا المتحكم الدقيق تم تغييرها - علاوة على ذلك، قد تكون الدائرة الدقيقة جديدة، ولم "تومض" أبدًا بعد! "العلاج" باستخدام الجهاز الموصوف أعلاه لا يعطي أي نتائج - عند محاولة القراءة/الكتابة مرة أخرى، تظهر رسالة الخطأ مرة أخرى.

يبدو أن عضو الكنيست خارج عن النظام، وبدون أي سبب على الإطلاق. ولكن إذا قمت بالنقر فوق الزر "تجاهل" في هذه الرسالة، فسيضطر "Pony" إلى تجاهل عدم الاستجابة من MK. وما زلت تحاول قراءة/كتابة الدائرة الدقيقة، فسيتم قراءة MK أو "وميضه" بشكل طبيعي. بعد مثل هذه "البرامج الثابتة" القسرية، سيعمل معظم أعضاء MK "الذين يتظاهرون بالموت" بشكل طبيعي تمامًا، ودون أي أعطال (باستثناء الرسالة الموضحة أعلاه عند محاولة إنشاء اتصال بالكمبيوتر)!

على ما يبدو، النقطة هنا هي أن بعض مثيلات MK لا تولد التأكيد الصحيح استجابة لطلب المبرمج، ونتيجة لذلك يستنتج PonyProg أنها معيبة؛ وفي الوقت نفسه، يدرك هؤلاء أعضاء الكنيست أوامر المبرمج المتبقية بشكل طبيعي وينفذونها بشكل صحيح. من الممكن أن تكون هذه ميزة (أو بالأحرى "مرض") لـ AVR MK (لا يقتصر الأمر على أن PonyProg يتضمن مثل هذا الزر - "تجاهل") - كان مؤلف هذه المقالة يتصرف بثلاثة من كل عشرة أعضاء MK بهذه الطريقة، وفي كثير من الأحيان بدأ هذا ليس على الفور، ولكن بعد عدة "البرامج الثابتة".

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

كيفية تجميع دائرة بسيطة، وكيفية توصيل مبرمج بمتحكم ATtiny2313، وكيفية كتابة برنامج بسيط بلغة C وكيفية وميض متحكم ATtiny2313 ببرنامجنا، كل هذا ستجده في هذه المقالة.

بداية نحتاج إلى مبرمج، هناك أنواع كثيرة من المبرمجين، أي مبرمج يجب أن نختار؟
هناك مبرمجين عاديين تحتاج إلى إدخال وحدة تحكم دقيقة، ووميضها، وإزالة وحدة التحكم الدقيقة ثم إدخالها في اللوحة الخاصة بنا لرؤية النتيجة، وسيتعين إجراء هذا التسلسل مئات المرات في البداية، هذا الخيار، في بلدي الرأي، ليست مريحة.
متحكم لدينا ATtiny2313يدعم وظيفة ISP (البرمجة داخل النظام) عبر منفذ SPI، حالة استخدام البرمجة داخل الدائرة هذه مزود خدمة الإنترنتفي رأيي الأكثر ملاءمة وأسرع، لأنه... ليست هناك حاجة لإزالة وحدة التحكم الدقيقة من اللوحة الخاصة بنا بعد كل تحديث للبرنامج الثابت؛ يمكنك برمجة وحدة التحكم الدقيقة مئات المرات وعلى الفور، دون فصل المبرمج عن الكمبيوتر واللوحة، ورؤية النتيجة بعد وميض وحدة التحكم الدقيقة؛ تم تبسيط برنامج جهاز راديو الهواة بشكل ملحوظ وتقليل الوقت المستغرق في ذلك.
يمكنك إنشاء مبرمج ISP داخل الدائرة بنفسك؛ هناك العديد من الدوائر البسيطة على الإنترنت حول كيفية القيام بذلك عبر منفذ LPT أو COM، على سبيل المثال مبرمج PonyProgيمكنك العثور على مخططات على الإنترنت حول كيفية صنعها.

ستناقش هذه المقالة العمل مع مبرمج ISP داخل الدائرة لوحدات التحكم الدقيقة أفر (PX-400)يعمل عبر منفذ COM.
إذا لم يكن لديك منفذ COM على جهاز الكمبيوتر الخاص بك، فستحتاج أيضًا إلى محول من منفذ USB إلى منفذ COM، وهناك أيضًا العديد من أنواع هذه المحولات، أوصي بالمحول الذي عملت معه: UCON-232S USB إلى لوحة تحويل المنفذ التسلسلي
صورة للمبرمج بي اكس-400، مشترك كهربائي UCON-232S USB , ورقة البيانات ATtiny2313

دعونا نلقي نظرة فاحصة على جميع تفاصيل هذا المخطط:
(فقط في حالة أنني اشتريت جميع الأجزاء والمبرمج والمحول (من منفذ USB إلى منفذ COM) على موقع chipdip.ru)

1 - مقبس لوحة PBD-20 2.54 مم 2x10 مستقيم- لقد فعلت ذلك من أجل الراحة، لتسهيل فحص الإشارات من منافذ المتحكم الدقيق؛ لا يمكن القيام بهذه النقطة.
2 - لوحة SCS-20 DIP 20 دبابيس- نقوم بلحام اللوحة باللوحة حتى يكون من الممكن استبدال المتحكم الدقيق الموجود باللوحة إذا لزم الأمر،
ATtiny2313-20PU، DIP20، MCU، 5V، 1K-Flash، 12MHz- نقوم بإدخال المتحكم الدقيق في لوحة DIP.
3 - كريستال كوارتز 4.000 ميجاهيرتز (مبتور) HC-49S- كريستال كوارتز 4 ميجا هرتز
4 - مكثف السيراميك K10-17B عفريت. 22pF NPO,5%,0805- اثنين من المكثفات السيراميكية 22pF
5 - 78M05 (+5 فولت، 0.5 أمبير) TO220- يعمل مثبت الجهد 5V على تزويد المتحكم الدقيق بقدرة ثابتة لا تزيد عن +5V، وفي هذه الحالة حصلت على 4.4V، وهو ما يكفي.
6 - NP-116 قابس طاقة 1.3×3.4×9.5 ملم MP-331 (7-0026c)- تم لحام قابس الطاقة بشاحن هاتف محمول قديم بتيار مستمر 5.7 فولت/800 مللي أمبير
7 - DS-213 مقبس الطاقة على متن الطائرة- أين يوجد مصدر الطاقة للقابس NP-116، لسهولة توصيل الطاقة
8 - IDC-10MS (BH-10)، قابس مستقيم- قابس لتوصيل مبرمج ISP داخل الدائرة
9 - مقاومة ثابتة 0.25 وات 150 أوم- ثلاث مقاومات 150 أوم على أطراف MISO، SCK، MOSI
10 - مقاومة ثابتة 0.25 وات 47 أوم- مقاومة واحدة 47 أوم لكل دبوس RESET
11 - زر اللمس h=5 مم، TC-0103 (TS-A2PS-130)- زر RESET، بعد الضغط على الزر يبدأ البرنامج في المتحكم الدقيق من البداية، وكان من الممكن حذف الزر.
12 - مصباح LED أخضر d=3 مم، 2.5 فولت، 2 مللي أمبير - يؤدي وظيفة المؤشر، لا يمكن تنفيذ هذا العنصر.
13 - مقاومة ثابتة 0.25 وات 110 أوم- مقاومة للـ LED بحيث يكون هناك 2V على الليد، يمكن حذف هذه الخطوة
14 - سلكين متصلين بالـ LED لفحص الإشارات الصادرة من منافذ الميكروكونترولر، لم يمكن القيام بهذه الخطوة
15 - لوح تجارب مطبوع Dip-RM مقاس 100x100 ملم

النقطتان 3 و 4 تعملان كوحدة واحدة، مثل مولد الساعة الخارجي، ويمكن حذف هذه النقاط إذا لم تضع متطلبات عالية على دقة واستقرار مذبذب RC الداخلي، فإن مذبذب RC الداخلي به خطأ يبلغ حوالي 10٪ وقد تتأثر الدقة بتغير درجة الحرارة.

لذلك قمت بتنزيل وتثبيت استوديو اتميل:
هيا نطلق استوديو اتميلواكتب أبسط برنامج في لغة C يومض مؤشر LED:
انقر فوق: مشروع جديد...\AVRGC\C\C مشروع قابل للتنفيذ
حدد المجلد الذي تريد حفظ المشروع فيه واسم المشروع، على سبيل المثال Test1، ثم انقر فوق OK.
من القائمة، حدد وحدة التحكم الدقيقة ATtiny2313 وانقر فوق "موافق".
نقوم بمسح كل ما يظهر في النافذة ونلصق رمز البرنامج الخاص بنا أدناه:

#define F_CPU 4000000L // حدد تردد الكوارتز الخارجي لدينا 4 ميجا هرتز
#يشمل
#يشمل
إنت الرئيسي (باطل)
{
// قم بتعيين جميع منافذ PORTB كمخرجات
DDRB=0xFF;// سجل اتجاه نقل المعلومات (1-إخراج، 0-إدخال)
بينما(1)
{
// تسجيل البيانات PORTB (يستخدم لإخراج المعلومات)
PORTB=0b00000001;// نحن نوفر 1 للمنفذ 12 من MK PB0 - قم بتشغيل مؤشر LED
PORTB=0b00000000;// قم بتطبيق 0 على المنفذ 12 من MK PB0 - قم بإيقاف تشغيل مؤشر LED
_delay_ms(1000);//تأخير 1 ثانية.
}
}

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

انقر F7جاهز، تم تجميع طلبنا!
لفلاش البرنامج الثابت لوحدة التحكم الدقيقة ATtiny2313، نحتاج إلى ملف واحد فقط بالامتداد عرافة
وهو موجود في مجلد مشروعنا: ...
يرجى ملاحظة الملف اختبار 1.عرافةفقط خذها من المجلد يطلق !
لا تخلط بينه وبين مجلد تصحيحهناك أيضا ملف اختبار 1.عرافة، لكن هذا الملف لا يزال يحتوي على معلومات تصحيح الأخطاء ولهذا السبب لن تتمكن من التفليش بهذا الملف بسبب. عادة ما يكون كبيرًا ولن يتناسب مع ذاكرة عضو الكنيست.

لقد وجدنا ملف .hex، والآن نحتاج إلى برنامج لفلاش المتحكم الدقيق ATtiny2313، هناك العديد من هذه البرامج، لكننا سنستخدم البرنامج: أفر-أوسب II
تحميل:

نقوم بتوصيل المبرمج بدائرتنا، ونتأكد من توفير الطاقة للدائرة!

إطلاق البرنامج أفر-أوسب II، حدد المسار إلى الملف في قسم FLASH... \Test1\Test1\Release\Test1.hex، حدد المربعات الموجودة في البرنامج واضغط على الزر برنامجهذا كل شيء، متحكم وميض ATtiny2313!

ما هي ميزة مبرمجي ISP الموجودين في الدائرة؟ الآن، دون فصل الأسلاك عن دائرتنا، يمكنك إجراء تغييرات في البرنامج، وكما هو موضح أعلاه، وميض وحدة التحكم الدقيقة ورؤية النتيجة على الفور.

يرجى ترك الأسئلة والتعليقات على منتدانا

تم وصف تجربة بسيطة لتوصيل زر بمتحكم AVR، وتم تحليل برنامج C بسيط لمعالجة ضغطات الأزرار. دعونا نلقي نظرة على ميزات توصيل الزر بمنافذ MK، بالإضافة إلى طرق قراءة حالات الزر في لغة C.

ناقشت المقالات السابقة تجارب استخدام مصابيح LED التي تم توصيلها بمنافذ وحدة التحكم الدقيقة التي تم تكوينها للإخراج.

في هذه المقالة، سنقوم بتوصيل زر إلى وحدة التحكم الدقيقة، حيث يتم إغلاق جهات الاتصال عند الضغط عليها، وفتحها عند تحريرها (زر الإغلاق).

رسم تخطيطي للتجربة

لكي نتمكن على الأقل بطريقة أو بأخرى من مراقبة شيء ما والتحكم فيه باستخدام زر، سنقوم بتوصيل اثنين من مصابيح LED الإضافية بوحدة التحكم الدقيقة. الرسم البياني بسيط للغاية، وهنا هو:

أرز. 1. رسم تخطيطي للتجربة باستخدام المتحكم الدقيق والزر ATtiny2313.

كما ترون، يتم توصيل اثنين من مصابيح LED بمنفذين PB0 وPB1 من خلال مقاومات محددة، ويتم توصيل زر بمنفذ PD2 وله أيضًا مقاومة محددة. لتوصيل المبرمج بـ MK، يتم استخدام موصل Conn 1 (AVR-ISP)، ولتوصيل الدائرة بمصدر طاقة منفصل +5V، يتم استخدام جهتي اتصال - P1 وP2.

أرز. 2. رسم تخطيطي للتجربة مع متحكم دقيق وزر مجمعين على لوحة تجارب غير ملحومة.

من المهم ملاحظة أنه للاستخدام الآمن للمنفذ الذي يحتوي على زر، يتم توصيل المقاوم بمقاومة 1 كيلو أوم على التوالي (يمكنك أيضًا توصيله بمقاومة أخرى تبلغ 600 أوم - 2 كيلو أوم). اقبل هذا كقاعدة للأخلاق الحميدة عند العمل مع المسامير، والتي ستحمي منفذ MK من الفشل في حالة حدوث إمداد خاطئ عالي المستوى إلى الدبوس وعند إغلاق الزر.

هيكل منافذ الإدخال والإخراج في المتحكمات الدقيقة AVR

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

يمكن توصيل عدة أطراف في MK بمحول ADC/DAC (محول تناظري إلى رقمي والعكس)، وبمساعدتهم يمكنك تحليل وتوليد الإشارات التناظرية. لا يمكن لوحدات GPIO التقليدية العمل مع الإشارات التناظرية؛ يمكن أن تحتوي فقط على 0 (0V) أو 1 (+5V) عند الإدخال/الإخراج.

يتم توصيل كل طرف GPIO داخل وحدة التحكم الدقيقة بالعديد من الكتل والمكونات الإلكترونية التي من المفيد معرفتها:

  • بين منفذ المنفذ وكل من قضبان الطاقة (GND وVCC) متصلة عبر الصمام الثنائي. يتم استخدامها "لتخفيف" التداخل قصير المدى، وارتفاع الجهد بالنسبة إلى الدبوس وكل من قضبان الطاقة؛
  • يوجد أيضًا مكثف بين الدبوس و GND. لا أعرف بالضبط سبب الحاجة إليه، ربما للحماية من التداخل، أو لمنع ارتداد الاتصال عند استخدام الأزرار والمفاتيح المتصلة بدبوس، أو لشيء آخر؛
  • متصلة بكل دبوس المفتاح الإلكتروني ذو المقاوم هو سحب الدبوس إلى جهد مصدر الطاقة (Pull-UP). يتم تشغيل هذا المفتاح الإلكتروني بواسطة البرنامج ويعمل على ضبط المستوى المنطقي العالي الافتراضي 1 (+5 فولت) عند العمل باستخدام دبوس في وضع الإدخال (الإدخال)؛
  • بين الدبوس وكل من ناقلات الطاقة (GND وVCC) يتم تضمين مفتاحين إلكترونيين آخرين (بدون مقاومات)؛ وهما ضروريان لتعيين مستوى منطقي مرتفع (+5 فولت) أو منخفض (0 فولت) على الدبوس عندما يكون الدبوس كذلك تعمل في وضع الإخراج.

للتحكم في البرامج وتكوين كل منفذ، يتم استخدام ثلاثة سجلات خاصة، على سبيل المثال للمنفذ "B":

  • DDRB - سجل (8 بتات) لضبط أوضاع تشغيل المسامير - الإدخال أو الإخراج. ويتم ذلك عن طريق تعيين البتات المقابلة في السجل؛
  • PORTB عبارة عن سجل للتحكم في حالة منافذ المنفذ في وضع الإخراج - المستوى العالي أو المنخفض. يستخدم أيضًا في وضع الإدخال، ويستخدم لتمكين مقاومات السحب وتعيين مستوى الإدخال الافتراضي مرتفعًا؛
  • PINB هو سجل يحتوي على الحالات المنطقية للدبابيس الموجودة على المنفذ، ويستخدم لقراءة قيم المنافذ التي تم تكوينها في وضع الإدخال.

يمكنك معرفة المزيد حول تصميم المنافذ لنموذج معين من وحدات التحكم الدقيقة من ورقة البيانات الخاصة به، في قسم "منافذ الإدخال/الإخراج"؛ وقد تكون هناك أيضًا أمثلة للتعليمات البرمجية في لغة C والتجميع للعمل مع المنافذ.

إعادة تعيين دبوس كمنفذ الإدخال / الإخراج

من المفيد معرفة أن دبوس "RESET" الخاص بالدائرة الدقيقة (في مخططنا هو الدبوس رقم 1)، والذي تم تصميمه لإعادة ضبط تنفيذ برنامج وحدة التحكم الدقيقة (إعادة التشغيل)، ويمكن استخدامه أيضًا لتوصيل الأزرار ومصابيح LED و أجهزة الإدخال/الإخراج الأخرى، أي أنه يمكن تحويلها إلى GPIO عادي.

يمكن أن يكون هذا مفيدًا إذا كانت الدائرة الدقيقة لا تحتوي على دبابيس كافية لتصميمك. على سبيل المثال، عند تجميع بعض الأجهزة على شريحة ATtiny13 (8 دبابيس، قطعتان للطاقة، 5 قطع لمنافذ الإدخال/الإخراج، وقطعة واحدة لإعادة الضبط)، وجدت أن دبوسًا واحدًا مفقودًا لمصباح LED. قد يكون هناك عدة خيارات لحل المشكلة:

  1. إعادة برمجة دبوس RESET لمنفذ الإدخال/الإخراج؛
  2. توصيل LED بأحد الأطراف المجاورة المستخدمة بالفعل، مع استخدام بعض الهستروستات في تصميم الدائرة ومراعاة إمكانية استخدامها بشكل عام؛
  3. استخدام MK آخر يحتوي على عدد أكبر من الدبابيس، على سبيل المثال ATtiny2313.

أي من هذه الخيارات هو أبسط وأرخص من حيث الموارد المالية/الوقت - احكم وفقًا لحالتك.

لتحويل طرف "RESET" إلى منفذ إدخال/إخراج، سيتعين عليك تغيير منصهر خاص - RSTDISBL (تعطيل إعادة الضبط). ولكن قبل القيام بذلك، عليك أن تتذكر أنه بعد هذه العملية، لن تكون إعادة برمجة وحدة التحكم الدقيقة ممكنة إلا باستخدام مبرمج عالي الجهد (12 فولت)؛ ولن يتمكن مزود خدمة الإنترنت USB العادي أو أي مبرمج آخر يعمل بجهد 5 فولت من القيام بذلك وظيفة.

برنامج ج

إذن، لدينا زر واحد ومصباحان LED متصلان بوحدة التحكم الدقيقة، فماذا يمكننا أن نفعل بهم؟ - وسنفعل هذا (الخوارزمية):

  1. بعد تشغيل الطاقة، ستومض مصابيح LED بالتناوب وبتأخر قدره 300 مللي ثانية؛
  2. عندما تضغط مع الاستمرار على الزر، سيضيء مؤشر LED الأزرق فقط؛
  3. بعد تحرير الزر، سيومض مؤشر LED الأزرق 3 مرات بتأخير قدره 500 مللي ثانية، وبعد ذلك تومض مصابيح LED بالتناوب مرة أخرى بتأخير قدره 300 مللي ثانية.

ويرد أدناه مثال على تنفيذ مثل هذه الخوارزمية في لغة C تحت AVR. لنقم بإنشاء ملف جديد لبرنامجنا ونفتحه للتعديل:

نانو /tmp/avr-switch-test.c

لنضع الكود التالي في نص الملف:

/* تجربة مع زر على ATtiny2313 * https://site */ #define F_CPU 1000000UL // التردد الأساسي = 1 ميجا هرتز #include #يشمل // - وحدات الماكرو للتحكم في مصابيح LED - #define LED_BLUE_ON PORTB |= (1<< PB0) // Засвечиваем синий диод #define LED_BLUE_OFF PORTB &= ~(1 << PB0) // Гасим синий диод #define LED_RED_ON PORTB |= (1 << PB1) // Засвечиваем красный диод #define LED_RED_OFF PORTB &= ~(1 << PB1) // Гасим красный диод // Основная программа void main(void) { DDRD |= (0 << PD2); // Пин 6 - на вход PORTD |= (1 << PD2); // Включаем подтягивающий (Pull-UP) резистор для пина 6 DDRB |= (1 << PB0); // Пин 12 - на вывод DDRB |= (1 << PB1); // пин 13 - на вывод // -- Бесконечный цикл -- while(1) { _delay_ms(300); // Задержка 300 мс LED_BLUE_ON; // Включаем синий диод LED_RED_OFF; // Гасим красный диод _delay_ms(300); LED_RED_ON; // Включаем красный диод LED_BLUE_OFF; // Гасим синий диод if(!(PIND & (1 << PD2))) { // Проверяем нажата ли кнопка _delay_ms(50); // Задержка 50 мс (дребезг контактов) LED_RED_OFF; LED_BLUE_ON; while(!(PIND & (1 << PD2))); // Ждем пока кнопка не будет отпущена _delay_ms(500); // Дальше мигаем синим диодом LED_BLUE_OFF; _delay_ms(500); LED_BLUE_ON; _delay_ms(500); LED_BLUE_OFF; _delay_ms(500); LED_BLUE_ON; _delay_ms(500); LED_BLUE_OFF; _delay_ms(200); } // Конец блока работы с кнопкой } // Конец блока с вечным циклом }

في المقام الأول نسأل F_CPU ثابت، والذي سيشير للمترجم إلى تردد التشغيل لنواة المتحكم الدقيق، وهذا ضروري لبعض الإجراءات الفرعية والوظائف للعمل بشكل صحيح. في مثالنا، نستخدم وظيفة تأخير الوقت - "_delay_ms" من مكتبة "util/delay.h"، والتي تحسب الوقت المستغرق في دورات الخمول، بناءً على القيمة الموجودة في ثابت F_CPU.

يمكنك الاطلاع على كود مكتبة "التأخير" الخاصة بتنظيم التأخير الزمني والتي تستخدم الثابت F_CPU في جنو لينكس باستخدام أي محرر نصوص، على سبيل المثال يمكنك تشغيل الأمر التالي:

نانو /usr/lib/avr/include/util/delay.h

تردد المصنع لمذبذب RC الداخلي في وحدة التحكم الدقيقة ATtiny2313 هو 8000000 هرتز (8 ميجا هرتز)، ويتم أيضًا ضبط فتيل تقسيم التردد بشكل افتراضي - CKDIV8 (تقسيم الساعة على 8)، وبالتالي فإن تردد التشغيل الفعلي للكريستال = 8000000 هرتز / 8 = 1000000 هرتز = 1 ميجا هرتز.

يمكنك معرفة الصمامات المثبتة في وحدة التحكم الدقيقة باستخدام avrdude أو غلاف رسومي لها يسمى AVR8 Burn-O-Mat.

علاوة على ذلك، يتم تعريف وحدات الماكرو في البرنامج للتحكم في حالة المنافذ التي تتصل بها مصابيح LED: LED_BLUE_ON، LED_BLUE_OFF، LED_RED_ON، LED_RED_OFF. من خلال استدعاء ماكرو مماثل في أي مكان في البرنامج، يمكننا بسهولة تشغيل أو إيقاف تشغيل كل من مصابيح LED، دون الحاجة إلى تكرار الكود الخاص به، والذي بدوره سيؤدي إلى تبسيط البرنامج وجعله أكثر وضوحًا.

في البرنامج الرئيسي "void main(void)" نبدأ بتكوين المنفذ:

  • DDRD |= (0<< PD2) - установка разряда PD2 регистра DDRD на ввод, к нему подключена кнопка (пин 6);
  • بورت |= (1<< PD2) - включение подтягивающего резистора для пина к которому привязан разряд PD2 регистра PORTD (пин 6);
  • DDRB |= (1<< PB0) - установка разряда PB0 в регистре DDRB на вывод, к нему подключен СИНИЙ светодиод (пин 12);
  • DDRB |= (1<< PB1) - установка разряда PB1 в регистре DDRB на вывод, к нему подключен КРАСНЫЙ светодиод (пин 13).

بعد ذلك، باستخدام وحدات الماكرو، نقوم بإيقاف تشغيل مؤشر LED الأحمر وتشغيل المصباح الأزرق. الآن، باستخدام حلقة أبدية أخرى، ولكن بشرط، سننتظر حتى يتم تحرير الزر: "while(!(PIND & (1)<< PD2)));".

عندما يتم تحرير الزر، سيظهر مستوى عالٍ على الطرف 6 (سيتم ذلك عن طريق مقاومة السحب الداخلية التي قمنا بتشغيلها سابقًا)، وسيتم تعيين المستوى المنطقي 1 في بت PD2 من سجل PIND.

بعد ذلك، يومض مؤشر LED الأزرق ثلاث مرات (تشغيل وإيقاف) مع تأخير قدره 0.5 ثانية وتبدأ الدورة الأبدية الرئيسية في العمل بطريقة جديدة - سيضيء مصباحان LED بالتناوب.

برنامج بسيط للغاية، لكنه مع ذلك مثال جيد وأساس لمزيد من التجارب.

إعداد Geany لـ ATtiny2313

في المنشورات السابقة، أجريت تجارب مع متحكم ATMega8، ولكن هنا أستخدم MK أقل "محشوة" - ATTiny2313.

لتجميع البرنامج ودمجه في MK، تحتاج إلى إعادة تكوين أوامر التجميع قليلاً في بيئة برمجة Geany المتكاملة.

انتقل إلى قائمة البناء - تعيين أوامر البناء. في أمر الترجمة (أوامر C)، تحتاج إلى تغيير طراز الشريحة المستخدمة: "-mmcu=attiny2313". في أمر فلاش MK، تحتاج إلى تغيير نوع الشريحة لـ avrdude: "-p t2313".

أرز. 3. إعادة تكوين Geany للعمل مع وحدة التحكم الدقيقة ATTiny2313.

يتم إعطاء جميع الأوامر لنظام التشغيل GNU Linux؛ إذا كان لديك نظام التشغيل Windows، فقد يتعين عليك إدخال المسارات الكاملة للملفات الثنائية "avr-gcc.exe"، و"avr-objcopy.exe"، و"avrdude.exe".

لقد ناقشت بمزيد من التفصيل كيفية تكوين Geany في GNU Linux في إحدى المقالات السابقة في السلسلة.

التجميع والبرامج الثابتة للبرنامج في MK

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

Avr-gcc -mmcu=attiny2313 -Os /tmp/avr-switch-test.c -o /tmp/avr-switch-test.o avr-objcopy -j .text -j .data -O ihex /tmp/avr- Switch-test.o /tmp/avr-switch-test.hex avrdude -c usbasp -p t2313 -P usb -U flash:w:/tmp/avr-switch-test.hex

جميع الأوامر تقريبًا (باستثناء بدائل أسماء الملفات) مطابقة لتلك التي قمنا بتصحيحها في إعدادات Geany.

خاتمة

على الرغم من بساطة التجربة، فقد حاولت أيضًا تسليط الضوء على بعض الجوانب التقنية المهمة جدًا للعمل مع المنافذ؛ وستكون المعرفة والخبرة المقدمة مفيدة في مزيد من الدراسة والعمل مع وحدات التحكم الدقيقة ATMEL.

بنية AVR RISC:

RISC (كمبيوتر مجموعة التعليمات المخفضة). تحتوي هذه البنية على مجموعة كبيرة من التعليمات، يتم تنفيذ معظمها في دورة آلة واحدة. ويترتب على ذلك أنه بالمقارنة مع وحدات التحكم الدقيقة السابقة المستندة إلى بنية CISC (على سبيل المثال، MCS51)، فإن وحدات التحكم الدقيقة RISC أسرع بـ 12 مرة.

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

جهاز التخزين التشغيلي (RAM) والذاكرة غير المتطايرة للبيانات والبرامج:

  • 2 كيلو بايت من ذاكرة برنامج فلاش ذاتية البرمجة يمكنها توفير 10000 تكرار للكتابة/المسح.
  • 128 بايت من ذاكرة البيانات القابلة للكتابة EEPROM والتي يمكنها توفير 100000 تكرار للكتابة/المسح.
  • ذاكرة SRAM سعة 128 بايت (ذاكرة الوصول العشوائي للقراءة فقط).
  • من الممكن استخدام الوظيفة لحماية كود البرنامج وبيانات EEPROM.

الخصائص الطرفية:

  1. متحكم أتيني2313مجهزة بعداد مؤقت بثمانية بتات مع مقياس مسبق مثبت بشكل منفصل بمعامل أقصى يبلغ 256.
  2. يوجد أيضًا عداد مؤقت بستة عشر بتًا مزودًا بمقياس مسبق منفصل ودائرة التقاط ومقارنة. يمكن تسجيل عداد المؤقت إما من مصدر إشارة خارجي أو من مصدر داخلي.
  3. قناتين. يوجد وضع تشغيل لتعديل PWM السريع وPWM مع تصحيح الطور.
  4. المقارنة التناظرية الداخلية.
  5. مؤقت المراقبة (قابل للبرمجة) مع مذبذب داخلي.
  6. الواجهة التسلسلية العالمية (USI).

المؤشرات الفنية الخاصة لـ Attiny2313:


  • عاطل- الوضع الخامل. في هذه الحالة، يتوقف المعالج المركزي فقط عن العمل. لا يؤثر الخمول على تشغيل SPI أو المقارنة التناظرية أو محول A/D أو مؤقت العداد أو المراقبة أو نظام المقاطعة. في الواقع، فهو يوقف فقط مزامنة وحدة المعالجة المركزية الأساسية وذاكرة الفلاش. يعود متحكم Attiny2313 إلى التشغيل العادي من وضع الخمول عن طريق مقاطعة خارجية أو داخلية.
  • الطاقة انخفضت— الوضع الأكثر اقتصادا، حيث يتم إيقاف تشغيل وحدة التحكم الدقيقة Attiny2313 فعليا من استهلاك الطاقة. في هذه الحالة، يتوقف مولد الساعة ويتم إيقاف تشغيل كافة الأجهزة الطرفية. تظل وحدة معالجة المقاطعة من مصدر خارجي فقط نشطة. عند اكتشاف مقاطعة، يقوم متحكم Attiny2313 بإنهاء إيقاف التشغيل والعودة إلى التشغيل العادي.
  • تعليق- يقوم جهاز التحكم الدقيق بالتبديل إلى وضع الاستعداد لاستهلاك الطاقة باستخدام أمر SLEE. وهذا مشابه لإيقاف التشغيل، والفرق الوحيد هو أن الساعة تستمر في العمل.

منافذ الإدخال والإخراج لوحدة التحكم الدقيقة Attiny2313:

تم تجهيز وحدة التحكم الدقيقة بـ 18 منفذ إدخال/إخراج، والتي يمكن برمجتها بناءً على الاحتياجات التي تنشأ عند تصميم جهاز معين. يمكن لمخازن الإخراج المؤقتة لهذه المنافذ أن تتحمل حملًا مرتفعًا نسبيًا.

  • المنفذ أ (PA2 - PA0) – 3 بت. منفذ إدخال/إخراج ثنائي الاتجاه مزود بمقاومات سحب قابلة للبرمجة.
  • المنفذ B (PB7 - PB0) – 8 بت. منفذ إدخال/إخراج ثنائي الاتجاه مع مقاومات سحب قابلة للبرمجة.
  • المنفذ D (PD6 - PD0) – 7 بت. منفذ إدخال/إخراج ثنائي الاتجاه مع مقاومات سحب قابلة للبرمجة.

نطاق جهد الإمداد:

يعمل المتحكم الدقيق بنجاح بجهد إمداد من 1.8 إلى 5.5 فولت. يعتمد الاستهلاك الحالي على وضع تشغيل وحدة التحكم:

الوضع النشط:

  • 20 μA بتردد ساعة 32 كيلو هرتز وجهد إمداد 1.8 فولت.
  • 300 ميكرو أمبير بتردد ساعة 1 ميجا هرتز وجهد إمداد 1.8 فولت.

وضع توفير الطاقة:

  • 0.5 μA عند جهد إمداد 1.8 فولت.

(3.6 ميجا بايت، التنزيل: 5,958)

يظهر الرسم التخطيطي لمبرمج منفذ LPT في الشكل. كسائق حافلة، استخدم الدائرة الدقيقة 74AC 244 أو 74HC244 (K1564AP5) أو 74LS244 (K555AP5) أو 74ALS244 (K1533AP5).

يشير مؤشر LED VD1 إلى وضع التسجيل الخاص بوحدة التحكم الدقيقة،

LED VD2 - القراءة،

LED VD3 - وجود مصدر طاقة للدائرة.

تأخذ الدائرة الجهد المطلوب لإمداد الطاقة من موصل ISP، أي. من الجهاز القابل للبرمجة. هذه الدائرة عبارة عن دائرة برمجة STK200/300 معاد تصميمها (مصابيح LED مضافة لسهولة التشغيل)، لذلك فهي متوافقة مع جميع برامج برمجة الكمبيوتر التي تعمل مع دائرة STK200/300. للعمل مع هذا المبرمج، استخدم البرنامج CVAVR

يمكن صنع المبرمج على لوحة دوائر مطبوعة ووضعه في مبيت موصل LPT، كما هو موضح في الأشكال:




للعمل مع المبرمج، من الملائم استخدام امتداد منفذ LPT، والذي يسهل صنعه بنفسك (على سبيل المثال، من كابل Centronix للطابعة)، والشيء الرئيسي هو عدم توفير الموصلات للأرض (18- 25 أرجل موصل) أو قم بالشراء. يجب ألا يتجاوز الكابل بين المبرمج والشريحة القابلة للبرمجة 20-30 سم.