Рубрика «I2C» - 4

Bus Blaster — универсальный скоростной bit-bang интерфейс для терпеливых энтузиастов - 1
Мне давно хотелось иметь какой-нибудь простой и универсальный аппаратный интерфейс с несколькими входными и выходными сигналами, функциональность которого определяется исключительно софтом, вроде достопамятного программатора PonyProg. И чтобы его можно было использовать не только как чтения/записи прошивок, но и для отладки программ через JTAG. При этом покупать что-либо промышленное, при моем нерегулярном баловстве с электроникой, избыточно и нерентабельно — требовалось что-то из серии «полуфабрикатов», на основе bit-bang.

Что такое bit bang и зачем он нужен

Кое-кто еще помнит, что в счастливые времена Windows 9x каждая системная плата и каждый ноутбук в обязательном порядке имели последовательный (COM) и параллельный (LPT) порты. В ту пору для организации интерфейса с микросхемой ППЗУ, служебными контактами мобильника или передней панели магнитолы достаточно было припаять к разъему порта несколько резисторов, диодов и транзисторов. Все остальное делали обычные пользовательские приложения, самостоятельно формировавшие сигналы нужного протокола путем выставления нулей или единиц на нужных выводах, и считывания сигналов на входах. У клятых буржуев это называлось bit-bang, а у нас — «дрыгоножество», «ногомашество» и т.п.

С переходом на 2k/XP возникли сложности с прямым доступом к портам ввода/вывода, но они успешно решались костылями вроде giveio. Гораздо сильнее портила жизнь более высокая фоновая активность в NT, из-за которой сложнее было выдержать стабильность передачи и приема.

Как известно, на современных компьютерах, тем более — ноутбуках, с аппаратными портами не густо, ибо большинству пользователей они не нужны. USB-адаптеры для подключения устройств с интерфейсами RS232 и Centronics (в просторечии — COM/LPT) хорошо работают лишь в рамках основного назначения, а делать на них «дрыгоножество» проблематично по целому ряду причин. Во-первых, большинство этих адаптеров умеет обрабатывать с хорошей скоростью только сигналы данных (те же Tx/Rx), а управляющие сигналы обрабатывает с большими задержками. Во-вторых, адаптеры различных производителей аппаратно несовместимы, а возможности нестандартного управления через драйвер производителя сильно ограничены. В-третьих, для передачи команд адаптеру почти все драйверы используют отдельные USB-пакеты, что ограничивает частоту смены состояний всего тысячей раз в секунду, чего для многих применений катастрофически мало.

К счастью, компания FTDI уже давно предлагает ряд решений для USB, ориентированных именно на скоростной обмен произвольными сигналами. Беглое изучение вопроса показало, что наиболее популярны в этом плане интерфейсы на микросхемах FT232H/FT2232H.
Читать полностью »

Выводим сигнал remote из автомагнитолы с управляемым по i2c усилителем - 1

Сигнал REMOTE (напряжение 12В, который служит для включения внешних усилителей когда включена магнитола) из современных штатных магнитол вывести не так просто. Если раньше можно было использовать ножку ST-BY микросхемы-усилителя, то теперь разработчики магнитол не используют эту ножку, потому что появились микросхемы-усилители с цифровым управлением.

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

Попробую описать другой вариант выхода из положения на примере штатной магнитолы Swing на Skoda Octavia A7
Читать полностью »

В этой статье я хочу рассказать о способе сделать фирменный Wi-Fi адаптер к телевизору. Я не исключаю, что приведенное здесь техническое решение будет применимо для других фирм производителей и других моделей телевизоров.

Данная статья носит только информационный характер. Я не несу ответственности за последствия выполняемых Вами действий, и не в коей мере не принуждаю к ним. Вы все делаете на свой страх и риск.

Для остальных, добро пожаловать под хабркат!
Читать полностью »

Мой телевизор («старая» модель LG 32LG5000) никогда не работал в Linux. Каждый раз, когда я подключал его через HDMI-порт, ядро сообщало мне ошибку:

kernel: [  869.677850] [drm:drm_edid_block_valid] *ERROR* EDI  has major version 2, instead of 1

и полностью игнорировало его.

Эта проблема меня не сильно-то и беспокоила, т.к. я не часто им пользовался, да и VGA-порт работал, хоть и с максимальным разрешением 1360×768. Однако сегодня, когда я решил посмотреть фильм, качество вывода через VGA было невероятно хреновым, и я решил с этим покончить.

Анализируем EDID

Для тех, кто не знает, EDID — небольшое количество данных, содержащих в себе информацию о возможностях монитора, в основном разрешения и тайминги, которые он поддерживает. Сообщение об ошибке интересно тем, что в нем говорится об EDID 2.0, которого (почти) никогда не существовало. Вот что нам говорит Wikipedia:

Структура EDID имеет версии от v1.0 до v1.4 размером в 128 байт, каждая последующая версия обратно совместима с предыдущей. Структура EDID v2.0 была размером 256 байт, однако позже была объявлена устаревшей и на замену ей пришла v1.3.

Похоже, EDID 2.0 был объявлен устаревшим где-то в 2000. Довольно забавно, что ТВ 2008 года использовал именно эту версию.Читать полностью »

Интерфейсная микросхема поддерживает работу с интерфейсом I2C (не путать с I2S!) в режиме MPSSE (Multi-Protocol Synchronous Serial Engine). Кроме I2C данный режим поддерживает целый перечень стандартных последовательных интерфейсов, таких как SPI, JTAG и т. п. Есть возможность реализации собственных интерфейсов в случае необходимости. Данное описание рассказывает о ряде нюансов поддержки интерфейса I2C, а так же дает повод поболтать на смежную тематику.

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

Предисловие

Привет! Буквально недавно меня взяли в кружок по робототехнике. Конечно, я с радостью согласился, это же новый опыт и все такое… Тем более я всего лишь первокурсник. Мой преподаватель, объяснив мне общую концепцию, предложил заняться работой с Raspberry Pi. Нужно было разобраться, как с ним работать, установить на него JDK и написать программу, которая выводила бы на экран показания с 3-х осевого акселерометра. Взяв все необходимое, я отправился домой разбираться. Когда я все закончил (ушло на это примерно неделя), решил написать гайдик, адресованный таким же, как и я, дабы собрать все, что я нарыл, в одном месте. Ну, приятного чтения!
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js