МАРСОХОД

Open Source Hardware Project

Проекты Altera Quartus II для платы Марсоход

Подключение дисплея WH0802 к компьютеру через COM- порт

 ЖК дисплей

У нас уже были статьи и про COM-порт и дисплей WH0802, но в этой статье я хочу рассмотреть обе темы  более подробно.

Для того , чтобы использовать COM-порт для своих целей, прежде всего нужно убедиться в его наличии физически (есть ли разъемчик), и присутствии в операционной системе. В Windows, это можно увидеть в "диспетчере устройств" в
разделе "Порты (COM и LPT)" в строке "Последовательный порт (COMx)". Где "x" - его номер.

В том случае, если COM-порта у вас нет, можно воспользоваться переходником USB-COM, установив соответствующие драйвера. После того, как COM-порт у вас появился, есть простой способ проверки его работоспособности. Для этого к пинам разъема порта "GND" (5) и "TX" (3) нужно подключить светодиод, катодом к "GND" (у нового светодиода эта нога короче), а анодом к  "TX":

Светодиод к COM порту

В обычном состоянии, светодиод гореть не должен. Если скопировать в COM-порт, какой-нибудь коротенький файл, то светодиод должен моргнуть. Сделать это можно из консоли, набрав команду "copy file.xxx /b comX". К сожалению в виндовс из консоли доступны только COM-порты с номерами от "1"  до "4". Если вы используете  USB-COM-переходник, и система назначила вам больший номер, можно попробовать его изменить в "диспетчере устройств".

После того как вы убедились , что COM-порт у вас есть и вы можете им управлять, можно подключать его к плате Марсоход.

подключение COM порта к плате Марсоход

Пин "GND" , соответственно, нужно подключить к земле , а "TX" мы будем подключать ко входу "DN" который есть на разъеме для ИК-приемника. Для защиты входа от повышенного напряжения, на штыречки "DN" и "+5V" , USB- разъема, обязательно нужно установить джампер.

Подключение сигналов COM порта к плате Марсоход

Далее, зашиваем в платку проект (взять здесь:

). Проект очень простой, он содержит приемник COM-порта и всего один регистр, куда фиксируются принятые даныне. Для наглядности, все 8 бит принятого байта выведены на светодиодики, а 6 младших бит выведены на "моторные" пины, для управления дисплеем.

Приемник COM-порта работает на скорости 9600, поэтому COM-порт компьютера нужно настроить на эту-же скорость. В консоли виндовс это можно сделать с помощью команды "mode comX baud=9600 data=8".

Теперь, если скопировать в COM-порт какой нибудь файл, можно из заготовленных нами (находятся в архиве), то на светодиодах останется последний байт.

Например после команды "copy 0.bin /b comX" должен остаться включенным третий слева светодиодик, поскольку последний байт в файле "0.bin" - "20h".

Таким образом, мы имеем возможность управлять дисплеем непосредственно из консоли компьютера.
Для продолжения экспериментов устанавливаем шилд с дисплеем  WH0802

дисплей к плате Марсоход

Его изготовление и схема  описаны в статье "часики".

Подробно о самом диспле  WH0802 можно узнать из даташита (

LCD дисплей ( 458341 bytes )
), а я попробую описать наиболее важные, для нас, моменты.

Для подключения, дисплей имеет 14 пинов.

Контакты дисплея WH0802
1,2 - "VSS"  и "VDD"- питание ( все эксперименты я выполнял при напряжении 4В ).
3 - "VO"  - контрастность. Вообще-то, напряжение здесь должно быть регулируемым, но у нас
для простоты, подключено на землю. Контрастность может оказаться не самой удачной,
но на принципиальную работоспособность это не влияет.( можно доделать потом, когда все заработает ).
4 - "RS" - команда/символ. У нас подключено к 5- му биту.
5 - "R/W" - чтение/запись. Поскольку в дисплей мы будем только писать, у нас этот пин подключен к земле.
6 - "E" - при переходе этого сигнала из "1" в "0", данные фиксируются в дисплее. У нас это  6-й бит.
7..14 - сами данные. Мы будем использовать четырехбитный режим, поэтому "DB3", "DB2","DB1" и "DB0"
подключены к земле, а "DB7", "DB6","DB5" и "DB4" к четырем младшим битам.

