Администрация форума не несёт ответственности за достоверность информации и оставляет за собой право редактировать или в особых случаях даже удалять посты без предупреждения. Спасибо за понимание.

Программирование ATMEL в BASCOM.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Программирование ATMEL в BASCOM. » Исходники » Помогите с запуском LCD 4x20 по i2c


Помогите с запуском LCD 4x20 по i2c

Сообщений 61 страница 90 из 162

61

Рабочий и не рабочий варианты эмуляции, с исходниками и библиотеками - скачать

+1

62

кстати, раз при передергивания питания значения выводятся иногда не корректно, то это наводит на мысль с проблемой временных задержек
когда запускается корректно дисплей, то дальше он не глючит, работает корректно?
возможно просто нужно либо первый запуск задержку поставить (в самом начале, возможно даже проблема в не успевании запуска контроллера самого дисплея (на грани))..поиграться надо с этим

0

63

Mrshilov написал(а):

Нашел детскую ошибку. Она есть в первой версии библиотеки и благополучно перекочевала в последующие.
Под рукой 4-строчного дисплея нет, проверял только на 2-строчном. В протеусе один 4-строчный и тот с другим протоколом - строки сбиваются. У кого есть возможность, проверьте на работоспособность и стабильность.
Исходники+эмуляция в протеусе.

Проверялось в железе с LCD 16*2, 20*2, 16*4, 20*4. В железе не работает, эмуляция в "Протеус" идёт на Ура! - скачать

http://s4.uploads.ru/t/qswJx.jpg
http://s4.uploads.ru/t/apzk8.jpg

LCD 16x2
http://s5.uploads.ru/t/lqpLx.jpg
LCD 20x4
http://s4.uploads.ru/t/5dyfm.jpg


Проверялось в железе с LCD 16*2, 20*2, 16*4, 20*4. В железе работает, эмуляция в "Протеус" не идёт! - скачать
Работает, но с глюками, сбиваются строки, через пару минут пропадает вывод символов, после передергивания питания, все повторяется.

Хронология на фото. Справа, внизу время.

Работает
http://s4.uploads.ru/t/u2dTg.jpg
Начало глючить
http://s4.uploads.ru/t/UmsvZ.jpg
Пропал вывод символов
http://s4.uploads.ru/t/B6f7q.jpg
После передергивания питания
http://s5.uploads.ru/t/VruCe.jpg

Отредактировано sasha_1973 (2013-07-26 09:22:36)

0

64

Вывод символов начинается при обрыве вывода "RS" LCD.

Эмуляция, библиотеки, исходники - скачать

Вывод "RS", подключен.
http://s5.uploads.ru/t/p7fd0.jpg
http://s5.uploads.ru/t/XrxbH.jpg

Вывод "RS", отключен.
http://s5.uploads.ru/t/jOJB5.jpg
http://s4.uploads.ru/t/4fvsh.jpg

0

65

Ранее я обещал выложить в тему фото моего индикатора LCD с тыловой стороны, дабы его можно было опознать и определить соответствие разводки ножек порта м/сх. PCF8574 к ножкам самого индикатора. Вот такой индикатор у меня. Только насчет светодиода, который между микросхемой и перемычкой отключения подсветки китайцы соврали. Нет его там. Похоже, что там перемычка стоит (на детали маркировка "0"):
http://s5.uploads.ru/t/d0cWu.jpg

0

66

Также проверено на 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)

0

67

Игорь, ну что, заработало?

0

68

Увы, Александр...
Гонит мусор на экран. И, похоже, я окончательно запутался с назначением пинов. Завтра уже буду смотреть.
Никак не пойму кто виноват. Или я, или индикатор.

0

69

ignel написал(а):

Увы, Александр...
Гонит мусор на экран. И, похоже, я окончательно запутался с назначением пинов. Завтра уже буду смотреть.
Никак не пойму кто виноват. Или я, или индикатор.

RW на "-"

Остальные назначь в исходнике, как тебе нужно.

Config I2cdelay = 2   -  задержка шины, поиграйся с ней, чем больше тем медленнее, у меня работает на 2 при частоте МК 8 Мгц, т.е. PCF8574 работает на частоте 4 Мгц, что больше паспортной в 8 раз, я использую микросхемы Филипс. Глюков не наблюдаю.

0

70

Скинь сюда свой исходник и схему подключения своего индикатора к PCF8574!

Отредактировано sasha_1973 (2013-07-31 03:00:21)

0

71

