Не удается запустить драйвер сегментных дисплеев MAX6955
- -=MindHunteR=-
- Открыл глаза
- Сообщения: 62
- Зарегистрирован: Пн мар 23, 2009 16:20:56
- Откуда: From the Middle of Nowhere
- Контактная информация:
Не удается запустить драйвер сегментных дисплеев MAX6955
Доброго времени суток!
Появилась надобность управлять несколькими 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.
Кто-то может посоветовать мне, как мне запустить девайс?
Спасибо.
Появилась надобность управлять несколькими 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
От неё даже АСК не приходит?
Можно попробовать менять адрес (играться с AD0 и AD1), соответственно меняя и код... или просто перебором попробовать все адреса, не трогая физически ноги.
Можно попробовать менять адрес (играться с AD0 и AD1), соответственно меняя и код... или просто перебором попробовать все адреса, не трогая физически ноги.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
- -=MindHunteR=-
- Открыл глаза
- Сообщения: 62
- Зарегистрирован: Пн мар 23, 2009 16:20:56
- Откуда: From the Middle of Nowhere
- Контактная информация:
Re: Не удается запустить драйвер сегментных дисплеев MAX6955
АСК не приходит и не должен, насколько я понимаю даташит.Gudd-Head писал(а):От неё даже АСК не приходит?
Можно попробовать менять адрес (играться с AD0 и AD1), соответственно меняя и код... или просто перебором попробовать все адреса, не трогая физически ноги.
С ногами играться пробовал - никакого эффекта.
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Не удается запустить драйвер сегментных дисплеев MAX6955
Мда... как всё запущено.-=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
Не все настолько плохо.
Схема проста - от ног 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();
Схема проста - от ног 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
Т.е. I²C программный? Чем аппаратный не нравится?-=MindHunteR=- писал(а):от ног PORTB.0 и PORTB.1 к SDA и SCL, с пулл-апами на 8К
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
- -=MindHunteR=-
- Открыл глаза
- Сообщения: 62
- Зарегистрирован: Пн мар 23, 2009 16:20:56
- Откуда: From the Middle of Nowhere
- Контактная информация:
Re: Не удается запустить драйвер сегментных дисплеев MAX6955
Он занят другим. Но я подключал и через аппаратный для проверки - не помогло.Gudd-Head писал(а):Чем аппаратный не нравится?
Последний раз редактировалось Gudd-Head Чт фев 27, 2014 13:38:33, всего редактировалось 2 раза.
Причина: А за двойное (полное) цитирование у нас банят
Причина: А за двойное (полное) цитирование у нас банят
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Не удается запустить драйвер сегментных дисплеев MAX6955
Да где ж он приходит? Там одни НАСКи от чипа идут.-=MindHunteR=- писал(а):АСК приходит - я протупил ранее.
И не поленитесь, нарисуйте схему включения с обвязкой.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
- -=MindHunteR=-
- Открыл глаза
- Сообщения: 62
- Зарегистрирован: Пн мар 23, 2009 16:20:56
- Откуда: From the Middle of Nowhere
- Контактная информация:
Re: Не удается запустить драйвер сегментных дисплеев MAX6955
Схема: http://www.dropmocks.com/iDDbF7Gudd-Head писал(а):Да где ж он приходит? Там одни НАСКи от чипа идут.
И не поленитесь, нарисуйте схему включения с обвязкой.
На одном чипе AD0 и AD1 к земле, на другом к питанию. Нигде не ошибся - проверял неоднократно. Прямо на ногах чипа мерил напряжения, и схему под лупой смотрел.
Пробовал отключать сигнальные линии одного из чипов, оставаясь только со вторым на линии.
Я подумал что НАСК это АСК. Насколько я понял, НАСК посылает мастер, т.е. ATMEGA, по завершении успешной передачи байта...
Какой диагноз?
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Не удается запустить драйвер сегментных дисплеев MAX6955
Не-не-не. АСК (подтверждение) — это когда ведомый (slave) притягивает линию SDA к "0" на 9-й такт бита, говоря тем самым ведущему (master) что он услышал/понял/успел.-=MindHunteR=- писал(а):Я подумал что НАСК это АСК.
Соответственно, NACK — когда ведомый не притянул линию и она осталась в "1".
Чип не понимает что к нему обращаются.Какой диагноз?
Т.е. резисторы условно показаны? Тогда на схеме никакого криминала не вижу. Может, с номиналами где ошиблись (Сset, Rset)? Генерация 8 МГц есть?На одном чипе AD0 и AD1 к земле, на другом к питанию. Нигде не ошибся - проверял неоднократно. Прямо на ногах чипа мерил напряжения, и схему под лупой смотрел.Спойлер
Кондёры по питанию стоят как рекомендовано?
Одну микросхему пробовали отрывать?
Снизить частоту I²C?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
- -=MindHunteR=-
- Открыл глаза
- Сообщения: 62
- Зарегистрирован: Пн мар 23, 2009 16:20:56
- Откуда: From the Middle of Nowhere
- Контактная информация:
Re: Не удается запустить драйвер сегментных дисплеев MAX6955
Да, часть из них просто не распаяны, а нужные имеют нулевой номинал.Gudd-Head писал(а):Т.е. резисторы условно показаны? Тогда на схеме никакого криминала не вижу.
Rset верный, Сset сейчас пойду перепаяю, т.к. на нем не видать номинала.....Gudd-Head писал(а):Может, с номиналами где ошиблись (Сset, Rset)?
Где ее искать?Gudd-Head писал(а):Генерация 8 МГц есть?
Да. 47 микро и 100 нано.Gudd-Head писал(а):Кондёры по питанию стоят как рекомендовано?
Пробовал перерезать дорожки от второй, оставаясь на линии один на один с первой.Gudd-Head писал(а):Одну микросхему пробовали отрывать?
Попробую.Gudd-Head писал(а):Снизить частоту I²C?
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Не удается запустить драйвер сегментных дисплеев MAX6955
Выводы OSC и OSC_OUT — должно быть как на картинке INTERNAL OSCILLATOR WAVEFORM AT OSC AND OSC_OUT PINS на 5-й странице ДШ (правый верхний угол).-=MindHunteR=- писал(а):Где ее искать?
Там должно быть около 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=-
- Открыл глаза
- Сообщения: 62
- Зарегистрирован: Пн мар 23, 2009 16:20:56
- Откуда: From the Middle of Nowhere
- Контактная информация:
Re: Не удается запустить драйвер сегментных дисплеев MAX6955
Черт возьми!
Это распиновка с даташита: http://www.dropmocks.com/iDDO5N
Это с трассировщика: http://www.dropmocks.com/iDDYpp
Не мог и предположить что нумерация ног может идти не по кругу......
Это распиновка с даташита: http://www.dropmocks.com/iDDO5N
Это с трассировщика: http://www.dropmocks.com/iDDYpp
Не мог и предположить что нумерация ног может идти не по кругу......
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Не удается запустить драйвер сегментных дисплеев MAX6955
Вот потому я все корпуса сам рисую 
А у вас выводы питания как раз в воздухе висят
А у вас выводы питания как раз в воздухе висят
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
- -=MindHunteR=-
- Открыл глаза
- Сообщения: 62
- Зарегистрирован: Пн мар 23, 2009 16:20:56
- Откуда: From the Middle of Nowhere
- Контактная информация:
Re: Не удается запустить драйвер сегментных дисплеев MAX6955
Переделал плату - работает как часы.
Спасибо откликнувшимся за помощь - ваши советы помогли мне, в итоге, найти проблему.
Спасибо откликнувшимся за помощь - ваши советы помогли мне, в итоге, найти проблему.
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Не удается запустить драйвер сегментных дисплеев MAX6955
Ждём-с статейку с описанием микры: http://radiokot.ru/upload/?new=1
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]