Для того, чтобы нужные нам данные попали в дисплей , нужно выполнить "операцию записи".

Запись в дисплей WH0802
Из картинки видна следующая последовательность действий.
Сначала нужно "поднять" сигнал "E" (установить 6-й бит в "1" ) Далее, выставить нужные данные . Затем "опустить" сигнал "E" (установить 6-й бит в "0" )

Для удобства выполнения этих действий, мы заготовили нужное количество файлов, каждый из которых содержит три байта, последовательное копирование которых в  COM-порт, выполняет "операцию записи", причем имена этих файлов соответствуют записываемым данным.

Теперь подробнее о данных , которые можно записывать.
Это коды символов, которые можно посмотреть в "Table 2" даташита и команды

Команды дисплея WH0802

Хочу обратить внимание на самую правую колонку это таблицы "Execution time".
Это время, за которое конкретная команда должна гарантированно выполниться. В нашем случае (при скорости порта 9600, 3 байта на "операцию записи" да еще и 2 раза ), минимальное время, за которое можно записать одну команду ~ 6 миллисекунд. Это значительно медленнее выполнения любой команды, но, если вам в дальнейшем
приедется управлять дисплеем из проекта ПЛИС, эти времена нужно выдерживать.

Далее, последовательность действий, для того чтобы дисплей начал показывать.
После подключения питания нужно немного подождать (по даташиту > 40 миллисекунд). Затем выполнить инициализационную последовательность команд. Поскольку мы будем пользоваться четырехбитным режимом, то каждая команда
или код символа передается за 2 раза (две "операции записи"), сначала старшие 4 бита, затем младшие.
Для удобства мы собрали эту последовательность в файл "init.bat"


copy 3.bin /b com1
copy 3.bin /b com1

copy 2.bin /b com1
copy 2.bin /b com1
copy 8.bin /b com1

copy 0.bin /b com1
copy 1.bin /b com1

copy 0.bin /b com1
copy f.bin /b com1


Первые две строки, включение 8-битного режима. Следующие три строки - переключение в 4-х битный режим и включение второй строки. Далее - очистка экрана. Последняя пара строк - включение экрана и мигающего курсора.
После выполнения этой последовательности должен появиться курсор в первой позиции верхней строки.

Теперь дисплеем можно пользоваться. Если два раза выполнить "copy 13.bin /b comX", то в позиции курсора появится символ "3" (код 33h).

В качестве примера, я сделал файл "show.bat" в котором выполняется инициализация и выводится образец текста.

Все эксперименты я проводил на двух компьютерах - десктопе с "настоящим комом" и
системой "WindowsXP" и на ноутбуке с переходником "USB-COM" и "Windows7".

 

Комментарии  

0 #4 Ю р и й 25.07.2016 06:38
"inst23" это делитель битовой скорости. У него на выходе короткие импульсы с частотой 9600 и подстраиваемой фазой.
0 #3 ssserghei 22.07.2016 13:45
Объясните пожалуйста назначение 9 разрядного счетчика (inst23) в вашем проекте.
0 #2 Ю р и й 07.08.2013 03:49
Цитирую Jofy:
Поясните пожалуйста, почему в данном проекте не используется преобразователь уровней, о котором вы говорили в статье http://marsohod.org/index.php/projects/plata1/98-serialport ?

На самом деле преобразователь уровней есть, только он упрощенный.
Состоит из последовательно включенного резистора (82ом) и двух диодов.
Один на землю (он есть внутри чипа), второй на питание. Для его подключения установлен синий
джампер, его хорошо видно на фотографии.
Таким образом сигнал COM-порта с амплитудой от -12 до +12, пргебразуется в сигнал от -0.7 до VCC+0.7,
который можно подавать на чип.
+1 #1 Jofy 06.08.2013 11:07
Поясните пожалуйста, почему в данном проекте не используется преобразователь уровней, о котором вы говорили в статье http://marsohod.org/index.php/projects/plata1/98-serialport ?

Добавить комментарий


Защитный код
Обновить


GitHub YouTube Twitter
Вы здесь: Начало Проекты Проект Марсоход Подключение дисплея WH0802 к компьютеру через COM- порт