Страница 1 из 6

Подключение PIC к PT6523

Добавлено: 04 янв 2010, 19:37
Mixer
Думаю как подцепить данный контроллер LCD к PIC. Вопросы вызывают последние 4 бита данных и инициализация.

Re: Подключение PIC к PT6523

Добавлено: 05 янв 2010, 00:34
rhf-admin
Последние 4 бита - специальные. DR - определяет какой режим используется. Если твой LCD сделан под режим 1/2 bias, 1/3 duty, то пины VDD1 и VDD2 должны быть закорочены, если это не так - значит LCD сделан под режим 1/3 bias, 1/3 duty. В соответствии с этим шлёшь нужный DR. SC я так понимаю может выключить все сегменты, что равносильно выключению дисплея (отображаться ничего не будет). BU видимо тоже может выключить дисплей, но по другому - прекратится работа генератора, все выходы = GND. четвёртый бит - любой.
Инициализации никакой нет - что передал, то сразу и отобразилось. Просто во время включения может отобразиться любая фигня, пока первый раз не послал, что показывать, поэтому придумали /INH. Пока он не станет = 1 - на дисплее ничего не отобразится. Поэтому если не хочешь видеть абракадабру при включении - надо успеть послать то, что надо показывать при старте (или наоборот ничего не показывать), за время t1-10мкс. В доке написано, что t1 (время от подачи питания до начала отображения) определяется значениями R и C в обвязке /INH, но формулы не нашёл. Если пофиг - забей.

Re: Подключение PIC к PT6523

Добавлено: 05 янв 2010, 15:58
Mixer
Что-то куча дублирующих друг друга регистров у данного контроллера... LCD от древней самсунговской магнитолы SC-7500. Спецификации на дисплей нет. Нашел схему на данную магнитолу (выложил в обменник) VDD1 и VDD2 не закорочены, наверно в режиме 1/3 на 1/3 (к слову - что за режим?).
SC-7500(Deposit Files)

Инициализация, если верить графику (стр. 8):
1. Подать питание (VDD)
2. Подать импульс на CE (1, затем 0)
3. Потом уже можно передавать данные и включать (INH)

По поводу передачи данных (стр. 6):
1. О каком высоком/низком уровне подключения CLK там идет речь? В чем разница/преимущества?
2. Сколько бит данных дисплея передавать? Сначала пишется, что 156 бит (без учета последних 4) D1-D156, потом в примере рассматривается 67 (с учетом последних 4) D94-D156. Или контроллеру все равно сколько передано - он ждет пока CE установят в низкий уровень, затем из переданного вычитает 4 бита, а остальное считает данными дисплея?
3. CLK и DI следует делать так (?):

1: установить бит CLK в 0
2: установить бит данных DI в нужное значение
3: установить бит CLK в 1
4: задержка и переход к пункту 1

Re: Подключение PIC к PT6523

