همه چیز درباره USB-C: مدارهای مثال

همه چیز درباره USB-C: مدارهای مثال

گره منبع: 2808350

در شش ماهی که پس از انتشار آخرین مقاله USB-C می گذرد، راه های زیادی برای بهبود این مقالات اندیشیده ام. البته داشتن چنین احساسی طبیعی است – حتی قابل انتظار. اکنون بر این باورم که چند شکاف وجود دارد که بتوانم آنها را پر کنم. به عنوان مثال، مدارهای مثال کافی ارائه نکرده ام، و گاهی اوقات یک شماتیک می تواند چیزها را بهتر از هزاران کلمه منتقل کند.

بیایید درستش کنیم! من شماتیک هایی را برای انواع دستگاه های USB-C که احتمالاً می خواهید بسازید به شما ارائه می دهم. من همچنین تعدادی از شماره‌های قطعه آی‌سی را در این مقاله به اشتراک می‌گذارم، اما البته مجموعه جامعی ندارم – اگر آی‌سی‌های جالب بیشتری پیدا کردید که برای مقاصد USB-C کار می‌کنند و در اینجا ذکر نشده‌اند، لطفاً این کار را انجام دهید. در نظرات به همه ما اطلاع دهید!

ما اولین نمونه مدار را دیدیم در مقاله اول - یک درگاه USB-C سمت دستگاه ("رو به بالا") که از USB 2.0 و برق 5 ولت پشتیبانی می کند. شما باید مقاومت های 5.1 K داشته باشید، یک مقاومت در هر پین، و به یاد داشته باشید که هر دو پایه داده را بپیوندید - در صورت لزوم از vias استفاده کنید. اگر می‌خواهید میزان جریان در دسترس خود را تعیین کنید، می‌توانید ADC یا مقایسه‌کننده‌ها را به هر دو پایه CC با هم متصل کنید، اگرچه اغلب، دستگاه شما به اندازه‌ای کم مصرف است که دلیلی برای اذیت کردن وجود ندارد.

حالا اگر می خواهید دستگاهی با دوشاخه USB-C بسازید، سیم کشی آن یکسان است. تنها تفاوت این است که شما فقط باید یکی از کشش های CC را پر کنید و به جای هر دو جفت، یک جفت پین D+/D- را سیم کشی کنید. اگر دومین جفت پین USB 2.0 را سیم کشی کنید، در عمل هیچ اتفاق بدی نمی افتد، این فقط از نظر استاندارد نادرست است. قبلاً با نوع خاصی از پورت‌ها و کابل‌ها (VirtualLink) که دیگر فروخته نمی‌شوند در تضاد بود.

با این حال، اگر 5.1 K pull-down را به هر دو پین CC متصل کنید، به طور تصادفی یک وسیله جانبی هکر می‌سازید: یک آداپتور حالت اشکال زدایی، چیزی که به شما کمک می‌کند سیگنال‌های اضافی را از برخی درگاه‌های USB-C دریافت کنید. به عنوان مثال، در لپ‌تاپ Framework، یک برد مجهز به دوشاخه USB-C با هر دو حالت کششی، یک پورت USB-C را به حالت اشکال‌زدایی تغییر می‌دهد و اتصال EC UART را روی پین‌های SBU آشکار می‌کند. مگر اینکه شما چنین لوازم جانبی اشکال زدایی را بسازید، فقط باید یکی از کشویی ها را پر کنید و پین های داده USB 2.0 را متناسب با آن سیم کشی کنید.

Flipside به همین راحتی

اگر بخواهید یک پورت میزبان بسازید چه؟ از یک طرف، آسان‌تر است، زیرا لزوماً نیازی به اندازه‌گیری ADC ندارید. در عوض، شما pull-ups، مقدار متفاوتی را برای مقادیر مختلف جریان موجود اضافه می‌کنید. همه دستگاه‌ها وجود pull-up را بررسی نمی‌کنند، اما تلفن‌ها این کار را انجام می‌دهند، بنابراین اگر یک شارژر موقت USB-C می‌سازید، ممکن است تلفن یا لپ‌تاپ آن را به‌عنوان یک روش معتبر برای شارژ تشخیص ندهد، اگر آن را ندارید. -بالاها اضافه کردن آنها نیز هزینه زیادی ندارد!

