Aleksandr_KPI
Mar 29 2010, 15:08
Здравствуйте. Мне нужно написать программу на VHDL которая бы управляла дисплеем SC1602B. Я не могу найти толковой документации на него (datasheet на 2 страницы!!!), посоветовали читать описание HD44780U, правильно ли это?
Что касается программирования то, правильно ли я понял что порт RS при логическом 0 переводит дисплей в режим приема команд (к примеру сдвиг курсора), а при лог 1 считывает с 8 разрядной шины код требуемой буквы?
Kuzmi4
Mar 29 2010, 15:19
Цитата
посоветовали читать описание HD44780U, правильно ли это?
Вопрос 1:
Смотрим
http://microelect.net/lcd/charact/SC1602B.pdfpage 2 of 7
Цитата
Built-in Controller HD44780 or Comp
Вопрос 2:
там же, страница 3
silverio
Mar 30 2010, 16:52
Aleksandr_KPI
Mar 31 2010, 06:20
Цитата
На примере плохо видно, но я так понимаю что в ПЛИС входит тактовая частота из вне, ее задают счетчиком из микроконтроллера?
yakub_EZ
Mar 31 2010, 06:44
Цитата(Aleksandr_KPI @ Mar 31 2010, 10:20)

На примере плохо видно, но я так понимаю что в ПЛИС входит тактовая частота из вне, ее задают счетчиком из микроконтроллера?
Нет, там применен внешний кварцевый генератор на 1.8432MHz для создания baud клока 115200.
И также вариант деления внешних 2 МГц до 115200
Aleksandr_KPI
Mar 31 2010, 07:05
А задать такти из МК все же можно? У меня в схеме кварцевый генератор подключен к микроконтроллеру, а последний к ПЛИС. Плата уже произведена, поэтому переделать не выйдет.
yakub_EZ
Mar 31 2010, 09:05
Можно. Только не понимаю зачем такт от генератора подавать на МК, а потом в ПЛИС?
Подавайте сразу такт на ПЛИС, там делите до нужного. На страничке
http://www.fpga4fun.com/SerialInterface2.html это нерусски расписано.
Какая у вас ПЛИС?
Aleksandr_KPI
Mar 31 2010, 09:16
Цитата
Можно. Только не понимаю зачем такт от генератора подавать на МК, а потом в ПЛИС?
Дало в том, что плата уже произведена и ее надо прошить. ПЛИС XC2S50 PQ208.
Я просто интересовался нельзя ли как нибуть обойти использование МК, так как не желаю его програмить, но поскольку кварц подключен только к нему, то выбора нет.
yakub_EZ
Mar 31 2010, 13:26
Хм.. А что собственно ожидается от обоих кристаллов? Отправлять информацию на ЖК можно как с помощью ПЛИС, так и с МК. Для самостоятельного управления ЖКИ от ПЛИС ей необходим клок для выдержки временных интервалов на обработку информации контроллером ЖКИ дисплея. Если в проекте планировалась передача данных между МК и ПЛИС, то должны были заложить в идею передачу клока.
Увидев здесь ссылку на fpga4fun, думал что на ПЛИС вы столкнёте задачу приема по UART и распаковки информации c МК
Aleksandr_KPI
Mar 31 2010, 13:51
Цитата
Если в проекте планировалась передача данных между МК и ПЛИС, то должны были заложить в идею передачу клока
Электрическую схему составлял не я, мне нужно написать программу для отображения вводимых команд на дисплее. Передача данных между МК и ПЛИС заложена и еще какая: 2 8-разрядные шины адреса и данных (они так подписаны) + еще одна 8 разрядная шина. С МК в ПЛИС идет сигнал SYSCLK, наверное это и есть "заложенной идеей клока". Вообще чем дальше я разбираю схему тем меньше понимаю предназначение МК (особенно такого большого около 98 ног!!!!).
Да, есть еще 2 сигнала идущих от МК к ПЛИС: DONE и PROG, по них МК должен инициализировать ПЛИС?
Kuzmi4
Mar 31 2010, 14:28
2 Aleksandr_KPI
какой контроллер ? какая шина ? как именно клокается плиска относительно шины ?.....
телепаты в отпуске в обсчем
Aleksandr_KPI
Mar 31 2010, 14:50
Контроллер C8051F020.
Цитата
как именно клокается плиска относительно шины ?
Извините нашел на схеме входной порт под 56 МГц который поступает на ПЛИС, так что вариант что ПЛИС через МК тактируется отпала.
На приведенной схеме выделил сигналы которые не могу понять. Все что зеленым то шины, а желтым некий синхроимпульс от ПЛИС к МК или наоборот, при этом все что мне нужно для программирования дисплея заведено на ПЛИС. Зачем нужен МК?
Kuzmi4
Mar 31 2010, 15:11
2 Aleksandr_KPI
С того что смог понять и протелепатировать - плиска юзается как отображатель поступаемой инфы на LCD.
Данные (видимо) в плиску попадают по Cygnal-овскому EMIF-у. Так же (видимо) сушествуют оповещательные стробы о стадиях/окончании операции записи в ЖК-контроллер.
Исходя из всего вышеперечисленного выдолжны сделать такие действия:
разобраться в стробах, написать Cygnal-овский EMIF со стороны спартана, написать ЖК-контроллер для LCD, совместить это всё.
И по идее оно должно заработать

