Например TDA7294

Форум РадиоКот • Просмотр темы - Часы на светодиодных матрицах с драйверами MAX7219
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Вт апр 23, 2024 22:34:22

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 1838 ]    , 2, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Часы на светодиодных матрицах с драйверами MAX7219
СообщениеДобавлено: Пт мар 06, 2015 11:54:18 
Друг Кота
Аватар пользователя

Карма: 86
Рейтинг сообщений: 1018
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4875
Откуда: Минск
Рейтинг сообщения: 0
Но никаких гарантий. У меня работали матрицы типа 19881BEG, а там разводка другая.

Я просто свою рабочую схему по даташитам на матрицы перенёс на 15881, ну и для A-варианта повернул. И очень надеюсь, что ошибок не допустил.

Во вложении то, что у меня точно работает, можете, на всякий случай, сравнить с рисунком выше по описаниям 15881 и 19881


Вложения:
matrixclock_max7219.lay6.7z [12.58 KiB]
Скачиваний: 812
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на светодиодных матрицах с драйверами MAX7219
СообщениеДобавлено: Ср мар 11, 2015 12:05:15 
Первый раз сказал Мяу!

Зарегистрирован: Чт авг 29, 2013 10:16:34
Сообщений: 37
Откуда: Иркутск
Рейтинг сообщения: 0
Изображение
Вчера по быстрому собрал схему на макетке, всё сразу заработало! Большое спасибо автору за библиотеку для MAX7219 с возможностями скроллига! Применил готовые модули 8*8 матрица+MAX7219 и часовой модуль DS3231. Правда модули матриц пришлось развернуть на 90 град. относительно их штатного соединения перемычками. Осталось не понятным назначение свечение точек на крайнем правом столбце. Вопрос к автору: если я правильно понял то прошивка писалась на WinAVR и можно ли использовать библиотеку для MAX7219 в CodeVisionAVR? Просто в основном пользуюсь им. И ещё, на сколько сложно переделать прошивку под другой контролёр, например MEGA16 или MEGA32 и будете ли Вы развивать дальше этот проект? В плане развития хотелось бы, всё таки добавить ещё одну матрицу, что позволит сделать по шире шрифт или добавить показания секунд более мелким шрифтом, а также повыситься читаемость сообщений. Так же расширить возможности в настойках - изменение интервала времени прокрутки бегущей строки, её скорость, коррекции времени, звуковой индикации каждого часа. К показаниям температуры, мне кажется, надо добавить знаки + и -. Вообще в плане развития у Вас очень многообещающий проект. Ведь в отличии от других названных выше Вами проектов матричных часов у Вашего очень много свободных ног у контролёра, на которые можно навешивать какие угодно датчики ( хотелось бы давления и влажности).


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на светодиодных матрицах с драйверами MAX7219
СообщениеДобавлено: Ср мар 11, 2015 12:33:13 
Друг Кота
Аватар пользователя

Карма: 86
Рейтинг сообщений: 1018
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4875
Откуда: Минск
Рейтинг сообщения: 0
Maxtor62 писал(а):
Осталось не понятным назначение свечение точек на крайнем правом столбце
Секунды в двоичном коде. На экране будильника - дни, на которые будильник установлен.
Maxtor62 писал(а):
если я правильно понял то прошивка писалась на WinAVR
Прошивка писалась под avr-gcc в Linux. Да, в Windows этот компилятор входит в комплект WinAVR. Насчёт Codevision ничего не скажу, проекты в нём видел, но сам никогда в нём (и других Windows-IDE) под AVR код не писал.

Насчёт развития проекта не уверен. Ресурсы ATmega8 практически полностью исчерпаны (те же шрифты много занимают), поэтому тут нужно либо конкретно код оптимизировать, либо переходить на МК пожирнее (ту же ATmega168/328, если не менять разводку, ну или ATmega16/32, с уже новой схемой). Так что, если что-то и поменяется, то это, вероятнее всего, будет уже другой проект. Этот же проект у меня, по большому счёту, побочный продукт от написания библиотеки под MAX7219.


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Часы на светодиодных матрицах с драйверами MAX7219
СообщениеДобавлено: Чт мар 12, 2015 18:13:05 
Родился

Зарегистрирован: Вт дек 09, 2008 22:36:10
Сообщений: 16
Откуда: Санкт -Петербург
Рейтинг сообщения: 0
Вопрос к Maxtor62

Что надо менять в прошивке для DS3231 и если надо менять, то не могли бы выложить файлы прошивки.

С уважением.


Вернуться наверх
 
Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Часы на светодиодных матрицах с драйверами MAX7219
СообщениеДобавлено: Пт мар 13, 2015 11:07:39 
Первый раз сказал Мяу!