В архиве две папки, work и not_work
В каждой папке есть поддиректроии LIB с использованными в примерах библиотеками. В рабочем примере используется стандартная библиотека lcd_pcf8574.lib . В нерабочем - lcd_pcf8574_9.lib . В нерабочем примере около куска с назначением ног есть мой комментарий - как себя ведет индикатор. В корне папки - текстовый файл с распиновкой выводов PCF8574 - LCD

Сам архив

0

72

ignel написал(а):

В архиве две папки, work и not_work
В каждой папке есть поддиректроии LIB с использованными в примерах библиотеками. В рабочем примере используется стандартная библиотека lcd_pcf8574.lib . В нерабочем - lcd_pcf8574_9.lib . В нерабочем примере около куска с назначением ног есть мой комментарий - как себя ведет индикатор. В корне папки - текстовый файл с распиновкой выводов PCF8574 - LCD

Сам архив

У тебя "Протеус" есть?

0

73

МК Atmega8A !!!
Схема, исходник, эмуляция, видео, прошивки (1, 4, 8, 16 МГц),  - скачать
Все прошивки проверены в железе.


!!! Внимание !!!
Помни о фьюзе ( CKDIV8 ) - внутренний делитель на 8 ( для всех прошивок кроме 1 Мгц, должен быть выключен ).

Русскоязычный калькулятор фьюзов - здесь

МК Atmega328P (у меня есть только с буквой "P", они отличаются) !!!
Схема, исходник, эмуляция, видео, прошивки (1, 8, 16, 20 МГц),  - скачать
Все прошивки проверены в железе.



Прочитай  "! Читать.txt" !

Что не понятно спрашивай.


Отпишись о результатах!

Отредактировано sasha_1973 (2013-07-31 14:58:48)

0

74

Mrshilov написал(а):

У вас нога RW дисплея, как я понял, подключена к порту P1

Да, верно...

Mrshilov написал(а):

а E2 к порту P3

Е2 не задействована, на Р3 подключено управление подсветкой.

Mrshilov написал(а):

поэтому вам нужно так и выставить:
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 строках выводится мусор, мерцает подсветка.

Mrshilov написал(а):

При этом _backlight = 0 менять нельзя

Установлен ноль, значение переменной не меняю.

Mrshilov написал(а):

Лучше вообще отцепить вывод RW дисплея от схемы и повесить на землю. Тогда освободившийся порт P1 можно будет задействовать на подсветку.

Это надо платку i2c отпаивать и резать ей дорожки, поскольку на ней управление подсветкой идет через Р3. RW вчера пробовал мычкой на землю садить. Картинка не меняется.

sasha_1973 написал(а):

У тебя "Протеус" есть?

Был до сноса Винды. Собираюсь переставить по новой.

sasha_1973 написал(а):

!!! Внимание !!!Помни о фьюзе ( CKDIV8 ) - внутренний делитель на 8 ( для всех прошивок кроме 1 Мгц, должен быть выключен ).

У меня фьюзы не ставятся, это же Arduino. В нее по USB через её-же бутлоадер просто HEX льется и все.

Похоже, что все-таки кетайцы по своему сделали индикатор... Та либа, что у Александра не работала, у меня работает на ура, и подсветкой рулит без проблем. А новая заведомо рабочая библиотека не хочет работать.

0

75

Игорь, ты пробовал то, что я выложил?

Ножки переназначь в исходнике, так, как тебе надо!

Отредактировано sasha_1973 (2013-07-31 15:34:43)

0

76

sasha_1973 написал(а):

Игорь, ты пробовал то, что я выложил?
Ножки переназначь в исходнике, так, как тебе надо!


Попробовал. Результат отрицательный. На индикаторе вообще ничего. Даже не почистился от предыдущей информации из рабочего исходника.
Ноги переназначал. То же самое.

Спасибо за видео, Александр!

Что-ж, буду пока работать с той библиотекой, которая у меня нормально рулит индикатором. Параллельно поищу и закажу себе заведомо рабочий индикатор. Тогда уже будет более понятна причина - мои руки, или все-таки сам LCD...

0

77

