Модераторы: PILOT, ManiaK, Mazzi
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Микросхемы МАХ7219, Последовательное соединение. 
:(
    Опции темы
Dreamer_0x01
Дата 14.1.2006, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Терминатор
**


Профиль
Группа: Участник
Сообщений: 780
Регистрация: 14.4.2005
Где: Санкт-Петербург

Репутация: 1
Всего: 12



Работаю с микросхемами МАХ7219, это драйверы-контроллеры семимегментных (и не только) индикаторов.
С работой поодиночке проблем нет, но вот соединил их последовательно (Вход DOUT первой с входом DIN второй и т.д., CLK и LOAD объядинил вместе). И что-то странные вещи стали происходить с ними.

Есть у кого опыт по такому их включению?


--------------------
Нет ничего невозможного. Есть цели, и есть время и силы на их достижение.
PM ICQ   Вверх
PILOT
Дата 15.1.2006, 01:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


производство
****


Профиль
Группа: Модератор
Сообщений: 2724
Регистрация: 4.4.2002
Где: москва

Репутация: 20
Всего: 54



Соединил правильно, скорее всего в программе напутал.

СУВ.


--------------------
тут могла быть Ваша реклама...
PM MAIL WWW ICQ   Вверх
Dreamer_0x01
Дата 15.1.2006, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Терминатор
**


Профиль
Группа: Участник
Сообщений: 780
Регистрация: 14.4.2005
Где: Санкт-Петербург

Репутация: 1
Всего: 12



Цитата(PILOT @ 15.1.2006, 01:37 Найти цитируемый пост)

Соединил правильно, скорее всего в программе напутал


Именно. Но вот уже дня два не найти. У меня почему-то данные из первой микросхемы иногда проходят во вторую.
Делаю, как написано в дата-шите.
Например, мне надо отправить данные во вторую микросхему. (А их у меня всего две пока что )
Тогда я делаю так:
1. Записываю нужный мне код последовательно во вход DIN, тактируя его восходящим фронтом CLK. Все сигналы держатся не мнее 1 мкс, так как работаю с процессором AT89C55WD с кварцем 11.059 МГц. Поэтому сразу же сигнал CLKвозвращаю в ноль, то есть в его исходное положение.
2. Во вход DIN запихиваю шестнадцать нулей, тактируя их все тем же CLK. Это соответствует записи в регистр "NoOperation".
3. На вход LOAD подаю восходящий вронт 0-1, после этого возвращаю его обратно в 0.

По идее, в этом случае первая микросхема должна получить по приходу восходящего фронта LOAD код "пустой операции", а вторая - как раз нужный мне код.
Если же мне наоборот надо сделать так, чтобы код получила первая микросхема, то я сначала засылаю код "пустой операции", а затем - код операции для первой микросхемы.

Я правильно понял Дата-шит?

Потому что в работе с этой микросхемой у меня опыт достаточно большой, и программирование ее регисторв у меня уже давно не вызывало проблем. А вот последовтельно включить решил впервые.



--------------------
Нет ничего невозможного. Есть цели, и есть время и силы на их достижение.
PM ICQ   Вверх
Dreamer_0x01
Дата 15.1.2006, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Терминатор
**


Профиль
Группа: Участник
Сообщений: 780
Регистрация: 14.4.2005
Где: Санкт-Петербург

Репутация: 1
Всего: 12



Цитата(Dreamer_0x01 @ 15.1.2006, 15:21 Найти цитируемый пост)

Если же мне наоборот надо сделать так, чтобы код получила первая микросхема, то я сначала засылаю код "пустой операции", а затем - код операции для первой микросхемы.

Хм...Написал -то я правильно, а вот на деле послал то же самое, забыв сделать все наоборот.
Теперь все наконец-то ожило и работает.

PILOT
Все равно спасибо за поддержку.



--------------------
Нет ничего невозможного. Есть цели, и есть время и силы на их достижение.
PM ICQ   Вверх
PILOT
Дата 15.1.2006, 18:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


производство
****


Профиль
Группа: Модератор
Сообщений: 2724
Регистрация: 4.4.2002
Где: москва

Репутация: 20
Всего: 54



Ты должен загонять всегда 32 бита. Даже если тебе нужно изменять только 16-ть последних. Тогда все будет так как ты хочешь. В даташите есть описание подключения которое ты тут привел, так что по схеме проблем нет.
По команде ЛОАД данные в сдвиговом регистре перезаписыватся в регистры данных (т.е. актуализируются), до команды ЛОАД данные в сдвиговом регистре не учитываются. Сдвиг происходит по положительному фронту, значит дей2ствуешь так: выставляешь следующий записываемый бит на ноге DIN, дергаешь CS (период 200-300мкс). Загнал 32 бита: дергаешь ЛОАД. Все.

СУВ.



--------------------
тут могла быть Ваша реклама...
PM MAIL WWW ICQ   Вверх
Dreamer_0x01
Дата 16.1.2006, 00:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Терминатор
**


Профиль
Группа: Участник
Сообщений: 780
Регистрация: 14.4.2005
Где: Санкт-Петербург

Репутация: 1
Всего: 12



Цитата(PILOT @ 15.1.2006, 18:43 Найти цитируемый пост)

значит дей2ствуешь так: выставляешь следующий записываемый бит на ноге DIN, дергаешь CS

CLK наверное, а не CS?

Цитата(PILOT @ 15.1.2006, 18:43 Найти цитируемый пост)

период 200-300мкс

А это откуда такая задержка большая?
У меня вот уже и с 1 мск заработало.

Цитата(PILOT @ 15.1.2006, 18:43 Найти цитируемый пост)

Ты должен загонять всегда 32 бита.

Да это-то ясно с самого начала, я ж говорю, проблема была в том, что я их не в той последовательности заслал.

А вот про задержки допустимые все-таки интересно бы узнать. В даташите про это не нашел.

Кстати раз уж тема поднялась - а ты не знаешь аналогов подобных микросхем? А то уж больно стоят дорого, очень чувствительны к статике (приходится программно в кажом цикле ресетить и заново конфигурировать), и греются как не знамо что. Да, режимом декодирования я естественно не пользуюсь, он у них глючный очень, да и самому несложно проргаммно все дешефрировать, так что дешефрирование не обязательный параметр, самые важные - цена, потребление, количество управляемых сегментов и условия эксплуатации (в частности - температурные диапазоны).
smile



--------------------
Нет ничего невозможного. Есть цели, и есть время и силы на их достижение.
PM ICQ   Вверх
PILOT
Дата 16.1.2006, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


производство
****


Профиль
Группа: Модератор
Сообщений: 2724
Регистрация: 4.4.2002
Где: москва

Репутация: 20
Всего: 54



Тогда твой выбор это восьмиразрядные регистры с последовательным входом и параллельным выходом 74HC164, соединяешь 4 последовательно. Только развертку придется самому делать.

СУВ.


--------------------
тут могла быть Ваша реклама...
PM MAIL WWW ICQ   Вверх
Dreamer_0x01
Дата 17.1.2006, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Терминатор
**


Профиль
Группа: Участник
Сообщений: 780
Регистрация: 14.4.2005
Где: Санкт-Петербург

Репутация: 1
Всего: 12



Цитата(PILOT @ 16.1.2006, 12:30 Найти цитируемый пост)

Только развертку придется самому делать.

Может быть, для этого задействовать отдельный какой-нибудь совсем простенький контроллер тогда?


--------------------
Нет ничего невозможного. Есть цели, и есть время и силы на их достижение.
PM ICQ   Вверх
PILOT
Дата 17.1.2006, 18:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


производство
****


Профиль
Группа: Модератор
Сообщений: 2724
Регистрация: 4.4.2002
Где: москва

Репутация: 20
Всего: 54



Я думаю и основной контрлллер с этим справится.

СУВ.


--------------------
тут могла быть Ваша реклама...
PM MAIL WWW ICQ   Вверх
Dreamer_0x01
Дата 18.1.2006, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Терминатор
**


Профиль
Группа: Участник
Сообщений: 780
Регистрация: 14.4.2005
Где: Санкт-Петербург

Репутация: 1
Всего: 12



Основному контроллеру и там есть чем заняться =)
А тут еще следить, чтобы хотя бы раз в 20 мс зажигались/выключались диоды, а у меня каждые 40 мс измерения идут, обработка которых занимает от 20 до 30 мс. Хочется оставить чуток драгоценного времени в резерве =) Да и не сложно это на отдельном контроллере сделать ведь... Единственное, найти чуток места на плате ;)


