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

وصف الصمامات atmega8 وحدات تحكم ATMEL. الصمامات. الصمامات. القواعد الأساسية للمبتدئين

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

فيوزأجزاء ( الصمامات) - حسنًا، بكل بساطة، يقومون بتكوين معلمات معينة لوحدات التحكم الدقيقة، وهذا نوع من الأدوات لضبطها. تتضمن الصمامات أو تكوين معلمات مثل:
- تردد المولد، مولد خارجي أو داخلي
- حظر قراءة البرامج الثابتة للمتحكم الدقيق
- تمكين أو تعطيل الموقتات
- تقسيم تردد المذبذب البلوري
- حماية EEPROM ضد المحو
…وما إلى ذلك وهلم جرا. كل متحكم لديه الصمامات الخاصة به، ووحدات التحكم الدقيقة المختلفة لديها قائمة مختلفة من الصمامات، على سبيل المثال، لا يحتوي ATmega8 على منصهر CKOUT، ولكنه موجود في ATtiny2313. كل هذه الصمامات موصوفة في أوراق البيانات الخاصة بوحدات التحكم الدقيقة.

رئيسيالقاعدة عند العمل بالصمامات هي عدم التسرع في ضبطها إلا إذا كنت متأكدًا تمامًا من صحة أفعالك.

الآن دعونا نكتب أسماء بعض الصمامات وتسمياتها وما تؤثر عليه. بشكل عام، هناك صمامات لحماية البرنامج من النسخ (lock bits)، وصمامات تنشئ وظائف معينة، بالإضافة إلى ما يسمى بالبايتات “العالية” و”المنخفضة”. المصهر الأكثر شيوعًا والذي يتم عرضه دائمًا تقريبًا هو:

ككسل، لا يوجد سوى أربعة من هذه الصمامات بأحرف مختلفة، هذه مجموعة ككسل 0،سيكسل 1ككسل 2 وسيكسل 3، تحديد تردد مولد الساعة ونوعه؛ نبضات الساعة ضرورية لتشغيل أي متحكم دقيق تقريبًا. تحتوي العديد من وحدات التحكم الدقيقة على مذبذب داخلي، لكن يمكننا توصيل مذبذب خارجي وضبط الصمامات لتعمل من مذبذب خارجي. يتم توصيل مرنان كوارتز خارجي بالدبابيس اكستال 1و اكستال 2بالإضافة إلى ذلك، يتم لحام زوج من المكثفات ~ 20pf، أحد طرفيه بالكوارتز والآخر بالسالب. إذا ارتكبت خطأ عند تثبيت هذه الصمامات، فيمكن "قفل" وحدة التحكم الدقيقة؛ ومن أجل استعادة وحدة التحكم، يتم إرسال إشارة على مدار الساعة إلى ساق XTAL1؛ في الوقت الحالي، تم اختراع عدد لا بأس به من المخططات لاستعادة وحدات التحكم المقفلة في هذا الطريق. يمكن إنشاء هذا المولد من أي منطق تقريبًا أو حتى مؤقت 555.

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

مجموعة الصمامات SUT1و SUT0- وحدات الصمامات التي تتحكم في وضع بدء تشغيل مولدات ساعة MK، وكذلك ضبط سرعة بدء تشغيل MK بعد توصيل الطاقة. المرتبطة الصمامات ككسل،يسمى ككسل0.

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

رستديسبل– فتيل خطير للغاية، الإعداد غير الصحيح يمكن أن يؤدي إلى تعطيل الإخراج ريستوبعدها ستختفي إمكانية برمجة مبرمج ISP. قليل رستديسبليتحول الإخراج إعادة ضبطإلى منفذ الإدخال/الإخراج.

سبين– المصهر الذي يسمح لـ MK بالعمل عبر واجهة SPI. يتم إصدار كافة وحدات التحكم الدقيقة مع تثبيت البت بالفعل سبين. يعتبر اندماجا خطيرا.