(жалко что нет клока эмифовского, заведённого в плису, там нужно будет повозиться с синхронизацией read-а и write-а чтоб гонки и другую каку отбросить)
А лучше спросите схемотехника, который разрабатывал эту схему - как он всё это видит (избавите себя от многих вопросов

).
Цитата
Да, есть еще 2 сигнала идущих от МК к ПЛИС: DONE и PROG, по них МК должен инициализировать ПЛИС?
Не только по ним, должны быть еще. Судя по всему ПЛИС загружается с МК, так что программу для МК все равно придется писать
Aleksandr_KPI
Apr 2 2010, 11:39
Цитата
Не только по ним, должны быть еще. Судя по всему ПЛИС загружается с МК, так что программу для МК все равно придется писать
Я не первый раз слышу о загрузке ПЛИС с МК но никак не понимаю что имеется ввиду. У ПЛИС есть своя тактовая частота, память, контроль загрузки прошивки из PROM, она сама по себе может функционировать, что загружает МК какие данные.
При написании программы возник вопрос: как правильно организовать опрос регистров SN74HC573. Замысел таков:
Код
for i in 1 to 5 loop -- регистров 5 поэтому применяем цикл до 5
X_RD_KEY <= rol "00001" i; -- это не правильно (компилятор ругается), X_RD_KEY - шина сигналов разрешающих запись в 5 регистров.
F_D <= X_D; -- из шины считываю данные с выбранного регистра.
numb:= numb + 1; --счетчик итераций
exit when F_D'event
Цитата(Aleksandr_KPI @ Apr 2 2010, 15:39)

У ПЛИС есть своя тактовая частота, память, контроль загрузки прошивки из PROM,
У нее нет встроенного PROM'а. Если на плате предусмотрен внешний для ее загрузки, то МК может в этом участия не принимать
Цитата
При написании программы возник вопрос:
Ой. Сейчас начнется

