Рабочий и не рабочий варианты эмуляции, с исходниками и библиотеками - скачать
Помогите с запуском LCD 4x20 по i2c
Сообщений 61 страница 90 из 220
Поделиться622013-07-25 21:13:30
кстати, раз при передергивания питания значения выводятся иногда не корректно, то это наводит на мысль с проблемой временных задержек
когда запускается корректно дисплей, то дальше он не глючит, работает корректно?
возможно просто нужно либо первый запуск задержку поставить (в самом начале, возможно даже проблема в не успевании запуска контроллера самого дисплея (на грани))..поиграться надо с этим
Поделиться632013-07-26 08:12:58
Нашел детскую ошибку. Она есть в первой версии библиотеки и благополучно перекочевала в последующие.
Под рукой 4-строчного дисплея нет, проверял только на 2-строчном. В протеусе один 4-строчный и тот с другим протоколом - строки сбиваются. У кого есть возможность, проверьте на работоспособность и стабильность.
Исходники+эмуляция в протеусе.
Проверялось в железе с LCD 16*2, 20*2, 16*4, 20*4. В железе не работает, эмуляция в "Протеус" идёт на Ура! - скачать
Проверялось в железе с LCD 16*2, 20*2, 16*4, 20*4. В железе работает, эмуляция в "Протеус" не идёт! - скачать
Работает, но с глюками, сбиваются строки, через пару минут пропадает вывод символов, после передергивания питания, все повторяется.
Хронология на фото. Справа, внизу время.
Работает
Начало глючить
Пропал вывод символов
После передергивания питания
Отредактировано sasha_1973 (2013-07-26 09:22:36)
Поделиться642013-07-26 10:22:50
Вывод символов начинается при обрыве вывода "RS" LCD.
Эмуляция, библиотеки, исходники - скачать
Поделиться652013-07-31 00:28:07
Ранее я обещал выложить в тему фото моего индикатора LCD с тыловой стороны, дабы его можно было опознать и определить соответствие разводки ножек порта м/сх. PCF8574 к ножкам самого индикатора. Вот такой индикатор у меня. Только насчет светодиода, который между микросхемой и перемычкой отключения подсветки китайцы соврали. Нет его там. Похоже, что там перемычка стоит (на детали маркировка "0"):
Поделиться662013-07-31 02:32:34
Также проверено на v.2.0.7.3 , v.2.0.6.0
!!! Внимание !!!
В версии Bascom 2.0.7.6, при включенном таймере с делителем "1", наблюдаются сильные тормоза с выводом текста на LCD. В версии 2.0.7.1; 2.0.7.3; 2.0.7.5 - тормозов нет
Отредактировано sasha_1973 (2013-07-31 03:11:36)
Поделиться672013-07-31 02:34:01
Игорь, ну что, заработало?
Поделиться682013-07-31 02:47:00
Увы, Александр...
Гонит мусор на экран. И, похоже, я окончательно запутался с назначением пинов. Завтра уже буду смотреть.
Никак не пойму кто виноват. Или я, или индикатор.
Поделиться692013-07-31 02:52:47
Увы, Александр...
Гонит мусор на экран. И, похоже, я окончательно запутался с назначением пинов. Завтра уже буду смотреть.
Никак не пойму кто виноват. Или я, или индикатор.
RW на "-"
Остальные назначь в исходнике, как тебе нужно.
Config I2cdelay = 2 - задержка шины, поиграйся с ней, чем больше тем медленнее, у меня работает на 2 при частоте МК 8 Мгц, т.е. PCF8574 работает на частоте 4 Мгц, что больше паспортной в 8 раз, я использую микросхемы Филипс. Глюков не наблюдаю.
Поделиться702013-07-31 02:53:48
Скинь сюда свой исходник и схему подключения своего индикатора к PCF8574!
Отредактировано sasha_1973 (2013-07-31 03:00:21)
Поделиться712013-07-31 03:23:26
В архиве две папки, work и not_work
В каждой папке есть поддиректроии LIB с использованными в примерах библиотеками. В рабочем примере используется стандартная библиотека lcd_pcf8574.lib . В нерабочем - lcd_pcf8574_9.lib . В нерабочем примере около куска с назначением ног есть мой комментарий - как себя ведет индикатор. В корне папки - текстовый файл с распиновкой выводов PCF8574 - LCD
Поделиться722013-07-31 08:50:54
В архиве две папки, work и not_work
В каждой папке есть поддиректроии LIB с использованными в примерах библиотеками. В рабочем примере используется стандартная библиотека lcd_pcf8574.lib . В нерабочем - lcd_pcf8574_9.lib . В нерабочем примере около куска с назначением ног есть мой комментарий - как себя ведет индикатор. В корне папки - текстовый файл с распиновкой выводов PCF8574 - LCDСам архив
У тебя "Протеус" есть?
Поделиться732013-07-31 10:15:22
МК Atmega8A !!!
Схема, исходник, эмуляция, видео, прошивки (1, 4, 8, 16 МГц), - скачать
Все прошивки проверены в железе.
!!! Внимание !!!
Помни о фьюзе ( CKDIV8 ) - внутренний делитель на 8 ( для всех прошивок кроме 1 Мгц, должен быть выключен ).
Русскоязычный калькулятор фьюзов - здесь
МК Atmega328P (у меня есть только с буквой "P", они отличаются) !!!
Схема, исходник, эмуляция, видео, прошивки (1, 8, 16, 20 МГц), - скачать
Все прошивки проверены в железе.
Прочитай "! Читать.txt" !
Что не понятно спрашивай.
Отпишись о результатах!
Отредактировано sasha_1973 (2013-07-31 14:58:48)
Поделиться742013-07-31 15:29:55
У вас нога RW дисплея, как я понял, подключена к порту P1
Да, верно...
а E2 к порту P3
Е2 не задействована, на Р3 подключено управление подсветкой.
поэтому вам нужно так и выставить:
Const Pcf_rs = 0
Const Pcf_bl = 1
Const Pcf_e1 = 2
Const Pcf_e2 = 3
Const Pcf_d4 = 4
Const Pcf_d5 = 5
Const Pcf_d6 = 6
Const Pcf_d7 = 7
В такой конфигурации на индикаторе в 1 и 3 строках выводится мусор, мерцает подсветка.
При этом _backlight = 0 менять нельзя
Установлен ноль, значение переменной не меняю.
Лучше вообще отцепить вывод RW дисплея от схемы и повесить на землю. Тогда освободившийся порт P1 можно будет задействовать на подсветку.
Это надо платку i2c отпаивать и резать ей дорожки, поскольку на ней управление подсветкой идет через Р3. RW вчера пробовал мычкой на землю садить. Картинка не меняется.
У тебя "Протеус" есть?
Был до сноса Винды. Собираюсь переставить по новой.
!!! Внимание !!!Помни о фьюзе ( CKDIV8 ) - внутренний делитель на 8 ( для всех прошивок кроме 1 Мгц, должен быть выключен ).
У меня фьюзы не ставятся, это же Arduino. В нее по USB через её-же бутлоадер просто HEX льется и все.
Похоже, что все-таки кетайцы по своему сделали индикатор... Та либа, что у Александра не работала, у меня работает на ура, и подсветкой рулит без проблем. А новая заведомо рабочая библиотека не хочет работать.
Поделиться752013-07-31 15:33:13
Игорь, ты пробовал то, что я выложил?
Ножки переназначь в исходнике, так, как тебе надо!
Отредактировано sasha_1973 (2013-07-31 15:34:43)
Поделиться762013-07-31 16:17:04
Игорь, ты пробовал то, что я выложил?
Ножки переназначь в исходнике, так, как тебе надо!
Попробовал. Результат отрицательный. На индикаторе вообще ничего. Даже не почистился от предыдущей информации из рабочего исходника.
Ноги переназначал. То же самое.
Спасибо за видео, Александр!
Что-ж, буду пока работать с той библиотекой, которая у меня нормально рулит индикатором. Параллельно поищу и закажу себе заведомо рабочий индикатор. Тогда уже будет более понятна причина - мои руки, или все-таки сам LCD...
Поделиться772013-07-31 16:23:16
Я в шоке, специально проверил в железе на 4 разных LCD ( WH2004D-TMI-CT#, WH2004D-YGH-CT#, WH2004L-TMI-CT#, WH2004L-YGH-CT# ), распиновка та, что ты дал, всё работало!
Может у тебя индикатор которому надо одновременно Е1 и Е2, поговори с Сергеем Шиловым, у него есть библиотека под них, почитай - здесь
Отредактировано sasha_1973 (2013-07-31 16:24:15)
Поделиться782013-07-31 16:49:13
Я сам ничего не понимаю уже. Та библиотека, которая то не работала, то глючила у Вас, у меня совершенно нормально работает, а новая, проверенная и заведомо рабочая - у меня не работает. Я сам-то спец невеликий. Как уже писал ранее, опыта работы с контроллерами у меня практически нет. Пару недель назад первый раз в руки взял платку Arduino-вскую (по сути тот же контроллер, только с бут-лоадером и обвязкой). Может быть это играет свою роль... А может и действительно индикатор не человеческий. Другого LCD с i2c у меня нету. Параллельные есть, аж два. С ними проблем нет, работают нормально. Буду заказывать на Ebay еще один i2c-шный. А может и два закажу. Все равно рано или поздно в дело пойдут. У нас в городе такие индикаторы не продают. О чем говорить, если на весь город один магазин с детальём? Если конечно комнатёшку 5х4 метра можно магазином назвать... Придут индикаторы, станет понятно где ошибка.
Поделиться792013-07-31 16:54:17
Дело в том, что у меня идикаторы обычные - Ссылка, а PCF8574 на макетке стоит, а у тебя может какие-то особенные, заточенные под I2c?
Поделиться802013-07-31 17:12:25
Да, нет... В том-то и дело, что это обычный параллельный 16-ти выводной индикатор с напаянной ему на спину платкой с PCF8574. А вот уж как сама платка подключена по ногам индикатора - отдельный вопрос. Я за время поисков информации по i2c видел как минимум 4 варианта этих платок. Одна из них была даже с возможностью задания адреса для PCF8574. И на Ебее полно как индикаторов с такими платками, так и платы отдельно. Есть даже вот такой красавец (UART/I2C/SPI):
Поделиться812013-07-31 17:18:57
Блин, хоть стреляй, не могу понять, почему оно у тебя не работает!
Выводы переназначь, как тебе надо, адрес PCF8574 задается коммутацией на + или - (1, 2, 3 выводов микросхемы). Прошивок я тебе наделал на разные частоты, выбирай любую. В чем проблема?
Поделиться822013-07-31 17:22:05
А LCD у тебя, с поддержкой кирилицы?
У меня все прошивки выводят русский алфавит (если LCD не поддерживает кирилицу, на экране будет, абра-кадабра), правда и цифры есть в 4 строке.
Скажи какую прошивку сделать, я сделаю.
Кто не пробует, у того и не получается!
Отредактировано sasha_1973 (2013-07-31 17:29:47)
Поделиться832013-07-31 17:32:29
Блин, хоть стреляй, не могу понять, почему оно у тебя не работает!
Вот и у меня такая же реакция... 
Выводы переназначь, как тебе надо
Уж как только я их не переназначал...
адрес PCF8574 задается коммутацией на + или - (1, 2, 3 выводов микросхемы).
Ну, адрес трогать уже не стоит. LCD у меня явно работает на &H4E. Со старой либой он на этом адресе все исправно показывает (сейчас на нем крутится температура и влажность дома)
У меня все прошивки выводят русский алфавит, правда и цифры есть в 4 строке.
Поддржки русских букв в индикаторе нет, но я и по иероглифам вижу когда он работает. Тем более, что буквы с одинаковым начертанием не переназначаются, и я их вижу на нужных местах. Это не принципиально...
Кто не пробует, у того и не получается!
А куда я денусь... Рано, или поздно я его поборю 
Спасибо за поддержку и участие, Александр!!!
Поделиться842013-07-31 17:35:05
У тебя Atmega на какой частоте работает? И какая Atmega?
Поделиться852013-07-31 17:43:37
ATmega 328 на 16 Мгц.
Вот такая платка:

Поделиться862013-07-31 17:46:54
Atmega328 с буквой или нет? Это важно в компиляторе!!!
Поделиться872013-07-31 17:49:02
Переходи в личку, только обновляйся по чаще!
Поделиться882013-07-31 17:52:15
ATmega 328 P
ОК.
Да, не стоит мешаться в теме. Пошел в личку.
Если удобно, то можно и в аську...
Отредактировано ignel (2013-07-31 17:53:32)
Поделиться892013-07-31 20:07:23
Огромное спасибо Александру!
Благодаря его огромной помощи индикатор завелся и нормально работает.
Проблема была в том, что вывод RW не был притянут к земле. В общем - я сам виноват. D предыдущей версии библиотеки, с которой мой индикатор нормально работал, RW был ей задействован и участвовал в работе.
Саша, спасибо тебе за помощь!!!
Поделиться902013-07-31 22:51:12
В одном из исходников были вот такие строки:
'_lcd_e = 128 select E1, 64 select E2, 192 select both (for CLS or DefLCDChar etc.)
_lcd_e = 128 'Upper half of 4-line display is selected
Т.е. при "128" выбрана верхняя половина 4-строчного дисплея.
Поскольку дисплей у меня 4х20, указал обе половины.