--------------------
Нет ничего невозможного. Есть цели, и есть время и силы на их достижение.
PM ICQ   Вверх
PILOT
Дата 18.1.2006, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


производство
****


Профиль
Группа: Модератор
Сообщений: 2724
Регистрация: 4.4.2002
Где: москва

Репутация: 20
Всего: 54



Я думаю 200мкс ты выжмешь из основного цикла smile
Если есть возможность сделать что-то программно, то это нужно делать программно smile а не наворачивать бутерброд контроллеров, причем там где они не нужны smile Не такая сложная задача, раз в 30-50мс последовательно очень быстро загнать данные в регистр, который может работать на частоте 78МГц smile

СУВ.


--------------------
тут могла быть Ваша реклама...
PM MAIL WWW ICQ   Вверх
Dreamer_0x01
Дата 18.1.2006, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Терминатор
**


Профиль
Группа: Участник
Сообщений: 780
Регистрация: 14.4.2005
Где: Санкт-Петербург

Репутация: 1
Всего: 12



да, но учитывая то, что необходимо будет самому воспроизводить развертку (все сразу сегменты ведь если зажигать, то получится очень большой ток в импульсе). Получается, что нужно будет действовать по следующему алгоритму - нужно будет последовательно зажигать каждый сегмент, при выключенных остальных, после этого зажигать следующий, и т.д. Причем весь этот цикл придется делать не реже, чем 20 мс, иначе будет откровенно заметно мерцание, кроме того, диоды имеют инерционность и нужно эксперементально подбирать длительность импульса, которая позволит добиться от диода достаточной интенсивности свечения...
Не знаю, может быть, в дальнейшем это и реально сделать, но для первых опытов все-таки стоит собрать макет с дополнительным контроллером, чтобы поэксперементировать с частотами развертки, длительностью импульсов и прочими тонкостями.
Ведь микросхема МАХ наверняка имеет в себе некое подобие либо контроллера, либо ПЛД...

