История такая. Есть плата с PIC-контроллером, к ней подключен дисплей. Захотелось сменить его на побольше, благо опция в прошивке есть. Заказал у китайся программатор, вчера получил, накинул софт... До этого с PIC-контроллерами дела ни разу не имел, с другой стороны — та же фигня, что и другие, только сбоку. Это если в дебри не лезть.
Важный момент: дисплей подключается к коннектору для прошивки контроллера.\
Считываю прошивку, правлю параметры, заливаю. Всё верифицируется. Включаю. Дисплей мёртв, лишь помыргивает иногда, плата работает. Офигеваю, заливаю бэкап, подключаю старый дисплей -- не работает!
Офигеваю ещё больше, собираю стенд на ардуинке — оба дисплея живы.
Офигеваю ещё больше, закидываю в ардуинку скетч сканера i2c, смотрю на адреса дисплеев, смотрю константы прошивки... Вижу две большие разницы.
У меня 0x27, в документации прописано: «Плата расширения портов для дисплея 1602 выполненная на микросхеме PCF8574AT имеет адрес 7E, на микросхеме с индексом «Т» — 4Е.»
ё
Та-дам! Прописываю 0x27 в прошивку — не работает!
Хватаюсь за голову, лезу в гугль, на форум про этот девайс... Нахожу в теме (больше 450 страниц) изумительное «Запись в первую ячейку 4е соответствует 0x3f»...
Через какое-то время доходит, что всё нормально. Адрес для получения значения, которое вписывается в прошивку, нужно просто сдвинуть на разряд влево (умножить на два), получается те самые 0x4e из документации. Прописываю. Не работает!
С горя беру мультиметр, тыкаюсь в питание дисплея — 5В. Тыкаюсь в «землю» дисплея.... 5В, сцобако!!! Меняю шлейф -- неизменно превосходный результат, на земле дисплея 5В! Но контроллер же шьётся, сцобако!!! Потенциал на земляной ноге коннектора для прошивки — 0В. А вот сопротивление меж ней и земляными полигонами платы... Большое (нет контакта)!
Переворачиваю плату, беру фотик в режим макро (просто глазами мне такое сложно рассмотреть в деталях, но это уже другая тема), и что мы видим?
Та-дам!!!!
Земля — средний из пяти контактов в ряд. Далее проблема была решена в минуту. Достать паяльник, пропаять. Всё заработало.
Почувствовал себя персонажем старого анекдота.
вопрос: Сколько нужно программистов, чтобы заменить лампочку?
ответ: Ни одного. Это аппаратная проблема, программисты их не решают.