Не удается запустить драйвер сегментных дисплеев MAX6955

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить
Аватара пользователя
-=MindHunteR=-
Открыл глаза
Сообщения: 62
Зарегистрирован: Пн мар 23, 2009 16:20:56
Откуда: From the Middle of Nowhere
Контактная информация:

Не удается запустить драйвер сегментных дисплеев MAX6955

Сообщение -=MindHunteR=- »

Доброго времени суток!

Появилась надобность управлять несколькими 14-ти сегментными дисплеями.
Для реализации задачи я решил воспользоваться драйвером MAX6955 (даташитhttp://datasheets.maximintegrated.com/en/ds/MAX6955.pdf)
Драйвер управляется через I2C. Для установки адреса устройства, используются пины AD0 и AD1, которые можно соединять с питанием, землей или сигнальными линиями. Всего 16 комбинаций, представленных в таблице 5 в даташите. В даташите же сказано, что адрес устройства это 7ми битное число.

Плата разрабатывалась в Proteus'е - там же и успешно просимулировал программу для ATMEGA328.

На практике, я присоединил обе ноги AD0 и AD1 к питанию, так что адрес девайса получился 0b1100101. Т.е. для записи я обращаюсь по адресу 0b11001010. Но как я не пытался, MAX6955 не отзывается ни на одну комманду. Проверял схему 100 раз, тыкал осциллографом и на входы и на выходы - на входах виден сигнал I2C, на выходах тишина.

Код пишу в CodeVisionAVR. По примеру кода из этого поста http://www.edaboard.com/thread288875.html.

Кто-то может посоветовать мне, как мне запустить девайс?

Спасибо.
Последний раз редактировалось Gudd-Head Чт фев 27, 2014 10:15:37, всего редактировалось 1 раз.
Причина: Сюда перенёс
Реклама
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Не удается запустить драйвер сегментных дисплеев MAX6955

Сообщение Gudd-Head »

От неё даже АСК не приходит?
Можно попробовать менять адрес (играться с AD0 и AD1), соответственно меняя и код... или просто перебором попробовать все адреса, не трогая физически ноги.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Реклама
Аватара пользователя
-=MindHunteR=-
Открыл глаза
Сообщения: 62
Зарегистрирован: Пн мар 23, 2009 16:20:56
Откуда: From the Middle of Nowhere
Контактная информация:

Re: Не удается запустить драйвер сегментных дисплеев MAX6955

Сообщение -=MindHunteR=- »

Gudd-Head писал(а):От неё даже АСК не приходит?
Можно попробовать менять адрес (играться с AD0 и AD1), соответственно меняя и код... или просто перебором попробовать все адреса, не трогая физически ноги.
АСК не приходит и не должен, насколько я понимаю даташит.
С ногами играться пробовал - никакого эффекта.
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Не удается запустить драйвер сегментных дисплеев MAX6955

Сообщение Gudd-Head »

-=MindHunteR=- писал(а):АСК не приходит и не должен, насколько я понимаю даташит
Мда... как всё запущено.
Acknowledge
The acknowledge bit is a clocked 9th bit that the recipient
uses to handshake receipt of each byte of data (Figure 6).
Thus, each byte transferred effectively requires 9 bits. The
master generates the 9th clock pulse, and the recipient
pulls down SDA during the acknowledge clock pulse, such
that the SDA line is stable low during the high period of the
clock pulse. When the master is transmitting to the
MAX6955, the MAX6955 generates the acknowledge bit
because the MAX6955 is the recipient. When the MAX6955
is transmitting to the master, the master generates the
acknowledge bit because the master is the recipient.
Схему подключения нарисуйте.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
-=MindHunteR=-
Открыл глаза
Сообщения: 62
Зарегистрирован: Пн мар 23, 2009 16:20:56
Откуда: From the Middle of Nowhere
Контактная информация:

Re: Не удается запустить драйвер сегментных дисплеев MAX6955

Сообщение -=MindHunteR=- »

Не все настолько плохо.
Схема проста - от ног PORTB.0 и PORTB.1 к SDA и SCL, с пулл-апами на 8К.
AD0 и AD1 к питанию. Ну и на выходы чипа 14ти сегментный дисплей. Несколько таких. Но это не так важно, так как я мониторю выходы осциллографом - там тишина.

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

http://www.dropmocks.com/mDDHkJ

АСК приходит - я протупил ранее.

Код:
i2c_start();
i2c_write(0b11001010);
i2c_write(0x07);
i2c_write(0x01);
i2c_stop();
Реклама
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Не удается запустить драйвер сегментных дисплеев MAX6955

Сообщение Gudd-Head »

-=MindHunteR=- писал(а):от ног PORTB.0 и PORTB.1 к SDA и SCL, с пулл-апами на 8К
Т.е. I²C программный? Чем аппаратный не нравится?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Реклама
Аватара пользователя
-=MindHunteR=-
Открыл глаза
Сообщения: 62
Зарегистрирован: Пн мар 23, 2009 16:20:56
Откуда: From the Middle of Nowhere
Контактная информация:

Re: Не удается запустить драйвер сегментных дисплеев MAX6955

Сообщение -=MindHunteR=- »

Gudd-Head писал(а):Чем аппаратный не нравится?
Он занят другим. Но я подключал и через аппаратный для проверки - не помогло.
Последний раз редактировалось Gudd-Head Чт фев 27, 2014 13:38:33, всего редактировалось 2 раза.
Причина: А за двойное (полное) цитирование у нас банят
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Не удается запустить драйвер сегментных дисплеев MAX6955

Сообщение Gudd-Head »

-=MindHunteR=- писал(а):АСК приходит - я протупил ранее.
Да где ж он приходит? Там одни НАСКи от чипа идут.

И не поленитесь, нарисуйте схему включения с обвязкой.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
-=MindHunteR=-
Открыл глаза
Сообщения: 62
Зарегистрирован: Пн мар 23, 2009 16:20:56
Откуда: From the Middle of Nowhere
Контактная информация:

Re: Не удается запустить драйвер сегментных дисплеев MAX6955

Сообщение -=MindHunteR=- »

Gudd-Head писал(а):Да где ж он приходит? Там одни НАСКи от чипа идут.
И не поленитесь, нарисуйте схему включения с обвязкой.
Схема: http://www.dropmocks.com/iDDbF7

На одном чипе AD0 и AD1 к земле, на другом к питанию. Нигде не ошибся - проверял неоднократно. Прямо на ногах чипа мерил напряжения, и схему под лупой смотрел.

Пробовал отключать сигнальные линии одного из чипов, оставаясь только со вторым на линии.

Я подумал что НАСК это АСК. Насколько я понял, НАСК посылает мастер, т.е. ATMEGA, по завершении успешной передачи байта...
Какой диагноз?
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Не удается запустить драйвер сегментных дисплеев MAX6955

Сообщение Gudd-Head »

-=MindHunteR=- писал(а):Я подумал что НАСК это АСК.
Не-не-не. АСК (подтверждение) — это когда ведомый (slave) притягивает линию SDA к "0" на 9-й такт бита, говоря тем самым ведущему (master) что он услышал/понял/успел.
Соответственно, NACK — когда ведомый не притянул линию и она осталась в "1".
Какой диагноз?
Чип не понимает что к нему обращаются.
СпойлерИзображение
На одном чипе AD0 и AD1 к земле, на другом к питанию. Нигде не ошибся - проверял неоднократно. Прямо на ногах чипа мерил напряжения, и схему под лупой смотрел.
Т.е. резисторы условно показаны? Тогда на схеме никакого криминала не вижу. Может, с номиналами где ошиблись (Сset, Rset)? Генерация 8 МГц есть?
Кондёры по питанию стоят как рекомендовано?
Одну микросхему пробовали отрывать?
Снизить частоту I²C?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
-=MindHunteR=-
Открыл глаза
Сообщения: 62
Зарегистрирован: Пн мар 23, 2009 16:20:56
Откуда: From the Middle of Nowhere
Контактная информация:

Re: Не удается запустить драйвер сегментных дисплеев MAX6955

Сообщение -=MindHunteR=- »

Gudd-Head писал(а):Т.е. резисторы условно показаны? Тогда на схеме никакого криминала не вижу.
Да, часть из них просто не распаяны, а нужные имеют нулевой номинал.
Gudd-Head писал(а):Может, с номиналами где ошиблись (Сset, Rset)?
Rset верный, Сset сейчас пойду перепаяю, т.к. на нем не видать номинала.....
Gudd-Head писал(а):Генерация 8 МГц есть?
Где ее искать?
Gudd-Head писал(а):Кондёры по питанию стоят как рекомендовано?
Да. 47 микро и 100 нано.
Gudd-Head писал(а):Одну микросхему пробовали отрывать?
Пробовал перерезать дорожки от второй, оставаясь на линии один на один с первой.
Gudd-Head писал(а):Снизить частоту I²C?
Попробую.
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Не удается запустить драйвер сегментных дисплеев MAX6955

Сообщение Gudd-Head »

-=MindHunteR=- писал(а):Где ее искать?
Выводы OSC и OSC_OUT — должно быть как на картинке INTERNAL OSCILLATOR WAVEFORM AT OSC AND OSC_OUT PINS на 5-й странице ДШ (правый верхний угол).
Там должно быть около 4 МГц (картинка INTERNAL OSCILLATOR FREQUENCY vs. TEMPERATURE там же). Хотя по ихней формуле на стр. 19 fOSC = KF/(RSET x CSET) MHz у меня получилось 8 МГц.
Пробовал перерезать дорожки от второй, оставаясь на линии один на один с первой.
Ну я это и имел в виду.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
-=MindHunteR=-
Открыл глаза
Сообщения: 62
Зарегистрирован: Пн мар 23, 2009 16:20:56
Откуда: From the Middle of Nowhere
Контактная информация:

Re: Не удается запустить драйвер сегментных дисплеев MAX6955

Сообщение -=MindHunteR=- »

Скоро проверю - отпишусь.
Спасибо за помощь.
Аватара пользователя
-=MindHunteR=-
Открыл глаза
Сообщения: 62
Зарегистрирован: Пн мар 23, 2009 16:20:56
Откуда: From the Middle of Nowhere
Контактная информация:

Re: Не удается запустить драйвер сегментных дисплеев MAX6955

Сообщение -=MindHunteR=- »

Черт возьми!
Это распиновка с даташита: http://www.dropmocks.com/iDDO5N
Это с трассировщика: http://www.dropmocks.com/iDDYpp

Не мог и предположить что нумерация ног может идти не по кругу......
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Не удается запустить драйвер сегментных дисплеев MAX6955

Сообщение Gudd-Head »

Вот потому я все корпуса сам рисую :)
А у вас выводы питания как раз в воздухе висят :))
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
-=MindHunteR=-
Открыл глаза
Сообщения: 62
Зарегистрирован: Пн мар 23, 2009 16:20:56
Откуда: From the Middle of Nowhere
Контактная информация:

Re: Не удается запустить драйвер сегментных дисплеев MAX6955

Сообщение -=MindHunteR=- »

Переделал плату - работает как часы.
Спасибо откликнувшимся за помощь - ваши советы помогли мне, в итоге, найти проблему.
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Не удается запустить драйвер сегментных дисплеев MAX6955

Сообщение Gudd-Head »

Ждём-с статейку с описанием микры: http://radiokot.ru/upload/?new=1
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Ответить

Вернуться в «Периферия»