خطوات برمجة المتحكمات الدقيقة avr إن برمجة متحكمات AVR هي الخطوة الأولى. ما تحتاجه لبدء تعلم المتحكمات الدقيقة

سيتناول هذا الفصل ميزة مثيرة للاهتمام في AVR مثل البرمجة الذاتية (متوفرة في العديد من موديلات ATtiny وفي جميع موديلات ATmega). يكمن جوهرها في القدرة على تغيير محتويات ذاكرة FLASH مباشرة من برنامج المستخدم. كانت وحدات التحكم الدقيقة Atmel من بين الأوائل في العالم التي تتميز بهذا الابتكار. يقدم القسم مثالاً لمحمل التشغيل الذي يستخدم واجهة جهاز USART وبرنامج تحكم عالي المستوى في دلفي.

نطاق التطبيق

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

ومع ذلك، مع مرور الوقت، اتضح أن كل شيء لم يكن سيئا للغاية. تتيح لك البرمجة الذاتية استخدام ذاكرة FLASH بنجاح كبديل لـ EEPROM. العمر التشغيلي لـ FLASH، الذي يتم إنتاجه باستخدام التكنولوجيا الحديثة، هو ≈10,000 دورة مسح/كتابة. وهذا الرقم، على الرغم من أنه أقل من نظيره في EEPROM، إلا أنه لا يزال مرتفعًا جدًا. بفضل هذا، يمكن تخزين الجداول والقوائم وعوامل التصحيح وأي معلومات أخرى تتطلب تحديثًا دوريًا وليس متكررًا في ذاكرة فلاش.

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

انتقل إلى الجزء التالي:

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

معلومات عامة

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

قليلا عن AVR

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

  1. محلي. الغسالات والثلاجات وأفران الميكروويف وغيرها.
  2. متحرك. الروبوتات والاتصالات وما إلى ذلك.
  3. الحوسبة. أنظمة التحكم في الأجهزة الطرفية، اللوحات الأم.
  4. مسلية. المجوهرات وألعاب الأطفال.
  5. ينقل. أنظمة سلامة المركبات وإدارة المحرك.
  6. المعدات الصناعية. أنظمة التحكم في الآلة.

وهذا بالطبع لا يشمل جميع المجالات. يتم استخدامها حيث يكون من المفيد استخدام ليس مجموعة من شرائح التحكم، بل وحدة تحكم دقيقة واحدة. وهذا ممكن بسبب انخفاض استهلاك الطاقة واستخدام لغات C وAssembler لكتابة البرامج، والتي تم تعديلها قليلاً لتناسب عائلة المتحكمات الدقيقة. تعتبر مثل هذه التغييرات ضرورية بسبب ضعف قدرات الحوسبة، والتي يتم حسابها عادة بعشرات الكيلوبايت. برمجة AVR دون تعلم هذه اللغات غير ممكنة.

كيف تحصل على أول متحكم دقيق؟

تتطلب برمجة AVR ما يلي:

  1. توافر البيئة التطويرية اللازمة.
  2. في الواقع المتحكمات الدقيقة نفسها.

دعونا نفكر في النقطة الثانية بمزيد من التفصيل. هناك ثلاثة خيارات للحصول على الجهاز المطلوب:

  1. قم بشراء المتحكم الدقيق نفسه مباشرة.
  2. احصل على جهاز كجزء من المصمم (على سبيل المثال، Arduino).
  3. قم بتجميع المتحكم الدقيق بنفسك.

لا يوجد شيء معقد في النقطة الأولى، لذلك دعونا ننتقل إلى الثانية والثالثة.

احصل على جهاز كجزء من المصمم

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

التجميع الذاتي

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

كيف تعمل؟

لنفترض أن مشكلة المتحكم الدقيق قد تم حلها. علاوة على ذلك، سيتم اعتبار أنه تم شراؤه أو شراؤه بشكل مستقل. ما الذي تحتاجه أيضًا لإتقان برمجة AVR؟ لهذا الغرض، تحتاج إلى بيئة تطوير (المفكرة العادية ستفي بالغرض كأساس، لكنني أوصي باستخدام برنامج Notepad++). على الرغم من وجود برامج أخرى متاحة لبرمجة AVRs، إلا أن هذا البرنامج سيكون قادرًا على التعامل مع كافة المتطلبات. مطلوب مبرمج أيضا. يمكنك شرائه من متجرك المحلي أو طلبه عبر الإنترنت أو تجميعه بنفسك. لن تؤذي لوحة الدوائر المطبوعة أيضًا. ليس مطلوبًا، لكن استخدامه يتيح لك توفير أعصابك ووقتك. تم شراؤها/إنشاءها بشكل مستقل أيضًا. وآخر شيء هو مصدر الطاقة. بالنسبة لـ AVR، من الضروري توفير مصدر جهد 5 فولت.

أين وكيف تدرس؟

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

منافذ الإدخال/الإخراج

هذا موضوع مهم للغاية بدون فهم كيفية عمل منافذ الإدخال/الإخراج، لن تكون برمجة AVR داخل الدائرة ممكنة على الإطلاق. بعد كل شيء، يتم تفاعل المتحكم الدقيق مع الأجهزة الخارجية بدقة من خلال وساطتها. للوهلة الأولى، قد يبدو للمبتدئين أن المنفذ آلية مربكة إلى حد ما. ولتجنب مثل هذا الانطباع، فإننا لن نفكر بالتفصيل في مخطط تشغيله، ولكننا سنحصل فقط على فكرة عامة عنه. دعونا نفكر في تنفيذ البرنامج. كمثال للجهاز، تم اختيار متحكم AtMega8 - وهو أحد أشهر عائلة AVR بأكملها. يتكون منفذ الإدخال/الإخراج من ثلاثة سجلات مسؤولة عن تشغيله. على المستوى الجسدي، يتم إدراكهم كأرجل. كل واحد منهم يتوافق مع بت معين في سجل التحكم. يمكن لكل ساق أن تعمل على إدخال المعلومات وإخراجها. على سبيل المثال، يمكنك إرفاق وظيفة لإشعال مؤشر LED أو معالجة زر الضغط عليه. بالمناسبة، السجلات الثلاثة التي تم ذكرها هي: PORTx وPINx وDDRx. كل واحد منهم هو ثمانية بت (تذكر أننا ننظر إلى AtMega8). أي أن قطعة واحدة مشغولة بساق معينة.

تسجيل العملية

الأكثر أهمية من حيث الاتجاه هو التحكم في DDRx. وهي أيضًا ذات ثمانية بتات. يمكن كتابة القيم الخاصة بها 0 أو 1. كيف يتغير تشغيل وحدة التحكم عند استخدام الأصفار والآحاد؟ إذا تم ضبط بت معين على 0، فسيتم تحويل الساق المقابلة إلى وضع الإدخال. ومنه سيكون من الممكن قراءة البيانات التي تأتي من الأجهزة الخارجية. إذا تم ضبطه على 1، فسيكون المتحكم الدقيق قادرًا على التحكم في شيء ما (على سبيل المثال، توجيه الترانزستور لتمرير الجهد وإضاءة مصباح LED). والثاني الأكثر أهمية هو PORTx. يدير حالة الساق. دعونا نلقي نظرة على مثال. لنفترض أن لدينا منفذ إخراج. إذا قمنا بتعيين منطقي في PORTx، فسيتم إرسال إشارة من المتحكم الدقيق إلى جهاز التحكم لبدء العمل. على سبيل المثال، قم بتشغيل الصمام. عند ضبط الصفر، سيتم إطفاؤه. أي أنه ليست هناك حاجة للعمل مع سجل التحكم DDRx باستمرار. وأخيرا، دعونا نتحدث عن PINx. هذا السجل مسؤول عن عرض حالة طرف وحدة التحكم عندما يتم تكوينه لحالة الإدخال. تجدر الإشارة إلى أن PINx لا يمكنه العمل إلا في وضع القراءة. لن تتمكن من كتابة أي شيء فيه. لكن قراءة الحالة الحالية للساق لا تشكل مشكلة.

العمل مع نظائرها

AVRs ليست وحدات التحكم الدقيقة الوحيدة. وينقسم هذا السوق بين العديد من الشركات المصنعة الكبيرة، وكذلك بين العديد من المقلدين الصينيين والأجهزة محلية الصنع. في نواح كثيرة فهي متشابهة. على سبيل المثال، برمجة PIC/AVR لا تختلف كثيرًا. وإذا فهمت شيئًا واحدًا، فسيكون فهم كل شيء آخر أمرًا سهلاً. لكننا ما زلنا نوصي ببدء الرحلة مع AVR نظرًا لبنيتها المختصة وسهولة المطورين ووجود عدد كبير من المواد الداعمة، ولهذا السبب يمكن تسريع عملية التطوير بشكل كبير.

احتياطات السلامة

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

ما النموذج الذي يجب أن تختاره؟

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

خاتمة

