Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сб дек 05, 2020 11:25:58

Приветствую всех заглянувших!!! У меня в конструкции дисплей на контроллере ks0066. Дисплей работает хорошо, всё что надо выводит, только вот одна беда, после заливки кода (PICKIT 3) - то е после любого резета , начинает казать кашу, понятно, что из за повторной инициализации. Можно ли его как то програмно сбросить? В даташите вроде нет команд сброса, или я что то неправильно понял... Или кроме как запускать питание через ключ от контроллера больше решений нет???

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сб дек 05, 2020 12:31:04

после любого резета , начинает казать кашу

Здравствуйте! Работал с несколькими типами дисплеев, но такой проблемы не припомню. Проблема точно после любого сброса, или только при подключенном программаторе? Может у Вас используются выводы ICSP для управления дисплеем?
Не должны во время повторной инициализации писаться данные в графическую память, т.к. вывод RS находится в другом логическом состоянии.
И что бы форумчане активнее отвечали, приведите схему и программу. Может кто-то увидит проблему в них.

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сб дек 05, 2020 12:40:13

Дисплей подключен на D4, D5, D6, D7, RS, E... R/W лежит на земле . В том то и дело, что инициализация начинается при уже горячем(то е данные на него постоянно приходили) контроллере дисплея. Такая штука при любом сбросе. Схемы нет, даже не рисовал. Контроллер Pic18f252. Это цифровая шкала и S- метр. На выводах , подключённых к дисплею ничего больше не висит.
.
Вложения
lcd1620_button.rar
(852 байт) Скачиваний: 335
Последний раз редактировалось edds Сб дек 05, 2020 13:12:19, всего редактировалось 1 раз.

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сб дек 05, 2020 13:02:04

Такая штука при любом сбросе

Единственное что заметил, это маленькая задержка после команды очистки. у Вас 2 мкс, а согласно даташиту - 1,53 мс.
Также рекомендую для записи данных использовать регистр LATx, т.к. при использовании PORTx возможны ошибки при частых переключениях.

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сб дек 05, 2020 13:18:17

Вот почитав даташит, я вообще не понял, зачем нужен этот регистр-LATx.... Pic - только из за асинхронного таймера. Ошибок нет, всё работает как и задумывалось , свободной памяти 4/5. Проблема в том , что не до конца разобрался с дисплеем. Есть ли способы сбросить контроллер дисплея по команде контроллера устройства. И правда очень маленькая задержка))))) сейчас подредактирую) Спасибо вам за подсказку)
Вложения
IMG_20.jpg
(250.87 KiB) Скачиваний: 310

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сб дек 05, 2020 13:58:14

зачем нужен этот регистр-LATx....

Код:
bsf PORTB, 1
bsf PORTB, 2

Вы ожидаете, результат:
Код:
PORTB = 0000 0110?

А вот и нет! Вы можете при определенных условиях получить:
Код:
PORTB = 0000 0100!


Все из-за алгоритма установки битов: Чтение->модификация->запись.
Причем, для установки одного бита читается весь порт.
В данном примере, при установке бита PORTB, 2:
1) Происходит чтение порта, и в случае если на ножке большая емкостная нагрузка, то единичка в PORTB, 1 не успевает установиться, и результатом чтения будет 0.
2) После происходит модификация - прочитанное значение 0000 0000 превращается в 0000 0100.
3) последний этап - Запись: PORTB = 0000 0100.

Как-то так.
При записи в регистр LATx данной проблемы нет, т.к. на этапе чтения данные берутся из самой защелки LATx, не зависящей от переходных процессов в схеме.

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сб дек 05, 2020 14:09:32

То е регистр PORTx, необходимо использовать только для чтения? по аналогии с MK AVR это как PINx, а в PIC записывать на вывод через LATx ?

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сб дек 05, 2020 14:22:22

С AVRами не работал. Но PICах - да, для записи лучше использовать LATx. А из PORTx читать данные. Например, ожидать внешние прерывания.
Хотя сам иногда забываю и использую только PORTx. Работало. А вот когда появляются глюки - то начинаю танцевать с бубном и первым делом исправляю всё на LATx. Помогало.

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сб дек 05, 2020 14:27:27

Спасибо, это очень полезная информация!!!

Добавлено after 2 minutes 21 second:
Со способами переинициализации работающего дисплея вы не сталкивались?

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сб дек 05, 2020 14:33:25

Со способами переинициализации работающего дисплея вы не сталкивались?

Увы, нет. Пробежался по даташиту и не нашел ничего на эту тему. В моих дисплеях были выводы /RST. А последний дисплей на контроллере ILI9341 имеет еще и команду программного сброса.

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сб дек 05, 2020 14:40:02

Ну и х.с . прилеплю ключь на питание дисплея. Хотя наверное это в трансивере не важно. Просто не особо приятно знать такую особенность. Эта штука для себя , делаю трансивер , на 1.8 , 3.5 , 7.2 MHz

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сб дек 05, 2020 23:03:00