12 V 4 A حداکثر P-FET سطح منطقی - IRLML6401/CJ2305/etc، این مدار را دو بار تکرار کنید

مهمتر از آن، ممکن است بخواهید VBUS را کنترل کنید، فقط پس از اینکه یک pull-down در یکی از پین‌های CC شناسایی کردید، آن را روشن کنید. اگر این کار را نکنید، لزوماً مشکلی نخواهید داشت، اما برخی از لبه‌های مهم را پوشش می‌دهد، مانند کسی که یک کابل USB-A به USB-C را به پورت شما وصل می‌کند!

من هرگز این مدار را انجام نداده‌ام، اما آن‌طور که می‌بینم، استفاده از دو FET، یکی در هر پایه CC، هر دو به صورت موازی کافی است. این مدار ممکن است دارای لبه‌هایی باشد - از پیشرفت‌ها استقبال می‌شود! از طرف دیگر، من چند بار از درگاه‌های USB-C مجهز به پایین‌کش به‌عنوان پورت میزبان استفاده کرده‌ام، بنابراین قطعاً نیاز سختی نیست، و همیشه نیازی نیست که مجموعه FET خود را بشکنید.

در مجموع، اگر در حال ساخت یک پورت میزبان هستید، دو کار وجود دارد که می‌خواهید انجام دهید و هیچ یک از این دو کاملاً ضروری نیستند. همچنین، اگر می‌خواهید مدارها را پیچیده‌تر کنید، یا شاید حتی یک پورت دو نقشه را انجام دهید، آی‌سی‌هایی وجود دارند که در این بخش از USB-C به شما کمک می‌کنند!

به عنوان مثال، بگیرید WUSB3801. این دستگاه از تشخیص منبع و سینک مراقبت می کند، تمام وسایل کششی و کششی مورد نیاز را در داخل دارد و حتی می تواند پورت های دو نقشه را انجام دهد که به شما امکان می دهد هر نوع پورت برق 5 ولتی بسازید. این می تواند وضعیت پورت را با چند GPIO خروجی بگیرد یا می توانید آن را از طریق I2C به میکروکنترلر خود متصل کنید و حتی یک پین ID دارد تا بتوانید از آن برای جایگزینی کامل یک پورت MicroUSB با یک USB-C استفاده کنید! WUSB3801 به اندازه کافی کوچک، به اندازه کافی قابل لحیم کاری و همچنین به اندازه کافی همه کاره است. برای مثال، در سرور Hackaday Discord، شخصی یک مدار WUSB3801 ساخته است که جریان شارژر Li-ion را بر اساس اینکه آیا پورت USB-C متصل می تواند 3 آمپر را تامین کند یا خیر، محدود می کند.

چه بخواهید یک پورت منبع بسازید، یک پورت سینک یا حتی پورتی که بتواند هر دو را انجام دهد، WUSB301 (یا هر یک از آی سی های مشابه مانند TUSB320) راه حل روز شما خواهد بود. یک شکایتی که من نسبت به WUSB3801 دارم این است که GPIO برای تعیین قطبیت پورت وصل شده در حال حاضر ارائه نمی دهد - برای این کار باید از رابط I2C استفاده کنید. حالا چرا باید قطبیت پورت را بدانید؟ رابط‌های پرسرعت دلیل این امر هستند و رابط USB 3.0 قطعاً یک پایه اصلی USB-C است، البته فقط به این دلیل که پیاده‌سازی آن آسان است.

سرعت بالا، قیمت پایین

ساخت یک دستگاه USB 3.0 با دوشاخه USB-C به آسانی ساخت یک دستگاه USB 2.0 با دوشاخه USB-C است. USB 3.0 دارای دو جفت اختلاف پرسرعت به آن اضافه شده است و یک کانکتور USB-C دارای نقاطی برای چهار تفاوت است. با استفاده از دوشاخه، USB 3.0 SSRX خود را به USB-C RX1، USB 3.0 SSTX به USB-C TX1 متصل می‌کنید، CC1 را به سمت پایین باز می‌کنید و کارتان تمام است. هیچ جزء اضافی به غیر از خازن های سری وجود ندارد که پیوند USB 3.0 شما ممکن است به آن نیاز داشته باشد، و اینها با یک پیاده سازی معمولی تفاوتی ندارند.

