
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.52] |
![]() |
|
![]() |
Сообщ.
#1
,
|
|
Вообще Белгород город славный. Но некоторые вещи в нем найти сложно.
Например из знакосентизирующих индикаторов я нарыл только сабж. Решил я перед покупочкой поискать мануалы на сабж. На чипедипе, на официальном сайте и в гугле вообще максимум что я нашел это распиновку. В частности, там пины ![]() ![]() RS Register Select Signal R/W Read/Write Select Signal H : Read L : Write E Enable Signal (No pull-up Resister) DB0 - DB7 - датарегистры Ни описаний протоколов, ничего подобного я не нашел. Вопрос, как с этим делом работать? Есть ли у кого описание протокола этого девайса? Вообще, я так понимаю, что если дана распиновка но не описано протокола, то наверное протокол очевиден. Впрочем, для меня ни в коей мере. Возможно, там передача а-ля clock-регистр, который задает ритм по которому считываются сигналы с дата линиий. Но все равно мне не понятно, какой именно регистр тогда clock и как связаны передаваемые данные и то что отображается? Если вкратце, не могли бы вырассказать, как с этим работать? |
Сообщ.
#2
,
|
|
|
Цитата ANDLL @ На чипедипе, на официальном сайте и в гугле вообще максимум что я нашел это распиновку гугл жжот, яндекс рулит. с первой страницы: линк на Платан саму доку я качать не стал, пдфка весит 1.6 метра... по тексту, что лежит в вышеприведённой сцылке, получается что нужное там есть. если чего не так - ищи доку на контроллер KS0076 - в той доке сказано, что твой нидикатор на нём построен. ![]() |
Сообщ.
#3
,
|
|
|
У себя не нашел даташитов на это китайское чудо,
может спросить у http://scope.narod.ru/lanko/index.html ? и здесь http://www.crystalfontz.com/forum/archive/index.php/f-7.html |
Сообщ.
#4
,
|
|
|
Хм...насколько я помню DV-16230 Двухстрочный шестнадцатизначный индикатор на контроллере Hitachi 44780, аналоги KS0066,KS0076.ANDLL если это так то вот даташит, там все расписано - как и что подавать, по каким шинам, и тактировки.
![]() Прикреплённый файл ![]() |
![]() |
Сообщ.
#5
,
|
|
AlexJ
Посмотрю, спасибо... Змей Горыныч Нет, жжете друг мой вы, полагая что я написав что пользовался гуглом, на самом деле им не пользовался ![]() medved_68 Архив поврежден |
Сообщ.
#6
,
|
|
|
Цитата ANDLL @ medved_68 Архив поврежден А вот так??? Просто ПДФ файл??? Прикреплённый файл ![]() |
Сообщ.
#7
,
|
|
|
medved_68
кстати даташита на touch screen P141-5, тоже от Data Vision нет случайно ? что то не могу найти. |
Сообщ.
#8
,
|
|
|
Цитата AlexJ @ кстати даташита на touch screen P141-5, тоже от Data Vision нет случайно ? что то не могу найти. Сегодня посмотрю. ![]() Добавлено AlexJ кстати полное название модуля (желатльно со всеми цифрами и буквами) - легче искать по базе. ![]() |
Сообщ.
#9
,
|
|
|
Цитата medved_68 @ AlexJ кстати полное название модуля (желатльно со всеми цифрами и буквами) - легче искать по базе. ![]() А фиг его знает http://cgi.ebay.com/NEW-Data-Vision-P141-5-7-LCD-Touch-Screen-7-inch_W0QQitemZ140141786611QQihZ004QQcategoryZ3698QQcmdZViewItem |
Сообщ.
#10
,
|
|
|
Цитата AlexJ @ А фиг его знает Посмотрю. |
![]() |
Сообщ.
#11
,
|
|
Медвед, спасибо!
Кажеться, что надо. Но, к сожалению чтото у меня не получается. Я правильно понимаю, команда передается так: A0 выставляется в 0 Dr0-Dr7 выставляется код команды RW в 0 E в 1 Ждем скажем 1мс E в 0 ? Если да, то у меня чтото не получается. Питание вроде подвел. При включении дисплечик мигнет раз и становится темным. Потом передаю инициализирующие команды, как у тебя написано. Потом передаю команды "переместить курсор в начало" и "включить мигающий курсор". Но он не мигает и вообще ничего на экране не происходит. |
Сообщ.
#12
,
|
|
|
Цитата ANDLL @ Потом передаю инициализирующие команды, как у тебя написано. 1.Команды выбора режима шины - 3 раза с паузой 40 мкс. После вкл. питания. Выполнено??? 2.Установка разрядности шины (8 или 4 бита). Выполнено??? После снятия Е читаем флаг занятости BS - если 0 контроллер готов к следующей команде и диалог начался. Если нет - то ждать в цикле (но если что то не так по времени - то я бы задумался насчет соответствия протокола, ведь все таки аналог ![]() |
![]() |
Сообщ.
#13
,
|
|
Слушай... А проблема может быть в том что я не могу ждать 40 мкс и жду 1 мс?
|
Сообщ.
#14
,
|
|
|
Цитата ANDLL @ Слушай... А проблема может быть в том что я не могу ждать 40 мкс и жду 1 мс? в моментинициализации лучше всего выдерживатьвсе интервалы строго... большинство не состыковок именно на этом этапе... с уважением (круглый) |
Сообщ.
#15
,
|
|
|
Цитата ANDLL @ А проблема может быть в том что я не могу ждать 40 мкс и жду 1 мс? Цитата kolobok0 @ в моментинициализации лучше всего выдерживатьвсе интервалы строго... большинство не состыковок именно на этом этапе... Хм...не думаю, я на Пике выжидал примерно 120 мкс и ничего, нормально.ANDLL флаг готовности контроллера BS что сообщает??? Ты его читаешь после подачи 4 команды??? |
![]() |
Сообщ.
#16
,
|
|
Он 1 все время после 4 команды. Вообще все биты 1 после нее
Режим 8-бит |
Сообщ.
#17
,
|
|
|
Цитата ANDLL @ Он 1 все время после 4 команды. Вообще все биты 1 после нее Хм..сегодня в даташитах покопаюсь. Может и найду еще что то или различия на край. ![]() |
![]() |
Сообщ.
#18
,
|
|
Там вроде чип другой, KS0076... Или они одинаковые?
|
Сообщ.
#19
,
|
|
|
Цитата ANDLL @ Там вроде чип другой, KS0076... Или они одинаковые? ANDLL Если речь о DV-16230 то все в норме. Кстати просмотрел (нашел все таки в архиве ![]() ![]() |
![]() |
Сообщ.
#20
,
|
|
Я сделал тайминг после E в 1 мс. Этого ему должно ведь вхатить?
|
Сообщ.
#21
,
|
|
|
Цитата ANDLL @ Я сделал тайминг после E в 1 мс. Этого ему должно ведь вхатить? Да. Там вообще счет на наносекунды идет. Команду включения дисплея подавал??? |
![]() |
Сообщ.
#22
,
|
|
Не могу, после инициализации и установки разрядности bs = 1 все время
|
Сообщ.
#23
,
|
|
|
Цитата ANDLL @ Не могу, после инициализации и установки разрядности bs = 1 все время ANDLL попробуй убрать инициализацию, просто первой командой подай включение дисплея (все равно по умолчанию 8 бит шина). Что то в родном даташите ничего об этом (инициализация) не говорится. ![]() З.Ы. При подаче напряжения (до подачи команд) на дисплей глянь в каком положении BS. |
![]() |
Сообщ.
#24
,
|
|
После включения
жду 10 ms послыаю команду 0b1000 (включить дисплей) После нее BS=1 все время. Вообще, все биты DR равны 1. Время между поднятием и опусканием E делаю 1 мс, при чтении и при записи. При чтении читаю сразу после ожидания, непосредственно до спускания линии E Добавлено То что я на оба питания(чипа и дисплея, VCC и V0) подаю +5 вольт это нормально? |
Сообщ.
#25
,
|
|
|
Цитата ANDLL @ То что я на оба питания(чипа и дисплея, VCC и V0) подаю +5 вольт это нормально? Да, просто уменьшение питания на 3 приводит к снижению контраста. Цитата ANDLL @ послыаю команду 0b1000 (включить дисплей) Это как (в какой системе счисления???) ![]() ![]() Добавлено Или у тебя распайка на шине нестандарт??? ![]() |
![]() |
Сообщ.
#26
,
|
|
Цитата medved_68 @ Двоичной. Просто старшие нули не написал. Ну знаешь, можно написать 010, а можно 10 это одно и то же. Контроллер выставляет все 8 пинов, это точно. Наименее значимый бит соответсвует DR0, наиболее значимый - DR7в какой системе счисления???) заменил на 00001111, все равно BS все время 1 |
Сообщ.
#27
,
|
|
|
Цитата ANDLL @ Контроллер выставляет все 8 пинов, это точно. ANDLL а управление??? Контролировать можешь??? Например, осциллографом?? Просто непонятно пока, почему на "хвосте команды не чует". ![]() |
![]() |
Сообщ.
#28
,
|
|
Можешь сказать что именно нужно контролировать?
|
Сообщ.
#29
,
|
|
|
Очень долго мучился с инициализацией похожего индикатора.
![]() |
Сообщ.
#30
,
|
|
|
Цитата ANDLL @ Можешь сказать что именно нужно контролировать? Сигнал W/R и сигнал Е. Попробуй вообще поднимать сигналы отдельными битовыми командами (если конечно сейчас не так) и в последовательности: А0, W/R, ШД, E. У меня был глюк (но ни на этих типах), когда вообще не воспринимал одновременную подачу ШД и Е, несмотря на то, что в даташите была прописана задержка "восприятия" данных порядка 80 ns. Добавлено Цитата XDN @ что я слишком шустрил, и контроллер не успевал выставить шину. Хм..тоже мысль, но для этого и есть BS. |
![]() |
Сообщ.
#31
,
|
|
Эмм, не пинайте ногами, а там какая распиновка?
у меня там помечены два выхода - 1 и 13... Я использую такую ![]() ![]() 1 3 5 7 9 11 13 2 4 6 8 10 12 14 А может правильно так: ![]() ![]() 1 4 5 8 9 12 13 2 3 6 7 10 11 14 ?? |
Сообщ.
#32
,
|
|
|
Цитата ANDLL @ а там какая распиновка? Цитата ANDLL @ Я использую такую Хм..правильно используешь. ![]() Цитата ANDLL @ А может правильно так: Хочешь сказать - китайцы, все может быть??? ![]() ![]() |
![]() |
Сообщ.
#33
,
|
|
1.
Все время 1 все биты. Ерунда какаято.... |
Сообщ.
#34
,
|
|
|
Цитата ANDLL @ Все время 1 все биты. Ерунда какаято.... Единица или импеданс??? И чем смотришь??? Если на Е низкий уровень или он в воздухе болтается - то на остальных будет импеданс (отключены от внутренней шины). |
![]() |
Сообщ.
#35
,
|
|
Эмм, нет я читаю как надо - выставляю a0 в 0, rw в 0, e в 1, жду 1 мс, потом читаю. Ни разу небыло еще что бы хоть один из битов на DR не был равен при этом 1. Пробовал читать сразу после инициализации, после команды включения дисплея(с инициализацией и без)...
|
Сообщ.
#36
,
|
|
|
Цитата ANDLL @ e в 1, жду 1 мс, потом читаю. ANDLL дальше что, после ожидания 1 мс?? Перед чтением и само чтение, подробней пожалуйста. Кстати индикатор (по твоим словам, см. выше) зажигается и гаснет до записи, при подаче питания сразу или после нее??? |
![]() |
Сообщ.
#37
,
|
|
Цитата medved_68 @ Эмм, просто выставляю e в 1, 1мс, сохраняю в переменной значение записанное на каждой из ножек dr0-dr7, ставлю e в 0. Усе чтение. Ну перед этим конечно выставляю a0 и rw как писал до этого. вот весь код на бейсике Перед чтением и само чтение, подробней пожалуйста ![]() ![]() Function ReadStatus()As Byte Dim r As Byte Low a0 High rw High e Wait 1 r=Bytein(bdr) Low e ReadStatus=r End Function Цитата medved_68 @ При подаче питания. И при отключении питания. Даже если просто вытсавлять и вынимать ножку с ground то виден такой эффект. а. Кстати индикатор (по твоим словам, см. выше) зажигается и гаснет до записи, при подаче питания сразу или после нее??? |
Сообщ.
#38
,
|
|
|
ANDLL попробуй снимать через 1мс строб Е и не трогая сигналов А0 и R/W производить чтение через 1 мс. Строб - на то и строб, что бы его снять, и контроллер мог что то выполнить. (была похожая проблема с принтером, пробовал читать флаг BUSY при выставленном STROBE . Разумеется получал дырку от бублика
![]() Цитата ![]() ![]() Function ReadStatus()As Byte Dim r As Byte Low a0 High rw High e Wait 1 Low e Wait 1 ' //Попробуй затем это убрать, по даташиту данные остаются валидны до следующей инструкции или смены ' //управления. r=Bytein(bdr) ReadStatus=r End Function Цитата ANDLL @ (дада, у меня извращенческий контроллер который понимает бейсик) ![]() ![]() З.Ы. Ау модераторы!!! А где кнопка CODE??? ![]() |
![]() |
Сообщ.
#39
,
|
|
Цитата medved_68 @ Марку подкинь. http://cubloc.com/product/01_01cb405.php Код гляну чуть позже Добавлено Опять то же самое... Не помогает ![]() |
Сообщ.
#40
,
|
|
|
Цитата ANDLL @ Опять то же самое... Не помогает ANDLL остается тогда пошагово проходить каждую команду и контролировать сигналы на шине, вплоть до каждого бита. ![]() ![]() |
Сообщ.
#41
,
|
|
|
Цитата medved_68 @ З.Ы. Ау модераторы!!! А где кнопка CODE??? ![]() Теперь вместо кнопки CODE есть комбобох CODE(справа от COLOR) что бы сразу выбирать правильную подсветку. P.S. цитатку обрамил в тэги ![]() -Added Цитата ANDLL @ Опять то же самое... Не помогает ![]() А с тем парнем с narod.ru не получилось связаться ? Может действительно какое то отличие в контроллерах LCD ? Обычно такие LCD работают без проблем, даже с заметным нарушением временных диаграмм. |
![]() |
Сообщ.
#42
,
|
|
medved_68
Спасибо огромное!! Вобщем, приеду через месяц в мокву куплю в чипедипе какой нибуддь нормальный дисплейчик(кстати, что посоветуешь?) На этот пока забью |
Сообщ.
#43
,
|
|
|
Цитата ANDLL @ (кстати, что посоветуешь?) Хм...я сейчас работаю с МТ фирмы МЭЛТ - аналоги - BOLUMIN, достаточно дешевые (по крайней мере SC1602ESLB(аналог) стоит порядка 230-360 руб., а по функционалу - тоже самое, что и твой DV, но, как ни странно, у меня работают без проблем, даже при наплевательском отношении на временные диаграммы (необходимо только выдерживать порядок подачи сигналов). Кстати, в ЧипДипе не самые дешевые (есть практически все, но цены.... ![]() ![]() Цитата AlexJ @ AlexJ даташит полностью соответствует тому, что я выложил на русском (проверил, надеюсь тщательно). Единственный затык может быть либо в неработоспособном девайсе, либо в несоответствии девайса и маркировки на нем (было и такое, налетал, но не с DV). ANDLL подкинь полную марку (как написано на дисплее или стикере) девайса, попробую в течении месяца заказать и проверить на конструкции (правда на Пиках), благо сейчас есть устройство (ридер дисконтных карт), который работает на аналогичном BOLUMIN, перепаять - раз плюнуть. Заодно и совместимость проверим. Может действительно какое то отличие в контроллерах LCD ? ![]() |