Дисплей 16х1 от ККМ "Элвес Микро"
- Войдите на сайт для отправки комментариев
Ср, 21/11/2018 - 12:51
Здравствуйте!
Отковырял от списанного кассового аппарата "Элвес Микро" блок индикации с дисплеем 16х1. Документацию на данный дисплей в Интернете найти не удалось. Подключил его к UNO (порты А4 и А5). Хочу в дальнейшем применить его в каком-нибудь своем устройстве, но пока не получается найти с ним общий язык.
Схема подключения такая:
Скетч для отладки:
#include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27,16,1); void setup() { lcd.init(); lcd.init(); lcd.backlight(); } void loop() { lcd.print("Hello, world!"); }
Компиллируется без ошибок, но дисплей не работает. Думаю, что или подключаюсь не к тем контактам, хотя пробовал менять местами А4 и А5, или адрес не верный.
Подскажите, пожалуйста, как еще можно попробовать "договориться" с дисплеем.
а с чего ты взял, что адрес у него 0х27? И что он вапще по i2c подключается?
Ну... на схеме с сайта производителя выводы DDAT и DCLK, наверное, и есть i2c. "Но это не точно"
Адрес от балды, так как информацию по этому дисплею не нашел.
Запустить сканер I2C - он увидел?
Ну... на схеме с сайта производителя выводы DDAT и DCLK, наверное, и есть i2c. "Но это не точно"
Адрес от балды, так как информацию по этому дисплею не нашел.
чето фигня какая-то. У меня никак не складывается. как это "схема на сайте производителя" есть, а "информации в инете не нашел"
Зачем в скетче два раза lcd.init() - чтоб до дисплея лучше доходило? :)
RomYch13, да по пинам видно что это обычный "серийник" , к I2C не имеет никакого отношения. Без документации на формат данных заюзать неполучится, киньте это в помойку и не морочьте голову себе и нам :)
Ну... на схеме с сайта производителя выводы DDAT и DCLK, наверное, и есть i2c. "Но это не точно"
Адрес от балды, так как информацию по этому дисплею не нашел.
чето фигня какая-то. У меня никак не складывается. как это "схема на сайте производителя" есть, а "информации в инете не нашел"
Вот я тоже хотел за это спросить. :)
Перед помойкой, для успокоения совести, запусти всёжэ I2C сканер, на всякий случай.
Зачем в скетче два раза lcd.init() - чтоб до дисплея лучше доходило? :)
В экземпле к ликвидкристал-и2с два инита стоит ;) Зачем - не понимаю.
Так сканер-то будем запускать, или мозг будем выносить? Уж два часа как спросили!
Я ахреневаю, дорогая редакция!
Запрос в гугл "Элвес Микро схема" и первый же результат - полный комплект принципиальных и монтажных схем на этот кассовый аппарат, включая и "блок индикации", как там этот дисплей называется.
Запрос в гугл "Элвес Микро схема" и первый же результат - полный комплект принципиальных и монтажных схем на этот кассовый аппарат, включая и "блок индикации", как там этот дисплей называется.
У вас интернет другой системы. Дорогой, наверное, поэтому там больше информации по дисплеям.
Наверное. Кстати, глянул на схему .... мда, там экран ITS-E0806SRNP и перед ним 8 сдвиговых регистров CD4015BCM. Значит никакого I2C там, разумеется и близко нет. Работать с дисплеем как-то само собой можно, но надо разбираться с даташитом ITS-E0806SRNP а потом "кормить" его через сдвиговые регистры.
Так сканер-то будем запускать, или мозг будем выносить? Уж два часа как спросили!
Железка дома, а я на работе :)
Кстати, при сканировании надо "подтягивать" А4 и А5 резисторами по 10кОм к +5В?
Так сканер-то будем запускать, или мозг будем выносить? Уж два часа как спросили!
Железка дома, а я на работе :)
Кстати, при сканировании надо "подтягивать" А4 и А5 резисторами по 10кОм к +5В?
Надо, если в дисплее оные не распаяны
Надо, если в дисплее оные не распаяны
Особенно если в CD4015BCM откуда-нибудь I2C возьмётся :)
Как и ожидалось, не сканируется железяка.
Но визуально сильно отличается от документации, возможно у меня какая-то более поздняя версия.
Вот что получилось на варианте дисплея на восьми CD4015BCM:
Скетч выводит цифры от 0 до 7.
Нет, к сожалению, не работает.
Нет, к сожалению, не работает.
Я тоже проверял, на CD4015 - без проблем. А эти не хотят, хотя судя по схемам сигналы- те же. И никакой документации по ним не нашел.
... никакой документации по ним не нашел.
Аналогично
Если еще актуально...
Недавно попался мне такой. Работает по протоколу holtek HT1621. В инете есть инфа.
Подключил к LPC2146 (эклз из помойки :) ). Если нужен быстрокод для тестов - могу поделиться
+1 за отзывчивость!
а код выкладывайте, если не ТС, то может кому другому пригодится
и тема будет завершенной
==========================
ht1621.h
==========================
Недавно попался мне такой. Работает по протоколу holtek HT1621. В инете есть инфа.
Подключил к LPC2146 (эклз из помойки :) ). Если нужен быстрокод для тестов - могу поделиться
Если протокол НТ1621, то ваш код немного отличается от обычного для библиотеки ht1621. Или требуется некая перекодировка?
И второй вопрос по поводу использования ЭКЛЗ. Вы использовали его процессор для управления индикатором?
Пока разбирался с этим дисплеем, пришлось переписать под себя библиотеку. Выяснилось, что разработчики платы сильно не заморачивались каким либо упорядочиванием соответствия адрес/сегмент. Если в правой половине хоть каке-то правила соблюдены, то первые три знакоместа просто развели как получится (под них пришлось выделять индивидуальные массивы кодировки). В результате первый разряд индикатора так и не подключил полноценно, в силу пересечения адресов пары сегментов со 2-м разрядом. К стати и в ккм первое знакоместо не используется полностью.
По эклз инфа взята отсюда (спасибо автору): http://www.kovlev.ru/eklz.html
На плате эклз снесен криптопроцессор за ненадобностью. Все остальное присутствует для экспериментов и изучения матчасти.
Хотел прикрепить фото своего чудо-макета, но что-то сайт не захотел принять.
Что-то компилироваться не хочет, возможно из-за отсутствия библиотеки LPS214x.h. У Вас нет более детального описания протокола обмена. От 1621 скорее всего отличия значительные. Во всяком случае у нее отсутствует звук. И что-то странное с бардаком в разрядах. По идее все сегменты индикатора соединены внутри дисплея и такого быть не должно. Просто какая-то хитрая адресация. И возможно у Вас немного не такой дисплей. У вас в комментариях упоминается возможность программного включения светодиода. На моих платах стоят два светодиода, напрямую выведенные на разъем.
давайте по порядку - чем пользуетесь ? я использую Keil (для ARM) и все здесь под него заточено. просто компилите и все.
в описании 1621 действительно нет команды на включение подсветки (я говорю про светодиоды - это подсветка дисплея 88h). не хотел про это упоминать - но подсказала это мне ida. к стати и основная последовательность команд инициализации (1,3,24,40,e3,a7,6) от нее же. два led (red и green) "живут" самостоятельно и к 1621 отношения не имеют. в моем коде к ним нет обращения - можно зацепить на P0.20. это у меня тестовый led и сидит на плате эклз на разъеме.
и еще - у Вас точно UTC (P-D030801CT-E) ? с каплей на плате ? просто у элвес-микро было две модификации дисплеев - вот этот и на дискретных регистрах, как в документации на ккм.
да, и про звук вот выдержка из описания:
Извините , я думал это под ардуино ИДЕ, поэтому ничего не понятно. Дисплей такой, с другоим вариантом, я разобрался, скетч здесь выкладывал. Просто тех дисплеев немного, а этого варианта десяток еще сохранился. Буду разбираться.
поставьте Keil и все получится. могу hex выложить для 2146 (48), проверите.
Ктати насчет Keil, где лучше про него почитать. И достаточно-ли демо версии?
просто говорим поисковику keil, и например открываем вот это:
https://bravikov.wordpress.com/2016/02/21/начало-работы-с-stm32-в-keil-mdk-arm/
или вот это
http://narodstream.ru/stm-urok-1-ustanovka-keil-μvision/
вообще на официальном сайте заполняем ни к чему не обязывающую форму
https://www.keil.com/demo/eval/arm.htm
и качаем демо
но можно как обычно ч/з torrent найти удобные для себя варианты.
я использую 4.73. ставил 5-ю версию, но через чур навернута.
демо вполне достаточно. отличный отладчик симулятор. работает все - ограничение только размеру кода. вот здесь неплохо для начала http://www.embed.com.ua/arm/pervyiy-samostoyatelnyiy-proekt-v-keil/
Заинтриговали, почитал про LPC? оказывается внутри никому не нужной и практически халявной ЭКЛЗ спрятан нехилый процессор да и остальное достаточно грамотно сделано. Вы какие-то проекты на этой базе уже делали, или пока только изучение,
изучаю. и сделал бы. да только что ? на нем много чего можно. usb к стати в полный рост работает. и загрузчики есть. ну вольтметры всякие термометры измерители емкости и пр. хрень пробовал. примеров миллион на 2146. есть еще эклз на lpc2364 КС. эта вообще с постоянно включенным шим может от 1.5v работать
к стати работает на рекомендованных 60 мгц, но разгоняется легко до 120 и вполне себя так нормально чувстствует
Если до конца проникнитесь, то очень рекомендую вот это. Вполне так все доходчиво и прям в точку.
https://studfiles.net/preview/2385253/
В общем камушек интересный, только нужно найти ему достойное применение. Для тех задач, которые приходится решать и ардуины за глаза. Да и поздновато уже начинать, лет 40 назад наверное взялся - бы без раздумий. А сейчас и глаза уже не те, да и мозги не так быстро соображают. Только по старой радиолюбительской привычке не могу пройти мимо безхозной железки, а применение ее под большим вопросом. А насчет ЭКЛЗ - в принципе компактная готовая надежная система, которая может хранить и обрабатывать данные. Привязать к ней простенький интерфейсный блочек и пусть трудится. Конечно в данном варианте не удастся использовать все возможности процессора, но вычислительные возможности вполне. Ну а если вывести все порты, то никакая ардуинка ей в подметки не годится, да еще и нахалву.
по поводу бесхозной железки - выложите ардуинскую библиотеку для 1621. счас прилепим. тамже на атмеле все ?
и кс тати вот: https://github.com/pilnikov/HT1621-Arduino-Library/tree/master/Ht1621-library-Master
Что-то не прокатило. Хотя библиотека вроде должна подойти, но в ней косяки, во всяком случае на этапе инициализации с Вашей отличается. Так у Вас первые команды 1 и 3, а там 2 и 4, явно лишний нолик в конце добавлен. Возможно и в других командах косяки. А Ваши команды с даташитом совпадают.
Вот кусочек из библиотеки , где явное несовпадение с даташитом и Вашей инициализацией:
отлично, что взялись. не беда - завалим железку.
по порядку
команды правильные, только обратите внимание - чипу надо сказать :
100 (подать команду. 3 бита)
сама команда 0000 0001
и еще один пустой бит, неважно какой.
должно быть как в даташите 100 0000 0001 X - итого 12 бит
как делается здесь:
SS,RW,DATA - делаем соответствие
data -> ddat
rw -> dclk
ss (скорее всего cs) -> dres
у Вас так ?
проблема скорее всего во времянке. я всетаки рекомендую поставить keil и прогнать все в логическом анализаторе в отладчике. увидите во всяком случае что зачем следует.
И еще - в Вашем дисплее нет команды чтения. нет физически вывода RD. поэтому производится только запись. и по коду надо смотреть, чтобы не было обращения к чтению.
вот эти строчки закомментируйте
Так все и сделал, ладно это не горит. Поковыряюсь еще. Насчет кейла - от атмеги тоже поддерживает?
команды правильные, только обратите внимание - чипу надо сказать :
100 (подать команду. 3 бита)
сама команда 0000 0001
и еще один пустой бит, неважно какой.
должно быть как в даташите 100 0000 0001 X - итого 12 бит
как делается здесь:
Т.е. если я привык использовать десчтичные, или шестнадцатеричные то при переводе двоичных из бмблиотеки младшим байтом считается 1 ый? И при переводе младший не учитывается?
по поводу keil похоже за угол завел... нет поддержки
http://www.keil.com/support/docs/1655.htm
как понять что этот гад завелся:
при подаче команды:
88H (08H) должна загореться подсветка
09H должен запищать
https://drive.google.com/open?id=1Hzz-psf9OUCspGcLSilVI64ICbYwkpA0
Ок! Спасибо еще раз внимательно почитаю даташит. Немного в голове прояснилось. Нужен был толчок.
это они так упростили себе жизнь. здесь неважно где конец одного и начало другого
важно в целом выдержать последовательность передачи бит (формат посылки) от cs \ до /cs
Ясно, а я пытался найти логику. Еще раз спасибо.
это они так упростили себе жизнь. здесь неважно где конец одного и начало другого
важно в целом выдержать последовательность передачи бит (формат посылки) от cs \ до /cs