Обсуждаем цифровые устройства...
Ответить

ЖК от ОРИОН или HT1621 изнутри

Пн апр 29, 2013 17:47:12

Завалялись у меня тинки13 и пару ЖК панелей от кассовых аппаратов ОРИОН.
Еще был ЛБП самодельный, который показывал только напряжение на выходе.
Регулировалось только напряжение от 1,2 до 36 и защита на 3 ампер.
Решил сделать ампер-вольтметр для него, вот и пришлось разбираться с HT1621 :)

Приступим
Буду объяснять все деревенским языком, понятно, коротко и ясно надеюсь :)
понять HT1621 не так просто оказалось, я рассчитывал все собрать за час, но...
Нашел пару примеров чужого кода на С++, но очень скудные коментами и/или были на китайском.

Короче я всегда предпочитал писать код с нуля чем разбираться в чужом коде, так быстрее и к тому же луче понимаешь суть работы микросхемы.
Перечитав даташит раз 5, я переписал нужные мне команды и протокол работы микросхемы на понятном для меня деревенском :)) .
Поехали!

Так что же из себя представляет контроллер "HT1621 RAM Mapping 32x4 LCD"
Эта микросхема на борту имеет 128бит ОЗУ, ячейки которого привязаны на выходы
SEG0..SEG31 и COM0..COM3.

То есть если мы запишем в ОЗУ какие то данные то они сразу же передаются на ножки микросхемы и тем самым высвечиваются на экране.
(как работает ЖК можете посмотреть здесь http://radiokot.ru/articles/26/))

Что же мы имеем:
CS - Chip Selection – вибор чипа, коротко скажу - чтоб начать работать с микросхемой подаем на CS лог. 0, когда закончим передавать данные то подаем лог. 1.

RD - тактирующий сигнал для чтения данных

WR - тактирующий сигнал для записи данных

Data – сами данные, которые передаются последовательно

OSCI/OSCO – для подключения внешнего кристалла 32.768khz, если настроен на внутренний осцилятор то эти ножки могут висеть в воздухе

VLCD - питание LCD

VDD – питание микросхемы

IRQ – преривания

BZ и BZ – выходы для подключения пищалки, можно получить 2khz или 4khz на этих ножках.

COM0..COM3 – общий для сегментов LCD

SEG0..SEG31 – сами сегменты LCD

Скажу по секрету что если у вас такая же плата как у меня от ОРИОН, то все что вам нужно для управления это 3 провода, а именно вот эти: CS, WR и DATA.


Протокол работы:
Протокол работы очень простой, все что нам нужно для начала работы с микросхемой это:
1. устанавливаем CS - 1
2. настраиваем BIAS и COM
3. посылаем команду System Enable
4. включаем LCD
5. дальше подаем на CS – 0, посылаем данные с тактирующим сигналом и после окончания посылаем на CS – 1, как на диаграмме.
Изображение

BIAS смешение генератора для LCD. Имеет два режима: ½ и 1/3.
Я не совсем понял что это, потом пройдусь осциллографом и напишу обязательно.
На этом дисплее если ставить BIAS 1/3 то сегменты светятся как бы в пол накала :)

Изображение

Что касается COM микросхему можно настройть на работу с двумя, тремя или четырьмя общими выходами.
Нам нужны все четыре, ибо на дисплее 12 семисегментных знаков и еще дополнительные.

Формат команд:
Ща будем разбиратся из чего состоят команды.

Первые 3 бита (bit0..bit2) указывают на режим команды или режим передачи/приема данных.
Режимов у нас 3 – 100, 101 и 110.

    Первый режим – это режим передачи команды – 100 XXXXXXXX X
    Зеленными помечены биты самой команды, например: 100 00000011 X – это команда
    LCD ON. Последний бит X может быть любым, он пропускается.


    второй – режим записи данных - 101 XXXXXX XXXX X
    третий – режим чтения (не рассматриваем) – 110 XXXXXX XXXX X


в режимах чтения и передачи данных, биты разделены следующим образом:
bit3..bit8 – это адреса в памяти
bit9..bit12 – это сами данные
bit13 – неважно что, я всегда ставлю 0.

Передача команд:
Есть два способа.
Первый это “обычный” способ, когда посылаем данные и адреса каждый раз, и второе это, когда первой команде указываем начальный адрес, а микросхема сама перейдет на следующий адрес, пока мы посылаем данные.
Изображение

