سلام دوستان در مورد جی تگ مقداری سوالاتی متداولی هستش که من آنها را با جواب در اختیارتون خواهم گزاشت .امیدوارم که مفید باشن
سوال : چه هنگام می بایست فلش رسیور را پروگرام کرد؟ آسان ترین طریق ممکن چیست؟
پاسخ : هنگامی که بر اثر ریختن برنامه اشتباه و یا دست پاچگی و عجله و یا قطع ناگهانی برق در هنگام آپگرید ، عملکرد رسیور مختل خواهد شد و حتی از طریق پورت RS-232 یا همان Com Port نیز به کامپیوتر متصل نمی شود. بنابراین ، تنها راه باقیمانده ، پروگرام کردن Flash با Programer و یا از طریق Jtag خواهد بود.
بطور کلی ، اکثر Flash های موجود در رسیور ها ، توسط Jtag قابل برنامه ریزی هستند.
از نقطه نظر زمان ، کلیه مراحل پروگرام توسط جی تگ با نظر گرفتن سیم کشی های احتمالی ، لحیم کاری و غیره برای یک کاربر حرفه ای حدود 15 دقیقه وقت میبرد (در صورتی که برای افراد مبتدی ، ممکن است این زمان به چند ساعت نیز برسد) .ولی با استفاده از Flash Programmer بایستی ابتدا آی سی فلش از روی برد مدارچاپ جدا نمود ، سپس محل آی سی فلش را در روی برد تمیز کرد ، آی سی را در پروگرامر برنامه ریزی کرد ( این در صورتی است که دستگاه پروگرامر روی میز کارتان حاضر باشد و نیازی به رفتن بجای دیگر برای این کار نباشد!!!) - پس از این کار نصب مجدد آی سی فلش روی برد رسیور و تمیز نمودن محل آن برای بار آخر و کنترل نهائی.شرط اصلی همه این کارها این است که حرفه ای باشید. در غیر این صورت ، مدت انجام این کار شاید چند ساعت و یا حتی چند روز ! طول کشیده و تازه هزینه تمام شده آن که جای بحث ندارد....!!!
از دیدگاه ایمنی باید در نظر داشت که بی مبالاتی در جدا کردن فلش از روی برد مدارچابی میتواند منجر به قطع شدنخطوط مدار چاپی و یا پایه های فلش و یا حالت بدتر یعنی آسیب دیدن فلش بر اثر حرارت دیدن زیاد شود. بخصوص در روشی که از هویه هوای گرم برای جدا کردن آی سی Flash استفاده می شود ، احتمال این اتفاق بیشتر است.
سوال : در چه نوع رسیور هائی Jtag امکان پذیر نیست ؟
پاسخ : بطور کلی هر فلشی را میتوان با JTag پروگرام کرد مگر اینکه پایه های JTag مربوطه را نتوانید پیدا کنید یا در صورتی که رسیورتان از پردازنده ویژهای استفاده کند که برنامه JTag مورد استفاده شما نتواند آنرا شناسایی کند
سوال : چگونه میتوانیم در رسیوری که پورت مربوط به JTag ندارد پایه ها را پیدا کنیم ؟
پاسخ : بسیار ساده است ، تعقیب پایه های پردازنده مورد نظر با استفاده از ذره بین و راهنما و یا استفاده از کتب تخصصی علم الکترونیک که شماتیک و دیاگرام این نوع آی سی ها را درج نموده اند.
سوال : پردازنده بعضی از رسیورها از نوع STI5512 است و ارتباط پایه ها در زیر آی سی CPU قرار گرفته لطفا ترتیب قرار گرفتن پایه ها را توضیح دهید ؟
پاسخ : پایه های پردازنده های سری STI5512 بصورت آرایش ball grid array - BGA میباشد.
نحوه خواندن پایه ها بسیار ساده است. ابتدا از رو به بدنه آی سی دقت کنید بریدگی را که در یکی از گوشه های آن مشاهده میکنید ( پایه یک آی سی ) مبدا قرار دهید ( عموما در آی سی ها ، پایه یک آنها را مبدا قرار می دهند و این یک استاندارد جهانی است ). بریدگی آی سی را درست سمت چپ خودتان رو به بالا قرار دهید .در این وضعیت می توانید شماره پایه ها را تشخیص دهید و بخوانید.
به ترتیب زیر :
A1 ,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11..............A20
B1,B2,B3,B4,B5,B6,B7,B8,B9,B10,B11,..............B20
و به همین ترتیب پایه های دیگر :
J1,J2,J3,J4,............................. ....J19,J20
K1,K2,K3............................................K20
پایه J20 در این پردازنده که به عنوان کنترل بوت فرعی عمل میکند ، معمولا در رسیور های Super Max و Next سری پلاس (+) به سر مقاومت R28 وصل شده است . لازم نیست جای دوری را بگردید محل اتصال آن همان دور و بر آیسی سی پی یو است.
سوال : در صورتی که نتوانیم پایه ها را پیدا کنیم و یا پردازنده رسیور معیوب از نوع بخصوصی باشد که ساپورت نمی شود ، برای ما که Flash Programmer نداریم ، آیا راه حل دیگری غیر از Programmer وجود دارد ؟
پاسخ : بله!!! در صورتی که آی سی Flash دستگاه رسیور شما ار انواع عادی و متعارف باشد ، می توانید آنرا با دقت و سلیقه از روی برد جدا کرده و روی رسیور دیگری که امکان JTag دارد سوار کنید . بعد از پروگرام کردن آن ، مجددا روی برد اولیه برگردانید. نکات اولیه ای که در اینگونه موارد وجود دارد اینکه نوع فلش های مصرف شده در در دستگاهها با هم مشابه و یا حداقل همخوانی داشته باشد و محل قرار گیری پایه های آنها یکسان باشد.
سوال : از چه برنامه هائی برای JTag استفاده کنیم ؟
پاسخ : برنامه های زیاد و متنوعی در این زمینه وجود دارند. برخی بصورت اختصاصی جهت رسیور های مشخصی نوشته شده اند و برخی دیگر حالت عمومی دارند. از انواع اختصاصی میتوان به Pionero اشاره کرد که بیشتر جهت JTag رسیور های Pioneer و رسیورهای مشابه کاربرد دارد.
در انواع برنامه های عمومی می توان به :
Jkeys , wall , flash_edit , ivanov_jtag_tester , jtag_operator , GSP_Patel , sti_control_alpha , Jtag_tools
نیز اشاره کرد.
سوال : چه برنامه ای از همه بهتر است و شما کدام را توصیه میکنید ؟
پاسخ : بسته به مورد کاربرد شما مسئله فرق میکند . تقریبا در اغلب موارد JKeys میتواند مشکل را حل کند . از برنامه های قدرتمند دیگر می توان به GSP_Patel اشاره کرد که فوق العاده پر طرفدار است و مشکلات عدیده JKeys را نیز ندارد. در برخی موارد کار به تنهایی از عهده Jkeys بر نمی آید و آن به دلیل ضعف ساختاری روتین های مربوط به Trap-handler میباشد.
از جمله خطاهای معمول در هنگام کار با JKeys ، پیام DCU PEEK ERROR است که بایستی پایه مربوط به BFR که مخفف Boot From Remote یعنی بوت فرعی میباشد به شاسی مدار (Ground) وصل شود. پیام خطای عمده دیگر ، عدم شناسایی Flash توسط Jkeys است که معمولا به این صورت می آید :
The codes returned not recognized by jkeys
و پیام های مشابه دیگر که در بعضی از برنامه هایی که اشاره کردم به این موارد اصلا برنخواهید خورد.
سوال : پایه مربوط به بوت فرعی در پردازنده های سری ST کدام است ؟
پاسخ : مطابق جدول زیر عمل کنید :
ST20TP2 / ST20TP4 : Pin 183
STI5500 : Pin 27
STI5510 / STI5512 : Pin J20
STI5505 / STI5508 / STI5518 / STI5519 / STI5516 : Pin 115
سوال : آیا با وصل کردن پایه بوت فرعی مشکل خطای DCU PEEK ERROR برای همیشه حل خواهد شد؟
پاسخ : خیر گاهی ممکن است که درست برعکس عمل کند . یعنی شما مجبور شوید که پایه ذکر شده را از شاسی (Ground) جدا کنید . علت این امر ، گاهی به بار شدن محتویات Flash روی Ram و یا CPU برمی گردد و گاهی عوامل دیگر نیز در این امر دخیل است . مثلا وصل بودن کانکتور پانل جلو و یا دشارژ نشدن کامل برخی از پایه های پردازنده در هنگام خاموش کردن رسیور.
سوال : چرا برخی Flash ها توسط Jkeys شناسایی نمی شود ؟
پاسخ : احتمالا Flash مورد نظر در قسمت مربوطه فایل Jkeys Def تعریف نشده است. حالت بعدی این است که اطلاعات روی Flash بصورتی تخریب شده که در هنگام شناسایی مشکل بوجود می آورد. حالت بعدی خرابی Flash بر اثر اعمال اتصالات نادرست و یا اعمال ولتاژ های نادرست به پایه های آن است که راهی جز تعویض ندارد.
سوال : شنیدهایم که اگر Crystal (کریستال) اصلی پردازنده خراب باشد Flash شناسایی نمی شود ولی یک دستگاه بر اثر آپگرید اشتباه خراب شد و قبل از آن درست کار میکرد. علت چیست ؟
پاسخ : اگر مورد شما فقط عدم شناسایی Flash است و موارد مربوط به تعاریف Flash در فایل مربوطه درست انجام شده و نیز رعایت نکات ایمنی را کرده باشید عدم شناسایی Flash تنها به ضعف روتین های مربوط به Trap Handler برنامه JKeys برمیگردد. راه حل این است که با برنامه دیگری Jtag کنید یا در جوار Jkeys ار برنامه های کمکی و مکمل استفاده کنید . مثلا ابتدا برنامه Wall را اجرا کنید و در صورتی که Flash دستگاه شناسایی شد ، بقیه کار را با Jkeys ادامه دهید.
سوال : در صورتی که Jkeys هیچ خطائی ندهد ، ولی نتواند پردازنده را شناسایی کند ، علت چیست ؟
پاسخ : چند حالت ممکن است وجود داشته باشد :
الف - نحوه اتصالات پایه های JTag را بررسی کنید ممکن است اشتباه وصل کرده باشید.
ب - سیم مربوط به زمین JTag را به شاسی مدار وصل نکرده اید.
ج - از وصل بودن ولتاژ تغذیه Jtag مطمئن شوید اگر JTag دستگاه شما از ولتاژ 3.3V خود برد رسیور استفاده میکند حتما از محل مطمئنی که ولتاژ تثبیت شده و بدون تغییرات دارد انشعاب بگیرید ، و اگر JTag شما از باطری لیتیم استفاده میکند ، وضیعت خالی نبودن آن را بررسی کنید.
د - پردازنده مورد نظر شما توسط JKeys ساپورت نشده است.
سوال : در هنگام Jtag می توانیم Flash را پاک کنیم و بخوانیم ولی در هنگام Program با خطا مواجه میشویم. علت چیست ؟
پاسخ : احتمالا در فایل jkeyd.def چند مورد از Flash وجود دارد که شماره شناسایی Device ID یکسانی با Flash مورد استفاده شما دارند. راه حل آْن ، ابتدا یک کپی از فایل اصلی jkeys.def بگیرید و تغییرات زیر را در آن انجام دهید :
در مقابل تعاریف Flash های غیر ضروری در ابتدای هر سطر علامت // قرار دهید مثلا فرض میکنیم که Flash شما از نوع atmel at49bv162at است. شماره شناسایی این فلش C2 میباشد که Flash دیگری بنام TC58FVT160 از همان شماره شناسایی استفاده میکند برای جستجو در فایل متن مربوطه با استفاده از Ctrl-F فلش های با آی دی مشابه را شناسایی کنید و جلوی آنها علامت// بگذارید و بعد از اتمام کار تغییرات را به حالت اول برگردانید. این کار به Compiler برنامه می فهماند که با خطوطی که دارای // هستند بصورت Comment یا توضیح نگاه کرده و هیچ عکس العملی در قبال این خطوط نشان ندهد. به مثال زیر توجه کنید :
Flash, 71, "AT49BV162AT", 0xC2, 0x200000, 1, 1, 0, 1, 39, 1
Sector, 71, 31, 0x00000, 0x10000
Sector, 71, 8, 0x1F0000, 0x2000
// Flash, 73, "TC58FVT160", 0xC2, 0x200000, 1, 1, 0, 2, 35, 1
// Sector, 73, 31, 0x00000, 0x10000
// Sector, 73, 1, 0x1F0000, 0x8000
// Sector, 73, 2, 0x1F8000, 0x2000
// Sector, 73, 1, 0x1FC000, 0x4000
در مورد فوق Jkeys از خواندن تعاریف مربوط به فلش دوم صرف نظر میکند.
سوال : میتوانیم Flash را بخوانیم ولی هنگام پاک کردن آن خطائی رخ میدهد. علت چیست؟
پاسخ : احتمالا شما با فلشی سروکار دارید که دارای قفل سخت افزاری و یا نرم افزاری است. Flash های سری جدید ساخت شرکت اینتل از اینگونه هستند. انواع دیگری از فلش های جدید ساخت کارخانجات دیگر هم دارای قفل میباشند. برای پاک کردن و پروگرام این قبیل فلش ها ابتدا باید آنها را آنلاک کنید.
سوال : شرح مختصری از فلش های اینتل بفرمایید؟
پاسخ : Flash های سری قدیمی ساخت Intel فاقد هر گونه قفل سخت افزاری و نرم افزاری هستند.Flash های سری B3 فقط دارای قفل سخت افزاری هستند و توسط پایه WP# که به زمین (Ground) وصل می شود. در نوع بوت بالا دو بلاک آخر حافظه و در نوع بوت پایین دو بلاک اول حافظه در مقابل پاک شدن و تغییرات ناخواسته محافطت میشوند. بلاک های مورد ذکر که بلاک های پارامتر نامیده می شوند ، به این دلیل دارای اهمیت می باشند که اطلاعات بوت مربوط به راه اندازی از طریق پورت RS-232 ممکن است در این بلاک ها نوشته شده باشد و مزیت وجود آن در این است که با ریختن نرم افزار اشتباه در بعضی رسیور ها مثلا ACC9800 ارتباط پورت با کامپیوتر از بین نمیرود و در اصطلاح گفته میشود که این نوع رسیور دارای بوت سخت افزاری میباشد.
برای آنلاک کردن سری B3 فقط کافی است که پایه WP# را به ولتاژ 3.3V وصل کنید.
اخطار مهم !!!
در تعدادی از رسیور ها پایه WP# مستقیما به شاسی وصل شده است و قبل از اتصال این پایه به ولتاژ 3.3V ، بادقت آنرا از روی برد جدا کنید و یا به طرق دیگر ارتباط آن را از شاسی (Ground) قطع کنید. در غیر این صورت ، عبور جریان زیاد بر اثر اتصال کوتاه ، باعث خرابی تغذیه دستگاه خواهد شد. در فلش های سری C3 ، هر دو روش قفل سخت افزاری و نرم افزاری بکار گرفته شده است ، و هر بلاک میتواند بصورت مستقل از دیگری قفل شود.مکانیزم قفل سخت افزاری و نرم افزاری در این نوع Flash ، چند حالتی است . گزینه های اضافی با استفاده از پایه های مختلف جهت حفاظت Flash در مقابل تغییرات ناخواسته ، در آن پیش بینی شده است.