Часы на светодиодных матрицах с драйверами MAX7219

Вопросы и замечания по статьям и схемам, представленным на нашем сайте

При поддержке РадиоКОТструктор.ру


RuGOST
Встал на лапы
Сообщения: 85
Зарегистрирован: Вс окт 02, 2011 11:00:19

Re: Часы на светодиодных матрицах с драйверами MAX7219

Сообщение RuGOST »

Тоже пришли часики версия PRO. прошил прошивкой matrixclock-0db99e8 последней выложенной здесь, проц мега8L установленная, результат на фото Изображение Изображение Изображение
перестало идти время все замерло фьюзы не трогал, хотелось бы пока без пояльника обойтись, подскажите пожалуйста, где накосячил? походу наверное все таки в фьюзах дело из за кварца. Потом попробовал вот такие фьзы поставить результат такойже пока что, но матрица стала мерцах от таких фьзовИзображение
Аватара пользователя
shura2000
Вымогатель припоя
Сообщения: 613
Зарегистрирован: Пн фев 23, 2015 21:17:29
Откуда: г. Протвино, МО

Re: Часы на светодиодных матрицах с драйверами MAX7219

Сообщение shura2000 »

У меня пошли, когда конденсаторы на кварц подпаял.
Аватара пользователя
alcxa
Это не хвост, это антенна
Сообщения: 1347
Зарегистрирован: Ср мар 26, 2014 21:50:55
Откуда: RF-73 ULN
Контактная информация:

Re: Часы на светодиодных матрицах с драйверами MAX7219

Сообщение alcxa »

RuGOST писал(а):Тоже пришли часики версия PRO. прошил прошивкой matrixclock-0db99e8 последней выложенной здесь, проц мега8L установленная, результат на фото
нужно припаять DS3231 и 2 резистора и перемычку по питанию на DS3231 - и они у Вас пойдут - и батарейку надобно еще чтоб время сохранялось
Изображение
Последний раз редактировалось alcxa Чт июн 18, 2015 19:46:34, всего редактировалось 1 раз.
Аватара пользователя
shura2000
Вымогатель припоя
Сообщения: 613
Зарегистрирован: Пн фев 23, 2015 21:17:29
Откуда: г. Протвино, МО

Re: Часы на светодиодных матрицах с драйверами MAX7219

Сообщение shura2000 »

Я припаивал модуль для Ардуино с ебея. все работает.
Alex217
Родился
Сообщения: 15
Зарегистрирован: Вс авг 31, 2014 17:33:44

Re: Часы на светодиодных матрицах с драйверами MAX7219

Сообщение Alex217 »

М/с 3231 и ее обвязка вся установлена? Это скриншот фьюзов неправильный, указана Мега16.
RuGOST
Встал на лапы
Сообщения: 85
Зарегистрирован: Вс окт 02, 2011 11:00:19

Re: Часы на светодиодных матрицах с драйверами MAX7219

Сообщение RuGOST »

конденсаторы возле меги на 22пф запаять? и еще выше рисунок с фьюзами который я показал как вернуть изначальные фьюзы, а то ведь мерцают они, обвязки нету на фото выложил выше как выглядит плата с другой стороны, да я понял уже что на 16 мегу фьюзы, но не умерли часики от этих фьюзов, а значит есть шанс их подправить, тока я не знаю уже какие ставить!
Alex217
Родился
Сообщения: 15
Зарегистрирован: Вс авг 31, 2014 17:33:44

Re: Часы на светодиодных матрицах с драйверами MAX7219

Сообщение Alex217 »

WiseLord писал(а): но вот выводы толерантны ли к 5В - сомневаюсь. Не хочется как-то преобразователь уровней приделывать.

Если использовать только резисторы подтяжки на плате датчика давления (они есть?), они же подключены к 3.3В, а шина I2C построена на транзисторах с открытым коллектором (что и есть на самом деле), то макс. уровень на шине 3.3В - уровень лог. единицы, что достаточно для 5В устройств и безопасно для 3.3 вольтовых. "Нетолерантность" выводов скорее связана с наличием защитных диодов между выводом (анод) и плюсом питания (катод) что чревато при работе с двухтактным выходом подключаемой 5В логики. Но у нас только открытые выхода. Этот диод ограничит макс напряжение на шине на уровне 3.3В +падение на диоде. Поэтому макс. ток через защитный диод, при подключении подтяжки от 5В, определяется резистором подтяжки, и равен (5В-3.3В)/4.7КОм=0.36 мА, что скорее не смертельно, но проблема в том, что макс. ток через этот диод не нормируется, поэтому правильнее подтяжку запитывать от 3.3В.
Аватара пользователя
alcxa
Это не хвост, это антенна
Сообщения: 1347
Зарегистрирован: Ср мар 26, 2014 21:50:55
Откуда: RF-73 ULN
Контактная информация:

Re: Часы на светодиодных матрицах с драйверами MAX7219

Сообщение alcxa »

