رابط DIODES AP33772 USB PD Sink Controller Raspberry Pi I2C
مقدمه
- کنترلر سینک AP33772 که به عنوان دستگاه پروتکل دستگاه مجهز به رابط USB PD3.0 نوع C (TCD، سینک انرژی) کار میکند، برای درخواست آبجکت دادههای برق مناسب (PDO) از PD3.0 مجهز به رابط USB PD3.0 نوع C در نظر گرفته شده است. شارژر مطابق با XNUMX (PDC، منبع انرژی).
- شکل 1 یک TCD تعبیه شده با آی سی کنترلر سینک PD3.0 (AP33772) را نشان می دهد که به صورت فیزیکی به PDC تعبیه شده با رسیور USB PD3.0 (AP43771) وصل شده است.
- کابل C-to-Type C را تایپ کنید. بر اساس سیستم عامل داخلی سازگار با USB PD3.0، جفت AP33772 و AP43771 برای ایجاد وضعیت شارژ مناسب PD3.0 از روش اتصال استاندارد USB PD3.0 عبور می کنند.
- کنترلر سینک AP33772 EVB سهولت استفاده و تطبیق پذیری عالی را برای طراح سیستم فراهم می کند تا با ارسال دستورات داخلی AP33772 از طریق رابط I2C، PDOها را از شارژر تحویل برق USB درخواست کند. طراحی سیستم معمولی نیاز به برنامه نویسی MCU دارد که نیاز به نصب نرم افزار خاص (به عنوان مثال IDE) دارد و می تواند یک فرآیند توسعه زمانبر باشد.
- در مقابل، Raspberry Pi (RPI)، یک کامپیوتر تک بردی (SBC) که بر روی یک سیستم عامل لینوکس کاربرپسند اجرا میشود و مجهز به پینهای GPIO انعطافپذیر است، روشی ساده برای اعتبارسنجی AP33772 Sink EVB که با شارژر PD کار میکند، ارائه میکند. هدف این راهنما این است که به طراحان سیستم یک پلت فرم موثر برای تکمیل سریع اعتبار سنجی نرم افزار بر روی RPI و سپس پورت توسعه به هر MCU مطلوب برای برآورده کردن نیازهای بازار چرخش سریع ارائه شود.
- به عنوان یک سند تکمیلی برای راهنمای کاربر AP33772 EVB، این راهنمای کاربر یک راه آسان برای کنترل AP33772 EVB با RPI SBC از طریق رابط I2C را نشان می دهد.
- نقش بلوک MCU نشان داده شده در شکل 1 برای رابط با AP33772 توسط یک RPI ایفا می شود. این راهنمای کاربر بسیاری از اطلاعات مربوط به تعریف و استفاده از ثبت نام را پوشش می دهدamples، با این حال، برای اطلاعات کامل و به روز، لطفاً به راهنمای کاربر EVB AP33772 مراجعه کنید. (به مرجع 2 مراجعه کنید)
- شکل 1 – یک TCD معمولی از کنترلر سینک PD AP33772 با رابط I2C برای درخواست برق از یک آداپتور منبع سازگاری USB Type-C PD3.0/PPS استفاده می کند.
راه اندازی پلت فرم اعتبار سنجی
AP33772 سینک کنترل EVB
شکل 2 تصویر کنترلر سینک EVB را نشان می دهد. دارای رابط Type-C، پایه های I2C، پایه GPIO3 برای وقفه، ترمیستور NTC برای OTP، نشانگرهای LED برای نشان دادن وضعیت شارژ و اتصال Vout به بار.
Raspberry Pi Zero 2W
- هر آخرین نسخه از RPI قادر به کنترل AP33772 Sink Controller EVB از طریق پین های I2C است. Raspberry Pi Zero 2 W (RPI Z2W) در این راهنمای کاربر به دلیل مقرون به صرفه بودن و تطبیق پذیری آن استفاده شده است. دارای کوچکترین فرم فاکتور در بین تمام RPIها است و با WiFi و بلوتوث یکپارچه شده است که باعث می شود اتصال بی سیم بدون اجزای اضافی انجام شود. این هدف به عنوان AP33772 Sink Controller EVB Validation Platform کاملاً انجام می شود.
- کاربر ممکن است رسمی Raspberry Pi را بررسی کند webسایت برای اطلاعات بیشتر (https://www.raspberrypi.com/products/raspberry-pi-zero-2-w/)
اتصال پلت فرم اعتبارسنجی و روشن کردن
شکل 5 اتصال و راه اندازی کامل Validation Platform را نشان می دهد. کاربر باید این مراحل را دنبال کند:
- پین های SCL، SDA و GND را بین RPI و AP33772 EVB وصل کنید
- شارژر PD 65 واتی و AP33772 EVB را با کابل Type-C وصل کنید
- شارژر RPI و PD را روشن کنید.
راه اندازی نرم افزار Raspberry Pi
سیستم عامل Raspberry Pi
- سیستم عامل های مختلفی وجود دارند که از RPI پشتیبانی می کنند. در این میان، Raspberry Pi OS انتخاب شده است زیرا بیشترین استفاده و توصیه شده توسط سایت رسمی RPI است.
تصویر سیستم عامل را دانلود کنید و کارت SD را آماده کنید
- دانلود و نصب Raspberry Pi Imager tools بر روی کامپیوتر (https://www.raspberrypi.com/software/). برای تهیه یک Micro-SD بارگذاری شده با تصویر صحیح سیستم عامل، دستورالعمل را دنبال کنید (https://youtu.be/ntaXWS8Lk34/). لطفاً توجه داشته باشید که کارت Micro-SD 32BG یا بیشتر توصیه می شود.
نصب Raspberry PI OS
- کارت Micro-SD را که قبلاً با تصویرگر بارگذاری شده بود در اسلات Micro-SD RPI قرار دهید. آداپتور برق، ماوس/صفحه کلید و مانیتور HDMI را وصل کنید. RPI را روشن کنید و دستورالعمل را برای تکمیل نصب سیستم عامل و راه اندازی اولیه دنبال کنید. مطمئن شوید که آخرین به روز رسانی ها در سیستم عامل گنجانده شده است.
راه اندازی ویژگی های مورد نیاز
- برای اجرای موفقیت آمیز رابط I2C روی RPI، باید ویژگی های SSH، VNC و I2C را پیکربندی یا نصب کنیم.
Raspberry Pi Config – SSH، VNC، I2C
- پس از راهاندازی RPI، ابزار Raspberry Pi Configure را باز کنید و ویژگیهای SSH، VNC و I2C را روشن کنید.
پیکربندی نرخ Baud I2C
- خطوط مربوط به dtparam و dtoverlay را در /boot/config.txt جایگزین کنید. file با:
- dtoverlay=i2c-bcm2708
- dtparam=i2c_arm=on,i2c_arm_baudrate=640000
نصب I2C-Tools
- I2C-Tools مجموعه ابزاری است که دستورات ساده ای را در خط فرمان تحت سیستم عامل Raspberry Pi ارائه می دهد. I2C-Tools را روی سیستم عامل نصب کنید: sudo apt install i2c-tools
نصب SMBus2
- SMBus2 یک ماژول پایتون است که عملکردهای مناسبی را برای کاربر فراهم می کند تا رابط I2C را در محیط پایتون کنترل کند. ماژول SMBus2 را برای پایتون روی سیستم عامل نصب کنید: sudo pip3 install smbus2
فرماندهی اولیه Examples
- این راهنمای کاربر دو روش مختلف برای کار با رابط I2C در RPI را نشان می دهد. آنها I2C-Tools Utility و Python SMBus2 Module هستند. دستورات اساسی هر دو روش در این قسمت معرفی می شوند.
I2C-Tools Command Examples
- بسته ابزار I2C-Tools دستورات i2cdetect، i2cget و i2cset را ارائه می دهد. کاربردهای ساده شده در قسمت قبلی توضیح داده شده استamples تحت این بخش. برای اطلاعات کامل در مورد ابزار I2C-Tools، لطفاً به https://linuxhint.com/i2c-linux-utilities/.
- جدول 1 خلاصه ثبت AP33772 را برای راحتی کاربر برای هضم استفاده از دستور در این بخش نشان می دهد. برای اطلاعات کامل ثبت نام، لطفاً به راهنمای کاربر EVB کنترلر سینک AP33772 مراجعه کنید.
ثبت نام کنید | فرمان | طول | صفت | روشن کردن | توضیحات |
SRCPDO |
0x00 |
28 |
RO |
تمام ساعت 00 |
Power Data Object (PDO) برای افشای قابلیتهای منبع PD (SRC) استفاده میشود.
طول کل 28 بایت است |
PDONUM | 0x1C | 1 | RO | 00 ساعت | شماره PDO منبع معتبر |
وضعیت | 0x1D | 1 | RC | 00 ساعت | وضعیت AP33772 |
ماسک | 0x1E | 1 | RW | 01 ساعت | ماسک فعال کردن وقفه |
VOLTAGE | 0x20 | 1 | RO | 00 ساعت | LSB 80mV |
فعلی | 0x21 | 1 | RO | 00 ساعت | LSB 24 میلی آمپر |
TEMP | 0x22 | 1 | RO | 19 ساعت | دما، واحد: درجه سانتی گراد |
OCPTHR | 0x23 | 1 | RW | 00 ساعت | آستانه OCP، LSB 50mA |
OTPTHR | 0x24 | 1 | RW | 78 ساعت | آستانه OTP، واحد: درجه سانتیگراد |
DRTHR | 0x25 | 1 | RW | 78 ساعت | آستانه رتبه بندی، واحد: درجه سانتی گراد |
TR25 | 0x28 | 2 | RW | 2710 ساعت | مقاومت حرارتی @25°C، واحد: Ω |
TR50 | 0x2A | 2 | RW | 1041 ساعت | مقاومت حرارتی @50°C، واحد: Ω |
TR75 | 0x2C | 2 | RW | 0788 ساعت | مقاومت حرارتی @75°C، واحد: Ω |
TR100 | 0x2E | 2 | RW | 03 CEh | مقاومت حرارتی @100°C، واحد: Ω |
RDO | 0x30 | 4 | WO | 00000000 ساعت | Request Data Object (RDO) برای درخواست قابلیت های قدرت استفاده می شود. |
VID | 0x34 | 2 | RW | 0000 ساعت | شناسه فروشنده، برای برنامه های آینده رزرو شده است |
PID | 0x36 | 2 | RW | 0000 ساعت | شناسه محصول، برای برنامه های آینده رزرو شده است |
رزرو شده است | 0x38 | 4 | – | – | برای برنامه های آینده رزرو شده است |
جدول 1 - AP33772 خلاصه ثبت
همه دستگاههای متصل به I2C - i2cdetect را شناسایی کنید
- برای نمایش تمام دستگاههای i2c که در حال حاضر به گذرگاه I2C-1 متصل هستند، زیر خط فرمان را تایپ کنید: i2cdetect -y 1
- اگر AP33772 Sink Controller EVB متصل است، کاربر باید ببیند دستگاه در آدرس 0x51 متصل است
خواندن SRCPDO (0x00~0x1B)
- دستور i2cget از خواندن بلوک بیشتر از 2 بایت پشتیبانی نمی کند. کاربر باید از "for loop" برای نمایش تمام داده های PDO 28 بایتی استفاده کند. برای نمایش تمام دادههای PDO، زیر خط فرمان bash را برای i در {0..27} تایپ کنید. i2cget -y 1 0x51 $ib; انجام شده
- داده های 28 بایتی نشان دهنده 7 PDO نمایش داده می شود
خواندن PDONUM (0x1C)
- برای نمایش تعداد کل PDOهای معتبر، زیر خط فرمان را تایپ کنید: i2cget -y 1 0x51 0x1c b
خواندن وضعیت (0x1D)
- این فرمان وضعیت کنترلر سینک شامل کاهش رتبه، OTP، OCP، OVP، Request Rejected، Request Completed و Ready را گزارش می دهد. برای نمایش اطلاعات وضعیت، عبارت زیر را در خط فرمان تایپ کنید: i2cget -y 1 0x51 0x1d b
- کاربر باید بعد از هر درخواست RDO از این دستور استفاده کند تا با خواندن بیت COMPLETE از موفقیت درخواست RDO اطمینان حاصل کند. 4.1.5 Write MASK (0x1E)
- این دستور وقفه هایی را فعال می کند که از طریق پین GPIO3 AP33772 به میزبان سیگنال می دهد. وقفه ها عبارتند از: Derating، OTP، OCP، OVP، Request Rejected، Request Completed و Ready. برای فعال کردن یک وقفه خاص، بیت مربوطه را روی یک تنظیم کنید. برای مثالample، برای فعال کردن وقفه OCP، بیت 4 رجیستر MASK را با تایپ عبارت زیر در خط فرمان روی یک تنظیم کنید: i2cset -y 1 0x51 0x1e 0x10 b
- پین GPIO3 AP33772 با فعال شدن حفاظت OCP بالا می رود.
VOL را بخوانیدTAGE (0x20)
- این فرمان جلدtage توسط کنترلر سینک AP33772 اندازه گیری می شود. برای گزارش جلدtage، عبارت زیر را در خط فرمان تایپ کنید: i2cget -y 1 0x51 0x20 b
- یک واحد از مقدار گزارش شده نشان دهنده 80mV است.
خواندن CURRENT (0x21)
- این دستور جریان اندازه گیری شده توسط کنترلر سینک AP33772 را گزارش می دهد. برای گزارش جریان، عبارت زیر را در خط فرمان تایپ کنید: i2cget -y 1 0x51 0x21 b
- یک واحد از مقدار گزارش شده نشان دهنده 24 میلی آمپر است.
خواندن TEMP (0x22)
- این فرمان دمای اندازه گیری شده توسط کنترلر سینک AP33772 را گزارش می دهد. برای گزارش دما، عبارت زیر را در خط فرمان تایپ کنید:
i2cget -y 1 0x51 0x22 b - یک واحد از مقدار گزارش شده نشان دهنده 1 درجه سانتیگراد است.
- خواندن و نوشتن OCPTHR (0x23)، OTPTHR (0x24) و DRTHR (0x25)
- آستانه های OCP، OTP و Derating را می توان با نوشتن مقادیر در ثبات های OCPTHR، OTPTHR و DRTHR به مقادیر مطلوب کاربر تغییر داد. به عنوان یک سابقample، برای تغییر آستانه OCP به 3.1A، کاربر باید 0x3E (=3100/50=62=0x3E) را به OCPTHR با تایپ زیر در خط فرمان بنویسد: i2cset -y 1 0x51 0x23 0x3e b
- برای تغییر آستانه OTP به 110 درجه سانتیگراد، کاربر باید 0x6E (=110) را به OTPTHR با تایپ زیر در خط فرمان بنویسد:
- برای خواندن مقادیر OCPTHR، OTPTHR و DRTHR، زیر خط فرمان را تایپ کنید:
- i2cget -y 1 0x51 0x23 b i2cget -y 1 0x51 0x24 b i2cget -y 1 0x51 0x25 b
- خواندن و نوشتن TR25 (0x28~0x29)، TR50 (0x2A~0x2B)، TR75 (0x2C~0x2D) و TR100 (0x2E~0x2F)
- یک ترمیستور NCP10XH03 با ضریب دمای منفی (NTC) موراتا 103KΩ در AP33772 EVB پر شده است. ترجیح کاربر این است که ترمیستور را در طراحی نهایی به ترمیستور دیگری تغییر دهد. کاربر باید مقادیر ثبت TR25، TR50، TR75 و TR100 را با توجه به مشخصات ترمیستور مورد استفاده به روز کند. برای مثالampلی،
- در طراحی از NCP6.8XH03 682KΩ موراتا استفاده شده است. مقادیر مقاومت در 25°C، 50°C، 75°C و 100°C به ترتیب 6800Ω (0x1A90)، 2774Ω (0x0AD6)، 1287Ω (0x0507) و 662Ω (0x0296) است. برای نوشتن مقادیر مربوط به این رجیسترها، عبارت زیر را در خط فرمان تایپ کنید:
- i2cset -y 1 0x51 0x28 0x1a90 w i2cset -y 1 0x51 0x2a 0x0ad6 w i2cset -y 1 0x51 0x2c 0x0507 w i2cset -y 1 0x51 0x2 w0
- برای خواندن مقادیر، زیر خط فرمان زیر را تایپ کنید: i2cget -y 1 0x51 0x28 w i2cget -y 1 0x51 0x2a w i2cget -y 1 0x51 0x2c w i2cget -y 1 0x51 0x2e w
- مقادیر خروجی کلمات 2 بایتی هستند. از آنجایی که دستورات به طور مستقیم کلمه 2 بایتی را مدیریت می کنند، کاربران نیازی به نگرانی در مورد ترتیب اندک بایت اندیان در اینجا ندارند.
RDO را بنویسید (0x30~0x33)
- برای شروع یک روند مذاکره درخواست PDO، داده های 4 بایتی به ترتیب بایت اندک اندین در ثبت RDO (Request Data Object) نوشته می شود. به عنوان سابقample، برای درخواست PDO3 با ولتاژ 15 ولت و 3 آمپر، 0x3004B12C در رجیستر RDO نوشته می شود. زیر خط فرمان زیر را تایپ کنید: i2cset -y 1 0x51 0x30 0x2c 0xb1 0x04 0x30 i
- بایت کم اهمیت (0x2C) باید در ابتدا نوشته شود تا با علامت ترتیب بایت انددیانی متناسب باشد. لطفاً به جدول 9 و جدول 10 از AP33772 Sink Controller EVB User مراجعه کنید.
- راهنمای اطلاعات دقیق محتوای RDO.
- کاربر میتواند با نوشتن ثبات RDO با دادههای صفر، یک هارد ریست صادر کند: i2cset -y 1 0x51 0x30 0x00 0x00 0x00 0x00 i
- کنترلر سینک AP33772 به حالت اولیه خود بازنشانی می شود و خروجی خاموش می شود.
Python SMBus2 Command Examples
- پایتون به دلیل انواع بزرگ ماژول های پشتیبانی شده محبوبیت بیشتری پیدا می کند. SMBus2 یکی از این موارد است و قادر به مدیریت دستورات خواندن و نوشتن I2C است. SMBus2 دستورات read_byte_data، read_word_data، read_i2c_block_data، write_byte_data، write_word_data، write_i2c_block_data را ارائه می دهد. کاربردهای ساده شده در قسمت قبلی توضیح داده شده استamples تحت این بخش. برای اطلاعات کامل در مورد ماژول SMBus2، لطفاً به https://smbus2.readthedocs.io/en/latest/.
خواندن SRCPDO (0x00~0x1B)
- SMBus.read_i2c_block_data یک فرمان موثر برای پشتیبانی از خواندن اطلاعات بلوک تا 32 بایت است. برای خواندن تمام داده های PDO 28 بایتی، از محیط زیر در محیط python3 استفاده کنید:
- SMBus.read_i2c_block_data(0x51, 0x00, 28)
- 28 داده یک بایتی نشان دهنده 7 PDO در ساختار داده فهرست برگردانده می شود.
خواندن PDONUM (0x1C)
- برای خواندن تعداد کل PDO های معتبر، از زیر در محیط python3 استفاده کنید:
- SMBus.read_byte_data (0x51، 0x1c)
- یک بایت داده که تعداد PDO معتبر را نشان می دهد بازگردانده می شود.
خواندن وضعیت (0x1D)
- این دستور وضعیت کنترلر سینک را گزارش می دهد که شامل Derating، OTP، OCP، OVP، Request Rejected، Request Completed و Ready می شود. برای خواندن اطلاعات وضعیت، از محیط python3 زیر استفاده کنید:
- SMBus.read_byte_data (0x51، 0x1d)
- کاربر ممکن است پس از هر درخواست RDO از این دستور استفاده کند تا با خواندن بیت COMPLETE از موفقیت درخواست RDO اطمینان حاصل کند.
نوشتن MASK (0x1E)
- این دستور وقفه هایی را فعال می کند که از طریق پین GPIO3 AP33772 به میزبان سیگنال می دهد. وقفه ها عبارتند از: Derating، OTP، OCP، OVP، Request Rejected، Request
- تکمیل شده و آماده است. برای فعال کردن یک وقفه خاص، بیت مربوطه را روی یک تنظیم کنید. برای مثالample، برای فعال کردن وقفه OCP، بیت 4 رجیستر MASK را با استفاده از محیط زیر در python3 روی یک قرار دهید:
- SMBus.write_byte_data(0x51, 0x1e, 0x10)
- پین GPIO3 AP33772 با فعال شدن حفاظت OCP بالا می رود.
VOL را بخوانیدTAGE (0x20)
- این فرمان جلدtage توسط کنترلر سینک AP33772 اندازه گیری می شود. برای گزارش جلدtage، از موارد زیر در محیط python3 استفاده کنید:
- SMBus.read_byte_data (0x51، 0x20)
- یک واحد از مقدار گزارش شده نشان دهنده 80mV است.
خواندن CURRENT (0x21)
- این دستور جریان اندازه گیری شده توسط کنترلر سینک AP33772 را گزارش می دهد. برای گزارش جریان، از زیر محیط python3 استفاده کنید
- SMBus.read_byte_data (0x51، 0x21)
- یک واحد از مقدار گزارش شده نشان دهنده 24 میلی آمپر است.
خواندن TEMP (0x22)
- این فرمان دمای اندازه گیری شده توسط کنترلر سینک AP33772 را گزارش می دهد. برای گزارش دما، از محیط زیر در محیط python3 استفاده کنید:
- SMBus.read_byte_data (0x51، 0x22)
- یک واحد از مقدار گزارش شده نشان دهنده 1 درجه سانتیگراد است.
خواندن و نوشتن OCPTHR (0x23)، OTPTHR (0x24) و DRTHR (0x25)
- آستانه های OCP، OTP و Derating را می توان با نوشتن مقادیر در ثبات های OCPTHR، OTPTHR و DRTHR به مقادیر مطلوب کاربر تغییر داد. به عنوان یک سابقample، برای تغییر آستانه OCP به 3.1A، کاربر باید 0x3E (=3100/50=62=0x3E) را با استفاده از محیط زیر در python3 به OCPTHR بنویسد: SMBus.write_byte_data(0x51, 0x23, 0x3e)
- برای تغییر آستانه OTP به 110 درجه سانتیگراد، کاربر باید 0x6E (=110) را به OTPTHR با استفاده از محیط زیر python3 بنویسد: SMBus.write_byte_data(0x51, 0x24, 0x6e)
- برای تغییر آستانه کاهش به 100 درجه سانتیگراد، کاربر باید 0x64 (=100) را به DRTHR با استفاده از محیط python3 زیر بنویسد: SMBus.write_byte_data(0x51, 0x25, 0x64)
- برای خواندن مقادیر OCPTHR، OTPTHR و DRTHR، از زیر در محیط python3 استفاده کنید: SMBus.read_byte_data(0x51، 0x23) SMBus.read_byte_data(0x51، 0x24) SMBus.read_byte_data(0x51، 0x25) .
- خواندن و نوشتن TR25 (0x28~0x29)، TR50 (0x2A~0x2B)، TR75 (0x2C~0x2D) و TR100 (0x2E~0x2F)
- یک ترمیستور NCP10XH03 با ضریب دمای منفی (NTC) موراتا 103KΩ در AP33772 EVB پر شده است. ترجیح کاربر این است که ترمیستور را در طراحی نهایی به ترمیستور دیگری تغییر دهد. کاربر باید ارزش ثبت TR25، TR50، TR75 و TR100 را با توجه به مشخصات ترمیستور مورد استفاده به روز کند. برای مثالample، موراتا 6.8KΩ NCP03XH682 در طراحی استفاده شده است. مقادیر مقاومت در 25°C، 50°C، 75°C و 100°C به ترتیب 6800Ω (0x1A90)، 2774Ω (0x0AD6)، 1287Ω (0x0507) و 662Ω (0x0296) است. برای نوشتن مقادیر مربوط به این رجیسترها، از محیط زیر در محیط python3 استفاده کنید:
- SMBus.write_word_data(0x51, 0x28, 0x1a90) SMBus.write_word_data(0x51, 0x2a, 0x0ad6) SMBus.write_word_data(0x51, 0x2c, 0x0507) SMBus.write_word_data(0x51, 0x2e, 0x0296)
- برای خواندن مقادیر، از زیر در محیط python3 استفاده کنید: SMBus.read_word_data(0x51, 0x28) SMBus.read_word_data(0x51, 0x2a) SMBus.read_word_data(0x51, 0x2c) SMBusta(0x51_word)
- مقادیر بازگشتی نیز کلمات 2 بایتی هستند. از آنجایی که دستورات به طور مستقیم کلمه 2 بایتی را مدیریت می کنند، کاربران نیازی به نگرانی در مورد ترتیب اندک بایت اندیان در اینجا ندارند.
RDO را بنویسید (0x30~0x33)
- برای شروع یک روند مذاکره درخواست PDO، داده های 4 بایتی به ترتیب بایت اندک اندین در ثبت RDO (Request Data Object) نوشته می شود. به عنوان سابقample، برای درخواست PDO3 با ولتاژ 15 ولت و 3 آمپر، 0x3004B12C در رجیستر RDO نوشته می شود. در محیط python3 از موارد زیر استفاده کنید:
- SMBus.write_i2c_block_data(0x51, 0x30, [0x2c, 0xb1, 0x04, 0x30])
- لطفاً برای اطلاعات دقیق محتوای RDO به جدول 9 و جدول 10 راهنمای کاربر AP33772 Sink Controller EVB مراجعه کنید.
- کاربر می تواند با نوشتن ثبات RDO با داده های صفر، هارد ریست را صادر کند:
- SMBus.write_i2c_block_data(0x51, 0x30, [0x00, 0x00, 0x00, 0x00])
- کنترلر سینک AP33772 به حالت اولیه خود بازنشانی می شود و خروجی خاموش می شود.
مثال عملیamples
Example 1: Bash I2C-Tools Example: ap33772_querypdo.bash
این سابقample تمام PDO های معتبر را بررسی می کند و جلد را فهرست می کندtage و اطلاعات قابلیت فعلی خارج می شود.
جزئیات کد
اجرای کد و خروجی ها
Example 2: Python SMBus2 Example: ap33772_allpdo.py3
این سابقample تمام PDO های معتبر را بررسی می کند و آنها را یکی یکی به ترتیب بالا و پایین درخواست می کند.
جزئیات کد
اجرای کد و خروجی ها
Exampل کد دانلود
لیست سابقampکدهای
- Exampکدهای ل دارای نسخه های Bash Script و Python هستند
- ap33772_querypdo: تمام اطلاعات PDO را پرس و جو می کند
- ap33772_reqpdo: تمام اطلاعات PDO را گزارش می دهد و درخواست PDO مشخص شده توسط کاربر را ارسال می کند.
- ap33772_allpdo: تمام اطلاعات PDO را گزارش می دهد و تمام درخواست های PDO را به صورت بالا و پایین بررسی می کند.
- ap33772_pps: تمام اطلاعات PDO را گزارش می کند و rampکل جلد PPS را بالا و پایین کنیدtagمحدوده e در اندازه گام 50mV
- ap33772_vit: گزارش جلدtage، اطلاعات جریان و دما
Example سایت دانلود
Example کدها را می توان از Github دانلود کرد. دستور زیر را برای دانلود صادر کنید: git clone https://github.com/diodinciot/ap33772.git-ap33772
مراجع
- برگه داده AP33772 (کنترل کننده سینک USB PD3.0 PPS): https://www.diodes.com/products/power-management/ac-dc-converters/usb-pd-sink-controllers/
- AP33772 I2C Sink Controller EVB راهنمای کاربر: https://www.diodes.com/applications/ac-dc-chargers-and-adapters/usb-pd-sink-controller/
- Raspberry Pi Zero 2 W: https://www.raspberrypi.com/products/raspberry-pi-zero-2-w/
- سیستم عامل Raspberry Pi: https://www.raspberrypi.com/software/
- ابزار I2C-Tools: https://linuxhint.com/i2c-linux-utilities/
- ماژول SMBus2: https://smbus2.readthedocs.io/en/latest/
تاریخچه تجدید نظر
تجدید نظر | تاریخ صدور | نظر دهید | نویسنده |
1.0 | 4/15/2022 | انتشار اولیه | ادوارد ژائو |
اطلاعیه مهم
- دیودهای گنجانده شده هیچ گونه ضمانت نامه ای، صریح یا ضمنی، با توجه به این سند، شامل، اما نه محدود به، ضمانت های ضمنی قابلیت تجاری و خصوصیات ویژه (قابلیت تجاری و قیمت مناسب) ندارد. تحت قوانین هر حوزه قضایی).
- Diodes Incorporated و شرکتهای تابعه آن این حق را برای خود محفوظ میدارند که بدون اطلاع بیشتر در مورد این سند و هر محصولی که در اینجا توضیح داده شده است، تغییرات، بهبودها، بهبودها، اصلاحات یا سایر تغییرات را انجام دهند. Diodes Incorporated هیچ گونه مسئولیتی را که ناشی از کاربرد یا استفاده از این سند یا هر محصولی که در اینجا توضیح داده شده است، نمی پذیرد. نه Diodes Incorporated هیچ مجوزی را بر اساس حقوق ثبت اختراع یا علامت تجاری خود و همچنین حقوق دیگران ارائه نمی کند. هر مشتری یا کاربر این سند یا محصولاتی که در اینجا در چنین برنامههایی توضیح داده شده است، باید تمام خطرات این استفاده را بر عهده بگیرد و موافقت میکند که Diodes Incorporated و تمام شرکتهایی را که محصولاتشان در Diodes Incorporated نشان داده شده است، نگه دارد. webسایت، بی ضرر در برابر همه آسیب ها.
- Diodes Incorporated هیچ گونه مسئولیتی را در رابطه با محصولات خریداری شده از طریق کانال های فروش غیرمجاز تضمین نمی کند یا نمی پذیرد.
در صورت خرید یا استفاده مشتریان از محصولات Diodes Incorporated برای هر برنامه ناخواسته یا غیرمجاز، مشتریان باید دیودها را جبران کرده و نگه دارند. - Incorporated و نمایندگان آن در برابر کلیه ادعاها، خسارات، هزینه ها و هزینه های وکالت ناشی از هرگونه ادعای آسیب شخصی یا مرگ مرتبط با چنین درخواست ناخواسته یا غیرمجاز، به طور مستقیم یا غیرمستقیم، بی ضرر بودند.
- محصولات شرح داده شده در اینجا ممکن است تحت پوشش یک یا چند اختراع ایالات متحده، بین المللی یا خارجی در حال تعلیق قرار گیرند. نامهای محصول و علامتهای ذکر شده در اینجا نیز ممکن است تحت پوشش یک یا چند علامت تجاری ایالات متحده، بینالمللی یا خارجی باشد.
- این سند به زبان انگلیسی نوشته شده است اما ممکن است به چندین زبان برای مرجع ترجمه شود. فقط نسخه انگلیسی این سند فرمت نهایی و تعیین کننده است که توسط Diodes Incorporated منتشر شده است.
پشتیبانی از زندگی
- محصولات Diodes Incorporated به طور خاص برای استفاده به عنوان اجزای حیاتی در دستگاهها یا سیستمهای پشتیبانی حیات بدون تأیید صریح کتبی مدیر اجرایی Diodes Incorporated مجاز نیستند. همانطور که در اینجا استفاده می شود:
- A. دستگاه ها یا سیستم های پشتیبانی حیات دستگاه ها یا سیستم هایی هستند که:
- برای کاشت در بدن در نظر گرفته شده اند، یا
- به طور منطقی انتظار می رود که عملکرد آنها در صورت استفاده صحیح مطابق با دستورالعمل های استفاده ارائه شده در برچسب، منجر به آسیب جدی به کاربر شود.
- B. یک جزء حیاتی هر جزء در یک دستگاه یا سیستم پشتیبانی حیاتی است که به طور منطقی می توان انتظار داشت که عملکرد آن باعث از کار افتادن دستگاه پشتیبانی حیات یا بر ایمنی یا اثربخشی آن شود.
- مشتریان نشان میدهند که تمام تخصص لازم در زمینه ایمنی و پیامدهای نظارتی دستگاهها یا سیستمهای پشتیبانی حیات خود را دارند، و تصدیق و موافقت میکنند که تنها مسئول کلیه الزامات قانونی، نظارتی و ایمنی مربوط به محصولات خود و هرگونه استفاده از دیودها هستند. محصولات گنجانده شده در چنین دستگاهها یا سیستمهای حیاتی و حیاتی، صرفنظر از هرگونه اطلاعات یا پشتیبانی مربوط به دستگاهها یا سیستمها که ممکن است توسط Diodes Incorporated ارائه شود.
- علاوه بر این، مشتریان باید به طور کامل غرامت Diodes Incorporated و نمایندگان آن را در برابر هرگونه آسیب ناشی از استفاده از محصولات Diodes Incorporated در چنین دستگاهها یا سیستمهای حیاتی و حیاتی ایمنی جبران کنند.
- حق چاپ © 2017، Diodes Incorporated
- www.diodes.com
اسناد / منابع
![]() |
رابط DIODES AP33772 USB PD Sink Controller Raspberry Pi I2C [pdfراهنمای کاربر AP33772 USB PD Sink Controller Raspberry Pi I2C Interface, AP33772, USB PD Sink Controller Raspberry Pi I2C Interface, Raspberry Pi I2C Interface, Pi I2C Interface |