يساف- من السهل قراءتها على أنها EEPROM SAVE، وتعني حرفيًا "حفظ EEPROM"، وهذا المصهر يحمي EEPROM من المسح. على سبيل المثال، عند تحميل البرنامج الثابت إلى وحدة التحكم في المرة التالية، يمكنك ضبطه يساف = 0، وعند مسح MK EEPROM سيبقى على حاله.

بوتسز، يتكون من مجموعة من البتات أحذيةZ1و أحذيةZ0، تحديد حجم مساحة الذاكرة للبرامج المسجلة المرتبطة بالبت بوترست.

بوترست،يحدد العنوان الذي سيبدأ منه تنفيذ البرنامج. إذا تم تعيين البت أي. لو التمهيد = 0، فسيبدأ البرنامج من عنوان منطقة أداة تحميل التشغيل.

بودن- البت، والذي عند ضبطه ( بودن = 0)، سوف يتحكم في جهد الإمداد؛ عند الفولتية المنخفضة للغاية، يمكن أن يقوم المتحكم الدقيق بإعادة التشغيل، أو الفشل، وما إلى ذلك. مرتبط ب بودليفل.

بودليفل. - يحدد اللحظة التي يتم فيها تشغيل كاشف مستوى جهد الإمداد، وعندما ينخفض ​​جهد الإمداد إلى ما دون المستوى، سيتم "إعادة تشغيل" وحدة التحكم.

سيلبيرجين- البت الذي يسمح ( سيلبيرجين = 0) أو يمنع ( سيلبيرجين = 1) يكتب البرنامج إلى الذاكرة.

أوكدن– يسمح هذا المصهر أو يمنع قراءة البرنامج من ذاكرة وحدة التحكم.

لقد ذكرت ذات مرة في مقالاتي أنه في بعض البرامج يتم ضبط الصمامات بطريقة مرآة. يتذكر الصمامات المبرمجة = 0 ، أ لا مبرمجة=1 . في البرامج منشئ الخوارزمية، UniProfيتم ضبط الصمامات بطريقة واحدة، وفي البرامج بوني بروج,كود فيجن أفر، أفر ستوديو، سينا ​​بروغوبعضها الآخر، يجب ضبط الصمامات بطريقة مرآة مقارنة بقائمة البرامج السابقة.

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

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

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

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

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

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

لذلك، الشيء الرئيسي:

يعتمد Atmel AVR الترميز التالي: تعتبر إعادة تعيين بت المصهر إلى الصفر نشطة، أي. متضمنة.

مثالإن بت RSTDSBL، كما يوحي الاسم، هو RESET DISABLE. إذا قمت بتمكين هذا الخيار، فإن ساق RESET الخاصة بك تتحول إلى منفذ إدخال/إخراج، ولكن لهذا ستفقد فرصة تحديث وحدة التحكم عبر مزود خدمة الإنترنت.

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

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


ومع ذلك، يتم تصنيع وحدات التحكم بواسطة مهندسين إلكترونيين، ويتم تصنيع البرامج الثابتة بواسطة المبرمجين. كم هو منطقي. وهكذا ذهب هؤلاء المبرمجون وأحدثوا فوضى جهنمية باستخدام مربعات الاختيار. هل يجب عليهم أن يقبلوا مرة واحدة وإلى الأبد كمعيار أن علامة الاختيار هي 1، وليس ON (والتي، اسمحوا لي أن أذكركم، هي صفر). وبالتالي، في بعض البرامج الوامضة، تعني علامة الاختيار أن الخيار ممكّن (في FUSE يتم كتابة البت 0)، وفي برامج أخرى، عادةً ما يكتبها مهندسو الإلكترونيات، تعني علامة الاختيار واحدًا. أولئك. العكس تماما.

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

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

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

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

البتات هي المسؤولة عن مصدر الساعة ككسل
من خلال ضبطها بشكل صحيح، يمكنك تحديد تردد وحدة التحكم، وكذلك مصدر إشارة الساعة.

  • CKSEL3…0 = 0000 — مصدر الإشارة الخارجية.