Alex217 писал(а):Если использовать только резисторы подтяжки на плате датчика давления (они есть?), они же подключены к 3.3В, а шина I2C построена на транзисторах с открытым коллектором (что и есть на самом деле), то макс. уровень на шине 3.3В - уровень лог. единицы, что достаточно для 5В устройств и безопасно для 3.3 вольтовых.
Это правильно, если у Меги тоже открытый коллектор, но все не так просто - ибо шина двунаправленная, с одной стороны подтянуто к 5В, а с другой стороны подтянуто к 3,3В:
В даташите на мегу написано:
Port C is an 7-bit bi-directional I/O port with internal pull-up resistors
и ни слова об открытом коллекторе - хотя открытый коллектор никогда не подтягивают резисторами внутри микросхемы - поэтому и обозван открытым. и в современных микросхемах стоят защитные диоды по входам которые спасают от завышенного напряжения на входе
В даташите на BMP180:
Supply voltage all pins -0.3 +4.25 V
- с Меги идет логическая единица в 5 Вольт что выходит за предельнодопустимый параметр по входу датчика и так как стоит резистор у датчика на 3,3В - то завышенное напряжение 5В также попадает на выход трехвольтового стабилизатора, что также может быть опасным (в стабилизаторах тоже иногда стоят диоды а могут и не стоять), обратно же с датчика идет 3,3В что не так страшно для меги.

Вот еще вырезка из даташита:
Logic 1 Input SDA, SCL VIH 0.7 x VCC
5*0,7=3,5
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: Часы на светодиодных матрицах с драйверами MAX7219

Сообщение WiseLord »

alcxa писал(а):и ни слова об открытом коллекторе
На самом деле, в даташите чётко прописано, что в режиме аппаратного I2C выход работает именно в режиме открытого стока.
В проекте, хотя и используется программный I2C, но тоже фактически в режиме открытого стока. Т.е. активная единица на выходах SDA/SCL не допускается программно в принципе. Либо активный ноль, либо неактивная (вывод в режиме входа) единица.
Alex217 писал(а):"Нетолерантность" выводов скорее связана с наличием защитных диодов между выводом (анод) и плюсом питания (катод)
Именно. Это типичные диоды для защиты от статического электричествва, и они, как правило, достаточно мощные (по площади), так что мизерный ток 100мкА (5-3,3-0,7В)/10кОм им повредить не должен. Хотя вообще так делать нехорошо, согласен.

Вообще у датчиков BMP180 в этом проекте (я имею в виду ATmega8) какие-то печальные перспективы. Сегодня вечером, повозившись с ними отдельно, понял, что в ATmega8 это не влезет вообще никак. Там столько операций деления 16 и 32-битных чисел при работе с калибровочными коэффициентами, что расчёт температуры/давления требует около 2,5кБайт flash-памяти.
Нужно либо каким-то чудом уменьшить размер прошивки на четверть, чтобы это влезло, либо перепаиваться на 168/328 мегу, что мне делать не очень хочется.

А так датчики вполне у меня заработали, проблема только в размере кода.

RuGOST писал(а):тока я не знаю уже какие ставить!
8МГц от внутреннего генератора. В исходниках проекта (Makefile) ясно видно, что Fuse-биты должны быть:lfuse = 0x24 и hfuse = 0xd1. Точно так же видно, что эта прошивка предназначена для работы с аппаратными часами на базе DS1307 или DS3231 (для этого варианта есть посадочное место на плате плюс батарейка для хранения времени). Программной реализации часов, как в родной китайской прошивке, здесь нет.
Аватара пользователя
shura2000
Вымогатель припоя
Сообщения: 613
Зарегистрирован: Пн фев 23, 2015 21:17:29
Откуда: г. Протвино, МО

Re: Часы на светодиодных матрицах с драйверами MAX7219

Сообщение shura2000 »

Может все же перепаять? Будет больший простор для дальнейшего развития проекта.
RuGOST
Встал на лапы
Сообщения: 85
Зарегистрирован: Вс окт 02, 2011 11:00:19

Re: Часы на светодиодных матрицах с драйверами MAX7219

Сообщение RuGOST »

Спасибо с фьюзами на сайте по указанной вами ссылке выставил нужные фьюзы! Прошился заново на всякий случай, но eeprom залить не могу ругаеться, не могу понять зачем пока он на него ругаеться! шью через CodeVision AVR.
Alex217
Родился
Сообщения: 15
Зарегистрирован: Вс авг 31, 2014 17:33:44

Re: Часы на светодиодных матрицах с драйверами MAX7219

Сообщение Alex217 »

WiseLord писал(а): мизерный ток 100мкА (5-3,3-0,7В)/10кОм им повредить не должен.

Будем делать без преобразователя уровней) Я встречал такое решение даже в оборонке.
Я тоже за переход на более "жирный" контроллер. Мега328.
Cheal
Грызет канифоль
Сообщения: 265
Зарегистрирован: Пн окт 31, 2011 12:35:59
Откуда: Родился в Сибири

Re: Часы на светодиодных матрицах с драйверами MAX7219

Сообщение Cheal »

Здравствуйте.