اکنون، به همین دلیل است که بسیاری از فلش مموری‌های USB را می‌بینید که از یک پلاگین USB-C استفاده می‌کنند – اضافه کردن آن به همین راحتی است، نیازی به کشف پین‌های CC، اضافه کردن اجزای اضافی یا موارد مشابه ندارید. شما do با این حال، اگر می‌خواهید یک سوکت USB-C با پشتیبانی از USB 3.0 اضافه کنید، باید اجزای اضافی اضافه کنید. تصور کنید فلش درایو USB 3.0 USB-C خود را به یک سوکت USB-C وصل کنید، بسته به اینکه آن را به چه سمتی بچرخانید، پین ها در یکی از دو موقعیت قرار می گیرند. شما نمی‌خواهید پین‌های TX/RX سوکت را به هم وصل کنید، این یک مشکل اصلی یکپارچگی سیگنال خواهد بود، بنابراین اگر یک سوکت USB-C با پشتیبانی از USB 3.0 اضافه می‌کنید، به یک mux برای کنترل سرعت بالا نیاز دارید. چرخش سیگنال

اینها، تا به حال، یک نوع آزمایش شده و واقعی از تراشه USB-C هستند - شما این تراشه ها را از حداقل ده ها سازنده مختلف پیدا خواهید کرد. اگر چند آی سی پیدا کنید که پین ​​اوت یکسانی دارند، مشکل کمبود تراشه برای شما خواهد بود. برخی از موکس ها دارای ورودی POL هستند تا سیگنال USB 3.0 شما را به صورت دستی به دو موقعیت ممکن سوئیچ کنند - اینها قرار است همراه با کنترلر PD خود استفاده شوند، یعنی تراشه ای که پین ​​های CC را کنترل می کند. بسیاری از موکس ها نیز حاوی منطق CC هستند و اساساً راه حل کاملی برای USB-C با قابلیت USB 5 و USB 3.0 ارائه می دهند. اگر در حال ساخت یک هاست هستید، ممکن است فقط نیاز به اضافه کردن VBUS Handling داشته باشید، و اگر در حال ساخت دستگاهی با سوکت USB-C هستید، به هیچ چیز دیگری نیاز ندارید!

چنین مشکلی نحوه عملکرد بسیاری از پورت‌های USB-C ارزان روی لپ‌تاپ‌ها است – آن‌ها فقط USB 2.0 را ارائه می‌کنند، هیچ چیز دیگری، و با توجه به اینکه پیاده‌سازی آن چقدر آسان است، منطقی است که بسیاری از تولیدکنندگان لپ‌تاپ ارزان به این موضوع پایبند بوده‌اند. علاوه بر این، در صورت داشتن یک پورت USB 3.0 حتی می‌توانید در صورت تمایل، mux را حذف کنید. ما این کار را روی مادربردهای دسکتاپ دیده‌ایم، و به طرز خنده‌داری، این است نحوه اتصال هر دو پورت USB-C در MNT Pocket Reform، هم! منطقی است، هاب USB 3.0 داخلی برد Pocket Reform دارای چهار پورت رایگان است، اما تنها دو پورت USB-C وجود دارد که می توانید USB 3.0 را روی آن قرار دهید. به اندازه کافی خوب کار می کند و اگر کسی بخواهد از این دو پورت USB 3.0 اضافی استفاده کند، فقط باید یک آداپتور غیرفعال طراحی کنید!

یکی از این دو پورت USB-C در Pocket Reform خاص است، مانند پورت اول فقط ریل 5 ولت را به VBUS متصل نمی کند. در عوض، دارای یک آی سی سوئیچ برق است که به VBUS سیم کشی شده است، و یک FUSB302B که به پایه های CC سیم کشی شده است. این پورت شارژر Pocket Reform است، و در واقع، این یکی از راه‌هایی است که می‌توانید تحویل برق را به کار بگیرید.

ولت ها و پیکسل های خود را دریافت کنید

تمام گزینه هایی که قبلاً در مورد آنها صحبت کردیم، تا 15 وات برق را پشتیبانی می کنند، به طور خاص، 5 ولت در 3 A. البته ولتاژهای بالاتر نیز پشتیبانی می شوند. شما فقط باید PD صحبت کنید، یا شاید، اجازه دهید یک تراشه دوستانه به جای شما صحبت کند.