أولئك. يتم توفير نبضات مستطيلة لمدخل XTAL1. ويتم ذلك أحيانًا في الأنظمة المتزامنة، عندما تعمل عدة وحدات تحكم من مولد واحد.

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

ولكن ماذا تفعل إذا كانت الحكة لا تطاق، ووحدة التحكم مقفلة، ولا توجد شريحة للإنعاش في متناول اليد؟ في بعض الأحيان تعمل طريقة الإصبع هنا. والشيء المضحك هو أن هدفًا رائعًا جدًا بتردد 50 هرتز تقريبًا يستهدف جسم الإنسان. أي شخص يمسك بمسبار الذبذبات بيديه يتذكر نوع الهراء الذي يظهر على الفور على الشاشة - هذا هو! لماذا لا تستخدم هذا التوجيه كإشارة على مدار الساعة؟ لذلك، تقوم بلحام سلك بمنفذ XTAL1، وإمساكه بيدك، والضغط على قراءة أو كتابة وحدة التحكم :) سأحذرك على الفور، الطريقة تعمل كالفوضى، وليست المرة الأولى، فهي تستغرق وقتًا طويلاً للقراءة وأحيانًا مع الأخطاء، ولكن الأمر يستغرق بعض الوقت لإعادة كتابة بتات FUSE إلى الجانب الصحيح يجب أن يكون كافيًا. تمكنت من هذه الخدعة عدة مرات.

CKSEL3…0 = 0100 – 8 ميجاهرتز من المذبذب الداخلي (عادةً ما يكون هذا هو المذبذب الافتراضي)
بالنسبة لمعظم أجهزة AVR، يعني تكوين CKSEL هذا تسجيل الوقت من المذبذب الداخلي عند 8 ميجاهرتز، ولكن قد تكون هناك اختلافات. لذا، في هذه الحالة، انظر بعناية إلى ورقة البيانات. إلى لوحة أوضاع تشغيل مذبذب RC المعاير الداخلي

في بعض الأحيان تحتاج إلى مولد ساعة خارجي، على سبيل المثال، بحيث يمكن تعديله دون التدخل في البرامج الثابتة. للقيام بذلك، يمكنك توصيل سلسلة RC كما هو موضح في الرسم البياني وحساب التردد باستخدام الصيغة و = 1/3RC، حيث f سيكون التردد بالهرتز، و R و C، على التوالي، مقاومة المقاوم وسعة المكثف، بالأوم والفاراد.

  • CKSEL3…0 = 0101 – للترددات الأقل من 0.9 ميجاهرتز
  • CKSEL3…0 = 0110 – من 0.9 إلى 3 ميجا هرتز
  • CKSEL3…0 = 0111 – من 3 إلى 8 ميجا هرتز
  • CKSEL3…0 = 1000 – من 8 إلى 12 ميجا هرتز

هذه اللوحة صالحة فقط لـ ATmega16، وقد تختلف أجهزة MK الأخرى. تحقق من ورقة البيانات للحصول على التفاصيل!

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

  • CKSEL3…0 = 1001 – كوارتز “الساعة” منخفض التردد.

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

بالنسبة للكوارتز العادي فإن الوضع مختلف بعض الشيء. هنا يعتمد الحد الأقصى لتردد الكوارتز أيضًا على البتة كوبتعندما CKOPT = 1 ثم:

  • CKSEL3…0 = 1010 أو 1011 - من 0.4 إلى 0.9 ميجاهرتز
  • CKSEL3…0 = 1100 أو 1101 - من 0.9 إلى 3 ميجاهرتز
  • CKSEL3…0 = 1110 أو 1111 – من 3 إلى 8 ميجا هرتز (أو من 1 إلى 16 ميجا هرتز مع CKOPT=0)

و إذا كوبتيساوي 0، ثم بنفس قيم CKSEL يمكنك ضبط الكوارتز من 1 إلى 16 ميجا هرتز.

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

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

