لا يتم استخدام JTAG (مجموعة إجراء الاختبار المشترك) لقراءة أجهزة الذاكرة وتصحيح الأخطاء ولكن أيضًا لكتابة البيانات إلى الرقائق. ويشمل ذلك وميض البرامج الثابتة وذاكرة البرمجة وتكوين FPGAs. سوف يرشدك هذا البرنامج التعليمي خلال عملية الكتابة إلى الرقائق باستخدام JTAG ، بما في ذلك الإعداد والأدوات وأفضل الممارسات.
ما هي كتابة JTAG؟
تشير كتابة JTAG إلى البرمجة أو وميض البيانات على دائرة متكاملة (IC) من خلال واجهة JTAG الخاصة بها. هذه العملية شائعة الاستخدام لـ:
- البرامج الثابتة الوامضة أو محولات التشغيل
- كتابة ملفات التكوين إلى FPGAs
- برمجة الذاكرة غير المتقلبة (على سبيل المثال ، EEPROM ، فلاش)
- تحديث البرامج أو البرامج الثابتة في الأنظمة المدمجة
توفر واجهة JTAG وصولاً مباشرًا إلى الشريحة ، مما يتيح التحكم الدقيق في الذاكرة والتكوين.
ماذا ستحتاج
- محول JTAG: واجهة الأجهزة لاتصالات JTAG (على سبيل المثال ، Segger J-Link ، كابل منصة Xilinx ، محولات مدعومة OpenOCD).
- الجهاز المستهدف: الشريحة أو النظام الذي تريد برمجته.
- أدوات البرمجيات: أدوات مثل OpenOCD أو urjtag أو Vivado (ل Xilinx) أو Segger’s J-Link.
-
ملف الثابت/التكوين: الملف المراد كتابته إلى الشريحة (على سبيل المثال ،
.bin
,.hex
,.svf
). - JTAG Pinout Documentation: مخطط pinout للجهاز المستهدف.
- ملحقات الاتصال: الأسلاك والرؤوس ولوحة الخبز (إذا لزم الأمر).
الخطوة 1: إعداد أجهزة JTAG
1. تحديد دبابيس JTAG
- راجع ورقة بيانات CHIP أو PCB لتحديد موقع دبابيس JTAG.
- وتشمل ملصقات دبوس JTAG المشتركة
TDI
,TDO
,TCK
، وTMS
. - تحتوي بعض اللوحات على رؤوس JTAG المكوّنة مسبقًا (موصلات 10 دبوس أو 20 دبوس).
2. قم بتوصيل محول JTAG
- قم بتوصيل محول JTAG إلى الجهاز المستهدف ، مما يضمن اتصالات الدبوس الصحيحة:
-
TDI
(اختبار البيانات في) إلىTDI
-
TDO
(اختبار البيانات) إلىTDO
-
TCK
(اختبار ساعة) إلىTCK
-
TMS
(وضع الاختبار حدد) إلىTMS
- أرضي (
GND
) يجب أن تكون متصلة.
-
3. تحقق من مستويات الجهد
- تأكد من أن محول JTAG يطابق مستويات الجهد للجهاز المستهدف (على سبيل المثال ، 3.3V ، 1.8V).
- تسمح بعض المحولات بإعدادات الجهد القابلة للتكوين.
الخطوة 2: تثبيت أدوات برنامج JTAG
1. OpenOcd
OpenOCD (Open On Chip Debugger) هي أداة شهيرة مفتوحة المصدر للبرمجة وتصحيح الأخطاء.
- التثبيت عبر مدير الحزمة الخاص بك (على سبيل المثال ،
apt install openocd
على Linux). - تأكد من دعم محول JTAG الخاص بك بواسطة OpenOCD.
2. أدوات خاصة للبائع
- Segger J-Link: استخدم برنامج Segger J-Link لعمليات JTAG.
- Xilinx Vivado: مثالية لبرمجة Xilinx FPGAs و CPLDS.
- Intel Quartus: لبرمجة أجهزة Intel/Altera.
3. urjtag
أداة خفيفة الوزن لعمليات JTAG الأساسية مثل كتابة البرامج الثابتة.
- تثبيت من موقع urjtag.
الخطوة 3: كتابة البيانات إلى شريحة
1. تكوين برنامج JTAG
قم بإعداد ملف تكوين JTAG لتحديد المحول والجهاز الهدف.
- مثال على تكوين OpenOCD لشريحة STM32:
source [find interface/jlink.cfg] transport select jtag source [find target/stm32f4x.cfg] init halt
2. اكتشف الجهاز المستهدف
قم بتشغيل أمر لمسح سلسلة JTAG وتأكد من اكتشاف الجهاز الهدف.
- لـ OpenOCD:
تحقق من سجل الإخراج للأجهزة المكتشفة.openocd -f interface/jlink.cfg -f target/stm32f4x.cfg
3. فلاش البرامج الثابتة
اكتب ملف البرامج الثابتة إلى الرقاقة باستخدام أوامر JTAG.
- مثال OpenOCD الأمر:
program firmware.bin verify reset exit 0x08000000
-
firmware.bin
: الملف الثنائي للكتابة. -
verify
: يضمن كتابة البيانات بشكل صحيح. -
reset
: إعادة تعيين الجهاز بعد البرمجة. -
0x08000000
: ابدأ العنوان في الذاكرة.
-
4. اكتب التكوين إلى FPGA
ل FPGAs ، الاستخدام .bit
أو .svf
الملفات.
- مثال أوامر urjtag:
cable jtagkey detect svf configure.svf
5. محو الذاكرة قبل الكتابة
تتطلب بعض الأجهزة محو الذاكرة قبل الوميض.
- مثال OpenOCD الأمر:
flash erase_address 0x08000000 0x10000
الخطوة 4: أفضل الممارسات لكتابة JTAG
- النسخ الاحتياطي البرامج الثابتة الحالية: اقرأ دائمًا وحفظ البرامج الثابتة الحالية قبل كتابة بيانات جديدة.
-
تحقق من سلامة البيانات: استخدم
verify
أمر لضمان البرمجة الناجحة. - استخدم اتصالات موثوقة: تأمين جميع الأسلاك لمنع فساد البيانات أثناء الكتابة.
- تطابق مستويات الجهد: تأكد من استخدام محول JTAG والجهاز المستهدف مستويات الجهد المتوافقة.
- تحقق من حماية الكتابة: تعطيل حماية الكتابة (إن أمكن) قبل البرمجة.
تطبيقات كتابة JTAG
- البرامج الثابتة الوامضة أو محولات التشغيل
- برمجة FPGA أو CPLDS
- تحديث برنامج النظام المدمج
- كتابة بيانات التكوين إلى الذاكرة
- تطوير واختبار البرامج الثابتة في الوقت الفعلي
استكشاف الأخطاء وإصلاحها
-
لم يتم اكتشاف الجهاز:
- تحقق من الأسلاك و pinout.
- تأكد من أن الجهاز مدعوم وتأريض بشكل صحيح.
-
اكتب الأخطاء:
- تأكد من أن منطقة الذاكرة ليست محمية للكتابة.
- تحقق مزدوج عنوان البداية وتنسيق الملف.
-
فشل التحقق:
- تحقق من وجود اتصالات موثوقة.
- استخدم سرعة ساعة JTAG أبطأ لتحسين الاستقرار.
خاتمة
JTAG هي أداة متعددة الاستخدامات لكتابة البرامج الثابتة ، وتكوين الذاكرة ، وأجهزة البرمجة على مستوى منخفض. باتباع هذا الدليل ، يمكنك استخدام JTAG بثقة لفلاش البرامج الثابتة وتحديث البرامج وتكوين الأجهزة. يتيح إتقان كتابة JTAG تطوير وصيانة الأنظمة المدمجة!