Зарегистрирован: Чт авг 29, 2013 10:16:34
Сообщений: 37
Откуда: Иркутск
Рейтинг сообщения: 0
Для "Муся". DS1307 и DS3231 по основным своим адресам регистров и командам идентичны. Поэтому в прошивке я ничего не менял и прошивал ту что выложил автор.
Кстати хотелось бы кое что в ней для себя поменять. Но, установив у себя WinAVR не получается откомпелировть проект. Если использовать Makefile автора то выдаётся ошибка: cc1.exe: error: no iconv implementation, cannot convert from UTF-8 to ks0066-ru. Если создаю свой Makefile, с соответствующим указанием в нём всех составляющих проекта, то получаю: undefined reference to "ds18*20SearhDevices" и дальше по каждой ссылке на процедуры из библиотек проекта, не смотря на то что они указаны в Makefile. Уважаемый автор, может что подскажите по данной проблеме? Может у Вас всё же есть возможность где то прогнать проект в WinAVR?


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Часы на светодиодных матрицах с драйверами MAX7219
СообщениеДобавлено: Пт мар 13, 2015 11:23:26 
Друг Кота
Аватар пользователя

Карма: 86
Рейтинг сообщений: 1018
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4875
Откуда: Минск
Рейтинг сообщения: 0
Для компиляции в windows в консоли (cmd) заходите в каталог с проектом и даёте команду make. При установленном WinAVR она уже должна быть доступна (прописана в PATH).

Сейчас проверю в VirtualBox, собирается ли проект под Windows.

P.S.

Да, действительно, проект не собирается в Windows. Это из-за того, что в windows нет iconv (error: no iconv implementation, cannot convert from UTF-8 to ks0066-ru), который позволяет текстовые строки в программе (они в коде написаны прямо по-русски, в кодировке UTF-8) перевести в кодировку KS0066-RU (используется в знакосинтезирующих дисплеях, и, для совместимости с другими моими проектами, здесь).

Чтобы собрать в Windows этот проект нужно:
1. В Makefile закомментировать строчку CS = -fexec-charset=ks0066-ru, отключив тем самым конвертацию.
2. В исходниках в файле display.c все текстовые константы (типа "Воскресенье", "·C в комнате" и прочие) перевести в кодировку KS0066-RU. Для простоты - можно просто по-английски временно всё переписать, а потом уже использовать эту кодировку.
3. Использовать avr-gcc посвежее, как минимум, версии 4.8, например, avr-gcc-4.8_2013-03-06_mingw32.zip, так как тот, что в WinAVR отсюда, например, слишком старый и генерирует код, который не влезает в процессор. Внести соответствующие правки в Makefile.

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

Во вложении исправленные Makefile/display.c и используемая в шрифтах кодировка. По крайней мере, у меня в WindowsXP в VirtualBox сейчас получилось собрать (с англоязычными текстовыми метками).

На выходных я постараюсь перенести текстовые метки из кода в EEPROM, тогда, думаю, проблема сборки под Windows уйдёт сама собой. Понадобится только WinAVR и >=avr-gcc-4.8. Дополнительный бонус - текстовые метки можно будет поменять прямо в eeprom, без перекомпиляции.

P.P.S.

Пару слов о том, как всё-таки оставить при этом русскоязычные надписи. Возьмём, например, текстовую метку.
Код:
const char wd0[] PROGMEM = "Воскресенье";
У кодировки ks0066-ru особенность в том, что кириллические символы там присутствуют только те, аналогов которым нет в латинской части кодовой таблицы. Скажем, русские "В", "о", "с" заменяются латинскими "B", "o", "c", а вот для буквы "к" аналога уже нет, и придётся использовать её по коду из таблицы, 0xBA (см. также файл font-ks0066-ru-08.c).
Таким образом, без перекодировки с помощью iconv придётся текстовую метку переписать следующим образом:
Код:
const char wd0[] PROGMEM = "Boc""\xBA""pece""\xBD""\xC4""e";

Здесь буквы "к", "н", "ь", не имеющие аналогов в латинской части кодовой таблицы, заменены своими hex-кодами. Аналогично переписываются и другие строковые константы.


Вложения:
matrixclock-compile-in-windows.7z [346.4 KiB]
Скачиваний: 911
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на светодиодных матрицах с драйверами MAX7219
СообщениеДобавлено: Пт мар 13, 2015 19:47:09 
Первый раз сказал Мяу!

Зарегистрирован: Чт авг 29, 2013 10:16:34
Сообщений: 37
Откуда: Иркутск
Рейтинг сообщения: 0
WiseLord большое Вам спасибо за быстрый и качественный ответ. С вашими подсказками всё получилось!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на светодиодных матрицах с драйверами MAX7219
СообщениеДобавлено: Вс апр 12, 2015 23:07:04 
Встал на лапы
Аватар пользователя