ومن الجدير بالذكر أيضًا أن بت SCKDIV8، وهو غير موجود في Atmega16، ولكنه غالبًا ما يوجد في وحدات تحكم AVR الأخرى. هذا هو مقسم الساعة. عندما يتم تثبيته، أي. عند الصفر، يتم تقسيم التردد المحدد بالبتات CKSEL0...3 على 8، وهو ما علق عليه Dlinny ذات مرة، محاولًا لفترة طويلة فهم سبب عدم نجاحه معه. الجميل في الأمر هو أنه يمكن تعطيل هذا المقسم برمجيًا عن طريق كتابة معامل القسمة المطلوب، على سبيل المثال، واحد في سجل CLKPR. النكتة كلها هي أن SCKDIV8 نشط بشكل افتراضي! لذا كن حذرا!

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

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

بت zapodlyansky الثاني هو سبينإذا قمت بضبطه على 1، فستفقد أيضًا على الفور القدرة على الفلاش باستخدام المسار البسيط وستحتاج مرة أخرى إلى مبرمج موازي. ومع ذلك، فمن المطمئن أنه من المستحيل إعادة ضبطه عبر SPI، على الأقل في أجهزة AVR الجديدة (في الأجهزة القديمة، في AT90S*** كان ذلك ممكنًا)

ودتونهو المسؤول عن Dog Timer، المعروف أيضًا باسم Watch Dog. يقوم هذا المؤقت بإعادة تشغيل المعالج إذا لم تتم إعادة ضبطه بشكل دوري - مما يمنع التجميد. إذا تم ضبط WDTON على 0، فلا يمكن إيقاف تشغيل الكلب على الإطلاق.

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

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

جتاجين- تمكين JTAG. نشط بشكل افتراضي. أولئك. تم تمكين JTAG. ولهذا السبب، لا يمكن لـ MEGA16 (بالإضافة إلى 32 وغيرها التي لديها JTAG) استخدام دبابيس المنفذ C المسؤولة عن JTAG. ولكن يمكنك توصيل مصحح أخطاء JTAG واستخدامه للوصول إلى أدمغة وحدة التحكم.

يساف- حماية EEPROM ضد المحو. إذا قمت بتشغيل هذا الشيء، فعند إعادة ضبط MK بالكامل، لن يتم مسح منطقة EEPROM. يكون ذلك مفيدًا، على سبيل المثال، في حالة كتابة أي بيانات قيمة إلى EEPROM أثناء التشغيل.

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

أحذيةZ0..1— مجموعة من البتات التي تحدد حجم قطاع التمهيد. راجع ورقة البيانات لمزيد من التفاصيل. وهي تختلف من وحدة تحكم إلى أخرى.

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

من السمات المميزة لبتات القفل المثبتة أن البرنامج الثابت قابل للقراءة - حيث تكون البايتات مرتبة. أولئك. 00,01, 02, 03, 04... FF, 00... هل رأيت مثل هذه الهراء؟ لذا، ليس قدرك أن تسرق البرامج الثابتة - فهي محمية =)

احتياطات السلامة
والقاعدة الأساسية عند العمل باستخدام وحدات البت FUSE هي الانتباه ثم الانتباه ثم الانتباه مرة أخرى! لا تقم مطلقًا بتعيين FUSE دون التحقق من ورقة البيانات، حتى لو قمت بنسخها من مصدر موثوق.

تأكد من فهم ما تعنيه علامة الاختيار في البرنامج الوامض. صفر أو واحد. تشغيل أو إيقاف! لا يوجد معيار !!!

إذا تم تحديد البتات الزغبية برقمين - البتات الأكثر أهمية والأقل أهمية، فسيتم تعيينها كما هو الحال في ورقة البيانات. حيث تم تمكين 0.

القاعدة الثانية الحديدية للعمل مع FUSE. تذكر هذا إلى الأبد ولا تقل أنني لم أعلم.

