senyor_pomidor |
|
 |
|
|
|
|
|
Пункты: 914 |
Регистрация: 12.09.2024 |
Пол: Мужчина |
|
|
Здравствуйте! Появилась необходимость ручного управления включением-выключением сигналов LVDS-интерфейса.
Я использую дисплей с режимом dual-lvds, у которого есть определенный порядок включения - сначала подается питание, после чего дисплей становится готов принимать сигналы LVDS. Сейчас ситуация такая, что до момента запуска некоторой программы дисплей не запитан, а синал уже идет. Далее, питание подается мной в момент запуска программы (для управления питанием использую один из выводов GPIO). А вот как управлять LVDS, чтобы можно было в нужном порядке программно заниматься включением\выключением передачи сигнала, я информации не нашел.
К слову, при любом другом порядке включения дисплей не выводит изображение.
Версия Buildroot - 2022.08.7 |
Лучший ответ это тот, который случился раньше вопроса |
|
|
|
|
Pavel Ivanchenko |
|
 |
Admin |
|
|
|
|
Пункты: 95124 |
Регистрация: 24.03.2009 |
Пол: Мужчина |
|
|
Ваш вопрос является наглядной иллюстрацией к ответу "почему такой малый срок гарантии на изделия?".
В 99,9999% случаев входные буфера микросхем защищаются внутри диодами (если потенциал на порту выше питания, он уходит на питание, если потенциал отрицательный - уходит на землю). В вашем случае (контроллер экрана включается позже всей системы) порты контроллера экрана устраивают КЗ на землю для всех подключаемых к нему линий!!!
И вместо того, чтобы нормально синхронизировать питание контроллера экрана и ввести управление подсветкой (чтобы не было "мусора") - пытаетесь "натянуть сову на глобус"!
Если отвечать теоретически:
1) нужно в загрузчике отключить от периферии и перестроить все подключаемые порты на GPIO и перевести их в режим входа
2) в ядре linux не дать драйверу перевести порты в LVDS режим, а потом самому через юзерспейс их переключить в LVDS режим.
Я даже не представляю как корректно можно такое проделать, кроме как напрямую писать в регистры управления через devmem - но за такое нужно бить и не только по рукам!!!
Если отвечать практически - интегрируйте нормально экран в систему питания (его БП запускается при появлении 3,3В с модуля) и управление подсветкой через MOSFET транзистор (с управлением LVTTL уровнем - IRLML2402) на любой GPIO, что позволить включать экран в нужный момент. Это выйдет в разы проще и в десяток раз надежней (в момент N-ого обновления системы, у вас вдруг похерится весь выкрутас с переключением портов и вдруг изделия начнут тихонечко вымирать и первым делом возникнет претензия "а вот в предыдущих партиях у нас такого не было!"). |
|
|
|
|
|
|