FT230X: функція виявлення зарядного пристрою
Багато хто знає мікросхему FT232RL, її застосовують як міст USB-UART. Але у неї є молодша сестра FT230X, яка не тільки дешевше, але і має цікаву функцію виявлення USB-зарядного пристрою. І один зацікавився нею товариш під ніком Baoshi провів дослідження в цій області, оскільки хотів, щоб його новий пристрій харчувалося від USB і / або від акумулятора.
Проектування пристрою з живленням від USB не тривіальне завдання, тому що:
1. Якщо пристрій потребує понад 100 мА струму, воно зможе отримати цей струм тільки після запиту хоста під час ініціалізації USB. Деякі USB-хости в змозі забезпечити максимум 100 мА. Тому пристрій повинен бути досить розумно для того, щоб вміти визначати тип хоста.
2. Слід враховувати обмеження струму в сплячому режимі.
3. Якщо хочеться, щоб пристрій працював автономно без ПК, то воно повинно бути здатне отримувати живлення від «тупих» хостів, таких як USB-зарядникі.
Положення 3 конфліктує з положеннями 1 і 2, тому що USB-зарядник не може бути ініціалізованим першим і не передбачає сплячого режиму. Ось чому функція визначення USB-ЗУ в мікросхемі FT230XS так цікава. Але необхідні випробування ...
Згідно з документацією FT230XS підтримує виявлення зарядника, відповідного специфікації USB BC1.2. Але багато USB-зарядникі (і зокрема зарядникі Apple) не сумісні з BC1.2. І в документації не сказано, чи зможе FT230XS виявити їх.
На папері все виглядає легко, але на ділі не все так просто. Справа в тому, що специфікація для USB-зарядки була випущена занадто пізно, і виробники винайшли свої власні протоколи зарядки, а саме:
1. Apple розробила протокол зарядки ще за часів iPod. Можливості зарядного пристрою визначаються по напрузі на лініях D + і D- наступним чином: 1) (D +, D-) = (2.0 В, 2.0 В) -> 500 мА (зарядник iPod) 2) (D +, D-) = (2.8 В, 2.0 В) -> 1 А (зарядник iPhone) 3) (D +, D-) = (2.0 В, 2.8 В) -> 2 А (зарядник iPad)
FT230XS досить проста у використанні. Baoshi зробив плату для тестування (на зображенні нижче). Контактор був узятий з USB-роз'єму і приклеєний до плати. Тестована мікросхема FT230XS, Rev D, код 1243.
Також були підключені 3 світлодіода до висновків CBUS. Колірна конфігурація наступна:
- Жовтий - BCD #, повинен загорятися, коли ЗУ виявлено
- Червоний - PWEN #, вказує, що необхідна потужність встановлена
- Зелений - SLEEP #, повинен загорятися при переході USB в сплячий режим.
Чіп програмується за допомогою офіційної утиліти FT_Prog. Необхідна потужність встановлена на 500 мА. І результати вийшли наступними.
Тестування з USB портом ПК
Сценарій 1. Підключаємо до USB-порту комп`ютера, що працює. Загоряється зелений світлодіод (SLEEP #), потім все діоди знаходяться у відключеному стані. Windows починає шукати драйвер. Коли Windows починає завантажувати драйвер через Windows Update, спалахує червоний світлодіод (PWEN #). Він продовжує горіти після установки драйвера.
Сценарій 2. Якщо підключено FT230XS переводимо Windows в режим сну: червоний світлодіод (PWEN #) відключається, а зелений (SLEEP #) загоряється
Сценарій 3. Перезавантажуємо Windows: зелений гасне, червоний загоряється, що підтверджує активацію джерела живлення
Сценарій 4. Відключаємо FT230XS, переводимо Windows в режим сну, і знову підключаємо FT230XS: червоний вимикається, зелений загоряється, що вказує на знаходження в режимі сну
Сценарій 5. FT230XS залишається підключеною, вимикаємо ПК: зелений світлодіод продовжує горіти, повідомляючи про знаходження в режимі сну
Сценарій 6. Від'єднуємо FT230XS, вимикаємо ПК, підключаємо FT230XS назад: зелений світлодіод горить, значить маємо режим сну
Тестування з USB ПК через USB-хаб з автономним живленням
Те ж що і в попередньому випадку.
Тестування з USB ПК через USB-хаб з харчуванням від шини
Сценарій 1. З'єднуємо з хабом: зелений горить, все решта відключені, Windows показує наступне повідомлення. Всі світлодіоди вимкнені. Це показує, що Windows не вдалося налаштувати пристрій, так як порт USB не може забезпечити достатній струм (500 мА).
Сценарій 2. Якщо підключено FT230XS переводимо Windows в режим сну: зелений світлодіод загоряється, що і доводить перебування в режимі сну
Сценарій 3. Перезавантажуємо Windows: всі світлодіоди вимкнені.
Сценарій 4. Від'єднуємо FT230XS, переводимо Windows в режим сну, знову приєднуємо FT230XS: зелений світлодіод горить, значить сплячий режим
Сценарій 5. Якщо підключено FT230XS, вимикаємо ПК: зелений світлодіод горить, значить сплячий режим
Сценарій 6. Від'єднуємо FT230XS, вимикаємо ПК, підключаємо FT230XS назад: зелений світлодіод горить, значить сплячий режим
Тестування з USB-зарядником
На малюнку нижче показані 4 зарядника, над якими проводилися досліди.
Сценарій A. Під'єднуємо FT230XS до USB-адаптера живлення від маршрутизатора TPLink (D + / D- закорочені). Загоряється жовтий світлодіод (BCD #), значить, що зарядний пристрій виявлено.
Сценарій B. Під'єднуємо FT230XS до USB-адаптера живлення від Amazon Kindle (D + / D- закорочені). Загоряється жовтий світлодіод (BCD #), зарядний пристрій виявлено.
Сценарій C. Під'єднуємо FT230XS до ЗУ від Apple iPhone (5В / 1А). Загоряється жовтий світлодіод (BCD #), зарядний пристрій виявлено.
Сценарій D. Під'єднуємо FT230XS до ЗУ від Apple iPad (5В / 2А). Загоряється зелений світлодіод (SLEEP #), що говорить про режим сну.
Сценарій E. Для симуляції підключення мікросхеми до зарядник від Apple iPod на FT230XS було подано 5 В харчування і 2 В на лінії D + / D- через дільник напруги. Загоряється зелений світлодіод (SLEEP #), режим сну.
Сценарій F. З'єднуємо FT230XS з харчуванням 5 В (D +, D- висять). Загоряється зелений світлодіод (SLEEP #), режим сну.
Результати експериментів об'єднані в одній таблиці:
У підсумку можна сказати, що для включення живлення пристрою можна було б використовувати PWEN або BCD, а для переходу в режим сну SLEEP. Однак така логіка роботи не може бути застосована для зарядников iPad, iPod і для «тупого» USB-порту, тому що FT230XS не в змозі відрізнити їх від USB-хаба з живленням від шини.