لذلك تم النظر في موضوع برمجة AVR بالمصطلحات الأكثر عمومية. وبطبيعة الحال، هناك الكثير مما يمكن قوله. لذلك، على سبيل المثال، لم يتم النظر في وضع علامات على المتحكمات الدقيقة. ويمكن أن يقول الكثير. لذلك، تعمل المتحكمات الدقيقة عمومًا بجهد 5 فولت. في حين أن وجود الحرف L، على سبيل المثال، يمكن أن يشير إلى أن 2.7 فولت فقط يكفي لتشغيل الجهاز، كما ترون، في بعض الأحيان يمكن أن تلعب المعرفة حول العلامات دورًا مهمًا للغاية من حيث التشغيل الصحيح والدائم للأجهزة . يعد وقت تشغيل وحدات التحكم الدقيقة أيضًا موضوعًا مثيرًا للاهتمام. تم تصميم كل جهاز لفترة معينة. لذلك، يمكن للبعض العمل ألف ساعة. والبعض الآخر لديه احتياطي ضمان قدره 10000!

يتم فصل البرامج والبيانات (على عكس الهندسة المعمارية الكلاسيكية
von Neumann في أجهزة الكمبيوتر العادية حيث تتم مشاركة الذاكرة). إطارات منفصلة ل
تعمل مناطق الذاكرة هذه على تسريع تنفيذ البرنامج بشكل كبير: البيانات و
يمكن اختيار الفرق في وقت واحد.

32 سجل للأغراض العامة (RON).وكانت اتميل الشركة الأولى، حتى الآن
انحرفت عن النموذج الكلاسيكي لنواة الحوسبة، حيث
يتضمن نقل الأوامر تبادل البيانات بين ALU والتخزين
الخلايا في الذاكرة المشتركة إدخال RON بهذه الكميات (تذكر ذلك في
بنيان X 86 لا يوجد سوى أربعة من هذه السجلات، وفي س 51 مفهوم RON، على هذا النحو،
غائب) في بعض الحالات يجعل من الممكن التخلي تمامًا عن الموقع العالمي
الكرة والمتغيرات المحلية في ذاكرة الوصول العشوائي ومن استخدام المكدس والعمليات
مما يعقد البرنامج ويسبب فوضى. ونتيجة لذلك، فإن هيكل AC-
يعد البرنامج النموذجي أقرب إلى البرامج ذات اللغات عالية المستوى.
صحيح أن هذا أدى إلى بعض التعقيد في نظام الأوامر والتسميات
والتي يوجد بها عدد أكبر من AVR مقارنة بعائلات RISC الأخرى (على الرغم من وجود نسبة كبيرة منها).
بعض التعليمات هي أسماء مستعارة).

ذاكرة برنامج فلاش(10.000 دورة مسح/كتابة) مع القدرة
إعادة البرمجة داخل النظام والتنزيل عبر المسلسل
قناة مباشرة في الدائرة النهائية. حول مزايا هذا النهج، الذي أصبح الآن
مقبولة بشكل عام، موصوفة بالتفصيل في مقدمة.

منطقة منفصلة من الذاكرة غير المتطايرة(إيبروم، 100000 دورة
المسح/الكتابة) لتخزين البيانات، مع إمكانية الكتابة عن طريق البرنامج
بواسطة، أو التنزيل الخارجي عبر واجهة SPI.

معالجة الإشارات التناظرية المدمجة: التناظرية
المقارنة ومتعدد القنوات 10 بت ADC.

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

واجهات SPI التسلسلية, توي (أنا

ج) و UART (USART)، أسمح-

قادرة على التواصل مع معظم أجهزة الاستشعار القياسية و
الأجهزة الخارجية الأخرى (بما في ذلك مثل أجهزة الكمبيوتر الشخصية)
الأجهزة.

عدادات الموقتاتمع الإعداد المسبق والقدرة على تحديد مصدر العد -
النبضات النهائية: كقاعدة عامة، واحدة أو اثنتين من 8 بت وواحدة على الأقل
16 بت، بما في ذلك تلك التي يمكن أن تعمل في قنوات متعددة 8، 9،
تعديل عرض النبضة 10، 16 بت (PWM).

القدرة على العمل بسرعة الساعةمن 0 هرتز إلى 16-20 ميجا هرتز.

يتراوح جهد الإمداد من 2.7 إلى 5.5 فولت(في بعض الحالات من 1.8 أو
ما يصل إلى 6.0 فولت).

عديد أوضاع توفير الطاقة، تختلف في عدد العقد،
تبقى متصلة. الخروج من أوضاع "السكون" باستخدام الوكالة الدولية للطاقة
الموقت أو المقاطعات الخارجية.

مراقب الطاقة المدمج- كاشف هبوط الجهد (Brown-out).
كشف).

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

عائلات AVR

في عام 2002، بدأت أتميل في إطلاق مجموعات فرعية جديدة من أعضاء الكنيست ذات 8 بتات المبنية على
النوى AVR. منذ ذلك الحين، تم تقسيم جميع أعضاء الكنيست من هذه العائلة إلى ثلاث مجموعات (العائلة الفرعية
va): كلاسيكي، صغير وميجا. عضو الكنيست من العائلة الكلاسيكية (AT90S xxx) لم تعد تنتج؛
كان المنتج الذي بقي في الإنتاج لفترة أطول هو الناجح جدًا (بسيط، ومضغوط، و
طراز عالي السرعة) AT90S2313، ولكن تم استبداله أيضًا في عام 2005 بـ
ATtiny2313. جميع أجهزة AVR "الكلاسيكية" التي تحمل الرقمين الأولين 2 و8 في الاسم
النماذج (التي تعني مقدار ذاكرة البرنامج بالكيلوبايت) لها نظائرها في
عائلات صغيرة وميجا. بالنسبة إلى Mega، أثناء البرمجة، من الممكن تثبيت خاص
بت التوافق الاجتماعي، والذي يسمح بالاستخدام دون أي تغييرات
استخدم البرامج التي تم إنشاؤها للعائلة الكلاسيكية. ولذلك، هناك عدد من الأمثلة في
ولتسهيل العرض، تم تقديم هذا الكتاب في نسخة مخصصة للعائلة
كلاسيكي.
أمثلة على أنواع مختلفة من الحالات التي يتم فيها إنتاج شرائح AVR،
تظهر في الشكل. 1.1. يمكن العثور على مزيد من المعلومات حول هذا الموضوع في
الملحق 1(الجدول أ1.2)، وكذلك في الوثائق الفنية للأجهزة.
لاحظ أنه بالنسبة لاحتياجات راديو الهواة والنماذج الأولية، فمن الأكثر ملاءمة استخدام micro-
الدوائر في حزم PDIP، ولكن لا يتم إنتاج جميع نماذج MK في مثل هذه الحزم.
يمكن لجميع العائلات الحصول على تعديلين: يقول الحرف "L" في التسمية
حول نطاق الطاقة الممتد 2.7-5.5 فولت، فإن غياب مثل هذا الحرف يعني
نطاق الطاقة 4.5-5.5 فولت. عند اختيار نوع معين من الدوائر الدقيقة، يجب أن تكون كذلك
كن حذرًا، نظرًا لأن إصدارات L هي أيضًا أقل سرعة في التأثير،
معظمهم لديهم سرعة ساعة قصوى تبلغ 8 ميجا هرتز.
بالنسبة للإصدارات "العادية" فإن الحد الأقصى للتردد هو 16 أو 20 ميجا هرتز. على الرغم من كيف
كقاعدة عامة، عند بدء تشغيل شرائح L بجهد إمداد يبلغ 5 فولت بترددات تصل إلى 10–
لا ينبغي توقع حدوث مشكلات بسرعة 12 ميجاهرتز (على غرار الإصدار الذي لا يحتوي على الحرف L، تمامًا
يمكن أن تعمل بجهد إمداد يبلغ حوالي 3 فولت، بالطبع، ليس في أقصى الحدود
قيم التردد)، ومع ذلك، عند تصميم أجهزة موثوقة للغاية
وينبغي للشركات أن تأخذ هذا الشرط في الاعتبار.
تحتوي الرقائق الصغيرة على ذاكرة فلاش للبرامج بسعة 1-8 كيلو بايت وتقع في
بشكل رئيسي في عبوات تحتوي على 8-20 دبابيس (باستثناء ATtiny28)، أي أنها مخصصة بشكل عام
مخصصة للأجهزة الأبسط والأرخص. وهذا لا يعني أنها ممكنة -
الخصائص في جميع الحالات محدودة أكثر من تلك الموجودة في عائلة Mega. لذلك، على سبيل المثال،
بسعر أقل من 2 دولار، يحتوي ATtiny26 على مؤقت PWM عالي السرعة
الوضع (النماذج الأخرى لا تحتوي على هذا)، بالإضافة إلى 11 قناة ADC مع إمكانية ذلك
إمكانية التشغيل في الوضع التفاضلي، مع مضخم إدخال قابل للتعديل

الجزء الأول. المبادئ العامة لتصميم وتشغيل Atmel AVR

ومصدر جهد مرجعي مدمج، وهو أمر نموذجي للطاقة العالية
يشارك. تعتبر شريحة ATtiny2313، كما ذكرنا سابقًا، محسنة
إصدار جديد من واحدة من أكثر أجهزة AVR "الكلاسيكية" تنوعًا وملاءمة
AT90S2313.

أرز. 1.1.أمثلة على أنواع مختلفة من المساكن لوحدات AVR MCU

