Форум РадиоКот https://radiokot.ru/forum/ |
|
TM1637 к I2C шине компьютера https://radiokot.ru/forum/viewtopic.php?f=24&t=181281 |
Страница 1 из 1 |
Автор: | >TEHb< [ Пн фев 14, 2022 12:45:32 ] |
Заголовок сообщения: | TM1637 к I2C шине компьютера |
Добрый день! Попался в руки небезызвестный индикатор на базе TM1637 на 4 цифры. О подключении его к микроконтроллеру статей, примеров полно, да и сам по себе протокол несложный. Веселье началось тогда, когда стал подключать его к честной шине i2c, торчащей из компьютера. Сразу скажу, что удалось. Решение так себе, но работает. Если нужно, решением поделюсь чуть позже (много писать придётся). Пока хотел бы спросить нет ли у кого подобного опыта? Если кто-то сталкивался с такой задачей, то как решили? |
Автор: | BOB51 [ Вт фев 15, 2022 19:31:44 ] |
Заголовок сообщения: | Re: TM1637 к I2C шине компьютера |
В стандартном наборе ПК на сегодня легкодостувпен разве что СОМ порт... И то чаще через мост USB-COM. Наиболее оптимально поставить простейший преобразователь потока символов и управляющих команд из RS232 в требуемый набор сигналов на малолапом МК. Преимущество - доступ из любой терминалки без дополнительных затрат на написание программ под ПК. ![]() |
Автор: | electroget [ Вт фев 15, 2022 20:01:13 ] |
Заголовок сообщения: | Re: TM1637 к I2C шине компьютера |
Веселье началось тогда, когда стал подключать его к честной шине i2c, торчащей из компьютера. А где из компьютера торчит i2c? Из моего ничего не торчит. А вообще существует Ftdi FT260 usb i2c конвертер и драйвер для него. У меня такого нет, но у кого есть писали что нормально работает. |
Автор: | Eddy_Em [ Вт фев 15, 2022 22:25:05 ] |
Заголовок сообщения: | Re: TM1637 к I2C шине компьютера |
electroget, у всех из компутера "торчит" I2C: на ней висит уйма термодатчиков и т.п. устройств. А в ядре есть их поддержка, при помощи sensors-detect можно шину I2C просканировать на предмет датчиков. Другое дело, что эта шина не имеет внешнего разъема, нужно на материнке искать дорожки и к ним подпаиваться. |
Автор: | >TEHb< [ Ср фев 16, 2022 12:27:52 ] |
Заголовок сообщения: | Re: TM1637 к I2C шине компьютера |
electroget писал(а): Из моего ничего не торчит. Если не нужно, то и не торчит. Мне же нужно (smbus, pmbus), я себе высунул. Добавлено 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 и приходится вот так вот выкручиваться. Может быть подскажете ещё какие-нибудь хитрые финты. |
Автор: | simq [ Вт май 24, 2022 23:55:51 ] |
Заголовок сообщения: | Re: TM1637 к I2C шине компьютера |
electroget, Другое дело, что эта шина не имеет внешнего разъема, нужно на материнке искать дорожки и к ним подпаиваться. Брал i2c из VGA разъёма (тот что самый первый DE-15) от встроенной в материнку видюхи, i2cdetect увидел. А про TM1637... если на шине кто-то ещё, то по моему лучше через какой нибудь TCA9548 подключить |
Автор: | electroget [ Ср май 25, 2022 06:38:46 ] |
Заголовок сообщения: | Re: TM1637 к I2C шине компьютера |
simq, Я не писал "Другое дело, что эта шина не имеет внешнего разъема, нужно на материнке искать дорожки и к ним подпаиваться". Мне бы в голову не пришло что-то припаивать к материнской плате. |
Автор: | musor [ Пт июл 15, 2022 18:33:48 ] |
Заголовок сообщения: | Re: TM1637 к I2C шине компьютера |
ну эта шина выведена в тч на модули памяти там висят чипы их конфига в пустой слот можно сунуть платку от неисправного модуля откуда сдута память да и крабочему модулю в райне 24cxx припаятся не проблема толка зачем?? |
Автор: | kalobyte [ Пт май 19, 2023 14:43:14 ] |
Заголовок сообщения: | Re: TM1637 к I2C шине компьютера |
ch341a usb->i2c,spi я с ней работал в шарпе интереснее понять, как найти адрес устройва и2ц в виндовсе, например в адресном пространстве видеокарты вга разъем был бы неплохим местом для внешнего подключения все считывания данных с пзу разных карт идет через драйвер материской платы и только производитель знает адреса, на которых сидит мастер шины |
Автор: | Asmodey [ Пт май 19, 2023 16:21:46 ] |
Заголовок сообщения: | Re: TM1637 к I2C шине компьютера |
Другое дело, что эта шина не имеет внешнего разъема, нужно на материнке искать дорожки и к ним подпаиваться. На старых компах вполне так имелись разъемы шины I2C. На моей первой материнке Abit ST6 два трехконактных разъема I2C было. |
Автор: | Игор Иванов [ Чт июл 20, 2023 16:21:25 ] |
Заголовок сообщения: | Re: TM1637 к I2C шине компьютера |
ну эта шина выведена в тч на модули памяти там висят чипы их конфига в пустой слот можно сунуть платку от неисправного модуля откуда сдута память да и крабочему модулю в райне 24cxx припаятся не проблема толка зачем?? Есть тестеры для подключения в слот памяти. Показывает напряжения памяти, RESET, а если движения по i2c - CPU прошел инициализации и ищеть какая память подключена. |
Автор: | ejsanyo [ Пн сен 04, 2023 13:02:04 ] |
Заголовок сообщения: | Re: TM1637 к I2C шине компьютера |
Вот смотрю я в даташит TM1637, и знаете что мне его интерфейс больше всего напоминает? А уж не синхронный ли это UART? ![]() |
Автор: | veso74 [ Пн сен 04, 2023 13:36:17 ] |
Заголовок сообщения: | Re: TM1637 к I2C шине компьютера |
Инфо: A comparison of the TM1637 protocol with I2C protocol Oбсуждали включение TM1637 к I2c в другой теме: Светодиодный индикатор на базе ТМ1637. Уже использую ТМ1637 только по I2c управления: без адреса, данные передаются в обратном порядке. Из китайского модуля отпаиваем два конденсатора на SDA и SCL. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |