|
|
  |
Чем или как создать управление микросхемой Lc7821 |
|
|
|
May 24 2015, 20:10
|
Местный
  
Группа: Участник
Сообщений: 207
Регистрация: 1-05-15
Из: Брест
Пользователь №: 86 471

|
Цитата(Xenia @ May 24 2015, 22:56)  Еще частоту повысить? Я бы еще фотку посмотреть хотела... Это с частотой 250 Гц - key8, Еле заметное мерцание, может 300 гц?
Сообщение отредактировал love777888 - May 24 2015, 20:11
|
|
|
|
|
May 24 2015, 21:04
|

Гуру
     
Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237

|
Цитата(love777888 @ May 25 2015, 00:00)  Да получилось прикольно, мерцание исчезло, на экране идет пересчет цифр от 0 до 9 со сдвигом слева на право. Только 9 похожа на черепок  Пересчет это я добавила, чтобы убедиться, что часы (таймер) идут. Примерно каждые 10 сек должен происходить сдвиг вправо. Ну, а 9-ку я видимо плохо нарисовала.  На сегодня работу заканчиваем, а дальше надо нам где-нибудь шрифт раздобыть, как на 14-сегментных индикаторах правильно буквы и цифры писать. Самой это сочинять уж больно противно, да и ошибки делаешь. Но в целом результат уже хорош своей определенностью. Во-первых, вам не надо покупать другой дисплей - удалось заставить работать родной, а во-вторых, мы теперь знаем, что обновлять числа надо через каждые 10 мсек (2 мсек х 5 цифр). Если бы была в наличии 40-ножка, то даже на этом уровне вариант можно считать рабочим. Переход на ключи 1109КН15 теперь тоже не страшен, т.к. режим индикации мы уже выяснили.
|
|
|
|
|
May 25 2015, 06:23
|

Гуру
     
Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237

|
Цитата(demiurg1978 @ May 25 2015, 06:15)  Сделайте частоту Гц по 150-200 на одно знакоместо. Тут, в связи с некоторой двусмысленностью вопроса, должна сделать необходимые пояснения. Дело в том, что в случае VFD-дисплея динамическое обновление свечения цифр происходит не так, как это происходит при обновлении динамического ОЗУ  . А именно, в данном случае важно не просто обновить, а дать погореть какое-то время каждой цифре. При этом все остальные цифры погашены (т.к. разные конфигурации сегментов одновременно светиться не могут). В последнем варианте эксперимента использовалось 5 цифр/знакомест (на самом деле на дисплее их больше), каждая из которых горела по 2 мсек, зажигаясь в свою очередь. Таким образом, частота зажигания цифр составила 500 Гц (2 мсек), тогда как одна и та же цифра получала свой квант свечения в 5 раз реже (поскольку цифр было 5) - с частотой 100 Гц (10 мсек). Проводить динамическое обновление менее часто мы уже пытались - собственно и начинали с низкой частоты в 1 Гц, поднимая эту частоту до тех пор, пока не пропадал зрительный эффект мерцания, обусловленный тем, что глаз замечает моменты, когда цифра погашена. Я-то надеялась, что пройдет вариант, когда каждая из цифр моргает с частотой 50 Гц (20 мсек), а обход очереди происходит с частотой 250 Гц (4 мсек). По крайней мере, читала такой совет, что для уменьшения эффекта мерцания следует подстраиваться под частоту сети. Однако при частоте обслуживания очереди в 250 Гц эффект мерцания был еще заметен, но исчез после повышения частоты вдвое. Т.е. последнему (немерцающему) варианту соответствует частота обслуживания 500 Гц с частотой мерцания 100 Гц. Понижать частоту обслуживания я бы сейчас не рискнула, поскольку в действительности знакомест будет больше - не 5, а 11. Стало быть, даже при той же самой частоте обслуживания частота мерцания увеличится более чем в 2 раза. Т.е., несмотря на то, что сейчас в этом режиме мерцание незаметно, нет гарантии, что оно не появится, когда число знакомест увеличится до 11-ти. Должна заметить, что 2 мсек на обслуживание одной цифры - это довольно напряженный для Меги темп. Причем, именно в случае последовательного управления через SPI, поскольку каждый из пяти ключей 1109КН15 надо обслужить отдельно и снова по очереди. Т.е. если при параллельном управлении (как сейчас в тестовом эксперименте) мне достаточно записать числовые значения в три порта Меги (это быстро и может производиться прямо из процедуры обработки прерывания таймера, настроенного на период 2 мсек). Тогда как с случае управления через SPI я этого из таймерного прерывания сделать не могу, поскольку заниматься ожиданием в прерывании нельзя. А, следовательно, надо будет включать прерывания по завершению передачи SPI и устраивать "паровозик" с 5 вагонами, для каждой микросхемы 1109КН15. А это еще пяток прерываний за период 2 мсек, что грустно. Именно по этой причине мне более симпатичен параллельный вариант с отдельной Мегой для обслуживания дисплея, а вовсе не из-за идеологических разногласий с Демиургом.
|
|
|
|
|
May 25 2015, 06:48
|
Местный
  
Группа: Участник
Сообщений: 333
Регистрация: 19-12-13
Из: Новосибирск
Пользователь №: 79 709

|
Пусть частота кварца 16 Мгц. 16000000 / 128 = 125000 Гц. 1 / 125000 = 0,000008 c. 0,000008 c * 8 битов = 0,000064 с. 0,000064 c * 11 сеток = 0,000704 с. 1 / 1100 = 0,0009090909. Получается, что максимальная частота на знакоместо 100 Гц. Мда... Придется все-таки либо частоту SPI повышать, либо все-таки вешать индикацию на второй МК...
Я начал макетку собирать. Если получится, сегодня подключу одну КР1109КН15. Посмотрю осциллографом, что происходит.
Сообщение отредактировал demiurg1978 - May 25 2015, 06:45
|
|
|
|
|
May 25 2015, 07:46
|