практика:
посылаем биты – скажем: “100”
CS=0; // chip select
WR=1; DATA=1; WR=0;
WR=1; DATA =0;WR=0;
WR=1; DATA =0;WR=0;
CS=1;
//WR это тактовый сигнал, DATA это данные, думаю все очень легко :))

Сразу приведу пример инициализаций на псевдо языке программирования :)
===============
// инициализаций
send 100 00101000 0; //BIAS & COM – BIAS ½ и COM все 4
send 100 00000001 0; //SYSTEM ENABLE запускаем генератор
send 100 00000011 0; //TURN ON LCD включаем lcd

//посылаем данные
send 101 0100 1100 0;
// говорим микрухе что мы будем записывать данные и записываем по адресу 0100 данные 1100, ну и последний бит не важно :)
===============

Можно вот так записывать данные и каждый раз увеличивать адрес на единицу, но помните что микросхема умеет сама увеличивать адрес.
Так вот
Если мы запишем вот так:
send 101 0001 1100 0 1000 0 1001 0 1100 0 1010 0;
то HT1621 сама запишет увеличивая адрес на единицус каждым приёмом пакета данных состоящих из 4х бит.
То есть последняя пачка данных 1010 запишется по адресу 0101, ибо начальный адрес мы указали 0001 а прибавив к нему еще 4 то получится 0101.

Теперь сам дисплей.
Методом тыка битами по ОЗУ, я определил какие сегменты к какому адресу привязаны.
Изображение
Как видно один знак занимает два адреса в ОЗУ. Всего 12 знаков, значит 24 адреса используются (прям как Иода сказал :)  )

Если мы по адресу 000001 запишем значение 0001 то у нас высветится самый нижний горизонтальный сегмент первого знака (слева).
Если по адресу 000010 запишем значение 0001 то уже засветится точка первого знака.

Надеюсь доходчиво объясняю :) если все еще не понятно то вот пример с картинкой ОЗУ.
Здесь пишем двойку на первом знаке (слева).
Изображение

Вроде все.
Команды HT1621 я перечислять не буду, все найдете в даташите.
Прилагается пример вольтметр+амперметр, все с коментами, но мне проще на английском коментить (так короче коменты получаются) и там не все на русском,но думаю все легко можно понять.
Если будут вопросы я готов ответить и помочь как смогу :)
Надеюсь хоть кому то эта статья будет полезна.
Изображение
P.S. код не оптимизирован, наверно можно еще уменьшить что-то, но цель статьи не программирование на С++, а понять HT1621.
Как вы реализуете программную часть для мк это другая тема.
В архиве есть исходник на CVAVR и HEX для attiny13

http://radiokot.ru/forum/download/file.php?id=149454 - исходник на CVAVR и HEX
Вложения
1.GIF
(5.97 KiB) Скачиваний: 27513
2.GIF
(14.21 KiB) Скачиваний: 26351
5.gif
(11.96 KiB) Скачиваний: 26397
3.gif
(13.96 KiB) Скачиваний: 26329
4.gif
(10.34 KiB) Скачиваний: 27041
Последний раз редактировалось DLL32 Пн апр 29, 2013 17:50:06, всего редактировалось 2 раз(а).

Re: ЖК от ОРИОН или HT1621 изнутри

Пн апр 29, 2013 17:48:45

DSC_0488.jpg
(59.35 KiB) Скачиваний: 26572

hex+source.zip
(43.65 KiB) Скачиваний: 3252

Re: ЖК от ОРИОН или HT1621 изнутри

Пн окт 21, 2013 01:01:49

DLL32 писал(а):Завалялись у меня тинки13 и пару ЖК панелей от кассовых аппаратов ОРИОН.
Еще был ЛБП самодельный, который показывал только напряжение на выходе.
Регулировалось только напряжение от 1,2 до 36 и защита на 3 ампер.
Решил сделать ампер-вольтметр для него, вот и пришлось разбираться с HT1621

Пошутил наверное? Схема то где?

Re: ЖК от ОРИОН или HT1621 изнутри

Вт ноя 25, 2014 10:00:53

kakaia nafig sxema, esli xotite gotovi device to ishite v drugom meste, zdes je ia prosto obiasniaiu princip raboti ЖК панелей от кассовых аппаратов ОРИОН.
:evil: :evil: :evil: :evil: :evil:

Re: ЖК от ОРИОН или HT1621 изнутри

Вт ноя 25, 2014 12:16:53

Molodez! Nash otez!

Re: ЖК от ОРИОН или HT1621 изнутри

Вт дек 09, 2014 20:50:05