Карма: 2
Рейтинг сообщений: 14
Зарегистрирован: Ср июн 04, 2008 00:22:30
Сообщений: 127
Откуда: Украина, Ковель
Рейтинг сообщения: 0
WiseLord, что-то у меня размер файла-hex после компиляции слишком большой - не влазит в 8kb. Хотел на украинский перевести...
Компилировал в linux (gcc version 4.7.2 (GCC))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на светодиодных матрицах с драйверами MAX7219
СообщениеДобавлено: Пн апр 13, 2015 18:21:28 
Друг Кота
Аватар пользователя

Карма: 86
Рейтинг сообщений: 1018
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4875
Откуда: Минск
Рейтинг сообщения: 0
gcc 4.7.2 генерирует больший по размеру код, нежели 4.8.x. Попробуйте сменить компилятор.

Ещё можете попробовать добавить в опции компилятора:
CFLAGS (в моём Makefile можно в OPTIMIZE): -ffunction-sections -fdata-sections
LDFLAGS: -Wl,-gc-sections

Это позволит вырезать из кода неиспользуемые функции/переменные. У меня экономится около 90 байт.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на светодиодных матрицах с драйверами MAX7219
СообщениеДобавлено: Ср апр 15, 2015 14:47:14 
Встал на лапы
Аватар пользователя

Карма: 2
Рейтинг сообщений: 14
Зарегистрирован: Ср июн 04, 2008 00:22:30
Сообщений: 127
Откуда: Украина, Ковель
Рейтинг сообщения: 0
Спасибо, все получилось!
Использовал указанные Вами опции + добавил еще -mrelax -flto. В результате на компиляторе 4.7 код получился меньше исходного на 327 байт. :))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на светодиодных матрицах с драйверами MAX7219
СообщениеДобавлено: Ср апр 15, 2015 15:16:17 
Друг Кота
Аватар пользователя

Карма: 86
Рейтинг сообщений: 1018
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4875
Откуда: Минск
Рейтинг сообщения: 0
У меня на 4.8 эти опции ничего не меняют. Возможно, они включены в этой версии по умолчанию, в отличие от 4.7, за счёт чего 4.8 выдаёт при прочих равных код меньшего размера.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на светодиодных матрицах с драйверами MAX7219
СообщениеДобавлено: Ср апр 15, 2015 15:36:23 
Встал на лапы
Аватар пользователя

Карма: 2
Рейтинг сообщений: 14
Зарегистрирован: Ср июн 04, 2008 00:22:30
Сообщений: 127
Откуда: Украина, Ковель
Рейтинг сообщения: 0
Возможно...
Относительно Вашего вышло меньше всего на 9 байт. Это наверное из-за более коротких названий на украинском.
Если кому интересно прошивка в приатаченом файле.
Вложение:
Комментарий к файлу: Прошивка с украинскими названиями
matrixclock-ua.7z [7.87 KiB]
Скачиваний: 486


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на светодиодных матрицах с драйверами MAX7219
СообщениеДобавлено: Пт апр 24, 2015 12:15:06 
Первый раз сказал Мяу!

Зарегистрирован: Вс янв 11, 2015 11:08:49
Сообщений: 27
Рейтинг сообщения: 0
Всем привет, а подскажите плс как скомпилировать прошивку под ATMEGA328? Или может кто нибудь может это сделать?.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на светодиодных матрицах с драйверами MAX7219
СообщениеДобавлено: Пт апр 24, 2015 14:32:44 
Друг Кота
Аватар пользователя

Карма: 86
Рейтинг сообщений: 1018
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4875
Откуда: Минск
Рейтинг сообщения: 0
Нужен небольшой патч на исходники, в связи с другими именами регистров таймеров:
Спойлер
Код:
diff --git a/Makefile b/Makefile
index d377925..c8c559a 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
 TARG=matrixclock
 
 SRCS = main.c max7219.c font-ks0066-ru-08.c mtimer.c i2c.c ds1307.c ds18x20.c display.c alarm.c
-MCU = atmega8
+MCU = atmega328
 F_CPU = 8000000L
 
 CS = -fexec-charset=ks0066-ru
diff --git a/max7219.c b/max7219.c
index c453f73..f8f2e8d 100644
--- a/max7219.c
+++ b/max7219.c
@@ -281,8 +281,8 @@ void max7219LoadFont(const uint8_t *font)
 
 void scrollTimerInit(void)
 {
-   TIMSK |= (1<<TOIE2);                     /* Enable Timer2 overflow interrupt */
-   TCCR2 |= (1<<CS22) | (1<<CS21) | (1<<CS20);      /* Set timer prescaller to 1024 (7812 Hz) */
+   TIMSK2 |= (1<<TOIE2);                     /* Enable Timer2 overflow interrupt */
+   TCCR2B |= (1<<CS22) | (1<<CS21) | (1<<CS20);   /* Set timer prescaller to 1024 (7812 Hz) */
 
    return;
 }