نقرأ أولاً ما لدينا، ثم نكتب ما نحتاج إليه

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

لذا، مرة أخرى - اقرأ، عدل، اكتب!

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

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

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

بت الصمامات والقفل

قبل أن ندخل في تفاصيل أجزاء التكوين، هناك شيء واحد يجب فهمه وتذكره:

  • بت المصهر = 1، يعني أنه غير مبرمج (مسح، غير نشط)؛
  • بت المصهر = 0 يعني أنه مبرمج (مضبوط، نشط).

يعد هذا أحد المصادر الرئيسية للارتباك عند برمجة أجزاء الصمامات والقفل. لقد اعتدنا على الاعتقاد بأن تحديد قيمة المعلمة يعني كتابة 1، أليس كذلك؟ مع بتات AVR Fuse يكون الأمر على العكس من ذلك، فضبط أي بت يعني كتابة 0، وهذا يجب أن نتذكره.

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

اعتمادًا على نوع وحدة التحكم الدقيقة AVR، قد يختلف عدد بتات القفل، ولكن البتتين الأقل أهمية موجودتان دائمًا. أجزاء LB1 و LB2 تستخدم لمنع الوصول إلى ذاكرة الفلاش المدمجة. ربما تعلم أن مطوري أي جهاز يحظرون دائمًا قراءة البرامج الثابتة لـ MK من أجل حماية ملكيتهم الفكرية ومنع إنشاء نسخ مكررة ومزيفة. إن قراءة وحدة التحكم الدقيقة المقفلة هي مثل الحلوى بالنسبة لقراصنة الأجهزة، ولكن هذا موضوع مختلف. لذلك، إذا كنت بحاجة إلى حماية البرامج الثابتة الخاصة بك من النسخ، فأنت بحاجة إلى قفل محتويات ذاكرة المتحكم الدقيق، وإلا اترك البتات دون تغيير. بتات الحظر الأخرى ( BLB01، BLB02، BLB11 وBLB11 ) يمكن استخدامه لمنع الكتابة/القراءة من/إلى ذاكرة الفلاش، سواء من منطقة التطبيق أو من قسم أداة تحميل التشغيل. نادرًا ما تتم برمجة بتات القفل (اعتمادًا على تفاصيل التطبيق)، ولن نركز عليها. حتى إذا قمت ببرمجة أي منها، تتم إعادة تعيين بتات القفل (تعيينها على 1) أثناء أمر Chip Erase.

أكثر ما نهتم به هو أجزاء التكوين، وسيتعين عليك التعامل معها كثيرًا، سواء أعجبك ذلك أم لا. يختلف موقع بعض بتات الصمامات في بايتات التكوين الثلاثة اعتمادًا على وحدة MCU المستخدمة. على سبيل المثال، سننظر في ATmega328P، الذي يحتوي على ثلاث بايتات تكوين (الشكل 2).

الشكل 2. تكوين بايتات التكوين والقيم الأولية لبتات الصمامات الخاصة بوحدة التحكم الدقيقة ATmega328P.

انظر إلى تكوين البايت المنخفض. ترى مجموعة من 4 بتات متطابقة CKSEL0، CKSEL1، CKSEL2، CKSEL3 . يتم استخدامها لتحديد نوع مصدر الساعة لوحدة التحكم الدقيقة MK. بشكل افتراضي (إعدادات المصنع)، يتم تكوين وحدة التحكم الدقيقة للعمل من مذبذب RC داخلي بتردد 8 ميجاهرتز. منطقيا، هذا هو الخيار الأكثر أمانا للعمل مع متحكم. ولكن، كما تعلم، يمكن لأجهزة عائلة AVR العمل من مصادر تردد مختلفة للساعة:

  • مذبذب RC داخلي معاير (افتراضي 8 ميجا هرتز) ؛
  • مذبذب RC خارجي؛
  • مرنان خارجي من السيراميك أو الكوارتز.
  • الكوارتز الخارجي منخفض التردد.
  • مصدر الساعة الخارجية

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

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

