| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Микроконтроллеры (MCU) и микропроцессоры (MPU) > Микросхемы МАХ7219 |
| Автор: Dreamer_0x01 14.1.2006, 15:24 |
| Работаю с микросхемами МАХ7219, это драйверы-контроллеры семимегментных (и не только) индикаторов. С работой поодиночке проблем нет, но вот соединил их последовательно (Вход DOUT первой с входом DIN второй и т.д., CLK и LOAD объядинил вместе). И что-то странные вещи стали происходить с ними. Есть у кого опыт по такому их включению? |
| Автор: PILOT 15.1.2006, 01:37 |
| Соединил правильно, скорее всего в программе напутал. СУВ. |
| Автор: Dreamer_0x01 15.1.2006, 15:48 | ||
Хм...Написал -то я правильно, а вот на деле послал то же самое, забыв сделать все наоборот. Теперь все наконец-то ожило и работает. PILOT Все равно спасибо за поддержку. |
| Автор: PILOT 15.1.2006, 18:43 |
| Ты должен загонять всегда 32 бита. Даже если тебе нужно изменять только 16-ть последних. Тогда все будет так как ты хочешь. В даташите есть описание подключения которое ты тут привел, так что по схеме проблем нет. По команде ЛОАД данные в сдвиговом регистре перезаписыватся в регистры данных (т.е. актуализируются), до команды ЛОАД данные в сдвиговом регистре не учитываются. Сдвиг происходит по положительному фронту, значит дей2ствуешь так: выставляешь следующий записываемый бит на ноге DIN, дергаешь CS (период 200-300мкс). Загнал 32 бита: дергаешь ЛОАД. Все. СУВ. |
| Автор: Dreamer_0x01 16.1.2006, 00:54 | ||||||
CLK наверное, а не CS?
А это откуда такая задержка большая? У меня вот уже и с 1 мск заработало.
Да это-то ясно с самого начала, я ж говорю, проблема была в том, что я их не в той последовательности заслал. А вот про задержки допустимые все-таки интересно бы узнать. В даташите про это не нашел. Кстати раз уж тема поднялась - а ты не знаешь аналогов подобных микросхем? А то уж больно стоят дорого, очень чувствительны к статике (приходится программно в кажом цикле ресетить и заново конфигурировать), и греются как не знамо что. Да, режимом декодирования я естественно не пользуюсь, он у них глючный очень, да и самому несложно проргаммно все дешефрировать, так что дешефрирование не обязательный параметр, самые важные - цена, потребление, количество управляемых сегментов и условия эксплуатации (в частности - температурные диапазоны). |
| Автор: PILOT 16.1.2006, 12:30 |
| Тогда твой выбор это восьмиразрядные регистры с последовательным входом и параллельным выходом 74HC164, соединяешь 4 последовательно. Только развертку придется самому делать. СУВ. |
| Автор: Dreamer_0x01 17.1.2006, 15:57 |
| Может быть, для этого задействовать отдельный какой-нибудь совсем простенький контроллер тогда? |
| Автор: PILOT 17.1.2006, 18:29 |
| Я думаю и основной контрлллер с этим справится. СУВ. |
| Автор: Dreamer_0x01 18.1.2006, 18:19 |
| Основному контроллеру и там есть чем заняться =) А тут еще следить, чтобы хотя бы раз в 20 мс зажигались/выключались диоды, а у меня каждые 40 мс измерения идут, обработка которых занимает от 20 до 30 мс. Хочется оставить чуток драгоценного времени в резерве =) Да и не сложно это на отдельном контроллере сделать ведь... Единственное, найти чуток места на плате ;) |
| Автор: PILOT 18.1.2006, 18:53 |
| Я думаю 200мкс ты выжмешь из основного цикла Если есть возможность сделать что-то программно, то это нужно делать программно СУВ. |
| Автор: Dreamer_0x01 18.1.2006, 20:11 | ||
| да, но учитывая то, что необходимо будет самому воспроизводить развертку (все сразу сегменты ведь если зажигать, то получится очень большой ток в импульсе). Получается, что нужно будет действовать по следующему алгоритму - нужно будет последовательно зажигать каждый сегмент, при выключенных остальных, после этого зажигать следующий, и т.д. Причем весь этот цикл придется делать не реже, чем 20 мс, иначе будет откровенно заметно мерцание, кроме того, диоды имеют инерционность и нужно эксперементально подбирать длительность импульса, которая позволит добиться от диода достаточной интенсивности свечения... Не знаю, может быть, в дальнейшем это и реально сделать, но для первых опытов все-таки стоит собрать макет с дополнительным контроллером, чтобы поэксперементировать с частотами развертки, длительностью импульсов и прочими тонкостями. Ведь микросхема МАХ наверняка имеет в себе некое подобие либо контроллера, либо ПЛД...
При использовании контроллеров на 51 ядре, максимум, что я могу добиться, это 1 МГц. А именно на таких контроллерах делается наша продукция. Знаю, это каменный век, но ничего с этим не поделаешь, нет времени переходить на новую базу. Добавлено @ 20:20 хотя, это меня достаточно интересовало..Не мог бы ты мне сказать, какое время нужно удерживать ток через светодиод, чтобы он успел засветиться, прежде чем подавать ток на следующий диод? |