На VHDL пишут не программу, а описывают аппаратуру. А ПЛИС это не микропроцессор (она программу выполнять не может), а программируемая и конфигурируемая схема.
Цитата
как правильно организовать опрос регистров SN74HC573. Замысел таков:
Замысел неправильный - вам надо организовать счетчик и дешифратор. Ваш for развернется в 5 последовательных операторов присваивания, сработает только последний.
Посмотрите примеры в встроенном хелпе ISE (в library guide) и почитайте какой нибудь букварь по проектированию схем на HDL
Aleksandr_KPI
Apr 5 2010, 18:14
Цитата
У нее нет встроенного PROM'а. Если на плате предусмотрен внешний для ее загрузки, то МК может в этом участия не принимать
Да, на плате присутствует в виде отдельной микросхемы PROM Xilinx.
Цитата
Замысел неправильный - вам надо организовать счетчик и дешифратор. Ваш for развернется в 5 последовательных операторов присваивания, сработает только последний.
Посмотрите примеры в встроенном хелпе ISE (в library guide) и почитайте какой нибудь букварь по проектированию схем на HDL
Спасибо. Пошел читать про организацию счетчиков и дешифраторов на VHDL.
Aleksandr_KPI
Apr 6 2010, 22:04
С дешифратором разобрался, а как применить счетчик не пойму, все попытки его употребить окончились неудачно. На мой взгляд хорошо подходит цикл с досрочным выходом и оператор сдвига.
Цитата
for i in 1 to 5 loop
case i is
when 1 => X_RD_KEY <= SHIFT_LEFT(F_RD_KEY, 1);
when 2 => X_RD_KEY <= SHIFT_LEFT(F_RD_KEY, 2);
when 3 => X_RD_KEY <= SHIFT_LEFT(F_RD_KEY, 3);
when 4 => X_RD_KEY <= SHIFT_LEFT(F_RD_KEY, 4);
when 5 => X_RD_KEY <= SHIFT_LEFT(F_RD_KEY, 5);
end case;
exit when (F_D'event and F_D /= "00000000") ;
end loop;
Такой код выдает ошибку что оператор SHIFT_LEFT не может быть употреблен в данном контексте. F_RD_KEY и X_RD_KEY имеют тип unsignet.
Student Pupkin
Apr 6 2010, 22:42
Так ничего и не понял - что требуется? Что делает МК и что делает ПЛИС? Может вам вообще как-нибудь Picoblaze примострячить? Попробовать поркдить с помощью него дисплеем. Потом додумать, как с МК сопрячься. А то и подход у вас все-таки больше программистский. Всякие loop-ы в VHDL - это зло, ИМХО. Кроме случаев структурного описания.
Aleksandr_KPI
Apr 6 2010, 23:08
Цитата
Так ничего и не понял - что требуется?
Требуется написать программу для уже готовой платы с ПЛИС, МК, дисплеем и 40 кнопками на ней. Кнопки завязаны на 5 регистров (по 8 на каждом). Все регистры подключены к ПЛИС. С помощью кода выше хочу мониторить эти регистры на предмет нажатия кнопки. Не знал что loop это зло. В литературе читал о циклах, там о них только хорошее пишут, ни о каких ограничениях не говорилось.
Цитата
Может вам вообще как-нибудь Picoblaze примострячить
С Picoblaze не сталкивался, когда вникну смогу ответить.
Цитата
Требуется написать программу для уже готовой платы с ПЛИС, МК, дисплеем и 40 кнопками на ней. Кнопки завязаны на 5 регистров (по 8 на каждом). Все регистры подключены к ПЛИС. С помощью кода выше хочу мониторить эти регистры на предмет нажатия кнопки.
Не влезет ваша программа в вашу ПЛИС

На VHDL это будет монстр огромных размеров.
Я думаю, что автор схемы расчитывал, что с кнопками и LCD будет работать МК, а ПЛИС будет не более чем расширителем портов для него.
Покажите, что уже написали - вам тут подробно раскажут, почему это работать не будет

PS. Ваш loop не синтезируемый, компиляция не пройдет (даже если исправить SHIFT_LEFT)
PPS. Бросайте VHDL и берите Verilog. Там гораздо меньше писанины и все более прозрачно
Aleksandr_KPI
Apr 9 2010, 13:13
Цитата
Не влезет ваша программа в вашу ПЛИС crying.gif На VHDL это будет монстр огромных размеров.
А как это можно определить? У меня программа загружается с PROM XC18VO1SO20, а там память 1,048,576 бит.
Цитата(Aleksandr_KPI @ Apr 9 2010, 17:28)

А как это можно определить?
Написать и попробовать синтезировать
Цитата
У меня программа загружается с PROM XC18VO1SO20, а там память 1,048,576 бит.
Ну и что? Возможности определяются вместимостью ПЛИС, а не размерами загрузочной ПЗУ.
Student Pupkin
Apr 9 2010, 18:17
Цитата(Aleksandr_KPI @ Apr 7 2010, 03:23)

В литературе читал о циклах, там о них только хорошее пишут, ни о каких ограничениях не говорилось.
Ну и я из своего опыта ничего плохого про них сказать не могу, т.к. использую только при структурном описании. Однако нехорошее про них читал у Полякова "Языки VHDL и Verilog". Там приводился пример, когда при использовании цикла получалось очень нехорошо в плане аппаратных затрат. Учтите, что VHDL - это изначально язык для описания работы цифровых устройств и моделирования. Для синтеза (проектирования) используется
подмножество языка. Так что какие-то конструкции вообще нельзя использовать, какие-то не желательно. И опять таки все зависит от самой программы синтеза. Как пример - сумматор/вычитатель. Два варианта vhdl-описания. Функционально одно и тоже. На выходе XST (программа синтеза в WebPack-е) - результаты синтеза по аппаратным затратам отличаются в два раза! В первом случае сумматор/вычитатель формируется из LUT, логики переноса и дополнительного элемента XOR из состава логической ячейки. Во втором случае - один сумматор + один вычитатель + мультиплексор на выходе. Так что кроме "общих" учебников по синтаксису дополнительно полистайте книги именно по теме проектирования на ПЛИС, правда все они на английском (путных книг на русском не попадалось).
Цитата
Учтите, что VHDL - это изначально язык для описания работы цифровых устройств и моделирования.
Я это ТС уже говорил, но похоже он это проигнорировал

У меня возникает нехорошее предчуствие, что он вообще не представляет, что такое ПЛИС
Aleksandr_KPI
Sep 8 2010, 13:07
1. Подскажите назначение сигнала E, микроконтроллера SC1602B. Прочитав datasheet я не понял, он применяется только в случае записи данных или команд тоже? Например при начальной установке микроконтроллера: выбор ширины шины, очистка экрана и.т.д.
2. В каком случае производится чтение данных из дисплея и для чего это нужно?
3. Минимальное время записи команд и записи данных, 230 ns ? Согласно datasheet : Enable Pulse Width -- High Level -- PWEH --230 ns.
4. У меня в шине применяется временное разделение, отрезок времени выделенный под дисплей составляет 1,9 мкс, этого мало?
Цитата(Aleksandr_KPI @ Sep 8 2010, 17:07)

1. Подскажите назначение сигнала E, микроконтроллера SC1602B.
Насколько я помню это строб выбора контролера. Т.е. именно он определяет циклы записи и чтения регистров контролера
Цитата
Прочитав datasheet я не понял, он применяется только в случае записи данных или команд тоже? Например при начальной установке микроконтроллера: выбор ширины шины, очистка экрана и.т.д.
Всегда.
Цитата
2. В каком случае производится чтение данных из дисплея
Для проверки готовности дисплея к приему следующих команд и для чтения из ОЗУ контролера
Цитата
и для чего это нужно?
Нафиг не нужно
Цитата
3. Минимальное время записи команд и записи данных, 230 ns ? Согласно datasheet : Enable Pulse Width -- High Level -- PWEH --230 ns.
Это минимум, можно делать больше.
Цитата
4. У меня в шине применяется временное разделение, отрезок времени выделенный под дисплей составляет 1,9 мкс, этого мало?
Если E формируется там, где надо, то наверное должно хватить (нужно смотреть даташит на тему времен установок и удержания шин данных и адреса относительно E)
Aleksandr_KPI
Sep 9 2010, 08:17
Цитата
Насколько я помню это строб выбора контролера. Т.е. именно он определяет циклы записи и чтения регистров контролера
Но ведь запись или чтение определяются сигналом R/W. Сигнал E (Enable) я так понимаю запускает выполнение команд отправленных по шине в дисплей. Судя по временной диаграмме (ниже), каждой команде или данным переданным по шине в дисплей должен соответствовать этот сигнал E c периодом не мение 500 ns и длительностью импульса не мение 250 ns. Тоесть каждая команда или переданные данные будут иметь длительность минимум 500 ns, а значит один переданный символ для дисплея так же будет 500 ns. Правильный ли ход мыслей?
Цитата
Цитата
Цитата
Цитата
2. В каком случае производится чтение данных из дисплея
Для проверки готовности дисплея к приему следующих команд и для чтения из ОЗУ контролера
и для чего это нужно?
Нафиг не нужно
Тоесть чтение можно не проводить, а просто посылать команды и данные в микроконтроллер с учетом требуемых временных параметров и дисплей будет работать корректно?
Цитата(Aleksandr_KPI @ Sep 9 2010, 12:17)

Но ведь запись или чтение определяются сигналом R/W.
НАПРАВЛЕНИЕ (т.е. выбор - чтение или запись) осуществляется сигналом R/W, а собственно сам цикл обмена (как чтения так и записи) запускается сигналом E
Цитата
Сигнал E (Enable) я так понимаю запускает выполнение команд отправленных по шине в дисплей.
Не совсем - он просто записывает (или читает) регистр контролера. Как результат записи может быть запущена команда.
Цитата
Судя по временной диаграмме (ниже), каждой команде или данным переданным по шине в дисплей должен соответствовать этот сигнал E c периодом не мение 500 ns и длительностью импульса не мение 250 ns. Тоесть каждая команда или переданные данные будут иметь длительность минимум 500 ns, а значит один переданный символ для дисплея так же будет 500 ns. Правильный ли ход мыслей?
Опять же не совсем. Это требуемые времянки именно для доступа к регистру. Запущенная в результате этого команда может занять гораздо больше времени. И в течении этого времени контролер будет игнорировать все записи и чтения в его регистры. Читаться будет только регистр состояния, и в нем будет валиден только бит BUSY.
Цитата
Тоесть чтение можно не проводить, а просто посылать команды и данные в микроконтроллер с учетом требуемых временных параметров и дисплей будет работать корректно?
Да. Только 'временные параметры' это не только 500ns по E, но и время выполнения команды (а это уже единицы ms)
Aleksandr_KPI
Sep 9 2010, 09:02
Цитата
Опять же не совсем. Это требуемые времянки именно для доступа к регистру. Запущенная в результате этого команда может занять гораздо больше времени. И в течении этого времени контролер будет игнорировать все записи и чтения в его регистры. Читаться будет только регистр состояния, и в нем будет валиден только бит BUSY.
Сколько понадобится времени, чтобы вывести на дисплей слово : "Hallo". Выходит 5 букв по 500 нс на каждую, это 2,5 мкс?
Цитата
Да. Только 'временные параметры' это не только 500ns по E, но и время выполнения команды (а это уже единицы ms)
А как узнать время выполнения той или иной команды, к примеру очистка экрана. В datasheet я нашел упоминание о миллисекундах только в пункте оптические характеристики. Опять таки повторюсь, хотелось бы знать возможно ли управлять полноценно дисплеем если при временном разделении шины для этого выделено 1,9 мкс на период приблизительно 25 мкс.
Цитата(Aleksandr_KPI @ Sep 9 2010, 13:02)

Сколько понадобится времени, чтобы вывести на дисплей слово : "Hallo". Выходит 5 букв по 500 нс на каждую, это 2,5 мкс?
Нет. 41mks * 5 = 205mks. А в вашем случае 50mks*5 = 250mks
Цитата
А как узнать время выполнения той или иной команды, к примеру очистка экрана. В datasheet я нашел упоминание о миллисекундах только в пункте оптические характеристики.
Какой то не тот у вас DS. См.
http://www.stanford.edu/class/ee281/handou...r_datasheet.pdf страницы 25 & 26
Цитата
Опять таки повторюсь, хотелось бы знать возможно ли управлять полноценно дисплеем если при временном разделении шины для этого выделено 1,9 мкс на период приблизительно 25 мкс.
Да.
Aleksandr_KPI
Sep 10 2010, 09:06
Спасибо за datasheet, очень толковый. Нашел в нем следующий пункт:
Цитата
Initializing by Internal Reset Circuit
An internal reset circuit automatically initializes the HD44780U when the power is turned on. The
following instructions are executed during the initialization. The busy flag (BF) is kept in the busy state
until the initialization ends (BF = 1). The busy state lasts for 10 ms after VCC rises to 4.5 V.
1. Display clear
2. Function set:
DL = 1; 8-bit interface data
N = 0; 1-line display
F = 0; 5 × 8 dot character font
3. Display on/off control:
D = 0; Display off
C = 0; Cursor off
B = 0; Blinking off
4. Entry mode set:
I/D = 1; Increment by 1
S = 0; No shift
Я так понимаю после подачи питания и перед началом записи кодов символов в DDRAM нужно выждать 10 ms и после этого питающее напряжение возрастет к 4.5 В ? А до этого оно сколько было?
Цитата
Я так понимаю после подачи питания и перед началом записи кодов символов в DDRAM нужно выждать 10 ms и после этого питающее напряжение возрастет к 4.5 В ?
Нет. ПОСЛЕ подачи питающего напряжения (после подьема Vcc до 4.5В минимум), контролер будет инициализироваться в течении 10ms. В течении этого времени BF будет держаться в 1, а писать в него (контролер) ничего не нужно (да и бесполезно - он все будет игнорировать)
Aleksandr_KPI
Sep 10 2010, 09:46
Ну я почти это и имел ввиду, только напутал с 4,5В. Выходит, что бы вывести слово Hello нужно в моем случае 10ms + 50mks*5 = 250mks?
Цитата(Aleksandr_KPI @ Sep 10 2010, 13:46)

Ну я почти это и имел ввиду, только напутал с 4,5В. Выходит, что бы вывести слово Hello нужно в моем случае 10ms + 50mks*5 = 250mks?
Нет. После 10ms инициализации самого контролера ему еще надо скормить последовательность команд для установки режима работы (4/8 бит) и начального состояния (см. в том же DS). И только потом можно будет выводить Hello
Aleksandr_KPI
Sep 29 2010, 13:50
Цитата
После 10ms инициализации самого контролера ему еще надо скормить последовательность команд для установки режима работы (4/8 бит) и начального состояния (см. в том же DS). И только потом можно будет выводить Hello
Все так и сделал. Сначала подождал 10 мс, потом последовательно подал команды: 2 строки дисплея, 8 разрядная шина (00111000); включить дисплей (00001110); инкремент адреса и сдвиг курсора в право (00000110). Судя по datasheet у меня должен появится курсор на экране, но его нет. Ниже привожу временную диаграмму работы программы.
Цитата(Aleksandr_KPI @ Sep 29 2010, 17:50)

Все так и сделал. Сначала подождал 10 мс, потом последовательно подал команды: 2 строки дисплея, 8 разрядная шина (00111000); включить дисплей (00001110); инкремент адреса и сдвиг курсора в право (00000110). Судя по datasheet у меня должен появится курсор на экране, но его нет. Ниже привожу временную диаграмму работы программы.
Насколько видно по диаграмме вы сделали только одну запись в LCD (сигнал x_lcd_en формирует только один импульс). Если за пределами окна там были еще импульсы, проверьте, что интервал между ними не меньше минимального по DS
Aleksandr_KPI
Sep 29 2010, 19:02
На диаграмме я показал только один импульс x_lcd_en но на самом деле их три, для каждого из кодов, а период даже больше требуемого (требуемый 41 мс). Попробую подать непрерывно один из кодов и посмотреть осциллографом доходит ли он до дисплея.
Aleksandr_KPI
Sep 30 2010, 08:50
Проверил все сигналы, все нормально. Может есть какой способ проверки дисплея на пригодность, а то он вообще молчит, хотя бы курсор вывел.
Corvus
Sep 30 2010, 09:34
ЕМНИП, на дисплее есть пин, отвечающий за контрастность. Как он у вас подключён?
Aleksandr_KPI
Sep 30 2010, 10:17
А как это может повлиять на правильную работу дисплея?
Цитата(Aleksandr_KPI @ Sep 30 2010, 14:17)

А как это может повлиять на правильную работу дисплея?
Ну например дисплей может вообще ничего не выводить

Выкрутите переменный резистор в крайнюю левую позицию (что бы на V0 был GND)
Посмотрите последовательность инициализации на стр 46 DS. Там немного больше, чем 3 записи
Aleksandr_KPI
Sep 30 2010, 10:43
А в реальности, там поставили постоянный резистор на 10 КОм. Не думаю что это связано с резистором, на дисплей раньше уже выводили данные.
Посмотрел на страницу 46, она не сходится в плане инициализации со страницей 24. На 46 указано что инициализация длится 15 ms, а на 24 что 10 ms. Если 15 ms это правильно, то конечно контроллер ничего не будет выводить, так как команды поступают после 10 ms.
FalloutMan
Sep 30 2010, 12:22
Цитата(Aleksandr_KPI @ Sep 30 2010, 14:43)

Посмотрел на страницу 46, она не сходится в плане инициализации со страницей 24. На 46 указано что инициализация длится 15 ms, а на 24 что 10 ms. Если 15 ms это правильно, то конечно контроллер ничего не будет выводить, так как команды поступают после 10 ms.
Есть такое дело, раньше тоже натыкался на такие вещи.В принцапе, если при инициализации Вы подождете чуть дольше при подаче очередной команды, то ничего страшного не случиться (благо для индикаторов такого типа скорость не критична).
Вот ссылка на документ компании МЭЛТ, отечественная фирма дерущая деньги за то что приделала память с рускими шрифтами. Но у них не плохо скомпонованна документация + великий могучий

столь приятный нашему уху
Aleksandr_KPI
Sep 30 2010, 12:46
Цитата
Есть такое дело, раньше тоже натыкался на такие вещи.В принцапе, если при инициализации Вы подождете чуть дольше при подаче очередной команды, то ничего страшного не случиться (благо для индикаторов такого типа скорость не критична).
Период подачи команд для дисплея у меня составляет около 58 us, а время под начальную инициализацию, увеличил до 15 мс так что я думаю здесь все нормально. За DS спасибо.
Цитата
А в реальности, там поставили постоянный резистор на 10 КОм.
В реальности там нужно V0 замкнуть на землю, и не ставить никаких резисторов.
Кстати,
куда именно там 'поставили постоянный резистор на 10 КОм'? Сдается мне, что именно из за этого и не работает
Aleksandr_KPI
Sep 30 2010, 13:54
Цитата
Вот ссылка на документ компании МЭЛТ, отечественная фирма дерущая деньги за то что приделала память с рускими шрифтами. Но у них не плохо скомпонованна документация + великий могучий biggrin.gif столь приятный нашему уху
Чем больше я читаю тем больше вариантов "правильного" подключения дисплея появляется. Вот и тут время инициализации уже 20 мс ( а начинали с 10 мс) и зачем посли инициализации нужно трижды посылать один и тот же код. Насколько можно доверять такому DS?
P.S. После включения питания, курсор сам, по умолчанию, появится не должен?
Цитата
Кстати, куда именно там 'поставили постоянный резистор на 10 КОм'? Сдается мне, что именно из за этого и не работает
Извините за дезинформацию, все там правильно касательно контрастности и переменного резистора. То я не туда посмотрел. Только что крутил резистор, добился того что V0 = 0, результат по дисплею отрицательный, данных нет.
Aleksandr_KPI
Sep 30 2010, 16:06
РАЗОБРАЛСЯ.

Проблема таки была с контрастностью. Если посадить V0 на землю, то получалось что все пиксели становились черными и цифр не было видно, пришлось покрутить резистор в сторону увеличения напряжения на V0 и цифры появились (крутить от нуля). Всем спасибо.
Aleksandr_KPI
Oct 14 2010, 07:53
Подскажите, какие языки присутствуют в дисплее SC1602BSLB_SH_HB_R, буквы HB обозначают: hitachi / English-European, но я кроме английского и китайских иероглифов не могу добиться больше ничего. Заглянул в DS на микроконтроллер, ввожу коды для русских букв, а он выводит все те же китайские иероглифы. Как работать с русским шрифтом?
Цитата(Aleksandr_KPI @ Oct 14 2010, 11:53)

Подскажите, какие языки присутствуют в дисплее SC1602BSLB_SH_HB_R,
Вы же сами и ответили
Цитата
буквы HB обозначают: hitachi / English-European
Английские буквы и разные умляуты
Цитата
, но я кроме английского и китайских иероглифов не могу добиться больше ничего.
Вам повезло - не должно быть там иероглифов. И Русских букв быть не должно
Цитата
Заглянул в DS на микроконтроллер, ввожу коды для русских букв, а он выводит все те же китайские иероглифы. Как работать с русским шрифтом?
Сменить LCD на другой, с другими буквами в конце
Цитата
Заглянул в DS на микроконтроллер,
Там перечисленны ВСЕ возможные таблицы знакогенератора. В конкретном экземпляре контролера зашита только одна конкретная таблица (и она не может быть изменена)
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.