Добавлено: 05 янв 2010, 19:15
rhf-admin
1) Про режим управления можешь почитать здесь: http://www.gaw.ru/html.cgi/txt/app/lcd/teorija.htm, но в принципе, тебе оно по барабану, нужно только знать какой он, чтобы бит правильно выставить (сказать контроллеру LCD как управлять дисплеем) - дальше контроллер LCD с дисплеем сами договорятся.
2) По поводу инициализации. Посмотрел схему, они /INH с контроллера подают. Ну, можно и так сделать, а можно его к питанию подтянуть и забить на то, что он при включении будет фигню показывать, пока данные не пошлёшь. Смысл этого пина в том, что пока он не установится в "1" - LCD не будет ничего показывать, а если он стал "1" до первой посылки данных, то отображаться может всё, что угодно, поскольку при старте в PT6523 будут случайные данные.
3) О каком высоком/низком уровне CLK идёт речь действительно не очень понятно. Судя по графикам разница только в том, что в первом варианте нужно после выключения CLK сразу установить D1, а потом после включения CE продолжать передавать данные, а во втором варианте (если CLK не выключать) можно D1 сразу не устанавливать, контроллер будет считать, что продолжает передаваться последний бит адреса.
4) Сколько бит данных передавать? Похоже, что передавать надо все 156 бит данных. Судя по примеру, он начинает считать задом-наперёд, то есть передал ты 9 бит данных - он считает, что это D148-D156. В любом случае, хуже не будет, просто времени больше на передачу. Просто если у тебя не подключен сегмент SG52 - передавай D154=D155=D156=0 да и всё.
5) CLK и DI похоже следует делать так:
в неиспользуемом состоянии на линии CLK висит 1 (high level)
- установили CLK в "0"
- установили DI
- подождали не менее 100 нс (toL,tds)
- установили CLK в "1"
- подождали не менее 100 нс (toH, tdh)
- начинаем передавать следующий бит (повторяем всё с начала)
передали 8 бит адреса - включаем CE
- ждём не менее 200 нс (tcp+tcs) и начинаем передавать данные
- установили CLK в "0"
- установили DI
- подождали не менее 100 нс
- установили CLK в "1"
- подождали не менее 100 нс
- начинаем передавать следующий бит (повторяем всё с начала)
передали все данные + 4 упр. бита, подождали не менее 100 нс (tcH) - выключаем CE.
Всё - данные загружены!

Re: Подключение PIC к PT6523

Добавлено: 05 янв 2010, 19:31
rhf-admin
Узнавать к какому сегменту (SG) и к какой линии COM подключен каждый конкретный кристаллик придётся методом научного тыка.
Передаёшь сначала D1=1, все остальные =0 - смотришь какой кристаллик подключен к SG1, COM3, потом D2=1, остальные нули - находишь кристаллик, подключенный к SG1, COM2 и т.д. для всех используемых линий SG.

Re: Подключение PIC к PT6523

Добавлено: 05 янв 2010, 23:00
Mixer
Прикрутил, всё работает как надо. К слову - сколько занимает выполнение одной ассемблерной команды на 4МГц?

Re: Подключение PIC к PT6523

Добавлено: 06 янв 2010, 00:44
rhf-admin
О, круто! :D
Команды могут выполняться за 1 или 2 цикла (4 или 8 тактов), т.е. за 1 или 2 мкс на 4 МГц.
Ну, давай подробностей. Какой алгоритм? Как я предложил?
Как узнал какой кристал к чему подключен? Методом научного тыка?
Прогу покажешь? Как вообще, какие нюансы узнал в результате экспериментов?
:D :D :D

Re: Подключение PIC к PT6523

Добавлено: 06 янв 2010, 03:02
Mixer
Собственно вот:
Изображение

В прикрепленном архиве схема, исходник на C (среда microC) и HEX файл. Цепляется к родной колодке на съемной панели. Кристалы загораются по одиночке с периодичностью в 1/4 секунды (при желании можно уменьшить/увеличить). Если нужно, чтобы кристал загорался вместе со всеми предыдущими, в функции set_display() необходимо изменить условие с (i == j) на (i <= j). Для получения динамической индикации (чтоб дисплей не моргал) нужно закоментировать или вообще убрать функцию switch_display_off(). Да и вообще /INH можно смело цеплять на VDD. Последние 4 контрольных бита - ставятся в ноль. Алгоритм полностью соответствует твоему, за одним исключением - когда ничего не передается CLOCK и CE установлены в 0. К тому же получается, что на 4МГц нет необходимости в дополнительных задержках. У данного дисплея не используются сегменты 19, 24, 29, 34, 39, 42, 46, 49, 50, 51, 52.

Re: Подключение PIC к PT6523

Добавлено: 06 янв 2010, 22:50
rhf-admin
Спасибо. У меня тоже где-то старая магнитола валяется. Будем подключать!!!

Re: Подключение PIC к PT6523

Добавлено: 06 янв 2010, 23:57
rhf-admin
Кстати, а ты с управляющими битами игрался?
И ещё. Можешь немного видео на цифровик снять? Я бы по материалам твоих экспериментов полноценную статейку накатал.