пару лет назад делал приборчик с таким дисплейчиком и STM контроллером. Подключение дисплея шлейфом - иногда на него ловило наводки от коммутаций из соседних приборов, и память портилась. Помню сделал софтварную переинициализацию по сочетанию кнопок - увидел что заглючило, прожал и дисплей переписало. Так что проблема явно не в HD44780. По коду не скажу - PIC не мое.
По Атмелам у меня был залет на XMega - надо было пин устанавливать. Я как обычно - маску на порт. Только на порту висели еще пины CS АЦПшек по SPI, которые в высоком приоритете по прерыванию переключались. Ну и значит подходит к участку где надо пин переключить, берет оно значение порта, готовится маску накладывать, тут прилетает прерывание, переключает себе пин CS, програма возвращается из прерывания и накладывает маску из "до прерывания". И пошла коллизия на SPI, АЦП повис, аларма. Повезло что в XMega есть специальные регистры отдельно установки и отдельно сброса ножек. Переделал и проблема ушла.

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сб май 07, 2022 10:12:11

Здраствуйте. Возникла тут необходимость работы с дисплеем, что бы он не сильно тормозил основную программу. Как то мне попадалась статья где работа с дисплеем производилась через прерывание таймера, что бы не задерживать основной цикл. Но найти ее так и не смог. Изобретать велосипед не охота. Кто нибудь подскажите сылку, кусок кода или мысль как это лучьше реализовать.

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сб май 07, 2022 11:49:28

Микроконтроллер какой? СТМки, у которых есть FMSC могут управлять выводами автоматически.
А вообще, там не шибко то много отбирается времени, только пара команд требует значительной (около 1,5 мс) задержки на выполнение. В остальном, 40-45 мкс на команду, около 1,5 мс на весь дисплей 1602, насколько помню по памяти. Впрочем, если хотите через прерывание таймера, то подавайте одну команду ровно в прерывании таймера. Таймер настройте на 0,5-1 мс. 20-30 мс на обновление всего дисплея будет норм.

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сб май 07, 2022 11:58:15

Demon, для большинства приложений зачем нужно периодически обновлять дисплей (1602)? Он запоминает последнюю введенную информацию. Напр. введите новые данные на новом событии с флаг.
Последний раз редактировалось veso74 Сб май 07, 2022 12:21:06, всего редактировалось 1 раз.

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сб май 07, 2022 12:15:42

Под словом "обновлять дисплей" я имел ввиду вывод новой информации, полностью заменяющей предыдущую. Не периодически, а по необходимости.
Хотя, помню, лет 8 назад была в инете популярная в то время фишка - заставить STM автоматически работать с дисплеем в режиме непрерывного обновления, используя комбинацию таймера и DMA. Были ярые приверженцы этого способа, очень восхваляли его. И я тоже попробовал несколько раз. Но потом не стал - оно того просто не стоит.

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сб май 07, 2022 22:02:30

я использую библиотеку, которая работает по ожиданию готовности контроллера ЖКИ, т.е. считывает его регистр статуса и анализирует бит занятости. т.е. как бы делает кучу "лишних" обращений... и при этом в плане быстродействия вообще никогда проблем не испытывал.
более того, я настаиваю на том, что работа с этим дисплеем "в фоне", т.е. по прерываниям, не только не даст положительного эффекта, но и ничего, кроме гемора, не даст вообще. я считаю этот подход неприемлемым.

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Вс май 08, 2022 07:11:29

Да, можно читать флаг занятости BSY. Но у дисплея только две команды исполняются долго - очистка дисплея и перевод курсора в начало дисплея. Остальные команды - не более 50 мкс. А вот если микроконтроллер работает быстро, 25 и выше мегагерц, то лучше отсылать по прерываниям таймера через 0,2-0,5 мс, меньше простоя будет. В принципе, даже при 8 МГц будет положительным моментом отправлять по прерываниям таймера через 0,5 мс.
У этого дисплея только инициализация, особенно в 4-битном режиме, выбивается из общего ритма и вечно была камнем преткновения.

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Вс май 08, 2022 11:02:58

при словах "простой МК" меня просто типает: вы что, за каждую микросекунду работы МК по сто рублей платите?!

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Вс май 08, 2022 11:10:32

Ну, микросекунду по сто или по триста, но на 1602 при 32 символах набегает около 1,5 мс на обмен с дисплеем. На медленном микроконтроллере это не так заметно, а вот если МК лабает на 72 МГц, то 1,5 мс как-то кажутся чрезмерными. 40 мкс и 14 нс - уж больно разнящиеся цифры. Хотя, кому как, кто как хочет, так и дрочет. И именно потому появляются Delayms(500)... в прерываниях... как в недавней теме про опрос кнопок. :)
Ответить