TM1637 к I2C шине компьютера
- >TEHb<
- Друг Кота
- Сообщения: 5748
- Зарегистрирован: Ср ноя 11, 2009 17:19:30
- Откуда: Воронеж
- Контактная информация:
TM1637 к I2C шине компьютера
Добрый день! Попался в руки небезызвестный индикатор на базе TM1637 на 4 цифры. О подключении его к микроконтроллеру статей, примеров полно, да и сам по себе протокол несложный. Веселье началось тогда, когда стал подключать его к честной шине i2c, торчащей из компьютера. Сразу скажу, что удалось. Решение так себе, но работает. Если нужно, решением поделюсь чуть позже (много писать придётся). Пока хотел бы спросить нет ли у кого подобного опыта? Если кто-то сталкивался с такой задачей, то как решили?
"Привет!" - соврал он.
- Реклама
Re: TM1637 к I2C шине компьютера
В стандартном наборе ПК на сегодня легкодостувпен разве что СОМ порт...
И то чаще через мост USB-COM.
Наиболее оптимально поставить простейший преобразователь потока символов и управляющих команд из RS232 в требуемый набор сигналов на малолапом МК.
Преимущество - доступ из любой терминалки без дополнительных затрат на написание программ под ПК.

И то чаще через мост USB-COM.
Наиболее оптимально поставить простейший преобразователь потока символов и управляющих команд из RS232 в требуемый набор сигналов на малолапом МК.
Преимущество - доступ из любой терминалки без дополнительных затрат на написание программ под ПК.
- electroget
- Друг Кота
- Сообщения: 4651
- Зарегистрирован: Ср сен 30, 2020 16:51:47
- Откуда: РФ
Re: TM1637 к I2C шине компьютера
[uquote=">TEHb<",url="/forum/viewtopic.php?p=4180793#p4180793"]Веселье началось тогда, когда стал подключать его к честной шине i2c, торчащей из компьютера.[/uquote]
А где из компьютера торчит i2c? Из моего ничего не торчит.
А вообще существует Ftdi FT260 usb i2c конвертер и драйвер для него.
У меня такого нет, но у кого есть писали что нормально работает.
А где из компьютера торчит i2c? Из моего ничего не торчит.
А вообще существует Ftdi FT260 usb i2c конвертер и драйвер для него.
У меня такого нет, но у кого есть писали что нормально работает.
- Eddy_Em
- Собутыльник Кота
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
- Контактная информация:
Re: TM1637 к I2C шине компьютера
electroget, у всех из компутера "торчит" I2C: на ней висит уйма термодатчиков и т.п. устройств. А в ядре есть их поддержка, при помощи sensors-detect можно шину I2C просканировать на предмет датчиков.
Другое дело, что эта шина не имеет внешнего разъема, нужно на материнке искать дорожки и к ним подпаиваться.
Другое дело, что эта шина не имеет внешнего разъема, нужно на материнке искать дорожки и к ним подпаиваться.
- >TEHb<
- Друг Кота
- Сообщения: 5748
- Зарегистрирован: Ср ноя 11, 2009 17:19:30
- Откуда: Воронеж
- Контактная информация:
Re: TM1637 к I2C шине компьютера
Если не нужно, то и не торчит. Мне же нужно (smbus, pmbus), я себе высунул.electroget писал(а):Из моего ничего не торчит.
Добавлено after 2 hours 5 minutes 2 seconds:
Итак, всё-таки распишу как выкручиваюсь сейчас и почему. Во-первых, у меня таки есть преобразователь USB-I2C, который видится системой как полноценная шина. Только она не внутри, а "на улуицу", но это системе без разницы. Проект открытый, деталей мало, собирается легко, работает замечательно. Ну и приспичило мне пригородить к нему вот этот вот TM1637 индикатор. Почему? Да потому что на столе лежит и2ц шина и циферки, с типа и2ц интерфейсом (нет). Довольно хорошо как им управлять написано вот тут.
Подробно описывать что к чему не буду, это уже сделано за меня. Если вкратце, то всё в итоге сводится к трём шагам:
Во-первых, включение-инициализация. Нужно сформировать последовательность 0b111 1 000 1. Для индикатора это означает
111 - три бита, отвечающие за яркость
1 - включить отображение
000 - так надо
1 - тоже всегда предписано быть единицей.
Хорошо, допустим. Но что это значит с точки зрения и2ц? 0b1111000 1, где
1111000 - адрес ведомого (0х78)
1 - означает, что сейчас мы будем с него читать.
Итак, проблема номер один. Одни и те же последовательности для двух устройств означают немного разное. Например, адрес ведомого 0х78 как бы не может существовать. Запрешён он. Во-вторых, если мы хоть один байт вычитаем с него, то получим последовательность 0хFF. Индикатор-то линию вниз не тянет, ему не надо. Более того, воспринимает эту последовательность как команду, что всё портит. Ну да и ладно, значит нужно считать 0 байт. Хорошо. Видно, что осциллограф из-за адреса не может воспринять это как корректную и2ц последовательность и отказывается её расшифровывать.
Во-вторых, перевод индикатора в конкретное состояние приёма данных. Нам нужна последовательность 0b0 0 0 0 0010, где
0 - так предписано, что всегда 0 без вариантов
0 - сейчас будет запись данных для отображения
0 - данные пойдут пачкой сразу для всех знакомест
0 - нормальный режим (хз что это)
0010 - тоже так надо.
Для и2ц это 0b0000001 0, где
0b0000001 - адрес ведомого 0х01
0 - запись.
Ну отлично, по старой схеме пишем 0 байт в адрес 0х01. И вот теперь-то индикатор ждёт данные для отображения. Всего в контроллере предусмотрено управление шестью сегментами, но часто распаяно лишь 4. Это не принципиально. Можно уже отображать что-нибудь.
В третьих, нужно установить адрес и гнать данные. В качестве команды установки адреса нужно отправить 0b00000011, короче чтение 0 байт из 0х01. Адрес установили, можно писать.
Но! Запись-то начинается с адреса! Вот тут не могу сказать точно как конкретно оно работает, но работает. Я просто пишу 6 байт по адресу 0х01, что сначала формирует команду, аналогичную пункту 2, а потом уже засылает что нужно для отображения.
Вот вроде и работает, но как-то всё на костылях. Конечно, лучше было бы реализовать что-то менее китайское, но работает же! Несмотря на то, что этим я планирую пользоваться почти каждый день, интерес всё же больше академический. Всё-таки и2ц это вовсе не GPIO и приходится вот так вот выкручиваться. Может быть подскажете ещё какие-нибудь хитрые финты.
"Привет!" - соврал он.
- Реклама
Re: TM1637 к I2C шине компьютера
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=4181929#p4181929"]electroget,
Другое дело, что эта шина не имеет внешнего разъема, нужно на материнке искать дорожки и к ним подпаиваться.[/uquote]
Брал i2c из VGA разъёма (тот что самый первый DE-15) от встроенной в материнку видюхи, i2cdetect увидел.
А про TM1637... если на шине кто-то ещё, то по моему лучше через какой нибудь TCA9548 подключить
Другое дело, что эта шина не имеет внешнего разъема, нужно на материнке искать дорожки и к ним подпаиваться.[/uquote]
Брал i2c из VGA разъёма (тот что самый первый DE-15) от встроенной в материнку видюхи, i2cdetect увидел.
А про TM1637... если на шине кто-то ещё, то по моему лучше через какой нибудь TCA9548 подключить
- electroget
- Друг Кота
- Сообщения: 4651
- Зарегистрирован: Ср сен 30, 2020 16:51:47
- Откуда: РФ
Re: TM1637 к I2C шине компьютера
simq,
Я не писал "Другое дело, что эта шина не имеет внешнего разъема, нужно на материнке искать дорожки и к ним подпаиваться".
Мне бы в голову не пришло что-то припаивать к материнской плате.
Я не писал "Другое дело, что эта шина не имеет внешнего разъема, нужно на материнке искать дорожки и к ним подпаиваться".
Мне бы в голову не пришло что-то припаивать к материнской плате.
- musor
- Друг Кота
- Сообщения: 39197
- Зарегистрирован: Сб сен 13, 2014 16:27:32
- Откуда: СпиртоГонск созвездия Омега
Re: TM1637 к I2C шине компьютера
ну эта шина выведена в тч на модули памяти там висят чипы их конфига
в пустой слот можно сунуть платку от неисправного модуля откуда сдута память да и крабочему модулю в райне 24cxx припаятся не проблема толка зачем??
в пустой слот можно сунуть платку от неисправного модуля откуда сдута память да и крабочему модулю в райне 24cxx припаятся не проблема толка зачем??
ZМудрость(Опыт и выдержка) приходит с годами.
Все Ваши беды и проблемы, от недостатка знаний.
Умный и у дурака научится, а дураку и ..
Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
Все Ваши беды и проблемы, от недостатка знаний.
Умный и у дурака научится, а дураку и ..
Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
Re: TM1637 к I2C шине компьютера
ch341a usb->i2c,spi
я с ней работал в шарпе
интереснее понять, как найти адрес устройва и2ц в виндовсе, например в адресном пространстве видеокарты
вга разъем был бы неплохим местом для внешнего подключения
все считывания данных с пзу разных карт идет через драйвер материской платы и только производитель знает адреса, на которых сидит мастер шины
я с ней работал в шарпе
интереснее понять, как найти адрес устройва и2ц в виндовсе, например в адресном пространстве видеокарты
вга разъем был бы неплохим местом для внешнего подключения
все считывания данных с пзу разных карт идет через драйвер материской платы и только производитель знает адреса, на которых сидит мастер шины
тематические ответы только в форуме, в приват не пишите
Re: TM1637 к I2C шине компьютера
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=4181929#p4181929"]Другое дело, что эта шина не имеет внешнего разъема, нужно на материнке искать дорожки и к ним подпаиваться.[/uquote]
На старых компах вполне так имелись разъемы шины I2C. На моей первой материнке Abit ST6 два трехконактных разъема I2C было.
На старых компах вполне так имелись разъемы шины I2C. На моей первой материнке Abit ST6 два трехконактных разъема I2C было.
Астролябия-сама меряет, было бы что мерять!!!
- Игор Иванов
- Родился
- Сообщения: 12
- Зарегистрирован: Чт авг 13, 2020 15:52:12
- Откуда: Бургас, Болгария
- Контактная информация:
Re: TM1637 к I2C шине компьютера
[uquote="musor",url="/forum/viewtopic.php?p=4260109#p4260109"]ну эта шина выведена в тч на модули памяти там висят чипы их конфига
в пустой слот можно сунуть платку от неисправного модуля откуда сдута память да и крабочему модулю в райне 24cxx припаятся не проблема толка зачем??[/uquote]
Есть тестеры для подключения в слот памяти. Показывает напряжения памяти, RESET, а если движения по i2c - CPU прошел инициализации и ищеть какая память подключена.
в пустой слот можно сунуть платку от неисправного модуля откуда сдута память да и крабочему модулю в райне 24cxx припаятся не проблема толка зачем??[/uquote]
Есть тестеры для подключения в слот памяти. Показывает напряжения памяти, RESET, а если движения по i2c - CPU прошел инициализации и ищеть какая память подключена.
- ejsanyo
- Встал на лапы
- Сообщения: 129
- Зарегистрирован: Чт апр 28, 2016 22:33:47
- Откуда: ARPA Internet
Re: TM1637 к I2C шине компьютера
Вот смотрю я в даташит TM1637, и знаете что мне его интерфейс больше всего напоминает? А уж не синхронный ли это UART?
Тот, в котором тактовый сигнал идёт отдельным проводом. Старт-бит, порядок битов от младшего к старшему. Ну вот только в стоп-бит кетайцы влепили что-то типа бита подтверждения, но его, наверно, можно и не учитывать в системе. А чтобы он не мешал - сделать выход Tx по типу как в I2C, с открытым стоком.
Хоронили кваку - порвали три Rocket Launcherа.©
-
veso74
- Поставщик валерьянки для Кота
- Сообщения: 1915
- Зарегистрирован: Сб май 05, 2012 20:24:52
- Откуда: KN34PC, Болгария
- Контактная информация:
Re: TM1637 к I2C шине компьютера
Инфо: A comparison of the TM1637 protocol with I2C protocol
Oбсуждали включение TM1637 к I2c в другой теме:
Светодиодный индикатор на базе ТМ1637.
Уже использую ТМ1637 только по I2c управления: без адреса, данные передаются в обратном порядке. Из китайского модуля отпаиваем два конденсатора на SDA и SCL.
Oбсуждали включение TM1637 к I2c в другой теме:
Светодиодный индикатор на базе ТМ1637.
Уже использую ТМ1637 только по I2c управления: без адреса, данные передаются в обратном порядке. Из китайского модуля отпаиваем два конденсатора на SDA и SCL.