В начале форума поэтому я и писал о применении dip корпуса.
Плату рисую под dip корпус и когда появится модификация под другой МК
просто вставлю другой. Применение корпуса TQFP целесообразно когда
развитие конструкции не предусматривается.

Ну это личное мнение.
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: Часы на светодиодных матрицах с драйверами MAX7219

Сообщение WiseLord »

У ATmega 8/48/88/168/328 цоколёвка одинаковая как для DIP, так и для QFP корпуса. Так что потенциальное развитие конструкции тут ни при чём.

Может быть, завтра съезжу на радиорынок для покупки ATmega168 (или 328).
Cheal
Грызет канифоль
Сообщения: 265
Зарегистрирован: Пн окт 31, 2011 12:35:59
Откуда: Родился в Сибири

Re: Часы на светодиодных матрицах с драйверами MAX7219

Сообщение Cheal »

Я про удобства.

При dip корпусе вынул-вставил, а при TQFP необходима пайка 32 выводам.
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: Часы на светодиодных матрицах с драйверами MAX7219

Сообщение WiseLord »

Обновление прошивки.

- Оптимизация кода.
- Изменения в структуре EEPROM для будущих датчиков давления/влажности
- Максимальное число температурных датчиков (и текстовых меток в EEPROM для них) увеличено до 4

Дополнительно в архиве выложены тестовые прошивки с поддержкой датчика давления BMP180, измеряющего также и температуру. В этих прошивках временно отключен функционал будильника, чтобы вместить код поддержки датчиков.

Если кто-то использует ATmega168 или ATmega328, он может в прошивке для BMP180 вернуть поддержку будильника назад - в эти МК влезет и будильник, и датчик давления Для этого просто надо раскомментировать закомментированые строки и пересобрать прошивку под свой МК (переменная MCU в Makefile). А я позже всё-таки попытаюсь вместить всё это в ATmega8.
Вложения
matrixclock-1fac76e.7z
(45.76 КБ) 374 скачивания
Аватара пользователя
dt_andrew
Мявтор!
Сообщения: 2057
Зарегистрирован: Чт ноя 30, 2006 12:27:46
Откуда: Челябинск

Re: Часы на светодиодных матрицах с драйверами MAX7219

Сообщение dt_andrew »

а как с помощью AVR Studio прошить ЕЕПРОМ, там только HEX, а файл BIN
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: Часы на светодиодных матрицах с драйверами MAX7219

Сообщение WiseLord »

Не знаю, я под Linux код пишу, на "чистом" avr-gcc и шью с помощь avrdude. Если AVRStudio не умеет прямо писать бинарные форматы, самым простым выходом вижу вариант с их преобразованием из binary в ihex:

Код: Выделить всё

avr-objcopy -I binary -O ihex eeprom_by.bin eeprom_by.hex
Аватара пользователя
dt_andrew
Мявтор!
Сообщения: 2057
Зарегистрирован: Чт ноя 30, 2006 12:27:46
Откуда: Челябинск

Re: Часы на светодиодных матрицах с драйверами MAX7219

Сообщение dt_andrew »

обьясните как с помощью дуде прошить БИН в ЕЕПРОМ
по виндой у меня в SinaProg выбор файла для загрузки в ЕЕПРОМ вообще не активно
может как то можно чтоб и файл для ЕЕПРОМ тоже был HEX

update
с помощью утилиты преобразовал в кекс - прошил
часы повели себя по другому. но не так как надо
на матрице фигня
кнопки не работают - бум разбираться
использую мега328 и матрицы с SMD max7219 32x32
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: Часы на светодиодных матрицах с драйверами MAX7219

Сообщение WiseLord »

В Makefile в качестве LED_DRIVER можно указать:

HT1632 - для китайской платы J-MCU 3208 Pro, там своя разводка кнопок и прочего
MAX7219 - для схемы в статье
MAX7219MOD - то же, но с поворотом матриц на 90 градусов - так разведены "готовые" китайские модули.

Соответственно, скрипт build_all.sh генерирует все варианты прошивок.

В pins.h вся разводка для всех вариантов приведена. Кнопки, как обычно, срабатывают при закорачивании на землю.

В том же Makefile можно увидеть и строку avrdude для прошивки. В частности, прошить из каталога проекта:

Flash в Intel Hex формате:
avrdude -p atmega8 -c usbasp -P usbasp -U flash:w:flash/matrixclock_max7219mod_atmega328.hex:i

Eeprom в Raw (binary) формате:
avrdude -p atmega8 -c usbasp -P usbasp -U eeprom:w:eeprom/matrixclock_by.bin:r

Естественно, программатор (-c usbasp) и порт (-P usbasp) нужно подставить свои.

Если прописать правильные их значения в Makefile (там есть для этого нужные закомментированные строки), вся работа с прошивкой будет сводиться к командам из консоли:

make clean - очистить исходники от старых объектников от предыдущей прошивки
make LED_DRIVER=MAX7219MOD - собрать соответствующий вариант прошивки
make LED_DRIVER=MAX7219MOD flash - прошить flash
make eeprom_by - прошить eeprom
make fuse - прошить Fuse-биты

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

Вернуться в «Статьи»