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

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

Добавлено: Ср фев 26, 2014 22:32:25
-=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.

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

Спасибо.

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

Добавлено: Чт фев 27, 2014 10:15:09
Gudd-Head
От неё даже АСК не приходит?
Можно попробовать менять адрес (играться с AD0 и AD1), соответственно меняя и код... или просто перебором попробовать все адреса, не трогая физически ноги.

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

Добавлено: Чт фев 27, 2014 13:06:58
-=MindHunteR=-
Gudd-Head писал(а):От неё даже АСК не приходит?
Можно попробовать менять адрес (играться с AD0 и AD1), соответственно меняя и код... или просто перебором попробовать все адреса, не трогая физически ноги.
АСК не приходит и не должен, насколько я понимаю даташит.
С ногами играться пробовал - никакого эффекта.

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

Добавлено: Чт фев 27, 2014 13:13:40
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.
Схему подключения нарисуйте.

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

Добавлено: Чт фев 27, 2014 13:18:09
-=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();

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

Добавлено: Чт фев 27, 2014 13:22:43
Gudd-Head
-=MindHunteR=- писал(а):от ног PORTB.0 и PORTB.1 к SDA и SCL, с пулл-апами на 8К
Т.е. I²C программный? Чем аппаратный не нравится?

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

Добавлено: Чт фев 27, 2014 13:24:31
-=MindHunteR=-
Gudd-Head писал(а):Чем аппаратный не нравится?
Он занят другим. Но я подключал и через аппаратный для проверки - не помогло.

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

Добавлено: Чт фев 27, 2014 13:31:20
Gudd-Head
-=MindHunteR=- писал(а):АСК приходит - я протупил ранее.
Да где ж он приходит? Там одни НАСКи от чипа идут.

И не поленитесь, нарисуйте схему включения с обвязкой.

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

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

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

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

Я подумал что НАСК это АСК. Насколько я понял, НАСК посылает мастер, т.е. ATMEGA, по завершении успешной передачи байта...
Какой диагноз?

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

Добавлено: Чт фев 27, 2014 14:06:45
Gudd-Head
-=MindHunteR=- писал(а):Я подумал что НАСК это АСК.
Не-не-не. АСК (подтверждение) — это когда ведомый (slave) притягивает линию SDA к "0" на 9-й такт бита, говоря тем самым ведущему (master) что он услышал/понял/успел.
Соответственно, NACK — когда ведомый не притянул линию и она осталась в "1".
Какой диагноз?
Чип не понимает что к нему обращаются.
СпойлерИзображение
На одном чипе AD0 и AD1 к земле, на другом к питанию. Нигде не ошибся - проверял неоднократно. Прямо на ногах чипа мерил напряжения, и схему под лупой смотрел.
Т.е. резисторы условно показаны? Тогда на схеме никакого криминала не вижу. Может, с номиналами где ошиблись (Сset, Rset)? Генерация 8 МГц есть?
Кондёры по питанию стоят как рекомендовано?
Одну микросхему пробовали отрывать?
Снизить частоту I²C?

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

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

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

Добавлено: Чт фев 27, 2014 14:18:56
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 МГц.
Пробовал перерезать дорожки от второй, оставаясь на линии один на один с первой.
Ну я это и имел в виду.

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

Добавлено: Чт фев 27, 2014 14:23:26
-=MindHunteR=-
Скоро проверю - отпишусь.
Спасибо за помощь.

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

Добавлено: Чт фев 27, 2014 15:17:06
-=MindHunteR=-
Черт возьми!
Это распиновка с даташита: http://www.dropmocks.com/iDDO5N
Это с трассировщика: http://www.dropmocks.com/iDDYpp

Не мог и предположить что нумерация ног может идти не по кругу......

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

Добавлено: Чт фев 27, 2014 15:26:41
Gudd-Head
Вот потому я все корпуса сам рисую :)
А у вас выводы питания как раз в воздухе висят :))

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

Добавлено: Ср мар 12, 2014 21:33:35
-=MindHunteR=-
Переделал плату - работает как часы.
Спасибо откликнувшимся за помощь - ваши советы помогли мне, в итоге, найти проблему.

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

Добавлено: Чт мар 13, 2014 10:53:56
Gudd-Head
Ждём-с статейку с описанием микры: http://radiokot.ru/upload/?new=1