В общих чертах... неплохо...
Токмо таких дисплейчиков на базе HT1621 пока в достатке нетуть - еще не выбрасывались (ресурс не использован), а вот на базе NJU6432BF или его аналога на "капельке" кой-чего имеется. Но цоколевку прийдётся методом "научного тыка" определять... Да и картировать соответствие сегментов/данных токмо натуртестированием... :(
А дисплейчик неплохой - 10 знакомест и весьма крупненькие семисегментные с точкой циферюжки... :hunger:

Re: ЖК от ОРИОН или HT1621 изнутри

Сб дек 13, 2014 16:41:46

Добавлю еще один индикатор в продолжение темы о повторном использовании отработавших ресурс кассовых аппаратов.
Хоша из оных к употреблению в любительской практике к концу срока службы остается «на раздербан» разве что модули индикаторов и термопринтер – остальное либо беспредельно морально/материально устаревшее, либо несоразмерный износ имеет…
Итак…
Индикаторы от старых «минек» от «юнисистем» - выпускались в двух вариантах – на основе
NJU 6432BF или на основе вероятно того же контроллера, но в виде «капельки» наклеенной на базовой платке.
http://img.radiokot.ru/files/20529/irv2jp1oo.jpg
http://img.radiokot.ru/files/20529/irv2ivrci.jpg
Одинаковость цоколевки дает возможность предполагать об одинаковой начинке – но стоит все же проверить (по возможности чуток попозже сделаю – шлейфик пока слепить не из чего – прийдтся рынка ждать…).
Базовая модель на основе явно видимого NJU 6432BF:
С разводкой соединительного разъёма удалось разобраться сравнительно просто, благо на сегодня даташит на NJU 6432BF не является проблемой, а выводы самого контроллера явно доступны для прозвонки.
Сам индикатор состоит из десяти знакомест в виде семисегментника с децимальной точкой. Вот туточки и начинаются вопросы – контроллер на 53 сегмента при двух линиях COM. Причем сегмент 53 служебный. На платке же видно, что еще некоторое количество сегментных выводов не подсоединено. А для дисплейчика надо минимум 80 сегментов обеспечить. Следовательно… прийдется протестировать соответствие имеющегося индикатора (его сегментов) позициям бит данных в блоке, пересылаемом в регистр контроллера. Кроме того там еще одна «неприятность» - в массивы вставлены служебные тетрады… Т.е. массив будет «разрезным», что надо учитывать при формировании пакета загружаемых данных.
Для производства теста привязки я воспользовался уже готовым ранее устройством (viewtopic.php?f=62&t=94201 ), несколько видоизменив схему подключения обвязки
T9a.pdf
(252.64 KiB) Скачиваний: 1114

и добавив модуль тест-прогона «скользящей 1» по всему массиву данных для ОЗУ индикатора (исходник и скомпилированные t9a.tsk (бинарный образ ПЗУ) и t9a.hex в архивчике
T9a.rar
(93.69 KiB) Скачиваний: 858
).
Кроме того пришлось изготовить блок с индикатором для тестилок-поигрушек:
http://img.radiokot.ru/files/20529/irv2kgtfh.jpg
В результате удалось получить следующие данные про индикатор:
kasdis_a.pdf
(145.55 KiB) Скачиваний: 994

Вот пока и все новинки БЭУшных разборок.
:beer:
Пы.. Сы...
Даташит на контроллер:
NJU6432BF.pdf
(265.24 KiB) Скачиваний: 968

:write:

Re: ЖК от ОРИОН или HT1621 изнутри

Пн дек 15, 2014 15:25:45

А у меня есть ЖКИ от телефонного проводного аппарата. Стекляшка 87х25 мм, приклеена через пару резинок к односторонней гетинаксовой плате 35х88 мм, на плате кучка трухольных керамических конденсаторов и часовой кварц, а также группа контактных дырочек, подписанных VSS, VDD, HKS, SDI, S2 и S1, в которые припаян кусок плоского шлейфа. Не то ли это самое, что и Subj?

К сожалению, на всех фотках, которые здесь показаны, зона возможных надписей над контактами, как назло, полностью закрыта шлейфом, не сравнишь.

Какой у моего индикатора чип, узнать нельзя, там "клякса". Вот и спрашивается, что это за зверь и как бы использовать его в мирных целях?

Re: ЖК от ОРИОН или HT1621 изнутри

Вт дек 16, 2014 11:22:32

Ежли от телефонного аппарата, то ВОЗМОЖНО, вот такое чудо:
HT1611C+wm161162c_note.pdf
(226.82 KiB) Скачиваний: 1247

:dont_know:

Re: ЖК от ОРИОН или HT1621 изнутри

Ср дек 17, 2014 21:35:58

Или вот еще вариант телефонного дисплея:
HT1613_1.JPG
(93.72 KiB) Скачиваний: 1863

на основе
1613C.PDF
(173.93 KiB) Скачиваний: 1070

вобщем подобие 1611, но... всяко встречается...
8)

