Comments 46
i2cdetect -l
i2c-1 i2c mga i2c I2C adapter
i2c-0 smbus SMBus I801 adapter at 0400 SMBus adapter
Как вариант, а вообще только с доками на материнскую плату. На своей я эмпирическим путём. Ещё можно ID устройств считывать и гуглить что это там висит
Только осторожнее записывайте в них https://habr.com/ru/post/413099/
Кстати да, чтение SPD оперативки, вроде, довольно типичный пример применения видимых в системе I2C-интерфейсов.
Я как-то писал программу для обновления прошивки (не EDID, а именно полной прошивки) монитора по обычному подключению VGA через I2C шину. Там вообще много чего можно сделать такого, в том числе и деструктивного.
Поддерживают ли какие-нибудь мониторы переключение источника сигнала по I2C?
Было бы здорово переключаться между виртуалкой с пробросанным GPU и хостом по горячей клавише.
UPD: можно. Нужно было ветку до конца читать.
Для сервисных центров в свое время были программы от брендов для коррекции дефектов изображения мониторов. Подключались через адаптер от COM порта к VGA. Например SOFTJIG PROGRAM FOR WINDOWS95, winDDC, EDID Editor ViewSonic
Коррекцию тоже представляю, но это не так деструктивно как стереть прошивку и окирпичить тем монитор. К вопросу о том, могут ли вирусы убивать железо.
Эти утилиты (как минимум несколько) позволяли считывать и записывать всю прошивку монитора. Мастер мог затереть текущую прошивку заводской и при дефолтных значениях диагностировать дефект. Если сама перепрошивка не устранила проблему.
Ниже уже упомянули DDC, но вскользь. А я недавно был очень удивлён, когда полез гуглить, что же это за загадочный пункт "DDC/CI: Enable" в меню моего монитора. Оказывается, давно есть стандарт, чтобы управлять монитором с компьютера: поставил ddcutil
из репозитория -- и можно, например, регулировать яркость по HDMI. Ну или видеовход на мониторе на VGA переключить (но это уже попахивает настройкой фаервола по ssh).
В отличие от фаерволла вы можете переключить входящий сигнал и кнопочками из меню монитора.
Это очень удобно если у вас несколько источников сигнала для монитора.
Например два монитора, к которым подключены ноут и десктоп, и kvm-свитч, который у еет переключать мышь с клавиатурой, но только один монитор.
Второй придётся переключать руками в меню монитора или вот такими командами. Их и из-под винды можно отдавать.
Это только с Linux работает, или на W тоже можно?
Вот бы еще пример, как из-под винды к данной шине обращаться.
Думаю если сильно приспичит то можно пореверпсить, в поисках того как она это делает.
Вот примерчики бы на эти функции где тон найти ... https://learn.microsoft.com/en-us/windows-hardware/drivers/display/i2c-bus-and-child-devices-of-the-display-adapter Или надо свой драйвер видеоадаптера под это сочинять?
Как же воняет тот код с GitHub! Надеюсь, его в таком виде не используют.
дисплей живёт по адресу
0x27
(справедливости ради — это0x4E
, но не будем путать людей).
Почему 0x4e? Согласно спецификации, адрес - это 7 бит, следующих за условием СТАРТ, и в данном случае это именно 0x27. Очень часто почему-то указывают сдвинутый влево адрес вместе битом с направления передачи, это неправильно, это действительно часто путает и приходится пробовать 2 варианта, если недоступен даташит.
Спасибо!
Прикольная штука. Только, вроде, VGA разъем уже мало где есть?
Но ведь можно передавать через i2c какое-нибудь небольшое разрешение (типа 320x200) и выводить, получается, нормальную VGA картинку... Пусть и с низкой частотой... (задумался)
Отличная статья! Интересно попробовать будет, и не только такой дисплей подключить. Навскидку есть дома модули АЦП и OLED дисплеи...
Где можно купить такой экран?
Простите за такое капитанство, просто откровенную рекламу делать не хочу.
Вообще есть специализированные чипы преобразователи интерфейсов. Тыкаешь его в usb , а на выходе получаешь com, i2c, spi, итд не помню точно названия но это что то из разряда ftdi. Такой чип например используется в дебагере для esp32
"12:11" Что то пошло не так. Надо изучать PTP. :-)
Более чем неожиданно!
Подключаем алфавитно-цифровой экран к VGA