Например TDA7294

Форум РадиоКот • Просмотр темы - Повторная инициализация HD44780/SED1278 и последующий сбой..
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Пн июл 28, 2025 19:04:17

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Повторная инициализация HD44780/SED1278 и последующий сбой..
СообщениеДобавлено: Вс окт 30, 2011 19:44:45 
Опытный кот
Аватар пользователя

Зарегистрирован: Чт дек 29, 2005 07:29:25
Сообщений: 732
Откуда: Омск
Рейтинг сообщения: 0
Всем привет.

Возможно ли определить проинициализорован ли дисплей или нет?
Просто такая ситуация, что если провести инициализацию в 4битный интерфейс повторно, то дисплей либо вообще отказывает, до сброса питания, либо начинает работать неадекватно.
Помогите :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Повторная инициализация HD44780/SED1278 и последующий сб
СообщениеДобавлено: Вс окт 30, 2011 19:55:39 
Поставщик валерьянки для Кота

Карма: 34
Рейтинг сообщений: 313
Зарегистрирован: Вс ноя 15, 2009 23:13:59
Сообщений: 2084
Откуда: Харьков
Рейтинг сообщения: 0
Тайминги при инициализации выдержаны точно? Команда выбора разрядности интерфейса подается трижды?

_________________
Иногда мой питомец уходит в такую спячку, что разбудить его можно только щелчком по первой ноге...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Повторная инициализация HD44780/SED1278 и последующий сб
СообщениеДобавлено: Вс окт 30, 2011 20:22:46 
Опытный кот
Аватар пользователя

Зарегистрирован: Чт дек 29, 2005 07:29:25
Сообщений: 732
Откуда: Омск
Рейтинг сообщения: 0
Трижды? А зачем трижды?
Я руководствуюсь вот этим: http://www.adafruit.com/datasheets/HD44780.pdf, стр. 46


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Повторная инициализация HD44780/SED1278 и последующий сб
СообщениеДобавлено: Вс окт 30, 2011 20:39:05 
Поставщик валерьянки для Кота

Карма: 34
Рейтинг сообщений: 313
Зарегистрирован: Вс ноя 15, 2009 23:13:59
Сообщений: 2084
Откуда: Харьков
Рейтинг сообщения: 0
Где-то мне попадалось, что эту команду надо подавать три раза с определенными интервалами. Завтра поищу.

_________________
Иногда мой питомец уходит в такую спячку, что разбудить его можно только щелчком по первой ноге...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Повторная инициализация HD44780/SED1278 и последующий сб
СообщениеДобавлено: Вс окт 30, 2011 22:16:02 
Поставщик валерьянки для Кота

Карма: 34
Рейтинг сообщений: 313
Зарегистрирован: Вс ноя 15, 2009 23:13:59
Сообщений: 2084
Откуда: Харьков
Рейтинг сообщения: 0
Нашел на одном сайте
Инициализация должна быть строго в таком порядке
времена задержек могут быть больше, но не меньше
сбросить RS, EN

//далее взде RS=0

Вывод 30h
задержка 4.1мс !!!
Вывод 30h
задержка 100мкс !!!
Вывод 30h
задержка 100мкс !!!

Вывод 20h
задержка 100мкс !!!

//след. три действия обязательны именно в таком порядке
Вывод 28h //display-off
задержка 80мкс
Вывод 0Ch //diplay-on
задержка 80мкс
Вывод 01h //clear display
задержка 80мкс

//след. действия по желанию (установка рабочих параметров
Вывод 0Fh //diplay, cursor-on
задержка 80мкс
Вывод 06h //ch->cursor right
задержка 80мкс
Вывод 80h
задержка 80мкс

_________________
Иногда мой питомец уходит в такую спячку, что разбудить его можно только щелчком по первой ноге...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Повторная инициализация HD44780/SED1278 и последующий сб
СообщениеДобавлено: Пн окт 31, 2011 01:38:45 
Мучитель микросхем
Аватар пользователя

Карма: 12
Рейтинг сообщений: 17
Зарегистрирован: Ср июн 03, 2009 00:20:21
Сообщений: 441
Откуда: Новороссия ЛНР Рубежное -> РФ Калуга
Рейтинг сообщения: 0
Вот на Winstar_e когда-то скачал ихний пример инициализации 4-бит интерфейса и то что из него написал для IAR. Там много лишнего, но вроде всё понятно, писалось под WinAvr_ом и было тупо скопировано в IAR.


Вложения:
asm_LCD.asm [6.05 KiB]
Скачиваний: 679
for Character type LCD module- 4 bit parallel program.txt [13.28 KiB]
Скачиваний: 408

_________________
Политика России будет выглядеть неоднозначной до тех пор, пока не будет решен исход битвы.
Свободу можно завоевать, можно просрать, но высидеть свободу нельзя! ©
Всё, что меня не убивает - делает большую ошибку!
Не зли меня!!! :wink:
Вернуться наверх
 
Распродажа паяльного оборудования ATTEN!
Паяльные станции, паяльники и аксессуары по самой выгодной цене.

По промокоду radiokot скидка 10%
Не в сети
 Заголовок сообщения: Re: Повторная инициализация HD44780/SED1278 и последующий сб
СообщениеДобавлено: Вт ноя 01, 2011 02:35:31 
Опытный кот