Цитата(PILOT @ 18.1.2006, 18:53 Найти цитируемый пост)

Не такая сложная задача, раз в 30-50мс последовательно очень быстро загнать данные в регистр, который может работать на частоте 78МГц

При использовании контроллеров на 51 ядре, максимум, что я могу добиться, это 1 МГц.
А именно на таких контроллерах делается наша продукция. Знаю, это каменный век, но ничего с этим не поделаешь, нет времени переходить на новую базу.
Добавлено @ 20:20
хотя, это меня достаточно интересовало..Не мог бы ты мне сказать, какое время нужно удерживать ток через светодиод, чтобы он успел засветиться, прежде чем подавать ток на следующий диод?


--------------------
Нет ничего невозможного. Есть цели, и есть время и силы на их достижение.
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)"
PILOT ManiaK
UniBomb Mazzi

На данный раздел помимо Правил форума распространяются текже следующие правила:


  • Прежде чем создать тему воспользуйтесь поиском или посмотрите в faq. Возможно на форуме уже есть ответ на ваш или близкий к вашему вопрос.
  • В заголовке темы в квадратных скобках обозначьте используемое семейство микроконтроллера: [avr],[pic],[arm].
  • При создании темы с вопросом указывайте участок кода с ошибкой, версию компилятора, схемы подключения, fuse биты и прочие данные, которые помогут найти правильный ответ. Для форматирования текста программ используйте кнопку код.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Для флуда, просьб выполнить задание, поиска партнёров или исполнителей существуют свои разделы.
  • Если вы заметили несовместимое с правилами сообщение, то можете уведомить об этом модератора раздела нажав кнопку Репорт у соответствующего сообщения.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема »


 




[ Время генерации скрипта: 0.0580 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.