I2CDUMP(8) System Manager's Manual I2CDUMP(8)

i2cdump - بررسی و استخراج ثبات‌های I2C

i2cdump [-f] [-r first-last] [-y] [-a] i2cbus address [mode [bank [bankreg]]]
i2cdump -V
i2cdump -h

دستور i2cdump یک برنامه کمکی کوچک برای بررسی ثبات‌های قابل مشاهده از طریق گذرگاه I2C است.

نمایش نسخه و خروج.
نمایش راهنما و خروج.
اجبار به دسترسی به دستگاه حتی در صورتی که مشغول باشد. به‌طور پیش‌فرض، i2cdump از دسترسی به دستگاهی که تحت کنترل درایور هسته است خودداری می‌کند. استفاده از این فلگ خطرناک است و می‌تواند درایور هسته مربوطه را به شدت سردرگم کند. همچنین می‌تواند باعث شود i2cdump نتایج نامعتبر بازگرداند. بنابراین با مسئولیت خود و تنها در صورتی که می‌دانید چه می‌کنید از آن استفاده نمایید.
محدود کردن بازه ثبات‌های مورد دسترسی. این گزینه در حالت s در دسترس نیست. برای حالت W، مقدار first باید زوج و last باید فرد باشد.
غیرفعال کردن حالت تعاملی. به‌طور پیش‌فرض، i2cdump قبل از دستکاری گذرگاه I2C منتظر تایید کاربر می‌ماند. با استفاده از این فلگ، عملیات را مستقیماً انجام می‌دهد. این گزینه عمدتاً برای استفاده در اسکریپت‌ها در نظر گرفته شده است.
اجازه استفاده از آدرس‌های بین 0x00 - 0x07 و 0x78 - 0x7f. توصیه نمی‌شود.

حداقل دو پارامتر باید به i2cdump داده شود. i2cbus شماره یا نام گذرگاه I2C برای پویش را مشخص می‌کند. این شماره باید با یکی از گذرگاه‌های فهرست‌شده توسط i2cdetect -l مطابقت داشته باشد. address آدرس مورد پویش روی آن گذرگاه را مشخص می‌کند و یک عدد صحیح بین 0x08 و 0x77 است.

پارامتر mode در صورت تعیین شدن، یکی از حروف b، w یا i است که به ترتیب متناظر با اندازه خواندن یک تک‌بایت، یک کلمه ۱۶ بیتی، یا یک بلوک I2C هستند. حالت c کمی متفاوت است، همه بایت‌ها را به‌طور متوالی می‌خواند و برای تراشه‌هایی که دارای قابلیت افزایش خودکار آدرس هستند، مانند EEPROMها، مفید است. حالت W نیز خاص است؛ مشابه w است به جز اینکه دستور خواندن تنها برای آدرس‌های ثبات زوج صادر می‌شود؛ این حالت نیز عمدتاً برای EEPROMها مفید است.

همچنین یک p می‌تواند به انتهای پارامتر mode اضافه شود (به جز برای i و W) تا PEC فعال گردد. اگر پارامتر mode حذف شود، پیش‌فرض i2cdump دسترسی بایتی بدون PEC است.

پارامترهای bank و bankreg روی W83781D و تراشه‌های مشابه (در زمان نگارش، تمام تراشه‌های Winbond و Asus) مفید هستند. bank یک عدد صحیح بین 0 و 7 است و bankreg یک عدد صحیح بین 0x00 و 0xFF است (مقدار پیش‌فرض: 0x4E). برگه اطلاعات W83781D اطلاعات بیشتری درباره انتخاب بانک دارد.

دستور i2cdump در صورت استفاده نادرست می‌تواند خطرناک باشد. به‌ویژه، حالت c با نوشتن یک بایت در تراشه آغاز می‌شود. در بیشتر تراشه‌ها این مقدار در ثبات اشاره‌گر آدرس ذخیره می‌شود که مشکلی ندارد، اما برخی تراشه‌ها با یک ثبات واحد یا بدون هیچ ثبات (قابل مشاهده)، به احتمال زیاد این عمل را به عنوان یک نوشتن واقعی در نظر می‌گیرند که ممکن است منجر به رفتار نادرست یا خرابی داده شود. از i2cdump روی آدرس‌های تصادفی استفاده نکنید. به هر حال، استفاده از آن فایده چندانی ندارد مگر اینکه شناخت خوبی از تراشه‌ای که با آن کار می‌کنید داشته باشید و بدانید به دنبال چه می‌گردید.

استخراج کامل محتویات دستگاه I2C در آدرس ۷ بیتی 0x50 روی گذرگاه ۹ (i2c-9)، با استفاده از روش خواندن پیش‌فرض (حالت بایتی)، پس از تایید کاربر:

# i2cdump 9 0x50

استخراج فوری کل محتویات دستگاه I2C در آدرس ۷ بیتی 0x50 روی گذرگاه ۹ (i2c-9)، با استفاده از تراکنش‌های خواندن بلوک I2C (بدون تایید کاربر):

# i2cdump -y 9 0x50 i

اگر دستگاه یک EEPROM باشد، خروجی معمولاً مشابه خروجی مثال قبلی خواهد بود.

استخراج ثبات‌های 0x00 تا 0x3f از دستگاه I2C در آدرس ۷ بیتی 0x2d روی گذرگاه ۱ (i2c-1)، با استفاده از روش خواندن پیش‌فرض (حالت بایتی)، پس از تایید کاربر:

# i2cdump -r 0x00-0x3f 1 0x2d

برای گزارش اشکالات یا ارسال اصلاحات، لطفاً به فهرست پستی Linux I2C به نشانی <linux-i2c@vger.kernel.org> با رونوشت به نگه‌دارنده فعلی: Jean Delvare <jdelvare@suse.de> بنویسید.

حالت بلوک SMBus پیش‌تر توسط این ابزار پشتیبانی می‌شد. لطفاً به جای آن از i2cget استفاده کنید.

i2cdetect(8), i2cget(8), i2cset(8), i2ctransfer(8), isadump(8)

Frodo Looijaard, Mark D. Studebaker and Jean Delvare

این صفحه راهنما در ابتدا توسط David Z Maze <dmaze@debian.org> برای سیستم Debian GNU/Linux نوشته شده است.

مه ۲۰۲۲