وحدة الـ jtag
تستخدم هذه الوحدة 4 أقطاب من البورت c حيث تستطيع عن طريق هذه الأقطاب وفق بروتوكول معين للتخاطب مع المتحكم والولوج (الدخول) إلى
1- كل الوحدات الداخلية (مسجلات التحكم والمعطيات الخاصة بالوحدات الداخلية والتي هي المداخل الرقمية التايمرات العدادات المبدل التشابهي الرقمي .......) وهذا في الزمن الحقيقي أثناء تنفيذ المتحكم للكود البرمجي الموجود بداخله
2- الذاكرة ram الداخلية (أي يمكن معرفة القيمة التي يحتويها أي موقع ذاكري في الزمن الحقيقي وأثناء تنفيذ البرنامج)
3- عداد البرنامج (هو مؤشر يؤشر على التعليمة التي يتم تنفيذها ضمن المتحكم حاليا) إن معرفة قيمة عداد البرنامج تمكن المهندس من معرفة التعليمة التي وصل إليها المعالج
4- الوصول إلى الذاكرة flash مع امكانية تحديث محتواها (تحميل كود برمجي جديد)
5- إمكانية التحكم بالمتحكم (إذا متذكرين نحنا منشوف بمحررات لغة السي add break point يعني أضف نقطة توقف) عند الوصول إلى هذه النقط تجعل المتحكم متوقفا عن المعالجة إلى أن يأتيه أمر بالمتابعة عن طريق وحدة jtag
امكانية جعل المتحكم ينفذ تعليمة تعليمة (أي يتوقف بعد تنفيذ كل تعليمة حتى يأتيه الأمر بالمتابعة وتنفيذ التعليمة التالية)
أهم الاستخدامات لوحدة jtag
تستخدم هذه الوحدة بهدف تدريس سلوك المتحكمات بشكل عام (مجال أكاديمي)
تستخدم في الأكواد البرمجية الدقيقة مثال ولو كان خيالي شوي (كيرنيل لنظام تشغيل , مكتبات نظام تشغيل) (مجال عمل)
كيف يمكن أن استخدم هذه التقنية
في الواقع إن شركة اتميل تقدم هذه التقنية عبر شراء منتجاتها من البوردات التعليمية (kit) حيث نجدها ضمن محررها الخاص atmel studio (حديثا) أو avr studio (قديما)
بسبب صعوبة بروتوكول jtag نوعا ما والذي تتيحه شركة أتميل في الداتا شيت الخاصة لكل متحكم فنادرا ما نرى منتج أخر يدعم هذه التقنية العالية من /تفحص الأخطاء/ وأيضا فإن هذه التقنية يمكن أن تستخدم بشكل خاطئ فتبين طريقة عمل مترجمات لغة السي (هندسة عكسية) الخاصة بالمترجمات التي بنتها شركات أخرى غير الشركة الرسمية