Я в шоке, специально проверил в железе на 4 разных LCD ( WH2004D-TMI-CT#, WH2004D-YGH-CT#, WH2004L-TMI-CT#, WH2004L-YGH-CT# ), распиновка та, что ты дал, всё работало!

Может у тебя индикатор которому надо одновременно Е1 и Е2, поговори с Сергеем Шиловым, у него есть библиотека под них, почитай - здесь

Отредактировано sasha_1973 (2013-07-31 16:24:15)

0

78

Я сам ничего не понимаю уже. Та библиотека, которая то не работала, то глючила у Вас, у меня совершенно нормально работает, а новая, проверенная и заведомо рабочая - у меня не работает. Я сам-то спец невеликий. Как уже писал ранее, опыта работы с контроллерами у меня практически нет. Пару недель назад первый раз в руки взял платку Arduino-вскую (по сути тот же контроллер, только с бут-лоадером и обвязкой). Может быть это играет свою роль... А может и действительно индикатор не человеческий. Другого LCD с i2c у меня нету. Параллельные есть, аж два. С ними проблем нет, работают нормально. Буду заказывать на Ebay еще один i2c-шный. А может и два закажу. Все равно рано или поздно в дело пойдут. У нас в городе такие индикаторы не продают. О чем говорить, если на весь город один магазин с детальём? Если конечно комнатёшку 5х4 метра можно магазином назвать... Придут индикаторы, станет понятно где ошибка.

0

79

Дело в том, что у меня идикаторы обычные - Ссылка, а PCF8574 на макетке стоит, а у тебя может какие-то особенные, заточенные под I2c?

0

80

Да, нет... В том-то и дело, что это обычный параллельный 16-ти выводной индикатор с напаянной ему на спину платкой с PCF8574. А вот уж как сама платка подключена по ногам индикатора - отдельный вопрос. Я за время поисков информации по i2c видел как минимум 4 варианта этих платок. Одна из них была даже с возможностью задания адреса для PCF8574. И на Ебее полно как индикаторов с такими платками, так и платы отдельно. Есть даже вот такой красавец (UART/I2C/SPI):
http://s5.uploads.ru/t/EB4jI.png

0

81

Блин, хоть стреляй, не могу понять, почему оно у тебя не работает!

Выводы переназначь, как тебе надо, адрес PCF8574 задается коммутацией на + или - (1, 2, 3 выводов микросхемы). Прошивок я тебе наделал на разные частоты, выбирай любую. В чем проблема?

0

82

А LCD у тебя, с поддержкой кирилицы?

У меня все прошивки выводят русский алфавит (если LCD не поддерживает кирилицу, на экране будет, абра-кадабра), правда и цифры есть в 4 строке.

http://s5.uploads.ru/t/3m60e.jpg

Скажи какую прошивку сделать, я сделаю.

Кто не пробует, у того и не получается!

Отредактировано sasha_1973 (2013-07-31 17:29:47)

0

83

sasha_1973 написал(а):

Блин, хоть стреляй, не могу понять, почему оно у тебя не работает!

Вот и у меня такая же реакция... :(

sasha_1973 написал(а):

Выводы переназначь, как тебе надо

Уж как только я их не переназначал...

sasha_1973 написал(а):

адрес PCF8574 задается коммутацией на + или - (1, 2, 3 выводов микросхемы).

Ну, адрес трогать уже не стоит. LCD у меня явно работает на &H4E. Со старой либой он на этом адресе все исправно показывает (сейчас на нем крутится температура и влажность дома)

sasha_1973 написал(а):

У меня все прошивки выводят русский алфавит, правда и цифры есть в 4 строке.

Поддржки русских букв в индикаторе нет, но я и по иероглифам вижу когда он работает. Тем более, что буквы с одинаковым начертанием не переназначаются, и я их вижу на нужных местах. Это не принципиально...

sasha_1973 написал(а):

Кто не пробует, у того и не получается!

А куда я денусь... Рано, или поздно я его поборю :)

Спасибо за поддержку и участие, Александр!!!

0

84

У тебя Atmega  на какой частоте работает? И какая Atmega?

0

85

ATmega 328 на 16 Мгц.

Вот такая платка:

http://robocraft.ru/shop/image/cache/data/duino/arduino/unoR3-500x500.jpg

0

86

Atmega328 с буквой или нет? Это важно в компиляторе!!!

+1

87

Переходи в личку, только обновляйся по чаще!

0

88

ATmega 328 P
ОК.
Да, не стоит мешаться в теме. Пошел в личку.
Если удобно, то можно и в аську...

Отредактировано ignel (2013-07-31 17:53:32)

0

89

Огромное спасибо Александру!
Благодаря его огромной помощи индикатор завелся и нормально работает.
Проблема была в том, что вывод RW не был притянут к земле. В общем - я сам виноват. D предыдущей версии библиотеки, с которой мой индикатор нормально работал, RW был ей задействован и участвовал в работе.

Саша, спасибо тебе за помощь!!!

0

90

В одном из исходников были вот такие строки:

'_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, указал обе половины.

0


Вы здесь » Программирование ATMEL в BASCOM. » Исходники » Помогите с запуском LCD 4x20 по i2c