diff --git a/mtimer.c b/mtimer.c
index 3476b40..fb7e84d 100644
--- a/mtimer.c
+++ b/mtimer.c
@@ -15,8 +15,8 @@ static volatile uint8_t cmdBuf;
 
 void mTimerInit(void)
 {
-   TIMSK |= (1<<TOIE0);                     /* Enable Timer0 overflow interrupt */
-   TCCR0 |= (0<<CS02) | (1<<CS01) | (1<<CS00);      /* Set timer prescaller to 64 (125kHz) */
+   TIMSK0 |= (1<<TOIE0);                     /* Enable Timer0 overflow interrupt */
+   TCCR0B |= (0<<CS02) | (1<<CS01) | (1<<CS00);   /* Set timer prescaller to 64 (125kHz) */
 
    tempConvertTimer = 0;
 


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на светодиодных матрицах с драйверами MAX7219
СообщениеДобавлено: Пт апр 24, 2015 14:47:39 
Первый раз сказал Мяу!

Зарегистрирован: Вс янв 11, 2015 11:08:49
Сообщений: 27
Рейтинг сообщения: 0
СПАСИБО огромное, сейчас буду пробовать...ну никак не могу научится компилировать исходник под виндовс...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на светодиодных матрицах с драйверами MAX7219
СообщениеДобавлено: Пт апр 24, 2015 15:38:41 
Первый раз сказал Мяу!

Зарегистрирован: Вс янв 11, 2015 11:08:49
Сообщений: 27
Рейтинг сообщения: 0
Все заработало спасибо еще раз.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на светодиодных матрицах с драйверами MAX7219
СообщениеДобавлено: Пн апр 27, 2015 11:21:49 
Первый раз сказал Мяу!

Зарегистрирован: Вс янв 11, 2015 11:08:49
Сообщений: 27
Рейтинг сообщения: 0
Если перепутать 11 и 12 ногу МК то получаются тикающие часы (дип корпус) ))))))))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на светодиодных матрицах с драйверами MAX7219
СообщениеДобавлено: Пн апр 27, 2015 21:58:56 
Встал на лапы
Аватар пользователя

Карма: 2
Рейтинг сообщений: 14
Зарегистрирован: Ср июн 04, 2008 00:22:30
Сообщений: 127
Откуда: Украина, Ковель
Рейтинг сообщения: 0
Изображение
В процессе...
Осталось сделать корпус.
WiseLord, спасибо за конструкцию! :beer:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на светодиодных матрицах с драйверами MAX7219
СообщениеДобавлено: Вт апр 28, 2015 18:55:04 
Первый раз сказал Мяу!

Зарегистрирован: Чт авг 29, 2013 10:16:34
Сообщений: 37
Откуда: Иркутск
Рейтинг сообщения: 0
Уважаемый WiseLord, подскажите пожалуйста, что надо исправить в коде при добавлении ещё одной матрицы кроме "#define MAX7219_ICNUMBER с 3 на 4"? Если исправить только здесь то пропадают первые две цифры в режиме часов и бегущая строка идёт только по первым трём матрицам? Если я правильно понимаю то размер экранного буфера определяется в static uint8_t scrBuf[MAX7219_ICNUMBER * 8], а что определяет эта строка "static uint8_t strBuf[512];"? Хочу попробовать сделать вывод секунд на четвёртой матрице. Опять же, если я правильно понимаю, то для этого можно использовать функцию "void showMainScreen(void)" из display.c? Хватит ли для этого памяти в ATMEGA8?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на светодиодных матрицах с драйверами MAX7219
СообщениеДобавлено: Вт апр 28, 2015 19:05:19 
Друг Кота
Аватар пользователя

Карма: 86
Рейтинг сообщений: 1018
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4875
Откуда: Минск
Рейтинг сообщения: 0
При выводе строки она сначала выводится в массив str[512]. Потом этот массив просто скроллится по окну буфера scrBuf[24].

Согласен, не самое удачное решение (много ОЗУ требует), у меня есть уже наработки без этого, но пока часов, собранных в железе, нет, особо не потестирую.

Посмотрите константы (смените 23 на 31) ещё здесь. Может, что-то улучшится.

P.S. Посидел 20 минут с Proteus: вот необходимые изменения для поддержки четырёх матриц, проект Proteus и hex во вложении. Секунды отрисовывайте уже сами.


Последний раз редактировалось WiseLord Ср апр 29, 2015 18:43:31, всего редактировалось 1 раз.

Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 1838 ]    , 2, , , ...  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: gbfy2, Google [Bot] и гости: 39


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y