Прочитав статью Программируем и отлаживаем STM32 через USB Type-C порт, не нарушая спецификации USB у меня сразу появилась идея, как сделать более правильно и удобнее (как хочешь втыкай кабель, по привычке и рабочий USB 2.0 порт). Получился вот такой вот адаптер для J-Link (для JTAG 10 pin):
Ведущий инженер
Простая, недорогая, точная высокотемпературная электропечь своими руками
Существует множество процессов, требующих нагрева до высоких температур, часто осуществляемых в печах различной конструкции. Традиционно — печь, сооружение массивное, энергорасточительное и дорогостоящее. Нередко наличие и габариты рабочей части печи — узкое место в технологической цепочке, определяющее наибольшие размеры изделия или даже саму возможность их изготовления.
Здесь мы говорим о разного рода работах в условиях домашней любительской мастерской, где обычные печные дела — термообработка металлов, литьё из алюминия-бронзы, гончарное дело.
Кейс: как мы корпус контроллера делали
Я уже долгое время вынашиваю идею разработать свой собственный контроллер для вентиляционных установок. За все время работы в области автоматизации и диспетчеризации инженерных систем накопился приличный опыт и понимание как это все должно работать и выглядеть. На рынке было уже достаточно много решений с разным подходом и в разном ценовом сегменте, но с уходом западных брендов их стало существенно меньше и это одна из причин, которая подтолкнула делать первые шаги в разработке контроллера.
STM32 BluePill + RNDIS, или делаем из нехитрых приспособлений троллейбус…
Привет, Хабр. Год назад я круто изменил направление своей деятельности с desktop разработчика на программиста микроконтроллеров. Хочу поговорить о том, как прошел этот год, поделиться своими наблюдениями, рассказать в одном месте о чем никто не рассказывает. А, еще и RNDIS на STM32F103 поднимем.
Статья будет просто набором заметок о технологиях, которые вроде бы многие знают, но как будто бы не все...
Разработка процессорного модуля на базе микросхемы 1892ВА018 СнК «СКИФ» и его первый запуск
Версия данной статьи для "off-line прочтения" в формате PDF доступна по адресу: ссылка на статью.
В первой половине 2021 года в РФ резко обострились дебаты на тему импортозамещения, инициированные рядом изменений внесенных ранее в декабре 2020г в постановление N719 относительно закупок вычислительной техники, и бурно обсуждаемых на различных площадках и IT-форумах, таких как Elbrus Tech Day, YADRO Лекторий, а так же у ряда популярных блогеров. Основной посыл нововведений состоял в том, что вся вычислительная техника, закупаемая за бюджетные средства, должна иметь в основе микропроцессор, разработанный или произведенный в России или имеющий статус такового. Насколько такое решение Правительства годное и исполнимое — тема отдельного разговора, которую я не хотел бы сейчас затрагивать. Так или иначе, мы, в нашей небольшой компании, пришли к выводу, что данное решение Правительства может приоткрыть пусть не окно, но хотя бы форточку возможностей для мелких разработчиков электроники, которым является наша компания. Имея за плечами опыт разработки изделий на основе импортных (в основном китайских) систем-на-кристалле, мы решили, что на рынке могут быть востребованы одноплатные ПК, аналогичные Raspberry Pi и выполненные на отечественном СнК, по возможности близкие по габаритам и pin-to-pin совместимые с «малиной», а также процессорные модули, устанавливаемые на несущую плату, позволяющие упростить разработку конечного изделия и вынести сложную топологию за его границы.
Основы работы отечественных МК 1986ВЕ1Т с болгарскими отладчиками OLIMEX ARM-USB-OCD-H. Часть 1 — Первый запуск
Во первых строках сего письма хочется сказать, что идея написать эту статью пришла из-за того, что волею судьбы мне пришлось работать с микроконтроллерами компании Миландр. Помимо того, что информации по сети не так много, она еще и достаточно разрознена. И все бы ничего - кто ищет, тот найдет. Но пришлось (за неимением ничего другого под рукой) отлаживать программы при помощи эмулятора от Olimex. Тут стало тяжелее и было решено хоть как-то систематизировать знания для таких же зеленых бедолаг, как я, которые, возможно, столкнутся с подобными проблемами.
Операционные усилители. Часть 5: Частотно-зависимая обратная связь в ОУ. Активные фильтры и генераторы сигналов на ОУ
В предыдущей публикации цикла мы разобрали, как работают схемы на ОУ с нелинейными элементами в цепях обратной связи, научились производить с помощью ОУ операции умножения и деления, и узнали, как собрать на ОУ источник тока, напряжения, а также усилитель мощности.
В данной публикации цикла мы разберём работу ряда схем на ОУ с частотно-зависимой обратной связью и научимся собирать на ОУ активные фильтры и генераторы.
Аналоговое и цифровое питание. Мифы и реальность
Иногда разводишь ты такой плату микроконтроллера или изучаешь документацию к чипу и натыкаешься на такую картину: два питания — аналоговое и цифровое. Две земли тоже не редкость. Я встречал людей, которые даже после пары лет работы в индустрии не всегда знали точно, зачем и когда нужно разделять питание и землю и как это корректно делать. Мы попробуем сегодня пробраться вниз по кроличьей норе. В том числе станут понятны практики подключения аудио оборудования проводами, которые покупаются за золотые слитки.
Разработка 64-битного графического UEFI-приложения в Visual Studio
а вот статей про “Hello, World” на UEFI да с графикой действительно не хватает. Больше того — я таких вообще не припомню.» (MinimumLaw)Под катом мы пошагово перепишем ту бутсекторную демку под UEFI, и она будет работать в полноцветном видеорежиме с высоким разрешением. С другой стороны, вместо 512 байт она будет занимать несколько десятков КБ.
День Эфира
Подобно Рождеству Христову, ставшему началом нового летоисчисления, 16 октября 1846 разделило хирургию на «до» и «после», ознаменовав собой начало новой эры в медицине — эры контроля над болью, эры анестезии.
В тот день в главном госпитале штата Массачусетс, Уильям Томас Грин Мортон провел демонстрацию эфирного наркоза во время операции по удалению сосудистой опухоли шеи. Весть об этом событии быстро облетела весь мир, и вскоре хирурги по всему свету стали применять диэтиловый эфир для обезболивания при самых разных операциях. С этого момента боль перестала висеть дамокловым мечом над пациентом, которому предстояло лечь на операционный стол.
Однако, Мортон отнюдь не был первым, кому в голову пришла мысль о том, чтобы унять боль во время операции. Не он также был и первооткрывателем диэтилового эфира и его анестетических свойств. Тем не менее, именно Уильям Томас Мортон почитается всем мировым медицинским сообществом как основоположник анестезиологии и изобретатель эфирного наркоза.
Как же так произошло? Попробуем разобраться.
Stm32 + USB на шаблонах C++. Продолжение. Делаем CDC
Продолжаю разработку полностью шаблонной библиотеки под микроконтроллеры Stm32, в прошлой статье рассказал об успешной (почти) реализации HID устройства. Еще одним популярным классом USB является виртуальный COM-порт (VCP) из класса CDC.
Популярность объясняется тем, что обмен данными осуществляется аналогично привычному и простому последовательному протоколу UART, однако снимает необходимость установки в устройство отдельного преобразователя.
Предельная скорость USB на STM32F103, чем она обусловлена?
Но я же крутой, у меня теперь есть USB-анализатор (его разработка была описана в блоке из нескольких предыдущих статей). Посмотрев логи, я понял, что похоже, знаю, почему скорость невозможно поднять, даже если STM32F103 обслуживает исключительно USB и ничего больше. Даже начал писать о результатах… Но потом решил, что кому-то это будет не интересно, а кто-то скажет, что и так это знал.
Но неожиданно, с тех пор мне по работе уже трижды приходилось пересказывать эти результаты то Заказчикам, то коллегам. Все они считали, что этот контроллер может больше. И мне приходилось вновь и вновь показывать физическую суть. Поэтому сделать документ было нужно хотя бы чтобы давать его прочесть тем, кто вновь будет говорить, что шина шустрая, контроллер быстрый… Ну, а если и делать документ, то почему бы не оформить его в виде статьи и не выложить на всеобщее обозрение?
Итак, давайте выясним, почему именно STM32F103C8T6 не может прокачать по шине USB данные на скорости 12 мегабит, заняв всю ширину предоставленного канала, и можно ли с этим что-то сделать.
Сокеты в Python для начинающих
Предисловие
В далеком для меня 2010 году я писал статью для начинающих про сокеты в Python. Сейчас этот блог канул в небытие, но статья мне показалась довольно полезной. Статью нашел на флешке в либровском документе, так что это не кросспост, не копипаст — в интернете ее нигде нет.
Что это
Для начала нужно разобраться что такое вообще сокеты и зачем они нам нужны. Как говорит вики, сокет — это программный интерфейс для обеспечения информационного обмена между процессами. Но гораздо важнее не зазубрить определение, а понять суть. Поэтому я тут постараюсь рассказать все как можно подробнее и проще.
Существуют клиентские и серверные сокеты. Вполне легко догадаться что к чему. Серверный сокет прослушивает определенный порт, а клиентский подключается к серверу. После того, как было установлено соединение начинается обмен данными.
Разбираем и собираем обратно стек USB
Три «замечательных» уровня стека USB
Меня не устроил вид стека USB, который можно встретить чаще всего на просторах сети:
Уровень шины, логический, функциональный… Это, конечно, замечательные абстракции, но они скорее для тех, кто собирается делать драйвер или прикладной софт для хоста. На стороне же микроконтроллера я ожидаю шаблонный конечный автомат, в узлы которого мы обычно встраиваем свой полезный код, и он сперва будет по всем законам жанра глючить. Или же глючить будет софт на хосте. Или драйвер. В любом случае кто-то будет глючить. В библиотеках МК тоже с наскока не разобраться. И вот я смотрю на трафик по шине USB анализатором, где происходящие события на незнакомом языке с тремя замечательными уровнями вообще не вяжутся. Интересно, это у меня от гриппозной лихорадки в голове такой диссонанс?
Если у читателя бывали сходные ощущения, предлагаю альтернативное, явившееся мне неожиданно ясно в перегретом мозгу видение стека USB, по мотивам любимой 7-уровневой модели OSI. Я ограничился пятью уровнями:
Я не хочу сказать, что весь софт и библиотеки уже сделаны или должны проектироваться, исходя из этой модели. Из инженерных соображений код c уровнями будет сильно перемешан. Но я хочу помочь тем, кто начинает своё знакомство с шиной USB, кто хочет понять протоколы обмена устройств и терминологию предметной области, подобраться поближе к готовым примерам, библиотекам и лучше ориентироваться в них. Эта модель не для загрузки в МК, но в ваши блестящие умы, дорогие друзья. А ваши золотые руки потом всё сами сделают, я не сомневаюсь:)
Оцифровка звука на STM32 (АЦП+DMA) и кодирование в Speex для передачи
В статье покажу как настроить проект в STM32CubeMX, собирать данные с АЦП в два кольцевых буфера посредствам DMA, подключить библиотеку Speex и кодировать данные. Возможно многим материал покажется весьма очевидным, но надеюсь хоть кому-то он будет полезен.
Прошу под кат.
Составное устройство USB на STM32. Часть 3: Звуковое устройство отдельно, виртуальный СОМ-порт отдельно
В третьей части публикации о составном устройстве USB я расскажу о том, как переделать сгенерированный в STM32CubeMX USB Audio Speaker, описанный во второй части публикации, в дуплексное звуковое устройство.
Затем мы создадим в STM32CubeMX драйвер виртуального COM-порта.
Зачем мы всё это делаем, подробно описано в первой части публикации.
Щелкаем реле правильно: коммутация мощных нагрузок
Управление мощными нагрузками — достаточно популярная тема среди людей, так или иначе касающихся автоматизации дома, причём в общем-то независимо от платформы: будь то Arduino, Rapsberry Pi, Unwired One или иная платформа, включать-выключать ей какой-нибудь обогреватель, котёл или канальный вентилятор рано или поздно приходится.
Традиционная дилемма здесь — чем, собственно, коммутировать. Как убедились многие на своём печальном опыте, китайские реле не обладают должной надёжностью — при коммутации мощной индуктивной нагрузки контакты сильно искрят, и в один прекрасный момент могут попросту залипнуть. Приходится ставить два реле — второе для подстраховки на размыкание.
Вместо реле можно поставить симистор или твердотельное реле (по сути, тот же тиристор или полевик со схемой управления логическим сигналом и опторазвязкой в одном корпусе), но у них другой минус — они греются. Соответственно, нужен радиатор, что увеличивает габариты конструкции.
Я же хочу рассказать про простую и довольно очевидную, но при этом редко встречающуюся схему, умеющую вот такое:
- Гальваническая развязка входа и нагрузки
- Коммутация индуктивных нагрузок без выбросов тока и напряжения
- Отсутствие значимого тепловыделения даже на максимальной мощности
Но сначала — чуть-чуть иллюстраций. Во всех случаях использовались реле TTI серий TRJ и TRIL, а в качестве нагрузки — пылесос мощностью 650 Вт.
Издеваемся над USB
В очередной раз втыкая скоростную USB флешку в порт USB 3.0, я увидел надпись "Это устройство может работать быстрее...". Но подождите, я и так его воткнул в порт 3.0! Неужели контакт барахлит? И если так, то как флешка определяет, на какой скорости ей работать? Ведь современные ПК поддерживают целых три стандарта соединения — USB 1.1, 2.0 и 3.0. Можно ли «понизить» стандарт USB, насильно заставив устройство работать, к примеру, на USB 1.1? Не на все эти вопросы в сети удалось найти ответ, и я решил разобраться сам, по ходу столкнувшись с довольно неочевидными ситуациями.
Подключение OLED дисплея ssd1306 к STM32 (SPI+DMA)
Подключение
Подключать дисплей к микроконтроллеру будем по интерфейсу SPI1 по следующей схеме:
- VDD-> +3.3В
- GND-> Земля
- SCK -> PA5
- SDA -> PA7(MOSI)
- RES-> PA1
- CS-> PA2
- DS-> PA3
Передача данных происходит по возрастающему фронту сигнала синхронизации по 1 байту за кадр. Линии SCK и SDA служат для передачи данных по интерфейсу SPI, RES — перезагружает контроллер дисплея при низком логическом уровне, CS отвечает за выбор устройства на шине SPI при низком логическом уровне, DS определяет тип данных (команда — 1/данные — 0) которые передаются дисплею. Так как с дисплея ничего считать нельзя, вывод MISO использовать не будем.
Запускаем камеру от телефона, или что делать, когда ничего не получается?
Лет восемь назад работал я в одном… а в прочем, не важно где. Делали мы там всякие разные интересные вещи. В том числе занимались системами технического зрения для роботов. Роботы были немного маленькие. И если привод для них маленький сделать не было для нас особой проблемой, то вот сделать миниатюрную цифровую камеру, которая не была бы размером с половину робота, было трудно (когда же мы наконец похороним PAL в таких разработках и везде будет цифра?). Если вам любопытно узнать, чем же всё закончилось, прошу под кат!
Information
- Rating
- Does not participate
- Location
- Москва, Москва и Московская обл., Россия
- Date of birth
- Registered
- Activity