Карма: 12
Рейтинг сообщений: 26
Зарегистрирован: Вс апр 10, 2011 02:24:06
Сообщений: 772
Откуда: г.Северодонецк
Рейтинг сообщения: 0
Для правильной организации передачи команд и данных на дисплей в 4-х битном режиме, необходимо контроллировать, принимает ли контроллер дисплея то, что ему посылается. Например, как у меня в инициализации 0802.
Сбой происходит из-за того, что дисплей не принял вторую половину команды, а его пытаются инициализировать. Соответственно все посланное позже не воспринимается им адекватно. После общего сброса или подачи питания все начинает работать правильно.
В моей процедуре проверяется, занят ли контроллер дисплея после передачи команды, если занят - все в порядке, если нет - выравниваем интерфейс половиной байта и пробуем снова.


Вложения:
0802.asm [1.1 KiB]
Скачиваний: 274

_________________
C0FFEE=‭12648430‬
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Повторная инициализация HD44780/SED1278 и последующий сб
СообщениеДобавлено: Вт ноя 01, 2011 02:55:26 
Мучитель микросхем
Аватар пользователя

Карма: 12
Рейтинг сообщений: 17
Зарегистрирован: Ср июн 03, 2009 00:20:21
Сообщений: 441
Откуда: Новороссия ЛНР Рубежное -> РФ Калуга
Рейтинг сообщения: 0
eufs Хоть коменты вставь, ведь не всем понятно будет.

_________________
Политика России будет выглядеть неоднозначной до тех пор, пока не будет решен исход битвы.
Свободу можно завоевать, можно просрать, но высидеть свободу нельзя! ©
Всё, что меня не убивает - делает большую ошибку!
Не зли меня!!! :wink:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Повторная инициализация HD44780/SED1278 и последующий сб
СообщениеДобавлено: Вт ноя 01, 2011 04:34:29 
Опытный кот
Аватар пользователя

Зарегистрирован: Чт дек 29, 2005 07:29:25
Сообщений: 732
Откуда: Омск
Рейтинг сообщения: 0
пасиб. Буду колупать :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Повторная инициализация HD44780/SED1278 и последующий сб
СообщениеДобавлено: Вт ноя 01, 2011 22:07:00 
Опытный кот

Карма: 12
Рейтинг сообщений: 26
Зарегистрирован: Вс апр 10, 2011 02:24:06
Сообщений: 772
Откуда: г.Северодонецк
Рейтинг сообщения: 0
Murka писал(а):
eufs Хоть коменты вставь, ведь не всем понятно будет.

С коментами.
Код:
;ПП инициализации в дисплея 4х битном режиме
init_0802:
   rcall pause      ;пауза после подачи питания 10 мс
   cbi _portb,en      ;сбрасыв EN
   cbi _portb,rw      ;сбрасыв RW
   cbi _portb,rs      ;сбрасыв RS (команда)
   rcall p50us      ;пауза 50us

   ldi r17,$02      ;передаем тетраду 0010
   rcall d_out4

   ldi r17,$28      ;передаем 0010 1000 в два этапа
   rcall d_out
   sbrs r0,_data7      ;если бит 7 сброшен, то дисплей команды не принимает
   rjmp init_0802      ;пробуем снова

   ldi r17,$28      ;продолжаем инит, передаем 0010 1000
   rcall d_out

   ldi r17,$0c      ;передвем 0000 1100
   rcall d_out

   ldi r17,$01      ;передаем 0000 0001 (очстка дисплея)
   rcall d_out
   rcall pause      ;пауза
   sbi _portb,rs      ;устанавливаем RS (дальше будут данные)
   ret

;ПП вывода данных впо 4х битному интерфейсу
d_out:
   rcall p50us      ;пауза 50мкс
            ;начинаем передавать сначала старшую тетраду
   cbi _portb,_data7      ;рассыпано побитно для универсальности при подключении
   sbrc r17,7
   sbi _portb,_data7

   cbi _portb,_data6
   sbrc r17,6
   sbi _portb,_data6

   cbi _portb,_data5
   sbrc r17,5
   sbi _portb,_data5

   cbi _portb,_data4
   sbrc r17,4
   sbi _portb,_data4

   sbi _portb,en      ;подтверждаем передачу старших 4х бит
   rcall p50us
   cbi _portb,en

d_out4:

   rcall p50us
            ;передаем младшие
   cbi _portb,_data7
   sbrc r17,3
   sbi _portb,_data7

   cbi _portb,_data6
   sbrc r17,2
   sbi _portb,_data6

   cbi _portb,_data5
   sbrc r17,1
   sbi _portb,_data5

   cbi _portb,_data4
   sbrc r17,0
   sbi _portb,_data4

   sbi _portb,en
   rcall p50us
   cbi _portb,en
            ;передали
   sbic _portb,rs      ;если это были данные, то ничего не проверяем
   rjmp d_out_ex

   sbi _portb,rw      ;переводим интерфейс на чтение
   sbi _portb,_data7      ;7 бит - это BUSY
   cbi _ddrb,_data7      ;переводим на ввод
   sbi _portb,en
   nop         ;небольшую паузу (4мкс)
   nop
   nop
   in r0,_pinb      ;читаем состояние
   sbi _ddrb,_data7
   cbi _portb,en
   cbi _portb,rw

d_out_ex:
   rcall p50us
   ret

_________________
C0FFEE=‭12648430‬


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Повторная инициализация HD44780/SED1278 и последующий сб
СообщениеДобавлено: Вт ноя 08, 2011 14:01:22 
Грызет канифоль

Зарегистрирован: Ср дек 30, 2009 09:55:39
Сообщений: 277
Рейтинг сообщения: 0
Spider писал(а):
пасиб. Буду колупать :)


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

юзаю достаточно много по времени 4битную схему подключения. описанных проблем не выявленно.

(круглый)


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 11 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: wladimir031054 и гости: 8


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y