تم تجهيز الفئة الفرعية Mega ببرنامج Flash ROM بسعة 8-256 كيلو بايت ومبيت
أنفسهم مع 28-100 دبابيس. بشكل عام، أعضاء الكنيست من هذه المجموعة هم أكثر تطورا من
صغيرة، لديها نظام أكثر شمولاً من الأجهزة المدمجة مع المزيد من التقدم
الوظيفة.
جداول تحتوي على الخصائص الرئيسية لبعض نماذج Tiny وMega من بينها
الأكثر شعبية مدرجة في الملحق 1. يتم أيضًا تقديم بعض التقنيات العامة هناك.
الخصائص التقنية لعائلة AVR. ويمكن الحصول على مزيد من المعلومات التفصيلية من
من والوثائق الفنية الخاصة، والتي تتوفر على الموقع
اتميل لكل موديل .
بالإضافة إلى هذه العائلات الثلاث، يتم إنتاج مجموعات متخصصة تعتمد على جوهر AVR
الدوائر الدقيقة للعمل مع واجهة USB (AT90USB xxx)، الصناعية في-
يمكن واجهة (AT90CAN xxx)، للتحكم في شاشات LCD (ATmega329، وما إلى ذلك)،
مع واجهة IEEE 802.15.4 (ZigBee) اللاسلكية للتجارة و
البعض الآخر. في الآونة الأخيرة، تم تطوير بعض وحدات التحكم الدقيقة من Tiny و
بدأ إنتاج Mega في إصدارات ذات استهلاك منخفض للغاية (التكنولوجيا
picoPower بجهد إمداد 1.8 فولت، في نهاية اسم MK لهذه السلسلة
تمت إضافة الحرف "P") ودرجة حرارة عالية للاستخدام في السيارات
الصناعة (إصدارات السيارات). ظهرت عائلة XMega بالجهد
مصدر الطاقة 1.8-3.6 فولت، زيادة السرعة (تردد الساعة يصل إلى 32 ميجا هرتز)،

الفصل 1. نظرة عامة على متحكمات Atmel AVR

12 بت 16 قناة ADC و2-4 قنوات DAC (لا تزال في الهيكل
AVR كانوا في عداد المفقودين)، والعديد من قنوات UART والمسلسلات الأخرى
المنافذ (ومع القدرة على العمل في وضع غير متصل بالشبكة عند التوقف
kernel)، دعم التشفير المدمج، الوضع المتقدم
picoPower وأجراس وصفارات أخرى. هناك أيضًا عائلة منفصلة مكونة من 32 مرة
في الخط MK AVR32، مصمم للتطبيقات عالية السرعة مثل
مثل معالجة دفق الفيديو أو التعرف على الصور في الوقت الحقيقي.

الخصائص
الاستخدام العملي لـ MK AVR

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

حول الاستهلاك

تستهلك وحدات AVR MCU ما متوسطه 5-15 مللي أمبير (باستثناء استهلاك الأجهزة الخارجية).
روي من خلال استنتاجات عضو الكنيست). الاستهلاك الحالي لا يعتمد فقط على درجة "النفوذ"
"مصطلح" النموذج، ولكن أيضًا على تردد الساعة وجهد الإمداد في الشكل 1.2
يُظهر رسمًا تخطيطيًا نموذجيًا لاعتماد الاستهلاك الحالي على جهد الإمداد
tion وتردد الساعة للنماذج الأصغر سنا من عائلة Mega.
من الشكل. 1.2، على وجه الخصوص، يترتب على ذلك أنه يمكن تقليل الاستهلاك بشكل كبير عن طريق
تقليل تردد الساعة في الحالات التي لا يكون فيها وقت تنفيذ البرنامج
شديد الأهمية. يتيح لك ذلك تبسيط البرنامج من خلال التخلص من أوضاع الطاقة
التوفير: على سبيل المثال، عند تركيب ساعة كوارتز بتردد 32.768 هرتز كـ
يمكن أن يكون استهلاك MK Tyrate في حدود 200-300 μA.

ز

ملاحظات على الهامش

يمكن اعتبار قيمة الاستهلاك الحالية التي تبلغ 1-2 مللي أمبير أو أقل مقبولة بشكل مشروط
أجهزة البطارية المصممة للتشغيل المستمر على المدى الطويل
عمل. تتمتع العناصر ذات الحجم AA (النوع القلوي، أي القلوية) بسعة
شحن حوالي 2000 مللي أمبير أي جهاز بالاستهلاك المحدد من هذه العناصر
يعمل لمدة 1000 ساعة على الأقل (في الواقع أكثر قليلاً) أو أكثر من 40 يومًا. وقت
التشغيل على بطاريات بحجم D بسعة طاقة تبلغ حوالي 15-18000 مللي أمبير في الساعة
يستغرق حوالي عام، وهو ما يكفي لمعظم التطبيقات العملية.
اختر تشغيل هذه الأجهزة (خاصة تلك التي يتم تشغيلها بشكل دوري)
لفترة قصيرة) يجب استخدام العناصر القلوية، لأنها رائعة
القدرة، لا تتسرب عند الإفراط في التفريغ، والأهم من ذلك، أن تتمتع بعمر خدمة أطول بكثير
التخزين (حوالي 7 سنوات) مقارنة بأنواع العناصر الأخرى.

لكن دراسة متأنية لهذه القضية تظهر أن هذا هو بالضبط ما يبسط الأمر
البرنامج - في الغالبية العظمى من الحالات، تكون الفوائد أكثر

الجزء الأول. المبادئ العامة لتصميم وتشغيل Atmel AVR

سرعة الساعة منخفضة ومحدودة. الرسوم البيانية في الشكل. 1.2 خطية، وبالتالي
ويترتب على ذلك أنه بما يتناسب مع انخفاض تردد الساعة، يزداد وقت التنفيذ
الأوامر. وبالتالي، فإن الإجراء الذي يتم تنفيذه على تردد الساعة
سوف يستغرق 4 ميجاهرتز 100 ثانية، وبسرعة ساعة تبلغ 32768 هرتز، وسوف يستمر لأكثر من 12 مللي ثانية.
ومن السهل حساب أنه في كلتا الحالتين كمية الطاقة المستهلكة لكل
سيكون تنفيذ هذا الإجراء هو نفسه.

أرز. 1.2.رسم تخطيطي للاستهلاك الحالي مقابل جهد الإمداد

وتردد الساعة للنماذج الأصغر سنا من عائلة ميجا

لذلك يمكننا استخلاص الاستنتاج العام التالي: إذا كنت لا تريد الخوض فيه
التفاصيل الدقيقة لأنماط توفير الطاقة وعدم تنفيذها في البرنامج، ثم بشكل عام
لتقليل الاستهلاك، تحتاج إلى اختيار تردد الساعة عند أدنى مستوى ممكن (في
ومن الناحية العملية، عادة ما يكون كافيًا تحديد القيمة بـ 1 ميجا هرتز، منذ ذلك الحين
على الأرجح لن يكون للتخفيض أي تأثير بسبب الاستهلاك الإضافي الخارجي
لهم الدوائر، لا محالة موجودة في جميع الدوائر). إذا كان لديك تحذير
لقد نظرنا إلى أحد أوضاع توفير الطاقة "العميقة" (انظر. الفصل 4) ثم الساعة
التردد من وجهة نظر إجمالي الاستهلاك غير ذي صلة عمليا.
شيء آخر هو اختيار جهد الإمداد، وهو ما يُنصح بالقيام به قدر الإمكان
أقل إذا سمحت الأجهزة الخارجية بذلك. الاعتماد على الاستهلاك الحالي
جهد الإمداد، كما يمكن فهمه بسهولة من الرسوم البيانية في الشكل. 1.2، غير الخطية: مع زيادة
مع زيادة الجهد، يزيد الاستهلاك الحالي بسرعة. لذلك، تقليل
جهد الإمداد حتى مع الأخذ في الاعتبار قيود تردد الساعة بالنسبة لمعظم الأشخاص
لا تزال نماذج va AVR (لا تزيد عن 8 ميجاهرتز مع مصدر 2.7 فولت) مربحة. على سبيل المثال،
جهاز مزود بمصدر طاقة 3 فولت بتردد ساعة 8 ميجا هرتز، وفقًا للشكل. 1.2 سيكون
تستهلك حوالي 3 مللي أمبير أو 9 ميجاوات من حيث وحدات الطاقة ؛ للإجراء-

الفصل 1. نظرة عامة على متحكمات Atmel AVR