این تراشه های دوستانه، همانطور که ممکن است حدس بزنید، آی سی های ماشه PD هستند. آنها را به پین‌های CC متصل می‌کنید، و آنها از طرف شما در مورد مشخصات برق مذاکره می‌کنند. آنها دارای چند ورودی هستند که به شما امکان می دهند ولتاژ مورد نظر را تنظیم کنید و در صورت تمایل یک خروجی درایور FET برای قطع VBUS در صورتی که PSU نتواند ولتاژ مورد نیاز شما را تامین کند، اطمینان حاصل کنید که 5 ولت پیش فرض را در ریل برق دریافت نمی کنید. جایی که به 20 ولت نیاز دارید.

ما می توانیم در مورد تراشه های ماشه زیاد صحبت کنیم، بسیاری از افراد دیگر انجام می دهند, و من هم حتما دارم. در واقع، این گزینه ای است که مردم در صورت نیاز به ولتاژ بالا از پورت USB-C، اکثرا آن را انتخاب می کنند. آنها برای اکثر موارد استفاده عالی هستند، و به احتمال زیاد شما می خواهید به یکی برسید. با این حال، توجه داشته باشید، رفتار آنها انعطاف ناپذیر است: آنها به شما اجازه نمی دهند یک پورت دو منظوره بسازید، و به شما اجازه نمی دهند بین PSU USB-C 30 واتی و 100 وات تمایز قائل شوید، که به شما کمک می کند بار مقاومتی را می‌رانید. همچنین نمی‌توانید آن‌ها را با USB 3.0 یا DisplayPort ترکیب کنید زیرا خروجی قطبی ندارند و به شما اجازه ارسال پیام‌های سفارشی را نمی‌دهند.

یک کنترلر PD به شما امکان می دهد کارهای بیشتری انجام دهید! چه از یک کنترلر PD خارجی مانند FUSB302B استفاده کنید یا شاید یک کنترلر PD که در MCU خود تعبیه شده است، به شما امکان می دهد تصمیمات ارتباطی PD خود را بگیرید. تمام مقاومت‌هایی که ممکن است بخواهید را دارد، و احتمالاً کد نمونه‌ای را برای هر کاری که نیاز دارید پیدا کنید. ما قبلاً از طریق ساخت پیام PD سفارشی، هم برای قدرت و هم برای عملکرد سینک DisplayPort، گذرانده‌ایم. در برخی مواقع ما حتی PSU USB-C خود را با FUSB302B خواهیم ساخت، پس با ما همراه باشید! وقتی صحبت از MCU می شود، میکروکنترلرهای معروف STM32 و Cypress با تجهیزات جانبی PD وجود دارد و اخیراً CH32X035 وارد صحنه شده است.

کنترلر PD خود شما همچنین به شما امکان می دهد پیام های DisplayPort را ارسال کنید - خروجی DisplayPort را از هر پورت سازگار استخراج کنید یا شاید به تنهایی DisplayPort را ارائه دهید. از یک دوشاخه USB-C استفاده کنید و نیازی به mux ندارید، یا از سوکت استفاده کنید و یک موکس سازگار با DisplayPort اضافه کنید - به شما امکان می دهد DisplayPort دو خطی و USB 3.0 را به طور همزمان یا DisplayPort چهار خطی را استخراج کنید، هر کدام که می خواهید. . یا، می توانید از یک سوکت DisplayPort استفاده کنید، mux را حذف کنید، و فقط پورت خود را در یک جهت کار کنید - این فروشنده eDP چینی می تواند تایید کند!

دفعه بعد، عملکرد داخلی یک PSU USB-C را بررسی می کنیم، سپس یک PSU 20 ولتی را به یک منبع USB-C با پشتیبانی 20 ولت تبدیل می کنیم. ما فقط به FUSB302، چند FET و یک رگولاتور 5 ولتی اضافی نیاز داریم. این کار به تعداد زیادی از ما نیاز ندارد، شما می توانید منابع تغذیه قدیمی خود را به شارژ لپ تاپ USB-C تبدیل کنید، و همچنین اطلاعاتی در مورد نحوه عملکرد یک PSU USB-C دریافت خواهید کرد!

تمبر زمان:

بیشتر از هک یک روز