پروگرامر پر EEPROM پڑھنے اور لکھنے کی خرابیاں
کسی ماڈیول کی تشخیص یا کوڈنگ سے پہلے اسے پڑھنا ہوتا ہے، اور پھر اکثر اس میں لکھنا بھی ہوتا ہے۔ دونوں مراحل مخصوص طریقوں سے ناکام ہوتے ہیں۔ یہ صفحہ ہر ناکامی کو اس کی وجہ اور اسے درست کرنے والی ترتیب یا کارروائی سے ملاتا ہے، اس صورت سے کہ ماڈیول بالکل نظر نہ آئے، اس تحریر تک جو “کامیاب” ہو کر خاموشی سے غائب ہو جاتی ہے۔
ماڈیول کا پتہ نہیں چلتا
| جانچ | وجہ |
|---|---|
| درست بیٹھنا اور کریڈل | ماڈیول کو کنیکٹر میں پورا اترنا چاہیے؛ اس کے فارم فیکٹر کے لیے اڈاپٹر استعمال کریں — QSFP کریڈل میں SFP نظر نہیں آئے گا |
| پاور اپ کا وقت | لگانے کے بعد ٹو-وائر بس کے جواب دینے سے پہلے ماڈیول کو SFP کے لیے زیادہ سے زیادہ ~2 s، یا CMIS کے لیے اس سے زیادہ وقت درکار ہوتا ہے |
| ماڈیول موجودگی کا سگنل | MOD_ABS / ModPrsL کو فعال ہونا چاہیے؛ مڑی ہوئی پن یا سگنل کے بغیر ماڈیول غیر موجود دکھائی دیتا ہے |
| کم طاقت کی حالت (CMIS) | LowPwr میں شناخت پڑھی جا سکتی ہے، مگر کچھ میزبان/پروگرامر مکمل رسائی کے لیے Ready کی توقع رکھتے ہیں |
| بس کی رفتار | 100 kHz یا اس سے کم سے شروع کریں؛ کچھ ماڈیول 400 kHz پر NACK کرتے ہیں |
| خراب ماڈیول | کسی بھی رفتار پر نہ DDM ہو نہ شناخت — اسے ناقابلِ استعمال قرار دینے سے پہلے دوسرے بورڈ پر تصدیق کریں |
ریڈ FFh، 00h یا بے معنی ڈیٹا واپس کرتے ہیں
| علامت | وجہ | حل |
|---|---|---|
| تمام FFh | I²C NACK — اس پتے پر کوئی آلہ نہیں، یا صفحہ موجود نہیں | پتہ جانچیں (SFP پر A0h شناخت بمقابلہ A2h تشخیص؛ QSFP/CMIS پر پیجنگ کے ساتھ واحد A0h) |
| تمام 00h | ماڈیول کو پاور نہیں ملی / ری سیٹ میں روکا گیا؛ یا EEPROM واقعی خالی ہے | کریڈل کی پاور اور ماڈیول کی موجودگی جانچیں؛ خالی ماڈیول (غیر کوڈ شدہ اسٹاک) موجود ہیں |
| درست طوالت، غلط مواد | مطلوبہ صفحے کے بجائے دوسرا صفحہ پڑھ رہے ہیں | صفحہ منتخب کرنے والا بائٹ (127) لکھ کر دوبارہ پڑھیں؛ CMIS پر بینک منتخب کرنے والا بائٹ (126) بھی |
| بگڑے ہوئے / سرکے ہوئے بائٹس | بس بہت تیز ہے، کیبل لمبی ہے، یا میزبان سے تصادم ہے | رفتار ≤ 100 kHz کریں؛ مختصر لیڈز استعمال کریں؛ چلتے سوئچ میں نہیں، بینچ پر پڑھیں |
| A2h ریڈ ناکام، A0h درست | تشخیص کے بغیر ماڈیول، یا محفوظ تشخیصی بلاک | A0h بائٹ 92 بٹ 6 (DDM نافذ ہے) جانچیں؛ بعض تحریر سے محفوظ اقسام صرف A0h کا جواب دیتی ہیں |
| ریڈز کے درمیان قدریں بدلتی ہیں | موجودہ مانیٹر ویلیوز — معمول کے مطابق؛ یا ڈیٹا تیار نہیں | DDM بائٹس کا بدلنا متوقع ہے؛ اسنیپ شاٹ پر بھروسا کرنے سے پہلے ڈیٹا-ریڈی بٹ جانچیں |
تحریر فوراً ناکام ہوتی ہے
WRITE FAIL، ڈیٹا پر NACK، یا بائٹ واپس پڑھنے پر غیر تبدیل شدہ ہو:
| وجہ | کیسے پہچانیں | کیا کریں |
|---|---|---|
| پاس ورڈ درکار ہے (فرم ویئر کنٹرولر) | پاس ورڈ ایڈریس پر درست قدر رکھنے تک تحریر مسترد ہوتی ہے (SFP A2h 0x7B–0x7E, QSFP 123–126, CMIS 122–125) | ماڈیول کا پاس ورڈ محفوظ میموری اور پاس ورڈز میں درج کریں؛ معلوم وینڈر پاس ورڈ ڈیٹابیس سے لاگو ہوتے ہیں |
| ہارڈویئر رائٹ پروٹیکٹ | پاس ورڈ سے قطع نظر صرف پڑھنے کے قابل، پاور سائیکل کے بعد بھی برقرار | WP پن کو پروگرامر بورڈ سے ڈرائیو ہونا چاہیے — صرف سافٹ ویئر کافی نہیں؛ تحریر سے حفاظت کی اقسام دیکھیں |
| ٹائمنگ | وقفے وقفے سے ناکامیاں، جزوی صفحات لکھے گئے | کلاک آہستہ کریں (قابلِ اعتماد EEPROM تحریر کے لیے اکثر ~1 kHz درکار ہوتا ہے)، بائٹس/صفحات کے درمیان رائٹ سائیکل وقت (5–10 ms) کا لحاظ کریں، اور بلاکس کے درمیان وقفے بڑھائیں |
| صرف پڑھنے کا علاقہ | مخصوص بائٹس کبھی نہیں بدلتے (کچھ حصوں میں چیک سمز، حدیں، وینڈر ایریا) | EEPROM میں ڈیزائن کے لحاظ سے محفوظ علاقہ ہے؛ صرف وہی فیلڈز لکھیں جن کی ماڈیول اجازت دے |
| غلط حالت | CMIS ماڈیولز کو تحریر قبول کرنے سے پہلے LowPwr، یا غیر فعال ڈیٹا پاتھ درکار ہو سکتا ہے | پہلے ماڈیول کو مطلوبہ حالت میں لائیں |
| صفحہ منتخب نہیں | آپ نے درست آف سیٹ غلط صفحے پر لکھا | تحریر سے پہلے بائٹ 127 (اور 126) سیٹ کریں اور پیج سلیکٹ بائٹ واپس پڑھ کر تصدیق کریں |
تحریر “کامیاب” ہوتی ہے مگر برقرار نہیں رہتی
- پاور سائیکل کے بعد واپس آ جاتی ہے — ماڈیول تحریروں کو عارضی میموری میں رکھتا ہے اور وینڈر کی محفوظ کرنے کی کمانڈ مانگتا ہے؛ اس کے بغیر پرانا امیج واپس آتا ہے۔ یہ پروگرامنگ اسکرپٹ (تحریر سے حفاظت کی قسم 4) سے سنبھالا جاتا ہے۔
- فوراً واپس آ جاتی ہے — مائیکروکنٹرولر EEPROM کو اپنے محفوظ شدہ ذخیرے سے نقل کرتا ہے اور آپ کے بائٹس کو بدل دیتا ہے؛ اس کے لیے مینوفیکچرر کا الگورتھم درکار ہے (قسم 5)۔
- کچھ بائٹس برقرار رہتے ہیں، باقی نہیں — جزوی طور پر محفوظ نقشہ؛ فیلڈ بہ فیلڈ لکھیں اور ہر ایک کی تصدیق کریں۔
کامیاب تحریر کے بعد میزبان ماڈیول کو مسترد کرتا ہے
| وجہ | حل |
|---|---|
| چیک سمز پرانے ہیں — CC_BASE (بائٹ 63)، CC_EXT (95)، CC_DMI (A2h 95)، QSFP 191/223 | دوبارہ حساب کریں؛ CodingBox تحریر کے وقت خودکار طور پر کرتا ہے (میموری نقشہ) |
| شناخت اب غیر ہم آہنگ ہے — مثلاً وینڈر بدلا مگر مطابقت کوڈز یا طولِ موج مختلف ہارڈویئر بتاتے ہیں | شناخت کو اصل آپٹکس کے مطابق رکھیں (رفتار اور شرح، جسمانی عدم مطابقتیں) |
| غلط ماڈیول قسم کے لے آؤٹ پر لکھا | SFP کے طور پر لکھا گیا XFP، یا QSFP صفحے کی الجھن — بیک اپ سے بحال کریں |
تحریر کے بعد ماڈیول ناکارہ ہو جاتا ہے
کیلیبریشن مستقلات، حدوں یا وینڈر مخصوص علاقے (جہاں بعض کنٹرولرز اپنی ترتیب رکھتے ہیں) پر بے معنی ڈیٹا لکھنے سے ماڈیول ناقابلِ استعمال ہو سکتا ہے۔ بحالی کا طریقہ: تحریر سے پہلے CodingBox کا لیا ہوا بیک اپ بحال کریں، Code database سے، پھر صرف مطلوبہ فیلڈز لکھیں۔
سنہری اصول
- پہلے پڑھیں اور محفوظ کریں — ہر تحریر سے پہلے مکمل ریڈ ہونا چاہیے جو ڈیٹابیس میں محفوظ ہو۔
- حفاظت کی قسم شناخت کریں، پہلی تحریر کی کوشش سے پہلے (تحریر سے حفاظت کی اقسام)۔
- آہستہ چلیں — کلاک اور بائٹ کے درمیان کا وقت زیادہ تر “اتفاقی” ناکامیوں کو حل کرتے ہیں۔
- صرف وہی لکھیں جو مقصود ہو — فیلڈز، پورے صفحات نہیں، سوائے امیج بحال کرنے کے۔
- پاور سائیکل کے بعد دوبارہ پڑھ کر تصدیق کریں۔
CodingBox میں
CodingBox فارم فیکٹر کے لحاظ سے درست پتے اور پیجنگ سے ماڈیولز پڑھتا ہے، EEPROM editor میں خام اور ڈی کوڈ شدہ بائٹس دکھاتا ہے، تحریر پر چیک سمز دوبارہ حساب کرتا ہے، خودکار طور پر بیک اپ محفوظ کرتا ہے، اور محفوظ اور محفوظ-کرنے-کی-کمانڈ والے ماڈیولز کے لیے پاس ورڈ درج کرنے اور پروگرامنگ اسکرپٹس کی سپورٹ کرتا ہے (ماڈیول لکھنا)۔ اگر بورڈ سطح کی خرابی کا شبہ ہو تو پروڈکٹ کا خرابیوں کا ازالہ دیکھیں۔
ان ناکامیوں کے پسِ منظر میں بس کے طریقہ کار — پتے، پیج سلیکٹ، رائٹ سائیکل وقت، کلاک اسٹریچنگ: ٹو-وائر انٹرفیس۔
ماڈیول جس طرح جواب دیتا ہے اس کی وجہ — MCU سے ایمولیٹ شدہ میموری، بوٹ ونڈو، کلاک اسٹریچنگ، محفوظ علاقے: کنٹرولر اور فرم ویئر۔