سوف تتطلب ru بمدة 100 ميكروثانية طاقة تبلغ 0.9 ميكروجول. على تردد 16 ميغاهيرتز نفس الموالية
سيستغرق الإجراء 50 ثانية، لكن الاستهلاك عند جهد الإمداد المطلوب هو 5 فولت
ستكون حوالي 14 مللي أمبير، أي 70 ميجاوات؛ في المجموع سوف يستغرق الطاقة لإكمال الإجراء
3.5 ميكروجول، أي ما يقرب من 4 مرات أكثر.
بالنسبة لجميع الأجهزة الرقمية الخارجية، مع استثناءات قليلة جدًا، يمكنك ذلك
احصل على نظير حديث مصمم للعمل بجهد 2.7–
3.0 فولت (وحتى أقل إذا كان طراز وحدة التحكم يسمح بذلك)، لذلك على هذا الجانب
لا قيود. التي تركز عليها معظم الأمثلة في هذا الكتاب
جهد الإمداد هو 5 فولت، ولا يوجد سوى تكريم للتقاليد. علاوة على ذلك، هذه الأمثلة مثل
كقاعدة عامة، فهي تعني إمدادات الطاقة من الشبكة، حيث لا يكون الاستهلاك كبيرا للغاية.
القراءات. يمكن لمؤشرات LED أن تحد من انخفاض جهد الإمداد
تورس (نظرًا لحقيقة أن انخفاض الجهد المباشر عبر مصابيح LED نفسها يكون
حوالي 2 فولت، وبالنسبة للمؤشرات الكبيرة حتى 5 فولت للتحكم في الجزء السفلي
بالضبط)، ولكن في مثل هذه الأجهزة، لم يعد استهلاك وحدة التحكم يلعب دورًا كبيرًا
الأدوار: أربعة أرقام مكونة من سبعة أجزاء سوف تستهلك تيارًا بترتيب
100 مللي أمبير أو أكثر. حالة أخرى تتمثل في الدوائر التناظرية، حيث الزيادة
يعد جهد الإمداد مفيدًا من وجهة نظر زيادة نسبة الإشارة إلى الضوضاء.
لاحظ أن دبابيس AVR يمكن أن تنتج كميات كبيرة على المدى الطويل
التيار (حتى 20-40 مللي أمبير) ، لكن لا تنسَ الحد الإجمالي العام
للاستهلاك عن طريق انتاج الطاقة (انظر . طاولة ص1.3). وتجدر الإشارة أيضًا إلى ذلك
عند تطبيق الفولتية التناظرية على مدخلات ADC، فإن المدخلات الرقمية CMOS-
لم يتم تعطيل العنصر (إدخال المنفذ المقابل)، وبقيمة هذا
الجهد بالقرب من عتبة استجابة العنصر، وهذا يمكن أن يؤدي إلى زيادة
الاستهلاك بسبب تدفق التيار خلال مراحل الإخراج
CMOS (بما في ذلك في بعض الأحيان عندما تكون الدائرة الدقيقة في وضع السكون،
سم. الفصل 14). لا تحتوي الدوائر الدقيقة المزودة بتقنية picoPower على هذا العيب.

بعض مميزات استخدام AVR في الدوائر

تحتوي معظم دبابيس MK على مكون إضافي مدمج "سحب لأعلى"
(أي متصل بحافلة الطاقة) المقاوم، والذي يبدو أنه يحل إحدى المشكلات
مشاكل الدائرة الشائعة عندما يكون وجود مثل هذا المقاوم مطلوبًا
لتوصيل الأزرار ذات الدبوسين أو مخرجات "المجمع المفتوح".
ومع ذلك، في الحالات الحرجة، يتم استخدام مقاومة خارجية بمقاومة قدرها 2–
5 كيلو أوم (في حالات الاستهلاك الحرجة تصل إلى 10-30 كيلو أوم).
يجب تثبيت المقاوم السحب ليس فقط على دبوس /RESET
(والتي سيتم مناقشتها في الفصل 2)، ولكن أيضًا في حالة دبابيس SCK وMOSI وMISO
يتم استخدام المنافذ المقابلة للبرمجة ومتصلة بها
موصل برمجة ISP (انظر الفصل 5)، وكذلك من مخرجات المقاطعات الخارجية
فانيا، إذا كانوا متورطين. إذا لم يتم "رفع" هذه الاستنتاجات إلى مستوى الجهد
مزود الطاقة بمقاومات إضافية (على الرغم من عدم تحديد ذلك في المواصفات الفنية
التوثيق)، فلا يمكن استبعاد التسبب الكاذب للمقاطعات الخارجية،
إعادة تشغيل النظام، ومع تدخل قوي جدًا - حتى إتلاف البرنامج في الذاكرة -
هذه البرامج. من ناحية أخرى، عندما تكون مخرجات البرمجة أيضًا بمثابة

الجزء الأول. المبادئ العامة لتصميم وتشغيل Atmel AVR

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

C (أو ببساطة عن طريق توصيل مدخل MK بـ

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

ج ح ا ب ر

جهاز عام
تنظيم الذاكرة،
قطع مسافة السباق، إعادة تعيين

يظهر الهيكل العام للهيكل الداخلي لـ AVR MK في الشكل. 2.1. على هذا
يوضح الرسم البياني جميع المكونات الرئيسية لجهاز AVR (باستثناء وحدة JTAG)؛
في بعض النماذج، قد تكون بعض المكونات مفقودة أو مختلفة -
الخصائص، فقط معالج 8 بت المشترك يبقى دون تغيير
نواة جديدة (وحدة معالجة الرسومات، وحدة المعالجة العامة). دعونا نصف بإيجاز أهم المكونات
النتوءات، والتي سننظر في معظمها بالتفصيل لاحقًا.
لنبدأ بالذاكرة. هناك ثلاثة أنواع من الذاكرة في بنية AVR: فلاش-
ذاكرة البرنامج، ذاكرة الوصول العشوائي (SRAM) للبيانات المؤقتة والذاكرة غير المتطايرة
الذاكرة (EEPROM) للتخزين طويل الأمد للثوابت والبيانات. دعونا ننظر إليهم
بشكل منفصل.

ذاكرة البرنامج

يتراوح حجم ذاكرة الفلاش المدمجة للبرامج في وحدات تحكم AVR من
1 كيلو بايت لـ ATtiny11 إلى 256 كيلو بايت لـ ATmega2560. الرقم الأول في الاسم يمكن-
القسمة تتوافق مع قيمة هذه الذاكرة من المتسلسلة: 1، 2، 4، 8، 16، 32، 64، 128 و
256 كيلو بايت. تحتوي ذاكرة البرنامج، مثل أي ذاكرة فلاش أخرى، على صفحة
التنظيم (حجم الصفحة، حسب النموذج، يتراوح من 64 إلى
256 بايت). لا يمكن برمجة الصفحة إلا ككل. عدد الدورات
إعادة البرمجة تصل إلى 10 آلاف.
من وجهة نظر المبرمج، يمكن اعتبار ذاكرة البرنامج مبنية منها
خلايا منفصلة - كلمات تتكون كل منها من بايتين. جهاز ذاكرة البرنامج (وفقط
هذه الذاكرة) بكلمات مزدوجة البايت - وهي نقطة مهمة جدًا يجب أن تكون
فهم بقوة. ترجع هذه المنظمة إلى حقيقة أن أي فريق في AVR
يبلغ طوله وحدتي بايت بالضبط. الاستثناء هو الفرق

وبعض

راي الآخرين (على سبيل المثال،

)، والتي تعمل مع 16 بت وأطول

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

الجزء الأول. المبادئ العامة لتصميم وتشغيل Atmel AVR

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

أرز. 2.1.رسم تخطيطي عام للمتحكمات الدقيقة AVR

ز

ملاحظات على الهامش

دعونا نعطي مثالاً على حالة معالجة مثيرة للاهتمام تمثل
أمر لقراءة الثوابت من ذاكرة LPM (وكذلك ELPM في MK مع ذاكرة البرنامج
128

كيلو بايت أو أكثر). يتضمن هذا الأمر القراءة من بايتالعنوان المشار إليه -

nomu في أعلى اثنين من RONs (تشكيل ما يسمى بالسجل Z، انظر أدناه). ومع ذلك، حتى لا
ينتهك "نقاء" مفهوم تنظيم ذاكرة البرنامج حسب المطورين
لقد أربكت هذا السؤال البسيط من خلال الإشارة في الوصف إلى أنه عند استدعاء أمر LPM، فإن القديم
البتات الخمسة عشر التالية من عنوان التسجيل Z كلمةفي الذاكرة، ويتم تحديد الرقم الأقل أهمية
بايت منخفض أو مرتفع (إذا كان البت يساوي 0 أو 1، على التوالي) من هذا

كلمات. ومع ذلك، فمن السهل ملاحظة تنظيم البايت والكلمة في الذاكرة
نهج كوم متكافئة.

آخر عنوان لذاكرة البرنامج الموجودة لطراز معين
يرمز له بالثابت

بشكل افتراضي، تكون كافة وحدات تحكم AVR دائمًا

بدء تنفيذ البرنامج على العنوان 0000 دولار. إذا لم يكن هناك انقطاع في البرنامج
ny، فيمكن أن يبدأ برنامج التطبيق من هذا العنوان. خلاف ذلك

الشاي في هذا العنوان هو ما يسمى. طاولة ناقلات المقاطعة، تفاصيل
والتي سنتحدث عنها فيها الفصول 4و 5 . وهنا نشير فقط إلى أن الأول
يحتوي هذا الجدول (على نفس العنوان $0000) دائمًا على متجه إعادة التعيين

مما يشير إلى الإجراء الذي تم تنفيذه عند إعادة ضبط MK (بما في ذلك
عند تشغيل الطاقة).

ص

ملحوظة

في مجمع AVR يمكنك تمثيل الأرقام السداسية العشرية في "باسكال"
النمط، مسبوقًا بعلامة $، في حين أن نمط لغة C (0x00) صالح أيضًا، ولكن
طريقة "Intel" (00h) لا تعمل. اقرأ المزيد عن تسميات الأرقام المختلفة
أنظمة الأرقام في مجمع AVR، انظر. الفصل 5.

قد تحتوي على عناوين ذاكرة البرنامج الأخيرة لوحدات تحكم عائلة Mega
كذبة ما يسمى محمل- برنامج خاص لإدارة التحميل و
تفريغ البرامج التطبيقية من الذاكرة الرئيسية. في هذه الحالة،
موقع متجه إعادة التعيين وجدول متجه المقاطعة بأكمله (أي في الواقع
يمكن تغيير عنوان البداية الذي يبدأ منه تنفيذ البرنامج).
غير ممكن عن طريق تثبيت خلايا تكوين خاصة (انظر. الفصل 5).

ذاكرة البيانات (RAM، SRAM)

على عكس ذاكرة البرنامج، تتم معالجة مساحة عنوان ذاكرة البيانات
بايت بايت (وليس كلمة بكلمة). العنونة خطية تمامًا، دون أي تقسيم
إلى صفحات أو أجزاء أو جرار، كما هو شائع في بعض الأنظمة الأخرى.
أعضاء الكنيست الصغار من عائلة تايني (بما في ذلك تايني 1 XوTiny28) ذاكرة البيانات، مثل
العواء، لم يكن لديك، يقتصر فقط على ملف التسجيل (RON) وسجلات الإدخال
نعم الإخراج (RVV). في النماذج الأخرى، يتراوح مقدار ذاكرة الوصول العشوائي (SRAM) المدمجة من
128 بايت في أفراد عائلة Tiny (على سبيل المثال، ATtiny2313) حتى 4-8 كيلو بايت
للموديلات الضخمة الأقدم.
يتم تقسيم مساحة العنوان لذاكرة البيانات الثابتة (SRAM) بشكل تقليدي إلى
عدة مناطق موضحة في الشكل 2.2. الجزء من
المتعلقة المدمج في SRAM نفسه، قبل أن يقع في ترتيب العناوين
لكن مساحة عنوان السجلات (أول 32 بايت مشغولة بـ RON، و64 بايت أخرى -
RVV). بالنسبة لطرز Mega الأقدم ذات البنية المعقدة (على سبيل المثال، ATmega128)
قد لا تكون سجلات الإدخال/الإخراج 64 كافية، لذا فهي إضافية
يتم تخصيص مساحة عنوان منفصلة للمركبات الترفيهية الإضافية (من 60 دولارًا إلى الحد الأقصى.
الحد الأقصى لقيمة $FF الممكنة في معالجة البايت، يمكن أن يصل إجمالي هذه السجلات
ربما 160 فقط).

ز

ملاحظات على الهامش

في بنية AVR MK، يتم استخدام مفهوم "المدخلات والمخرجات" في معنيين: أولاً

أولاً، هناك "منافذ الإدخال/الإخراج" (منافذ الإدخال/الإخراج)، والتي سننظر فيها الفصل 3.
ثانياً، "سجلات الإدخال والإخراج" (IO) في بنية AVR هي السجلات
والتي توفر الوصول إلى مكونات إضافية خارجية ل

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

الجزء الأول. المبادئ العامة لتصميم وتشغيل Atmel AVR

لبعض الموديلات الضخمة (ATmega8515، ATmega162، ATmega128، ATmega2560
الخ) من الممكن توصيل ذاكرة خارجية تصل إلى
64 كيلو بايت، والتي يمكن أن تكون ثابتة
متنوعة (SRAM أو Flash أو EEPROM) مع pa-
واجهة متوازية.
لاحظ أن عناوين RON وRVV لا تُحذف من
مساحة ذاكرة الوصول العشوائي للبيانات (باستثناء المتصلة
الذاكرة الخارجية المتوقعة لموديلات ميجا الأقدم،
الحد الأقصى لعنوانه محدود بالقيمة
$FFFF): لذا، إذا كان هناك نموذج MK محدد
512 بايت من SRAM، ومساحة التسجيل مشغولة
أول 96 بايت (حتى عنوان 60 دولارًا)، ثم عناوين SRAM
سيشغل مساحة العنوان من 0060 دولارًا إلى 025 دولارًا
(أي من الخلية 96 إلى الخلية 607 ضمناً). نهاية
تتم الإشارة إلى ذاكرة البيانات المدمجة بواسطة ثابت

أرز. 2.2.مساحة العنوان

ذاكرة البيانات الثابتة (SRAM)

المتحكمات الدقيقة AVR

تعمل عمليات القراءة/الكتابة في الذاكرة بنفس الطريقة مع أي عناوين من الملف
مساحة حادة، وعند العمل مع SRAM عليك توخي الحذر: بدلاً من ذلك
الكتابة إلى الذاكرة، يمكنك بسهولة "الدخول" إلى بعض السجلات. على سبيل المثال،
تسجيل أمر تحميل القيمة

إلى السجل

) يعادل

