Я переглянув два способи, і у мультиплексування дійсно є лише одна перевага, що було б легше відстежити невдалий світлодіод, ніж у масиві Charlieplex.
Чи може хтось більш обізнаний пояснити будь-які інші компроміси?
Я переглянув два способи, і у мультиплексування дійсно є лише одна перевага, що було б легше відстежити невдалий світлодіод, ніж у масиві Charlieplex.
Чи може хтось більш обізнаний пояснити будь-які інші компроміси?
Відповіді:
Так, мультиплексування та шарліплексинг мають і свої переваги, і кожен найкраще підходить для різних завдань.
Основна перевага charlieplexing полягає в тому, що це можна зробити на мікроконтролері середнього розміру, приводячи більше світлодіодів із меншим розміром штифтів вводу / виводу, і, можливо, немає зовнішнього обладнання крім світлодіодів.
Тепер перевага "відсутність зовнішнього обладнання" застосовується лише до відносно невеликої кількості світлодіодів, до тих пір, поки ви не досягнете межі потоку мікроконтролера, і це накладе межу яскравості, якої не мають мультиплексовані масиви. Якщо ви вирішите не використовувати зовнішнє обладнання, ви, як правило, обмежуєтесь керуванням лише одним світлодіодом у матриці в будь-який момент - на відміну від мультиплексованого масиву, де ви одночасно ведете повний рядок.
Щойно ви додасте зовнішнє обладнання для управління світлодіодами з більшою яскравістю, що відповідає яскравості мультиплексованого масиву, шарліплекс втрачає блиск.
По-перше, мультиплексований масив адресовано строго по рядку та стовпцю; зробити це дуже просто. Увімкніть рядок 1, увімкніть усі стовпці для рядка 1, вимкніть рядок 2, увімкніть усі стовпці для рядка 2 тощо. Навпаки, масив, що має Чарліплекс, набагато менш простий. Завжди є діагональний рядок, який є марним, і я особисто використовую таблиці перегляду для співвідношення між моїми масивами та прямокутним масивом, де зберігаю свої дані.
По-друге, і вбивцею є те, що чарліплексування, як правило, вимагає водіїв три стану. Однак мультиплексування виконується із суворою бінарною логікою вимкнення. Якщо у вас мікроконтроллер з низьким числом контактів і хочете керувати великим масивом світлодіодів, використовувати керування зовнішніми логічними мікросхемами (наприклад, реєстр змін та / або драйвери світлодіодів) нескладно для управління як осями X, так і Y. Більшість мікросхем типу shift-register не підтримують тестування, необхідне для того ж, щоб зробити те ж саме у масиві, що має Чарліплекс. Виділені спеціалізовані драйвери charlieplexed доступні, але майже не такі універсальні.
По-третє, у масиві, що має Чарліплекс, кожен штифт, який щось не робить, все ще підключається до світлодіодів через слабкий ("високий опір") з'єднання. І хоча зв’язок слабкий, це ненульовий стан. Припустимо, у вас 25 штифтів вводу / виводу, підключених до сітки світлодіодів. Якщо ви підсвічуєте один світлодіод - беручи одну з цих 25 ліній у висоту і одну з цих 25 ліній низькою, це залишає 23 лінії з високим опором. Кожне місце, де висока лінія вводу / виводу проходить через світлодіод до нейтральної лінії, є певна можливість витікати струму. Не багато. Можливо, мікромпампа тут чи там. Але з сучасними, ефективними світлодіодами, цього досить часто, щоб створити видимий привид.
По-четверте, важче керувати яскравістю світлодіодів у масиві, що збільшується у чарлі. У мультиплексованому масиві ви можете використовувати будь-яку кількість загальнодоступних «потопаючих» світлодіодних мікросхем драйвера, що регулюють струм, які регулюють яскравість кожної колонки окремо, використовуючи поточне регулювання у поєднанні з драйвером ШІМ. У міру того, що місця розташування матриць з шарліплексовою формою адресовані окремо і використовують лише резистор на рядок чи стовпець, набагато складніше виконати корекцію яскравості крапки та повну анімацію сірого / кольорового кольорів у масиві, що відрізняється чарлі.
Найбільш істотним недоліком світильників "Charlieplexing" є те, що він обмежує кількість світлодіодів, які можна керувати "n'-way multiplexing" до n (n-1). Я не вважаю, що вимога до тривісного водія є великою проблемою з технікою в цілому. Безумовно, використання двох звичайних драйверів замість тривісного драйвера призведе до зменшення користі від CharliePlexing, але в деяких випадках переваги все ще можуть залишатися (наприклад, це може зменшити кількість провідних з'єднань між панеллю з драйверами та панеллю з фари або вимикачі).
Щодо перемикачів Charlieplexing, у статті Вікіпедії не згадується найбільший недолік: Charlieplexing не дозволяє контролеру пасивно чекати натискання кнопки. З іншого боку, він надто песимістично ставиться до вимог до компонентів. У 1997 році я створив пристрій, який сканує вісім кнопок за допомогою трьох штифтів вводу / виводу та одного штифта тільки для входу на PIC12C508, не потребуючи жодних зовнішніх діодів та інших компонентів, крім IIRC, підтягувача для штифта PIC, який не мати вбудований; підхід міг обробляти десять кнопок з додаванням ще одного підтягуючого резистора (для іншого штифта вводу / виводу, у якого його не було), але замовнику потрібно лише вісім кнопок, тому не було потреби.