Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить

Работа с семисегментным дисплеем через TM1637

Ср май 23, 2018 01:49:14

Приветствую всех форумчан!
Начал недавно разбираться с микросхемой на ТМ1637, но к успеху это не привело :) . Пробовал сделать на аппаратном I2C, но ничего не получилось, в итоге, сначала решил завести ногодрыгом.
Суть в следующем: Для Ардуино есть готовые библиотеки, которые работают нормально, но мне нужно для STM32. В даташите есть пример кода для какого-то микроконтрроллера:


Жирным вsделена функция, написанная с ошибкой (должен быть ScanKey).

Я переделал код под STM32:


В хедере:

Вроде все правильно сделал, но код зависает в ожидании второго ACK.

Может кто-то делал подобное? Наверное есть какая-то особенность при запуске, про которую я не знаю... :dont_know:

Re: Работа с семисегментным дисплеем через TM1637

Пт май 25, 2018 00:45:53

А кто-то вообще писал код для этого чуда?)

Re: Работа с семисегментным дисплеем через TM1637

Пт май 25, 2018 07:44:44

Я писал (переделывал чужую либу под себя).
Запись байта осуществляю вот так:

Оригинал, с короторого передирал, лежит здесь: https://github.com/lpodkalicki/attiny-tm1637-library
Когда делали на аппаратном I2C, возможно не учли, что в "каноничном" I2C передача идет старшим байтом вперед, а ТМ1637 принимает младшим байтом вперед.

Re: Работа с семисегментным дисплеем через TM1637

Пт май 25, 2018 10:43:44

Да раскопать бы даташиту путевую под эту микру...
:roll:
С инглиш проблем нету, а вот с иероглифами я не дружу...
:(
УПС...
Поискать поленился
http://www.mcielectronics.cl/website_MC ... TM1637.pdf
Теперь и пожевать можно...
:hunger:
Последний раз редактировалось BOB51 Пт май 25, 2018 10:54:12, всего редактировалось 1 раз.

Re: Работа с семисегментным дисплеем через TM1637

Пт май 25, 2018 10:52:53

дык яж на TMxxxxx выкладыввал гето на форум на всю серию шиты
искать ленива чето инет тормозит

Re: Работа с семисегментным дисплеем через TM1637

Пт май 25, 2018 10:56:42

Дык... пока на глазы в продаже не попадалась - и не интересовалси, а тут вроде как их расплодилось - а почти все ссыли на китая-маму.
Воть накопал - теперь и почитамсс.
:hunger:

Re: Работа с семисегментным дисплеем через TM1637

Пт май 25, 2018 16:28:09

Только вот отправлять пакеты как в даташитн у меня не получается - не принимает вторую команду и все.

Re: Работа с семисегментным дисплеем через TM1637

Пт май 25, 2018 18:43:46

Копирните либу по моей ссылке 1 в 1. Как заработает - будете разбиратся, что у Вас в коде не так.

Re: Работа с семисегментным дисплеем через TM1637

Сб май 26, 2018 05:35:54

Микросхема одинакова ВСЕГДА, а вот раскладка выводов индикатора относительно выводов микросхемы может отличаться в зависимости от типа светодиодной матрицы и производителя модуля.
Посему и картинка может быть отличной. Этот вопрос ранее уже всплывал в темах о ЖКИ индикаторах - вполне возможно и в данном случае может иметь место.
Лучше уж самому программы загрузки по даташиту соорудить и протестировать соответствие бит ОЗУ конкретным сегментам индикатора (посегментный тест привязки бит ОЗУ).
Тем более, что микросхема обслуживает 6 позиций , а индикаторы типовые на 4-5 позиций (ежли "часовые" точки считать 5-й) какой порядок соответствия установлен в конкретном изделии - надо тестировать.
Будет в лапах образец - составлю и прожку (пойдет "текущим хвостом" - продолжением сюда https://radiokot.ru/forum/viewtopic.php ... 7#p3365177 ).
:beer:

Re: Работа с семисегментным дисплеем через TM1637

Пн май 28, 2018 12:29:59

Оригинал, с которого передирал, лежит здесь: https://github.com/lpodkalicki/attiny-tm1637-library


Завелось таки!!! Основная проблема оказалась задержках. Нужно было увеличить их в 10 РАЗ!!!. Скорее всего это связано с атомарным управлением пинами в STM32.
Позже выложу готовый код. Щас надо в порядок его привести.

Есть еще вопрос. У меня есть такой код:


Как можно сделать настройку с помощью функции типа: pinsSet(GPIOB, 0, 1);?
Подозреваю, что это должно как-то быть связано с энумерацией, но пока не соображу чет... :dont_know:

Re: Работа с семисегментным дисплеем через TM1637

Ср май 30, 2018 20:37:15

Эксперименты с "подопытным мышом":
https://radiokot.ru/forum/viewtopic.php ... 4#p3389274
:beer:

Re: Работа с семисегментным дисплеем через TM1637

Пт дек 04, 2020 12:52:46

Оригинал, с которого передирал, лежит здесь: https://github.com/lpodkalicki/attiny-tm1637-library

Основная проблема оказалась задержках. Нужно было увеличить их в 10 РАЗ!!!

Ещё нужно учесть, что если используются резисторы подтяжки только те что на плате, то они там 10кОм и параллельно SDA,SLC ещё по 1000пф ёмкость подпаяна
Ответить