ميزات برمجة الميكروكونترولر باستخدام لوحة المفاتيح


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


عينة دارة مبرمج:



يقوم ScrollLock بتعيين المستوى عند إدخال RESET ، و CapsLock - عند إدخال SCK ، و NumLock - عند إدخال MOSI. يتم استخدام LED (VD4) عند مخرج MISO للتحكم في الدخول في وضع البرمجة. التفاصيل المميزة بعلامة النجمة (*) اختيارية.


خوارزمية البرمجة (للمتحكمات الدقيقة AT90 أو ATmega):


1) اضبط 0 على SCK و MOSI (تمكين CapsLock و NumLock). يجب أن يكون SCK عند 0 قبل أن ينتقل RESET إلى 0.
2) اضبط 0 على RESET (تمكين ScrollLock).
3) شكل ، بتغيير حالة SCK و MOSI (ScrollLock و NumLock) ، تسلسل نقل وحدة التحكم إلى وضع البرمجة.
4) إذا لم يضيء مؤشر LED عند خرج MISO ، فمن الضروري توليد نبضة واحدة على خط SCK وتكرار التسلسل (النقطة 3).


إذا لم يحدث الانتقال إلى وضع البرمجة بعد 32 محاولة ، يبدو أن هناك خطأ ما. في حالة نجاحها ، تتم برمجة إضافية عبر ScrollLock و NumLock (SCK و MOSI). يمكن لطفرة يقظة وثابتة برمجة وحدة التحكم الدقيقة يدويًا.


لماذا لا يعمل هذا؟


المشكلة الرئيسية عند تنفيذ هذا المبرمج هي المنطق الخاص بلوحة المفاتيح. يتوافق تعيين حالة مصابيح LED من خلال برنامج خارجي مع النتيجة في لوحة المفاتيح ، ولكن عملية الانتقال لتشغيل / إيقاف مصابيح LED هي عملها الخاص. فيما يلي راسمات الذبذبات للتبديل الحقيقي:



تمكين NumLock (يتم تضمين CapsLock و ScrollLock).



إيقاف تشغيل ScrollLock (CapsLock و NumLock قيد التشغيل).


يمكننا القول أنه ليست كل لوحات المفاتيح مفيدة بشكل متساوي لبرمجة وحدات التحكم الدقيقة. من بين الثلاثة التي أملكها ، لم يكن هناك سوى مصابيح LED مبدلة بشكل مستقل.


ماذا تفعل إذا كنت محظوظًا جدًا بلوحة المفاتيح؟


يتم تكديس جميع "العابرين" في الوقت المناسب في بضع ميكروثانية ، ويتم تعيين مستوى معين على SCK و MOSI و RESET مع تأخير يزيد عن 1 مللي ثانية. في هذه الحالة ، يمكن استخراج إشارات البرمجة باستخدام مرشح تمرير منخفض. هنا مرشح مثال:



74HC14 - Schmitt الزناد ، وهو مخصص لتشكيل مستويات الانتاج. يمكن استبداله بمقارنة تناظرية (مثل LM2901). في وحدات التحكم الدقيقة ، تحتوي مدخلات AVR على مشغل Schmitt مدمج ، والذي يسمح لك بالتجول في سلسلة RC إذا كانت مستويات الإخراج 1 و 0 تتوافق مع المستويات الضرورية.


كمثال. لوحة المفاتيح التي أصبحت مبرمج:



التنفيذ الناعم للمبرمج

Source: https://habr.com/ru/post/ar408897/


All Articles