Re: ЖК от ОРИОН или HT1621 изнутри

Пт дек 19, 2014 15:47:07

1611, 1613, 1616 - это все понятно, управление по трем проводам - DI - SK - HK. А у моего дисплея - два провода - SDI и HKS,

Чует моя душа, оторву я эту платку с "кляксой" и склепаю что-нибудь своё. Те более, 1.5В-питание неудобно...

Re: ЖК от ОРИОН или HT1621 изнутри

Пт дек 19, 2014 22:47:45

Мож стоит сначала справочники по телефонам глянуть авось да повезет...
:)
В обработке пара сканов разновидностей схемок с 1621й... :write:

Re: ЖК от ОРИОН или HT1621 изнутри

Пн дек 22, 2014 11:54:56

afz писал(а):А у моего дисплея - два провода - SDI и HKS ...

У меня такой же дисплей. Долго искал по нему информацию и нашел где-то.
Там такой же контроллер 1611 а вот шина данных и шина синхро совмещены в одну.

Re: ЖК от ОРИОН или HT1621 изнутри

Ср дек 24, 2014 14:43:15

pcb432 писал(а):У меня такой же дисплей. Долго искал по нему информацию и нашел где-то.
Там такой же контроллер 1611 а вот шина данных и шина синхро совмещены в одну.

И как это? Я что-то не очень представляю... Это же только если играть длительностью, т.е. скважностью? А подробности сохранились?

Re: ЖК от ОРИОН или HT1621 изнутри

Чт дек 25, 2014 20:25:41

Пробую найти. но было давно.

Re: ЖК от ОРИОН или HT1621 изнутри

Пт дек 26, 2014 11:03:08

Вот здесь (тема - Как прицепить к PIC-у ЖК индикатор от китайского проводного телефонного аппарата?) про так сказать "однопроводную" шину http://www.microchip.su/showthread.php?t=4601
Даташит
EM32100.pdf
(325.82 KiB) Скачиваний: 1031
.

Re: ЖК от ОРИОН или HT1621 изнутри

Ср янв 14, 2015 13:10:51

Возвращаясь к "большим дисплейчикам" от кассовых неликвидов
http://img.radiokot.ru/files/20529/irv2jp1oo.jpg
http://img.radiokot.ru/files/20529/irv2ivrci.jpg
Увы... "капелька" оказалась более трудным "орешком" - хоша разводка и назначение контактов шлейфа у дисплеев одинаковы, одначе протокол несколько иной и, вероятно, соответствие ячеек регистра сегментам может быть отличным.
Даташит "капельки" - KS0035P прилагается:
KS0035P.pdf
(111.09 KiB) Скачиваний: 695

насчет тестиловки привязки сегментов - будет попозже...
:solder:

Re: ЖК от ОРИОН или HT1621 изнутри

Чт янв 15, 2015 16:10:50

pcb432 писал(а):Вот здесь (тема - Как прицепить к PIC-у ЖК индикатор от китайского проводного телефонного аппарата?)
Оно! Спасибо.

Re: ЖК от ОРИОН или HT1621 изнутри

Пт янв 16, 2015 14:53:10

Оказалось не так уж и много отличий...
KS0035P и NJU6432BF вполне могут работать по протоколу, используемому для KS0035P. Знакогенератор и соответствие бит ОЗУ сегментам идентично.
kasdis_a.pdf
(189.58 KiB) Скачиваний: 742

Это данные согласно тест-макетным испытаниям.
8)

Re: ЖК от ОРИОН или HT1621 изнутри

Ср фев 11, 2015 14:18:50

Я правильно понял- там n-битный регистр, в который последовательно загоняются данные?
Подобный регистр, но для вакуумно-люминисцентного дисплея, использовался в видеомагнитофоне ВМЦ8220.
С1165 OKI (маркировка на корпусе). Даташита на него не нашел, похоже аналогичен MSC1164.
Очень привлекательный параметр "Driver Supply Voltage (VHV) : 65V".
Хотел попробовать присандалить к микроконтроллеру, но знаний пока немного.
BOB51 не на си ваш тест?
Вложения
MSC1164.pdf
(121.77 KiB) Скачиваний: 736
Ответить