يكتب إلى SRAM على العنوان صفر (

). العنوان في الذاكرة لـ RON sov-

يقع مع رقمه. وفي الوقت نفسه، للدخول المباشر إلى RVV وفقا له
يجب إضافة العنوان الموجود في الذاكرة بمقدار 20 دولارًا إلى رقم السجل: وبالتالي، سجل العلم

والذي يقع بالنسبة لمعظم الطرز في نهاية جدول RVV في
$3F، لديه عنوان $5F في الذاكرة. قم بتثبيت RON وRVV عن طريق العنونة المباشرة
من غير المناسب أن تتذكر: مثل هذا التسجيل يأخذ دائمًا شريطين بدلاً من شريط واحد عادةً
انتقل إلى معظم الأوامر الأخرى، على الرغم من أن هذا يمكن أن يتجاوز القيود في بعض الأحيان
للتلاعب ببعض مركبات RVV. ولكن إذا كان هناك برنامج جاهز، فأنا أعمل -
مع SRAM، ثم عند استبدال طرازات المعالجات بأخرى أقدم، يجب أن تكون كذلك
كن حذرًا نظرًا لحقيقة أن عناوين SRAM المنخفضة فيها قد تتداخل
RVV إضافية.

الفصل 2. الهيكل العام، تنظيم الذاكرة، تسجيل الوقت، إعادة الضبط

ذاكرة البيانات غير المتطايرة (EEPROM)

تحتوي جميع طرز AVR MK (باستثناء ATtiny11 المتوقفة) على جهاز مدمج
EEPROM لتخزين الثوابت والبيانات عند انقطاع التيار الكهربائي.
في نماذج مختلفة، يتراوح حجمه من 64 بايت (ATtiny1x) إلى 4 كيلو بايت (أعلى
نماذج ميجا). تتم الإشارة إلى نهاية EEPROM بواسطة ثابت

(وهذا يدل

يتم تقديم هذا فقط لنماذج AVR الأحدث، وبالتالي عند الاستخدام
في بعض الأحيان سيكون عليك تحديد هذا الثابت بنفسك). عدد دورات إعادة التشغيل
يمكن أن تصل برمجة EEPROM إلى 100 ألف.
دعونا نتذكر أن EEPROM يختلف عن Flash في إمكانية المعالجة الانتقائية.
برمجة بايت بايت (من حيث المبدأ، حتى قليلا قليلا، ولكن هذه الطريقة غير متوفرة
مستخدم). ومع ذلك، في النماذج القديمة من عائلة EEPROM، مثل ذاكرة الفلاش
البرامج، لها تنظيم صفحة، إلا أن هذه الصفحات صغيرة - تصل إلى
4 بايت لكل منهما. عمليًا، كما هو الحال عند برمجة EEPROM بشكل تسلسلي
قناة الجسم (أي عبر واجهة برمجة SPI)، وعند التسجيل و
عند قراءة EEPROM من برنامج، لا يهم هذه الميزة، والوصول إليها هو
يتم عرض بايت بايت.
تتم القراءة من EEPROM خلال دورة آلة واحدة (وإن كانت
من الناحية العملية، يمتد الأمر على أربع دورات، لكن يحتاج المبرمج إلى متابعة ذلك.
غير مطلوب). لكن الكتابة إلى EEPROM تكون أبطأ بكثير،
علاوة على ذلك، وبسرعة غير محددة على وجه التحديد: يمكن لدورة الكتابة المكونة من بايت واحد أن تفعل ذلك
يستغرق من 2 إلى ~ 4 مللي ثانية أو أكثر. يتم تنظيم عملية التسجيل بواسطة المدمج في آر سي.-
مولد تردده غير مستقر (عند جهد إمداد أقل
يمكنك أن تتوقع أن يكون وقت التسجيل أطول). لمثل هذا الوقت، في ظل الظروف العادية،
في الترددات العالية، يتمكن MK من تنفيذ عدة آلاف من الأوامر، وبالتالي فإن البرنامج
يتطلب إجراء التسجيل الرعاية: على سبيل المثال، تحتاج إلى التأكد
بحيث لا "ينحشر" وقت التسجيل (لمزيد من المعلومات حول هذا، راجع جلا-
أنت 4
و 9 ).
الصعوبة الرئيسية عند العمل مع EEPROM هي إمكانية إتلاف مكوناته.
يُعقد عندما لا ينخفض ​​​​جهد الإمداد بالسرعة الكافية في الوقت الحالي
اغلق هذا يرجع إلى حقيقة أنه عندما ينخفض ​​جهد الإمداد إلى
عتبة معينة (أقل من عتبة التشغيل المستقر، ولكنها ليست كافية للتشغيل الكامل
إيقاف) بسبب تقلبات الجهد، يبدأ عضو الكنيست في الأداء التعسفي
أوامر ناري، بما في ذلك القدرة على تنفيذ إجراءات الكتابة إلى EEPROM. لو
ضع في اعتبارك أن أمر AVR MK النموذجي يتم تنفيذه خلال أجزاء من الثانية،
فمن الواضح أنه لا يوجد مصدر طاقة حقيقي يمكنه توفير التخفيض
الجهد إلى الصفر في الوقت المطلوب. وفقا لتجربة المؤلف، عندما مدعوم من العاديين
نوع المثبت LM7805 مع قيم السعة الموصى بها
عند الإدخال والإخراج، ستتضرر محتويات EEPROM حتماً بسبب ذلك
حوالي نصف الوقت.
يجب ألا تكون هذه المشكلة موجودة إذا تمت كتابة الثوابت على EEPROM
عند برمجة MK، ولكن لا يوجد إجراء تسجيل في البرنامج (حوالي
كيفية إنشاء ملف بيانات لـ EEPROM، راجع قسم "التوجيهات والوظائف"
"" من الفصل الخامس
). يتم تأكيد السلامة الأكبر للبيانات في مثل هذه الحالات من خلال em-