البت الأخير في البايت المنخفض هو CKDIV8 . افتراضيًا، يتم تعيين هذه البتة، مما يعني أن مقسم التردد 8 ميجا هرتز بعامل 8 متصل بمذبذب RC الداخلي، وبالتالي فإن تردد ساعة النظام لـ MK في هذه الحالة سيكون مساويًا لـ 1 ميجا هرتز. إذا كنت بحاجة إلى سرعة ساعة تبلغ 8 ميجاهرتز، فقليلًا CKDIV8 يحتاج إلى إعادة تعيين.

الآن دعونا نركز على بايت التكوين عالي الترتيب.

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

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

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

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

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

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

قليل دوين يستخدم لتمكين واجهة تصحيح أخطاء DebugWire الخاصة لوحدات التحكم الدقيقة AVR. تغيير حالة البت سبين، RSTDSBL وDWEN عبر واجهة تسلسلية غير ممكن؛ سيتطلب ذلك مبرمجًا متوازيًا يدعم وضع البرمجة عالية الجهد أو اتصالاً عبر واجهة DebugWire.

شيء آخر جدير بالملاحظة كوبت في البايت العالي للتكوين ( إنه غائب في ATmega328P، ولكنه موجود في أجهزة AVR MKs الأخرى). يتحكم في وضع التشغيل لمكبر صوت مولد الساعة. إذا تمت برمجة البت (0)، فإن إشارة الخرج لمولد الساعة لها تأرجح (سعة) يساوي جهد الإمداد. يمكن استخدام هذا الخيار عندما يعمل المتحكم الدقيق في بيئة ذات مستوى عالٍ من الضوضاء، وأيضًا عندما تخطط لتوصيل متحكم دقيق آخر بمنفذ XTAL2. وفي حالات أخرى، يجب تعطيل هذا الوضع ( كوبت = 1 )، نظرًا لزيادة استهلاك الطاقة للمتحكم الدقيق، وهذا غير مرحب به في الأجهزة التي تعمل بالبطارية.

بايت التكوين الأخير (موسع). بالنسبة للمتحكم الدقيق Atmega328P فهو يحتوي على ثلاث بتات: بودليفيل0، بودليفيل1، بودليفيل2 . تهدف هذه البتات إلى تعيين الحد الأدنى لدائرة كاشف جهد الإمداد: عندما يصل جهد الإمداد إلى المستوى المحدد، سيتم إعادة ضبط وحدة التحكم الدقيقة.

حاسبة قيمة بت الصمامات

عندما تحتاج إلى برمجة MK جديد، يمكنك استخدام الوصف الفني لوحدة التحكم الدقيقة لتعيين بتات الصمامات. ولكن هناك طريقة أكثر ملاءمة وأبسط - حاسبة Fuse-bit - وهي أداة عبر الإنترنت تم تطويرها بواسطة Mark Hammerling (الشكل 3). يمكنك تحديد نوع وحدة التحكم الدقيقة بشكل مستقل وتمكين/تعطيل الخيارات الضرورية، وسيتم تحديث تكوين Fuse bit تلقائيًا.

بالإضافة إلى ذلك، يمكنك تعيين بتات Fuse بشكل فردي في نموذج منفصل، وسيتم أيضًا تحديث قيم البايت المنخفضة والعالية والممتدة تلقائيًا (الشكل 4)، بينما يتم إنشاء الأوامر لمبرمج AVRDude.

إذا كان لديك هاتف محمول أو جهاز لوحي يعمل بنظام Android، فيمكنك استخدام تطبيق AVR Fuse Calculator المجاني، الذي يؤدي نفس الوظائف ويصدر أوامر لمبرمج AVRDude. تحتوي قاعدة بيانات البرنامج على 144 AVR MKs.

