Автор Тема: USB LCD монитор на контролере HD44780  (Прочитано 10811 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн qwertyuser

  • самый главный админ
  • Administrator
  • Hero Member
  • *****
  • Сообщений: 563
  • Karma: +65535/-0
  • кармадрочер
    • Просмотр профиля
    • ufoserver.org
USB LCD монитор на контролере HD44780
« : Август 30, 2010, 04:16:37 pm »
За исходное взял sheme.
В моем подключении MAX232 не нужна, если нет подсветки то транзистор тоже. Кнопки не подключал. Итого получилось 3 детали: индикатор процессор и резистор контрастности. Но и без него можно обойтись . RX и TX я подсоединил сразу к роутеру /dev/tts/1 . Вся схема эмулирует протокол MATRIXORBITAL. На PC проверял программой LCDSmartie. Работает нормально, за исключением буквы 'я' 0xFF. Она является префиксом команд.
Исходники если надо (HI-Tech C) выложу.
картинки что получилось. 2x16 отмел сразу - неинформативно. 40x4 не знаю чем заполнить . Вот что получилось.


инсталирование
ipkg install lcd4linux

и всё. Программа оказалась на редкость простая. В файле lcd4linux.conf задаешь лэйаут как нужно, чтобы индикатор показывал. Вот исходник, взятый за основу lcd_serial628.c. Под конкретный индикатор надо переделывать. Morb628.hex должен работать до 20х2. 4004.hex - 40x4. Пример lcd4linux.conf как сделано у меня.


lcd4linux.conf
Display LCD2USB {
    Driver     'LCD2USB'
    Size       '16x2'
    Contrast   250
    Brightness 200
    Icons      1
    asc255bug  <0>
}

Widget CPU {
    class      'Text'
    expression  uname('machine')
    prefix     'CPU '
    width       9
    align      'L'
    update      tick
}

Layout Default {
    Row1 {
        Col1 'CPU'
    }
}

Variables {
   tick 500
}

Display 'LCD2USB'
Layout  'Default'


http://ssl.bulix.org/projects/lcd4linux/wiki/lcd4linux_conf

 ©
« Последнее редактирование: Август 30, 2010, 05:17:19 pm от qwertyuser »
по вопросам размещения Ваших сайтов на этом сервере пишите info@qwertyuser.ru

Оффлайн qwertyuser

  • самый главный админ
  • Administrator
  • Hero Member
  • *****
  • Сообщений: 563
  • Karma: +65535/-0
  • кармадрочер
    • Просмотр профиля
    • ufoserver.org
знакосинтезирующий индикатор к USB
« Ответ #1 : Сентябрь 01, 2010, 11:11:36 am »
знакосинтезирующий индикатор  USB

Будем использовать дисплей на контроллере Hitachi 44780. Эти дисплеи отличаются ужасной распространённостью, а также относительной дешевизной и доступностью. Дисплей можно купить почти в любом радиомагазине, либо выкусить, например, из какого-нибудь старого МФУ. Выбирая дисплей, стоит обратить внимание на поддержку кириллических символов. Ещё некоторые дисплеи имеют EL или CCFL подсветку, для таких дисплеев иногда нужен внешний инвертор для питания подсветки (110 В / 400 Гц). Использовался дисплей WH1602A-NGG-CT. Раскладка этого дисплея — 2 строчки по 16 символов, поддерживается кириллица. Символы яркие и хорошо видны под любым углом, подсветки нету.

Пишем прошивку

Прошивка будет реализовывать USB CDC-ACM (USB Communication Device Class, Abstract Control Model) устройство. Проще говоря, девайс увидится в системе как последовательный порт, что, естесственно, очень удобно. В этот виртуальный порт можно записывать символы, и они будут появляться на дисплее. Всё очень просто. Кстати, вот нативный набор символов дисплея:



Так что нам понадобится добавить в прошивку перекодировку в это безобразие, например, из КОИ-8.
В прошивке я использовал публичные VID/PID, рекомендуемые к использованию с V-USB для CDC-устройств. Копирасты и прочие тунеядцы в этом могут быть спокойны.
С моей прошивкой можно использовать двухстрочные дисплеи, для четырёхстрочных дисплеев (с одним или двумя HD44780) прошивку придётся доработать.

Для прошивки ATmega48 я воспользовался USBasp — простым, быстрым и удобным программатором. Для работы с программатором понадобится avrdude (входит в WinAVR), кроме того удобно использовать GUI оболочку (например, такую).

Подключаем устройство

Если ты используешь Linux, то достаточно воткнуть девайс в USB-порт, после чего появится устройство /dev/ttyACM0.

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

Я подключал устройство к роутеру под управлением OpenWrt. В OpenWrt по умолчанию не включён модуль cdc_acm. Чтобы устройство подхватилось, пришлось собрать и установить пакет kmod-usb-acm.

Проверяем

$ printf "Превед Медвед\r\n Гг Y" | iconv -f utf-8 -t koi-8 > /dev/ttyACM0
Подключаем дисплей к lcd4linux

lcd4linux позволяет выводить всевозможную информацию на дисплей. На настройке lcd4linux я останавливаться не буду, просто отредактируй файл /etc/lcd4linux.conf по вкусу. Драйвер дисплея нужно использовать SimpleLCD, в конфигурации не забыть указать порт (/dev/ttyACM0).


« Последнее редактирование: Сентябрь 01, 2010, 11:25:02 am от qwertyuser »
по вопросам размещения Ваших сайтов на этом сервере пишите info@qwertyuser.ru

Оффлайн qwertyuser

  • самый главный админ
  • Administrator
  • Hero Member
  • *****
  • Сообщений: 563
  • Karma: +65535/-0
  • кармадрочер
    • Просмотр профиля
    • ufoserver.org
Re:USB LCD монитор на контролере HD44780
« Ответ #2 : Ноябрь 09, 2010, 08:07:39 pm »
трансформатор
по вопросам размещения Ваших сайтов на этом сервере пишите info@qwertyuser.ru