الجزء الأول. المبادئ العامة لتصميم وتشغيل Atmel AVR

الملاحظات البيروقراطية، وحقيقة أن الإذن بالكتابة إلى EEPROM هو أمر إجرائي
را على مرحلتين (انظر. الفصل 9). وفي جميع الحالات الأخرى (ومن الواضح أن هناك،
الأغلبية المطلقة - غالبًا ما يتم تخزين إعدادات المستخدم في EEPROM
يجب قبول التكوين الجديد والحالي عند إيقاف تشغيل الطاقة).
تدابير خاصة. والأكثر أهمية وعالمية منها هو النظام الأساسي
شاشة طاقة خارجية جديدة تحافظ على عضو الكنيست في حالة إعادة التعيين
ينخفض ​​​​جهد الإمداد إلى أقل من قيمة العتبة. يخدم نفس الغرض
كاشف انخفاض الجهد المدمج (اكتشاف براون أوت، BOD)، متاح
في جميع نماذج Tiny وMega تقريبًا، لكن الوثائق الفنية لا تستبعد ذلك
وفي الوقت نفسه، من الضروري التأكد من موثوقية تكراره باستخدام جهاز مراقبة طاقة خارجي.
لمزيد من المعلومات حول دائرة BOD وأوضاع إعادة ضبط MK، راجع لاحقا في هذا الفصل، وعن البرنامج
لتثبيت EEPROM والاحتياطات عند استخدامه، راجع الفصل 9.

طرق الساعة

تتمثل الطريقة الأساسية لتسجيل الوقت في MK في توصيل مرنان الكوارتز به
الاستنتاجات المقابلة (الشكل 2.3، أ). سعة المكثفات C1 و C2 بشكل نموذجي
يجب أن تكون الحالة 15-22 pF (يمكن زيادتها إلى 33-47 pF من واحد
زيادة مؤقتة في الاستهلاك). معظم النماذج الصغيرة والميجا لديها
هناك بت تكوين خاص

مما يسمح لك بالتكيف

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

تتضمن القيمة 0 تلك المدرجة في

مكثفات داخلية MK بسعة 36pF.
يمكن استبدال مرنان الكوارتز برنان سيراميك. نجح مؤلف هذه السطور
قم بتشغيل MK على ترددات غير قياسية، وذلك باستخدام بدلاً من الكوارتز في نفس الترددات الفرعية
بما في ذلك محاثة مصغرة (بقيمتها 4.7 μH والسعة
91 مكثفات pF ، التردد حوالي 10 ميجا هرتز) ، والذي يسمح في نفس الوقت قليلاً
تقليل أبعاد الدائرة.
وبطبيعة الحال، يمكن أيضًا تسجيل MC من مولد خارجي (الشكل 2.3، ب). أوسو-
يعد هذا مناسبًا بشكل خاص عندما تحتاج إلى مزامنة MK مع المكونات الخارجية
nts، أو احصل على تردد ساعة دقيق للغاية عن طريق تحديد المناسب
مولد النفخ (على سبيل المثال، سلسلة Epson SG-8002).
على العكس من ذلك، عندما لا تكون الدقة مطلوبة، يمكنك توصيل خارجي آر سي.-سلسلة
(الشكل 2.3، V). في هذه الدائرة، يجب أن تكون السعة C1 على الأقل 22 pF، والمقاوم R1
يمكن الاختيار من بين النطاق 3.3-100 كيلو أوم. يتم تحديد التردد بواسطة الصيغة
ف= 2/3 آر سي.. ليس عليك تثبيت C1 على الإطلاق إذا قمت بتدوين السجل. 0 في التكوين
خلية نشوئها

وبالتالي توصيل مكثف داخلي 36 pF.

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

الفصل 2. الهيكل العام، تنظيم الذاكرة، تسجيل الوقت، إعادة الضبط

قيم التردد (1، 2، 4، 8 ميغاهيرتز). توفر بعض النماذج القدرة
ضبط تردد هذا المولد (لمزيد من التفاصيل، انظر أو الوصف الفني
نماذج محددة). من الأفضل استخدام هذه الفرصة في
نماذج صغيرة أصغر سنا، يتم إنتاجها في حزمة 8 دبوس - ثم الاستنتاجات
مصممة لتوصيل مرنان أو مولد خارجي، يمكنك ذلك
استخدامها لأغراض أخرى، مثل منافذ الإدخال/الإخراج العادية.

أرز. 2.3.طرق تسجيل الوقت للمتحكم الدقيق AVR باستخدام: أ- مرنان الكوارتز.

ب- مولد خارجي V - آر سي.-السلاسل

عائلة كلاسيكية مدمجة آر سي.-لا يحتوي على مولد، بل تكوين خاص-

تحتوي أعضاء MK هذه على عدد أقل بكثير من الخلايا، وفي الحالة العامة لا يمكن استخدامها

انتبه. وهذا ليس هو الحال بالنسبة للعائلات الأخرى. عائلات MK الافتراضية

تم ضبط Tiny وMega للعمل مع تشغيل المولد المدمج
التردد 1 ميجا هرتز (

0001)، لذلك تحتاج إلى الوضع المناسب بالنسبة للأوضاع الأخرى

تثبيت خلايا التكوين بشكل صحيح

(انظر الجدول 2.1). في نفس الوقت

وينبغي أن تؤخذ في الاعتبار أن حالة الخلايا

0000 (معكوسة بالنسبة إلى

القيمة الأكثر استخدامًا لمرنان الكوارتز 1111) هي إعادة

يضع عضو الكنيست في وضع الساعة من مولد خارجي، وفي نفس الوقت لا يستطيع ذلك

حتى البرنامج دون توفير تردد خارجي. حول الإعدادات الموصى بها

للتعرف على خلايا التكوين ومميزات برمجتها، انظر أيضًا

الفصل 5.

الجدول 2.1.تركيب خلايا التكوينككسل

اعتمادا على أوضاع الساعة

ككسل3...0

مصدر الساعة

تكرار

التردد الخارجي

مدمج آر سي.-مولد

مدمج آر سي.-مولد

مدمج آر سي.-مولد

مدمج آر سي.-مولد

خارجي آر سي.-سلسلة

الجزء الأول. المبادئ العامة لتصميم وتشغيل Atmel AVR

الجدول 2.1(نهاية)

ككسل3...0

مصدر الساعة

تكرار

خارجي آر سي.-سلسلة

0.9...3.0 ميجا هرتز

خارجي آر سي.-سلسلة

3.0...8.0 ميجا هرتز

خارجي آر سي.-سلسلة

8.0...12 ميجا هرتز

مرنان التردد المنخفض

مرنان الكوارتز

0.4...0.9 ميجا هرتز

مرنان الكوارتز

0.9...3.0 ميجا هرتز

مرنان الكوارتز

3.0...8.0 ميجا هرتز

1xxx (كبوت=0)

مرنان الكوارتز

إعادة ضبط

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

يجب الإشارة