القواعد الأساسية للمبتدئين:

  • لا تقم أبدًا بتغيير حالة بتات DWEN وSPIEN وRSTDSBL. في الواقع، لا يمكن الوصول إليها عبر واجهة البرمجة التسلسلية؛
  • تحقق مرة أخرى من بتات CKSEL. ضبط نوع الساعة بشكل غير صحيح يسبب العديد من المشاكل؛
  • إذا كنت لا تنتج منتجات تجارية، فلا تغير حالة بتات القفل؛
  • إذا لم تكن متأكدًا من الإعداد الصحيح لبتات الصمامات، فمن الأفضل الرجوع إلى الوثائق الفنية أو طرح سؤال على المتخصصين في المنتدى.

تم النشر بتاريخ 16/07/2012

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

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

عائلة
أتيني
عائلة
أتميجا
2313 25 /
45/
85
13 26 261 /
461/
861
8 16 48 /
88/
168
128 169 329 8515 8535

محجوز
M103S+ S8515SS8535S
أوكدن + + + +
جتاجين + + + +

سيلبيرجين
+ + + + +
دوين+ + + + + +

يساف
+ + + + + + + + + + + + +

سبين
+ + + + + + + + + + + + +

ودتون
+ + + + + + + + + + +

بودلفيل2
+ + + + +

بودلفيل1
+ + + + + + +

بودلفيل0
+ + + مجلس الإدارة
مستوى
+ مجلس الإدارة
مستوى
مجلس الإدارة
مستوى
+ مجلس الإدارة
مستوى
+ + مجلس الإدارة
مستوى
مجلس الإدارة
مستوى

بودن
+ + + + + +
رستديسبل+ + + + + + + +

CKDIV8
+ + + + + + +

خروج
+ + + + + +
SUT1+ + + + + + + + + + + + +
SUT0+ + + + + + + + + + + + +
كوبت + + + + + +
CKSEL3+ + + + + + + + + + + +
CKSEL2+ + + + + + + + + + + +
CKSEL1+ + + + + + + + + + + + +
ككسل0+ + + + + + + + + + + + +

بلك
+
بوترست + + + + + + + +

أحذيةZ1
+ + + + + + + +

أحذيةZ0
+ + + + + + + +

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

أوكدن- يتيح المصهر دائرة مصحح الأخطاء الداخلية ( يان جخاصرة د com.ebug إنقادر). لا تترك هذا الجزء في المنتجات التجارية! بخلاف ذلك، يمكن قراءة برنامجك من ذاكرة عضو الكنيست.

جتاجين- تتيح بتة المصهر واجهة تصحيح أخطاء البرمجة JTAG . مقارنة مع SPI-واجهه المستخدم، JTAGيتمتع بقدرات متقدمة. لا ينصح بترك مجموعة البت هذه دون داع، لأنه في هذه الحالة يزداد التيار الذي يستهلكه عضو الكنيست.

سيلبيرجين- البت الذي يسمح لبرنامج MK بالكتابة في ذاكرة البرنامج، أي إجراء البرمجة الذاتية.

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

يساف- لقمة الصمامات، بعد تحديد محتوياتها عند مسح ذاكرة MK إيبرومسيتم الاحتفاظ بالبيانات سليمة، أي لن يتم محوها.

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

ودتون- قطعة الصمامات، بعد ضبط مؤقت الوكالة الدولية للطاقة WDTيتم تشغيله فورًا بعد توصيل الطاقة ولا يمكن تعطيله بواسطة البرنامج. إذا لم يتم ضبط البت، فسيتم تشغيله وإيقاف تشغيله WDTيمكن التحكم بها عن طريق البرمجيات.

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

بودن- لقمة المصهر، التي تعمل على تشغيل دائرة كاشف الأجهزة لمستوى غير مقبول من جهد الإمداد، أي. رسم بياني مجلس الإدارة.

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

CKDIV8- بتة المصهر، والتي تتضمن تقسيمًا أوليًا لتردد مولد ساعة الكوارتز (أو أي مولد آخر موجود) على 8. أي أنه عند تشغيل هذه البتة واستخدام مرنان كوارتز بتردد 8 ميجاهرتز، فإن تردد الساعة الفعلي لـ MK سيكون 1 ميغاهيرتز.