Гуру
     
Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237

|
Цитата(demiurg1978 @ May 25 2015, 09:48)  Получается, что максимальная частота на знакоместо 100 Гц. Мда... Придется все-таки либо частоту SPI повышать, либо все-таки вешать индикацию на второй МК... В этой части меня более всего смущает то обстоятельство, что в процессе последовательного обновления содержимого 5-ти вагончиков 1109КН15 может сложится ситуация, когда на дисплее зажжется "полуфабрикат" - винегрет от свечения элементов, уже получивших напряжения от первой в очереди 1109КН15, которую уже успели загрузить новым кодом, и последней в очереди на загрузку 1109КН15, которую новым кодом еще не успели загрузить, из-за чего она продолжает держать напряжения, согласно старому коду. В случае прямого параллельного программирования через регистры Меги такая возможность исключена, т.к. я сперва "обнуляю" все регистры, гася индикацию целиком, и только затем подаю напряжения на те элементы, которые требуются включить. Поэтому тут остатки от старого значения просочиться никак не могут. Тогда как в случае SPI-паровозика с 5-вагонами 1109КН15, мне было бы крайне накладно их предварительно обнулять, т.к. для этого пришлось бы запустить тем же путем еще один состав из 5-ти вагонов, но только пустых. Впрочем, обладай ключи 1109КН15 двойной буферизацией, то проблемы такой не было. Тогда бы я сперва накормила 1109КН15 новым кодом, не активируя его, а потом бы шлепнула по общей линии активации, заставив все ключи разом обновить состояние на своих выходах. К сожалению, у 1109КН15 двойной буферизации нет (так ли это?), а потому я вынуждена буду включить защелку сразу же после получения данных, т.к. иначе следующий посыл (другому вагону) по SPI испортит содержимое ее буфера. Тем не менее, я не гарантирую, что понимаю возможности работы 1109КН15 правильно, т.к. даташит на нее исключительно скуден. А потому ваши будущие исследования на этот счет (если они состоятся) были бы очень кстати, тем более что вы уже имеете опыт работы с 595-ой. Цитата(demiurg1978 @ May 25 2015, 09:48)  Я начал макетку собирать. Если получится, сегодня подключу одну КР1109КН15. Посмотрю осциллографом, что происходит. Мне бы еще про буферизацию узнать. Т.е. можно ли 1109КН15-ю сперва накачать байтом данных, защелкнуть их, но отложить их вывод наружу на срок до подачи спецсигнала?
|
|
|
|
|
May 25 2015, 08:03
|

Гуру
     
Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237

|
Цитата(demiurg1978 @ May 25 2015, 11:00)  Поэтому имитируем этот вход PNP транзистором на + 5 V. Перед загрузкой данных закрываем транзистор. После загрузки открываем. Полагаю, что нам стоит рассмотреть еще один возможный вариант - комбинированный, когда аноды (их больше) управляются от 1109КН15 (для 14-ти анодов + 2-х спецсимволов их потребуется 3 штуки), тогда как сетками управлять параллельно напрямую от порта. Тогда можно будет портом перекрывать свечение всех знакомест на срок от начала до полного завершения обновления состояний анодов через SPI/КР1109КН15, а потом активировать нужную сетку/знакоместо. Кстати, сеток, пользующихся особым спросом (8 символов на 14-сегментом индикаторе), тоже 8, как и число битов в одном порту - это было бы удобно в реализации.
|
|
|
|
|
May 25 2015, 08:23
|

Гуру
     
Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237

|
Цитата(demiurg1978 @ May 25 2015, 11:16)  Не нужно ничего выдумывать. На КР1109КН15 нужно пинов: CS SCK MOSI LATCH - перезапись OUT_ENABLE Что ж, это хорошо. Тогда собираем все OUT_ENABLE в одну линию, а для LATCH потребуется 5 линий (для каждой 1109КН15 отдельно). Итого 6 бит. Одного порта как ни бывало.  Тем не менее, я попрошу вас указать соответствие LATCH и OUT_ENABLE с обозначениями в даташите КР1109КН15, т.к. я сомневаюсь, что вы интерпретировали эту информацию верно. Лично я вижу там только С2, который не может выполнять функции LATCH и OUT_ENABLE сразу. А кандидатов на вторую функцию не вижу. Т.е. на мой взгляд, С2 = LATCH, а OUT_ENABLE там нет.
|
|
|
|
|
May 25 2015, 10:00
|

Гуру
     
Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237

|
Для love777888: При наличии возможности прошу испытать вариант: key10. Если заработает, как предыдущий, то будет очень хорошо, т.к. программу я основательно перетрясла, не оставив камня на камне. Потому и требуется проверочный эксперимент. А перетряска была крайне необходима, т.к. прямая загрузка констант в регистры Меги8 - предельно непереносимый случай, тогда как нам не только предстоит переходить на другой МК и ключи 1109КН15, но и значительно расширять алфавит отображаемых символов. А в виде кормления константами трех портов писать это совсем негоже, тем более что на другой Меге имена портов и пинов станут другими, да и в 1109КН15 данные придется подавать в другом формате. P.S. Как на вашем 14-сегментном индикаторе отображается английская буква "V"?  Подобного рода затруднения возникают чуть ли не у половины букв русского алфавита. Или нам не надо поддерживать на нем русский язык?
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|