معلومات حول المصدر الذي تمت إعادة التعيين منه في المرة السابقة (المثبتة
جديد إلى 1 بت 0 - إعادة ضبط التشغيل، البت 1 - إعادة ضبط الأجهزة، البت 2 - من
دوائر BOD، البتة 3 - من مؤقت المراقبة). ومن الناحية العملية، بحسب تجربة المؤلف، بحسب
تختلف حالات هذا السجل بشكل موثوق عن جميع الحالات الأخرى في الولايات فقط
إعادة ضبط المؤقت (قد يتم ضبط جميع العلامات الأخرى في نفس الوقت)
مؤقتا). ومع ذلك، يمكن أن تكون هذه المعلومات مفيدة، على سبيل المثال، عند التحليل
تحليل أسباب الانقطاعات في تشغيل الأجهزة التي تعمل على مدار الساعة (انظر. الفصل 12).
أعضاء الكنيست الصغار من عائلة Tiny (باستثناء ATtiny28) ليس لديهم "سحب" مدمج
"المقاوم عند دبوس /RESET، لذلك، من أجل التشغيل الموثوق، يجب اتخاذ الاحتياطات اللازمة
انظر اتصال المقاوم الخارجي من 2-5 كيلو أوم من هذا الدبوس إلى
جهد الإمداد. يوصي المؤلف بشدة أيضًا بالتثبيت
مقاوم مناسب لأي موديلات AVR، نظرًا لأن المقاوم المدمج به حجم كبير
قيمة اسمية عالية (100-500 كيلو أوم) ويمكن أن تحدث تداخلاً يمكن أن يسبب
ty إلى إعادة تعيين غير متوقعة. أيضًا (على الرغم من أن الأوصاف الفنية مثل

الفصل 2. الهيكل العام، تنظيم الذاكرة، تسجيل الوقت، إعادة الضبط

إصلاح ولم يتم احتواؤه) لن يضر تركيب مكثف 0.1-0.5 μF من
/إعادة ضبط الإخراج على الأرض - يعمل هذا على تسهيل ارتداد الجهد الحتمي و
الحافة الصاعدة للجهد عند دبوس /RESET أطول قليلاً من
مع زيادة جهد الإمداد: عند الوصول إلى عتبة استجابة الدائرة
إعادة الضبط، سيتم بالفعل إنشاء جهد الإمداد الخاص بـ MK بالكامل.
في النماذج الصغيرة، التي يتم إنتاجها في حزمة ذات 8 سنون (ATtiny11 – ATtiny15)،
إذا لم تكن هناك حاجة إلى إعادة تعيين خارجي، فيمكن أن يؤدي دبوس /RESET الوظائف بشكل طبيعي
منفذ الإدخال/الإخراج. مع تحذير واحد فقط: عند تكوين هذا
الاتصال بالمخرج، فهو يعمل كمخرج جامع مفتوح، وليس كمخرج تقليدي
العنصر المنطقي النهائي (لتكوين دبابيس المنفذ، راجع الفصل 3).
الطريقة الأكثر تفضيلاً لتنظيم إعادة ضبط التشغيل هي كما يلي:
سبق ذكره سابقًا - تركيب شاشة طاقة خارجية. على سبيل المثال، متى
بالنسبة لمصدر طاقة 5 فولت، فإن الدائرة المصغرة الشهيرة MC34064 ذات عتبة الزناد مناسبة.
4.6 فولت واستهلاك نموذجي يبلغ حوالي 300 ميكرو أمبير أو أكثر حداثة
تناظري (على سبيل المثال، MAX803L باستهلاك 12 ميكرو أمبير). لإمدادات الطاقة ثلاثة فولت
الدائرة المناسبة MAX803R (2.6 فولت) أو إصدار مناسب من DS1816 مع ما يقابلها
الجهد الحالي. جميع الدوائر الدقيقة المدرجة هي ثلاثية الأطراف (الطاقة والأرض
la"، إعادة ضبط دبوس التحكم) ولها مخرج جامع مفتوح، على سبيل المثال.
توفير تركيب المقاوم "السحب". وقت الاستجابة النموذجي
مدة عمل هذه الدوائر الدقيقة عندما ينخفض ​​الجهد هي ميكروثانية، مما يوفر
سلامة البيانات في EEPROM عندما يزيد الجهد، فإنها توفر
تأخير زمني كبير (في حدود أجزاء من الثانية)، مما يسمح بالموثوقية
إعادة تعيين عضو الكنيست دون قعقعة.
توفر دائرة BOD المدمجة أوقات استجابة بترتيب ميكروثانية
تأخير العودة إلى حالة التشغيل بعد استعادة الجهد، op-
يتم تحديده بنفس إعدادات تأخير إعادة التعيين (cells

تردد الساعة 4 ميجاهرتز) وحتى أقصى قيمة ممكنة تبلغ حوالي 68 مللي ثانية
تبين أنها غير كافية لتجاوز الثرثرة التي تحدث عندما ينخفض ​​الجهد
جهد إمداد الطاقة لمصدر مستقل. لتحديد وضع تشغيل BOD، استخدم
اضغط على ثلاث خلايا التكوين

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

111 (الإعداد الافتراضي) - تعطيل دائرة BOD؛

101 - يقوم بتشغيل BOD عند عتبة تشغيل تبلغ 2.7 فولت؛

100 - يتوافق مع عتبة 4.0 فولت.

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


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

إذا كنت تقرأ هذا المقال، فمن المحتمل أن تكون لديك رغبة في فهم كيفية عمل المتحكمات الدقيقة، وعلى الأرجح لديك أسئلة:

4. ما الأدب الذي يجب أن أدرسه؟

دعونا نحاول الإجابة على هذه الأسئلة.

1. ما هو المتحكم الدقيق الذي يجب أن أختاره لهذه المهمة؟

تحظى وحدات التحكم الدقيقة 8 بت بشعبية كبيرة بين هواة الراديو. صورةتكنولوجيا الرقائق الدقيقة و أفراتميل، 16 بت MSP430من TI، بالإضافة إلى المتحكمات الدقيقة 32 بت، والهندسة المعمارية ذراع.

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

سوف نقوم بدراسة المتحكمات الدقيقة AVR 8 بت والعائلات سلسلة ATMEGA 8 و16. تم تحديد الاختيار مرة أخرى من خلال إمكانية الوصول ووجود العديد من تطورات الهواة وكمية هائلة من المواد التعليمية. وجود مجموعة متنوعة من المكونات والوظائف المدمجة لهذه العائلة.

2. ما هي بيئة التطوير التي يجب أن أستخدمها لبرمجة وحدة التحكم الدقيقة المحددة؟

تم إنشاء العديد من بيئات التطوير المتكاملة (IDE، بيئة التطوير المتكاملة) لـ AVR.
بيئة تطوير متكاملةهو نظام برمجي يستخدمه المبرمجون لتطوير البرمجيات، ويتضمن:
محرر النصوص,
مترجم و/أو مترجم،
أدوات أتمتة التجميع,
مصحح الأخطاء

الأكثر شيوعا AVRStudio، ATmelStudio، WINAVR، CodeVision، IAR Embedded Workbench.
من أجل كتابة البرامج، سوف نستخدم الحرة إيد أتميلستوديو الإصدار 6وأعلى.
يمكنك تنزيل Atmel Studio من الموقع الرسمي بعد التسجيل (التسجيل مجاني تمامًا ولا يلزمك بأي شيء!)

يتيح لك ATmelStudio إنشاء مشاريع وكتابة البرامج في كل من المجمع وفي SI.

في البداية السؤال دائما هو: ما هي لغة البرمجة التي يجب أن أختارها لكي أكتب برامج فعالة؟

إجابتي بسيطة: يجب أن تكون قادرًا على الكتابة بلغتين على الأقل: لغة التجميع وSI. تعد لغة التجميع ضرورية ببساطة عندما تحتاج إلى كتابة إجراءات فرعية ووحدات ماكرو سريعة ومدمجة وبرامج تشغيل الأجهزة المختلفة. ولكن، عندما تحتاج إلى إنشاء مشروع كبير مبني على خوارزميات معقدة، دون معرفة SI، يمكن قضاء الكثير من الوقت، خاصة في عملية تصحيح الأخطاء، وإذا كانت هناك رغبة في نقله إلى منصة أخرى، على سبيل المثال PIC18 أو STM، يمكن أن تصبح مشكلة غير قابلة للحل.
بالإضافة إلى ذلك، ظهرت الآن منصات الحوسبة الصلبة اردوينو، العمل الذي يتطلب معرفة لغة SI++.
لذلك، سنكتب البرامج في المجمع وفي SI.

لرؤية نتيجة عملك بوضوح دون استخدام مكواة لحام أو لوح تجارب، ما عليك سوى تثبيت البرنامج بروتيوس.

3. كيفية وميض وحدة التحكم، وما هي الأجهزة والملحقات الإضافية اللازمة للعمل المريح معها؟

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

4. ما الأدب الذي يجب أن أدرسه؟

لكن على سبيل المثال:
البرمجة العملية لـ AVR في المجمع. ريفيتش، 2011
1000 ودائرة متحكم واحد المجلد. 1-2. ريوميك، 2010-2011
10 أجهزة عملية على AVR MK Book 1-2. كرافشينكو، 2008-2009
برنامج تعليمي لمطور الأجهزة باستخدام AVR MK. بيلوف، 2008
MK AVR من عائلات Tiny وAtmega. افستيفيف، 2008
كود فيجنAVR. دليل للمبتدئين. ليبيديف، 2008
التحكم في المعالجات الدقيقة للأجهزة والثايرستور والمرحلات. بيلوف، 2008
واجهات تناظرية MK. ستيوارد، بول، 2007
نقوم بإنشاء أجهزة على AVR MK. بيلوف، 2007
MK AVR في ممارسة راديو الهواة. التحليل الكامل لـ ATTINY2313. بيلوف، 2007
تبادل بيانات الشبكة والشبكة البينية مع MK. اذهب، 2007
عضو الكنيست أفر. ورشة عمل للمبتدئين. هارتوف، 2007
تطبيق مخططات AVR والخوارزميات والبرامج. بارانوف، 2006
المتحكمات الدقيقة AVR. دورة تمهيدية. مورتون، 2006
القياس والتحكم والتنظيم باستخدام AVR. ترومبرت، 2006
البرمجة بلغة C لـ AVR و PIC MK. شباك، 2006
تصميم الأجهزة على MK. بيلوف، 2005
MK - الأمر بسيط، المجلدات 1-3. فرونزي، 2002-2003
لغة البرمجة C، الطبعة الثانية. كيرنيغان، ريتشي، 2009
برمجة متحكمات ATMEL في لغة س. بروكوبينكو، 2012

5. أين يمكنك على الإنترنت طرح الأسئلة والحصول على إجابات محددة؟

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

الآن دعونا نلقي نظرة فاحصة على المفضلة لدينا، وحدة التحكم الدقيقة ATMEGA 8

متحكم AVR 8 بت، عالي الأداء ومنخفض الطاقة
بنية RISC التقدمية
130 تعليمات عالية الأداء، يتم تنفيذ معظم التعليمات في دورة ساعة واحدة
32 سجلات عمل للأغراض العامة 8 بت
عملية ثابتة تماما
يقترب من أداء 16 MIPS (عند 16 ميجاهرتز).
مضاعف دورة مدمج

ذاكرة البرامج والبيانات غير المتطايرة
8 كيلو بايت من ذاكرة فلاش ذاتية البرمجة داخل النظام
يوفر 1000 دورة مسح/كتابة
قطاع رمز التمهيد الإضافي مع بتات قفل مستقلة
يوفر وضع القراءة/الكتابة المتزامن (القراءة أثناء الكتابة)
512 بايت إيبروم
يوفر 100,000 دورة مسح/كتابة
1 كيلو بايت SRAM على الرقاقة
قفل قابل للبرمجة لحماية برامج المستخدم

الأجهزة الطرفية المضمنة
مؤقتان/عدادان 8 بت مع مقياس مسبق منفصل، أحدهما مزود بوضع المقارنة
مؤقت/عداد واحد 16 بت مزود بمقياس مسبق منفصل وأوضاع الالتقاط والمقارنة
عداد في الوقت الحقيقي مع مولد منفصل
ثلاث قنوات PWM
محول A/D ذو 8 قنوات (TQFP وMLF)
6 قنوات بدقة 10 بت
محول تناظري إلى رقمي ذو 6 قنوات (في حزمة PDIP)
4 قنوات بدقة 10 بت
قناتان بدقة 8 بت
واجهة تسلسلية ذات سلكين موجهة للبايت
USART التسلسلي القابل للبرمجة
واجهة تسلسلية SPI (رئيسي/تابع)
مؤقت مراقبة قابل للبرمجة مع مذبذب مدمج منفصل
المدمج في المقارنة التناظرية

وظائف متحكم خاص
إعادة ضبط التشغيل وكاشف الجهد المنخفض القابل للبرمجة
مذبذب RC مدمج ومعاير
مصادر المقاطعة الداخلية والخارجية
خمسة أوضاع للاستهلاك المنخفض: الخمول، وتوفير الطاقة، وخفض الطاقة، والاستعداد، وتقليل الضوضاء ADC

دبابيس الإدخال/الإخراج والعلب
23 خط إدخال/إخراج قابل للبرمجة
حزمة PDIP ذات 28 سنًا، وحزمة TQFP ذات 32 سنًا، وحزمة MLF ذات 32 سنًا

الفولتية التشغيل
2.7 - 5.5 فولت (ATmega8L)
4.5 - 5.5 فولت (ATmega8)

تردد التشغيل
0 - 8 ميجا هرتز (ATmega8L)
0 - 16 ميجا هرتز (ATmega8)

الاختلافات بين ATMEGA16 و 8
16 كيلو بايت من ذاكرة فلاش ذاتية البرمجة داخل النظام

واجهة JTAG (متوافقة مع IEEE 1149.1)
قدرة المسح المحيطي المتوافقة مع معيار JTAG
دعم موسع لتصحيح الأخطاء المضمنة
البرمجة عبر واجهة JTAG: الفلاش، ذاكرة EEPROM، وصلات العبور وبتات القفل

أربع قنوات PWM/PWM

محول تناظري إلى رقمي ذو 8 قنوات 10 بت
8 قنوات غير متوازنة
7 قنوات تفاضلية (حزمة TQFP فقط)
قناتان تفاضليتان مع كسب قابل للبرمجة يبلغ 1x أو 10x أو 200x (حزمة TQFP فقط)

ستة أوضاع للاستهلاك المنخفض: الخمول، وتوفير الطاقة، وخفض الطاقة، والاستعداد، والاستعداد الممتد، وتقليل ضوضاء ADC

32 خط إدخال/إخراج قابل للبرمجة

حزمة PDIP ذات 40 سنًا وحزمة TQFP ذات 44 سنًا

اتميلستوديو

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

لإنشاء مشروع، تحتاج إلى فتح البرنامج، وستظهر شاشة التوقف التالية،

وسيتم فتح صفحة إنشاء المشروع

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

ستظهر النافذة التالية

يختار "megaAVR، 8 بت"والعثور على وحدة التحكم الدقيقة التي نحتاجها، اخترنا ذلك ATmega8.على الجانب الأيمن من شاشة التوقف، تظهر قائمة بالأجهزة التي تعمل مع وحدة التحكم الدقيقة هذه، والتي يمكننا توصيل أحدها. يختار نعم.

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


يمكننا البرمجة في المجمع.
يتم إنشاء مشروع للبرمجة بلغة SI بنفس الطريقة.

الآن بعد أن أصبحنا على دراية ببعض قدرات ووظائف المتحكمات الدقيقة، فمن الطبيعي أن يطرح سؤال منطقي: ما هو المطلوب لبرمجة المتحكمات الدقيقة؟ ما هي البرامج والأجهزة المطلوبة وأين يمكنني الحصول عليها؟


لكي يتمكن المتحكم الدقيق من حل المشكلات وأداء وظائف معينة، يجب برمجته، أي أنه يجب كتابة برنامج أو كود برمجي فيه.

هيكل وترتيب كتابة البرنامج

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

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


سنكتب البرامج بلغة C، وهي لغة عالية المستوى. تتم كتابة البرامج في لغة C بشكل أسرع بكثير مقارنة بالبرامج المماثلة في لغة التجميع. بالإضافة إلى ذلك، تتم كتابة كافة البرامج المعقدة في المقام الأول في C.

هنا لن نقارن مزايا وعيوب برامج الكتابة في Assembly و C. بمرور الوقت، بعد أن اكتسبت بعض الخبرة في برمجة MK، سترسم استنتاجات مفيدة لنفسك.

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

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

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

لفلاش البرامج الثابتة MK، يتم استدعاء جهاز مبرمج. اعتمادا على نوع المبرمج، يتم توصيل مدخلاته بمنفذ COM أو USB، ويتم توصيل مخرجاته إلى دبابيس معينة من وحدة التحكم الدقيقة.


هناك مجموعة واسعة من المبرمجين ولوحات التطوير، لكننا سعداء جدًا بأبسطها مبرمج، والتي لا تكلف في الصين أكثر من 3 دولارات.


بعد وميض وحدة التحكم الدقيقة، يتم تصحيح أخطاء البرنامج واختباره على جهاز حقيقي أو، كما يقولون أيضًا، على الأجهزة.

الآن دعونا نلخص خطوات برمجة المتحكمات الدقيقة.


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

تجدر الإشارة إلى أنه يتم إجراء تصحيح أخطاء البرنامج واختباره أيضًا قبل وميض البرنامج الثابت MK.

مجموعة البرامج المطلوبة

هناك العديد من البرامج المفيدة والمريحة لبرمجة MK. كلاهما مدفوع ومجاني. من بينها ثلاثة رئيسية:

1) استوديو اتميل