خروج- لقمة المصهر، مما يسمح بإخراج تردد الساعة إلى أحد دبابيس MK (لتسجيل الوقت على الأجهزة الأخرى).

SUT1و SUT0- قطع الصمامات التي تتحكم في وضع التشغيل لمولدات ساعة MK. يرتبط بالبتات الموضحة أدناه والتي تحدد نوع وتردد مولد الساعة، ويكون الاتصال صعبًا ومربكًا للغاية. إذا تم تركيبها بشكل غير صحيح، فقد تؤدي المواقف إلى بدء تشغيل غير مستقر للمولد أو إعادة ضبط MC بشكل متكرر أثناء إمداده بالطاقة.

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

مجموعة بت ككسل0CKSEL3- وحدات الصمامات، التي يحدد مجموعها نوع وتكرار مولد ساعة التشغيل. في المجمل، هناك ما يصل إلى 16 مجموعة ممكنة، ولكن لم يتم تحديدها جميعًا لجميع أنواع MK. يمكن أن يؤدي ضبط مجموعة هذه البتات بشكل غير صحيح إلى جعل MK "ميتًا" - فلن يعمل في الدائرة دون توفير إشارة ساعة إلى الدبوس XTAL1.

بلك- لقمة المصهر، مما يسمح باستخدام مركب التردد المدمج لساعة قلب MK.

بوترست- بت الصمامات، الذي يحدد العنوان الذي سيبدأ منه تنفيذ البرنامج بعد إعادة التعيين - إذا تم تعيين البت، فلن يبدأ البرنامج من العنوان 0000h (كالمعتاد)، ولكن من عنوان منطقة أداة تحميل التشغيل (محمل التمهيد).

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

الأخطاء الأكثر شيوعًا عند إعداد الصمامات:

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

2. التثبيت غير الصحيح ككسل0, CKSEL1, CKSEL2, CKSEL3. تحدد هذه الصمامات مصدر الساعة للمتحكم الدقيق. إذا قمت باختيار التردد الخاطئ لمذبذب RC الداخلي عن طريق الخطأ، فهذا ليس أمرًا مميتًا. البرمجة عبر مزود خدمة الإنترنتسيكون من الممكن، وسوف تكون قادرة على تصحيح الوضع. وإذا قمت عن طريق الخطأ بضبط التوقيت من مصدر خارجي، أو سلسلة RC أو مرنان كوارتز، ولم يكن لديك مثل هذا في دائرتك، فقم بالبرمجة وفقًا لذلك مزود خدمة الإنترنتسوف يصبح مستحيلا أيضا. بشكل أساسي، سوف يكون المتحكم الدقيق في انتظار تسجيل الوقت من دائرة غير موجودة. كيفية الخروج من هذا الوضع؟ الأمر بسيط للغاية - امنح وحدة التحكم الدقيقة مصدرًا للساعة وقم بتصحيح الصمامات. في أغلب الأحيان يتم تثبيته ككسلجميع الأصفار – قطع مسافة السباق من مولد خارجي. في هذه الحالة، يمكنك تجميع دائرة تولد تعرجًا (لا يلعب التردد دورًا خاصًا، الشيء الرئيسي هو أنه يقع ضمن قدرات المتحكم الدقيق) وتطبيقه على الساق XTAL1. وبعد ذلك يمكن وميض وحدة التحكم الدقيقة عبر مزود خدمة الإنترنت. أول شيء يجب فعله هو إعادة ضبط الصمامات على إعدادات المصنع. لو ككسلتم ضبط جميعها على 1 - تسجيل الوقت من الكوارتز الخارجي. قم بتعليق الكوارتز ومن ثم سيتم الوصول إلى وحدة التحكم الدقيقة مرة أخرى عبرها مزود خدمة الإنترنت.