2) كود فيجن AVR

3) وينافر

كل هذه البرامج تابعة ل بيئة تطوير متكاملةأنامدمج دتطوير ه nvironment - بيئة التطوير المتكاملة. يمكنك كتابة التعليمات البرمجية فيها، وتجميعها وتصحيحها.

يجب عليك الانتباه إلى Code Vision AVR. يجعل هذا IDE كتابة التعليمات البرمجية أسهل وأسرع. ومع ذلك، يتم دفع البرنامج.

في المرحلة الأولى من البرمجة، من الأفضل كتابة كافة البرامج يدويا، دون أي تبسيط. سيساعدك هذا على اكتساب المهارات اللازمة بسرعة، ويمكنك في المستقبل فهم وتحرير الرموز التي كتبها شخص آخر لتناسب احتياجاتك. لذلك، أوصي باستخدام Atmel Studio. أولاً، إنه مجاني تمامًا ويتم تحديثه باستمرار، وثانيًا، تم تطويره من قبل شركة تصنع وحدات التحكم الدقيقة والتي سنتعلم البرمجة عليها.

تصحيح أخطاء البرامج الثابتة والبرامج

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

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

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

عنصر آخر مهم سيكون مفيدًا لنا هو التوثيق الفني لـ MK، والذي يسمى ورقة البيانات. بشكل عام، تحتاج إلى تحميل ورقة بيانات لوحدة التحكم الدقيقة ATmega8.