Интерфейс USB. Виртуальный COM порт и схемотехника.

  Рет қаралды 19,857

Vladimir Medintsev

Vladimir Medintsev

4 жыл бұрын

Рассказывается о том, как строится схемотехника интерфейса USB на микроконтроллерах STM32. Рассказывается о программировании и использовании USB Virtual COM port и использовании этого интерфейса при отладке.
Канал в телеграмм - t.me/vladimir_medintsev
Канал Яндекс.Дзен - zen.yandex.ru/vladimir_medintsev
Канал на RuTube - rutube.ru/channel/1797552/
Канал на KZbin - / vladimirmedintsev
------------------------------------------
Если вы хотите поддержать автора канала номер карты Сбер:
2202-2023-2480-4008
------------------------------------------
Интерфейс USB. Создаем Mass Storage на STM32F4 и странные косяки от CubeMX - • Интерфейс USB. Создаем...
Отладка STM32. Перенаправление ввода-вывода. Возможности SWD, отладка больших программ. - • Отладка STM32. Перенап...

Пікірлер: 82
@anatoliygavrilov958
@anatoliygavrilov958 4 жыл бұрын
Подтягивающие к земле резисторы 10-15к нужны только на стороне "хоста", то есть в Вашем случае не нужны. Подтягивающий к +3,3В резистор 1,5к нужен только на стороне "девайса". С его помощью "хост" определяет подключение "девайса" и его скорость. Если резистор на линии DM, то скорость 1,5Mbit/s (Low speed). Если резистор на линии DP, то скорость 12Mbit/s (Full speed) или 480Mbit/s (High speed). Об это можно прочесть в спецификации USB. Микроконтроллеры STM32 в режиме "девайса" не умеют режим Low speed, по этому вариант тут только один - подтягивать линию DP, но некоторые серии микроконтроллеров имеют встроенный подтягивающий резистор. Для выбранного Вами микроконтроллера STM32F303CB он нужен. Об это можно прочесть в AN4879. Согласующие резисторы (последовательные) 20-30 Ом для микроконтроллеров STM32 не нужны, т.к. они уже имеются в микроконтроллере. Об это написано в AN4879 в разделе FAQs. С защитными диодами всё немного сложнее. Устройства должны соответствовать стандарту JESD22-A114D (выдерживать разряд 2кВ) и встроенные в STM32 защитные диоды это обеспечивают. Но если устройство имеет разъемное (пользователем) соединение USB, то оно так же должно соответствовать и более строгому стандарту IEC 61000-4-2. Для этого микроконтроллерам STM32 нужны внешние защитные диоды. В Вашем случае они нужны. Об это можно прочесть в AN4879 в разделе "Protection against ESD and EMI".
@ivanslivin6804
@ivanslivin6804 3 жыл бұрын
Спасибо за развернутый комментарий! Вопрос. Если мы все же ставим диоды (или сбору TVS), и придет импульс. То где рассеится его энергия? Я вот именно для этого ставлю последовательные резисторы на 22 Ома. Но не уверен что это правильный подход.
@VladimirMedintsev
@VladimirMedintsev 4 жыл бұрын
@Денис Позолотин был заблокирован на канале за переход на личности и матершину. Меня поражает беспричинная агрессия некоторых индивидов. Материться идите за гаражами, а тут интернет, тут нельзя.
@user-co8un6lx3t
@user-co8un6lx3t 3 жыл бұрын
За гаражами знаете ли можно и выхватить, а тут ващпе не страшно ))
@vadimvarlamov7907
@vadimvarlamov7907 4 жыл бұрын
Очень познавательно. Часто в проектах с STM32 использую USB, либо для настроек, либо просто для отладки.
@sailtogether3236
@sailtogether3236 2 жыл бұрын
Крайне полезный и актуальный обзор, спасибо! И изюминкой про ардуиновский плоттер) Сколько раз проходил мимо и не заметил его.
@ajdarseidzade688
@ajdarseidzade688 4 жыл бұрын
За 'Serial Plotter' отдельное спасибо! А также за такое видео и кол-во материала в нем. Именно рассмотренных документов. Я все их, буквально все, нашел/скачал по-одному. Кроме "старой версии" AN4879 от ST. Хороший и большой обзор различной документации по USB и все уместилось в этом видео. Даже программная часть рассмотрена. Этакий вводный курс и пр. - ничего большего и не нужно, а дальше самому лучше запускать/разбираться.
@f33net
@f33net 2 жыл бұрын
Так там же сэтэшики буковками написали "всё, народ, не балуйтесь - необходимая защита и согласование на борту, лепите прямые дорожки". На 2.0 повесить внешнюю ESD защиту можно, но на 3.0 она будет кусаться ёмкостью.
@Insideus2786
@Insideus2786 4 жыл бұрын
Спасибо за видео. Тоже в свое время стояла задачи создания схемотехники USB интерфейса на STM32. В итоге решил не "изобретать велосипед", а посмотреть готовые решения от STM, проанализировать, то как это было сделано у них в демобордах Discovery и Nucleo, и выбрать лучшее на свой взгляд.
@TEENASPECT
@TEENASPECT 4 жыл бұрын
Круто. Полезно. И кажется таким простым. Но потом садишься за комп, врубаешь кубмх, генеришь проект и тупишь часами в кейле.
@user-tz2zg3so2v
@user-tz2zg3so2v 4 жыл бұрын
Спасибо за ваши видео
@alexanderurezchenko6446
@alexanderurezchenko6446 4 жыл бұрын
Спасибо, Владимир!
@admin_of_youtube
@admin_of_youtube 4 жыл бұрын
интересное видео, спасибо!
@motoday3580
@motoday3580 4 жыл бұрын
Реально актуальная тема ! По своему опыту, в простых разработках использую сопротивления , в более жирных проектах использую защитные микросхемы.
@motoday3580
@motoday3580 4 жыл бұрын
Добрый день! Почитайте о типах микросхем !
@PastuhMedvedey
@PastuhMedvedey 4 жыл бұрын
Понравилось видео . Но хотелось бы еще услышать и про эмуляцию линий RTS CTS для такого виртуального com порта, и то как сделать их например два, или более. Спасибо.
@user-je8oz6lh6w
@user-je8oz6lh6w Жыл бұрын
Для тех, кто любит читать коментарии. В ролике прозвучало (11:40) "...это для того случая, когда надо внешним резистором энумерейшн включить...". Докладываю. Оказывается у STM32F103, без подтяжки сигнала USB_DP к питанию, USB не работает от слова совсем. Хотя как вы видите на видео, в списке процессоров, кому это необходимо, F103го нет.
@user-tg6ox3wh4v
@user-tg6ox3wh4v 4 жыл бұрын
Интересно.
@sergey3947
@sergey3947 4 жыл бұрын
Спасибо за видео, оно оказалось очень полезным, повторил VCM в CubeIDE. Только возникает вопрос: зачем нужна функция CDC_Init_FS если она не используется ?
@WISELORD
@WISELORD 4 жыл бұрын
CDC, Mass storage и прочее по отдельности - не слишком интересно, так как уже фактически встроено в Cube. А вот когда, скажем, хочется одновременно и CDC и HID - и вот тут-то полный затык получается.
@f33net
@f33net 2 жыл бұрын
Самая лучшая консоль это TeraTerm - очень рекомендую, не пожалеете, настоящий терминал, а не дуринкина фигня. Тока UTF по умолчанию у него выключено, надо в настройках включить.
@RepomanBY
@RepomanBY 4 жыл бұрын
Удобно будет каждый раз при перепрошивке девайса (раз уж речь идет об отладке) закрывать-открывать порт, т.к. он в эти моменты будет исчезать из системы?
@iwh1te340
@iwh1te340 4 жыл бұрын
Совершенно верно, для отладки лучше использовать uart, да и скорость можно поставить побольше.
@liliansirbu840
@liliansirbu840 2 жыл бұрын
насколько реально писать USB через DMA? можешь показать нам?
@MrBorsoft
@MrBorsoft 4 жыл бұрын
Спасибо за ролик👍🏼 А заливать прошивку через этот USB средствами стандартного бутлоадера возможно? И ещё вопрос - на платах Nucleo во встроенном st-link’e есть Virtual COM port, на который выведен uart2 от STM32. Получается там чип st-link’a просто перебрасывает данные со входа своего uart’а (от uart2 STM32) на usb. Ну и обратно соответсвенно… Так?
@VladimirMedintsev
@VladimirMedintsev 4 жыл бұрын
1.Да, можно. 2. Да, упрощенно можно сказать и так.
@arakeldesign
@arakeldesign 4 жыл бұрын
@Vladimir помогите пожалуйста советом. Собираю наручные электронные часы, сзади есть 4 контактные площадки для зарядки. Стоит ли защищать от статики цепи которые подключены к данным площадкам (там + - и SWD для прошивки)?
@VladimirMedintsev
@VladimirMedintsev 4 жыл бұрын
Я бы поставил защиту. Причина проста, корпус наверняка пластик, одежда любая, ну по-любому там будет статика. Мы же двигаемся. Поглядите на ESDA5V3SC5
@arakeldesign
@arakeldesign 4 жыл бұрын
Vladimir Medintsev понял, спасибо, но корпус алюминий анодированный. В этом случае насколько это критично?
@VladimirMedintsev
@VladimirMedintsev 4 жыл бұрын
@@arakeldesign Тогда не переживайте. Выживет.
@arakeldesign
@arakeldesign 4 жыл бұрын
Vladimir Medintsev спасибо, хороший человек)
@zhen.shenka
@zhen.shenka 4 жыл бұрын
Выскажу своё представление. Все способы развязки USB правильные и не правильные одновременно. Зависит от того какой уровень защиты и помехоустойчивости хотите получить. Если вам нужны цепи особого исполнения с защитой класса ia, то ставите одну обвязку и жертвуете скоростью и стабильность. Если надо выжать из usb максимум то выравнивание все длины и импедансы. Ну или экономите на комплектухе и молитесь чтоб статикой не прошло.
@user-je8oz6lh6w
@user-je8oz6lh6w 3 жыл бұрын
Сделал всё как в этом видео. Но COM порт в диспетчере устройств не появился. Windiws 7. Более того - при подключении USB сразу же слетает программатор. Что не есть хорошо т.к. питание схемы у меня происходит от USB. Пришлось применить другой источник питания. Есть какие мысли на этот счет ?
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
Нет, проверять подключения и земляные петли. Может по питанию бяка лезет
@user-je8oz6lh6w
@user-je8oz6lh6w 3 жыл бұрын
@@VladimirMedintsev ок. Спасибо
@user-je8oz6lh6w
@user-je8oz6lh6w Жыл бұрын
Здравствуйте Владимир! Убив значительное время, решился обратиться за помощью. Суть - не заводится Virtual Com Port. Причем на 2х разных изделиях. На одном стоит STM32F103C8T6, на другом - STM32F103R8T6. Правильность разводки проверил, кабель прозвонил, в кубе всё инициализировал правильно. И тишина. Скажу ещё что с USB я уже раньше работал на 2х изделиях. На одном - был STM32L433 - сделал на нем Virtual ComPort, на другом был STM32L476 - сделал на нем Mass Storage Host Class. Проблем никаких не возникало. Поэтому сегодняшняя ситуация стала полной неожиданность. Вопрос: Приходилось ли Вам работать с USB на F103 и нет ли там каких недокументированных особенностей ?
@VladimirMedintsev
@VladimirMedintsev Жыл бұрын
Вообще ни разу не трогал F103 процессор. Я его сильно не люблю. Так что по теме я подсказать точно ничего не могу.
@user-je8oz6lh6w
@user-je8oz6lh6w Жыл бұрын
@@VladimirMedintsev Я разобрался !!! У F103 сигнал USB_DP надо подтягивать к питанию резистором 1К5 !!!!!
@VladimirMedintsev
@VladimirMedintsev Жыл бұрын
@@user-je8oz6lh6w А вы об.этом не знали?????
@user-je8oz6lh6w
@user-je8oz6lh6w Жыл бұрын
@@VladimirMedintsev Нееет! У STM32L433 с которым я работал, так делать не надо.
@VladimirMedintsev
@VladimirMedintsev Жыл бұрын
@@user-je8oz6lh6w Блин. Я в каком-то древнем видео об этом говорил. Кстати такое же и в более современных МК встречается. Например STM32F303CBT тоже нуждается в подтяжке. А вообще где-то есть AN в котором ST пишет кому подтяжка нужна а кому не нужна.
@user-qo6uk4xs7m
@user-qo6uk4xs7m 3 жыл бұрын
На канале компании ST есть видео-тренинг по USB. В одном из видео рассказывается про ESD, про резисторы в цепях D+/D- (и почему их не надо ставить), про подтяжки и т.д. В этом видео инженер ST говорит о том, что зачастую люди, в качестве образца для своих устройств, берут схемотехнику USB с демо плат ST, типа Discovery. Он говорит, что в некоторых их платах есть ошибки по части USB (с примерами). Но насколько я понял, проблемы в схемах есть только у FullSpeed, а для HighSpeed и в схемах, и в документации, ошибок нет. Возможно это видео окажется полезным, я оставлю ссылку: STM32 USB training - 07 STM32 USB hardware design kzbin.info/www/bejne/rKjPiYiFjpx-j5I
@VladimirMedintsev
@VladimirMedintsev 3 жыл бұрын
Ролики от ST всегда славились индийским английским и дичайшими неточностями. Читать их ещё куда не шло, но блин слушать, бедные мои уши...
@user-qo6uk4xs7m
@user-qo6uk4xs7m 3 жыл бұрын
@@VladimirMedintsev да есть такое )), но в этом ролике не индус, но звук хреновый.
@Red_Avenger
@Red_Avenger Жыл бұрын
По идее резисторы нужны как токовые ограничители. А сопротивление выбираться на основе предельного тока выходного каскада порта. Можно конечно и не ставить, но тогда в случае внештатной ситуации (замыкания данных на землю или питание) выходные ключи могут дать дуба (пробьёт или верхнее плечо или нижнее, по превышению тока).
@Michael_Kaa
@Michael_Kaa 4 жыл бұрын
USBLC6 на практике не раз выручала.
@user-gb1xp3ej2i
@user-gb1xp3ej2i 4 жыл бұрын
Насколько я понял, схема у вас заработала. В начале видео вы показывали платку, хотелось бы увидеть схему данной платы
@VladimirMedintsev
@VladimirMedintsev 4 жыл бұрын
Там в начале видео целых три платы мелькало. Вы хотели увидеть схему которой из них?
@user-gb1xp3ej2i
@user-gb1xp3ej2i 4 жыл бұрын
@@VladimirMedintsev тайминг на 0:30, при беглом просмотре, на плате USB-изолятор (ADUM) и изолированный dc-dc преобразователь, если я все правильно понял. Именно эта часть схемы меня интересует... Я так же делаю проект с применением USB Virtual COM port, но что-то с ADUM у меня нечего не работает, без него все хорошо определяется, а с ним ни в какую. Хотел бы посмотреть как вы развели ADUM
@VladimirMedintsev
@VladimirMedintsev 4 жыл бұрын
А, блин вы про программатор. Я уже делал когда-то видео с ADum - kzbin.info/www/bejne/Z3a2pYGcpdWoo68 Схема изолятора доступна вот по этой ссылке - yadi.sk/i/4HY0NIhPngYbsQ А вот схема того устройства что на видео показано - yadi.sk/i/dN5rBeliyy8oeg
@user-gb1xp3ej2i
@user-gb1xp3ej2i 4 жыл бұрын
@@VladimirMedintsev Спасибо, большое
@VladimirMedintsev
@VladimirMedintsev 4 жыл бұрын
Удачи
@uvatenkovdmitrii1847
@uvatenkovdmitrii1847 2 жыл бұрын
Уважаемый автор! Быть может подскажете как снять защиту flach памяти полетного контроллера на чипе ARM STM32F722RET6. Контроллер не определяется ПК. Заранее спасибо.
@VladimirMedintsev
@VladimirMedintsev 2 жыл бұрын
Никто в здравом уме вам этого не подскажет.
@dmitriibannikovasx
@dmitriibannikovasx 2 жыл бұрын
Я думаю, тут только искать статьи про реверс инжиниринг этого чипа, ну либо делать это самому)
@f33net
@f33net 2 жыл бұрын
Вообще, это описано в даташите в разделе FMC. В HAL есть функции по этому поводу.
@f33net
@f33net 2 жыл бұрын
@@VladimirMedintsev легальную защиту флэш от записи легко выключать/включать регистрами FMC. Если человек спрашивал не про защиту от чтения...
@scilab5929
@scilab5929 2 жыл бұрын
@@f33net Судя по исходному вопросу у него не определяется контроллер. А значит стоит защита RDP и она не имеет никакого отношения к FMC.
@vadimerofeev1148
@vadimerofeev1148 4 жыл бұрын
Так и назовите: "имплементация USB для чацников".
@leoned1797
@leoned1797 3 жыл бұрын
Ох! Скольк же раз я сжигал USB на 103c8..
@user-co8un6lx3t
@user-co8un6lx3t 3 жыл бұрын
Как вам удалось, поясните нубу..
@leoned1797
@leoned1797 3 жыл бұрын
@@user-co8un6lx3t статикой
@dmitriibannikovasx
@dmitriibannikovasx 2 жыл бұрын
А нет никакого метода, позволяющего понять, открыт ли порт?
@dmitriibannikovasx
@dmitriibannikovasx 2 жыл бұрын
Не понимаю, почему бы разработчикам чипов не встраивать все эти подтяжки, защиты от статики и прочую обвязку, относящуюся к usb в свои чипы при проектировании? Не пинайте сильно, если глупый вопрос)
@f33net
@f33net 2 жыл бұрын
Они так и сделали, но стеснялись сказать об этом уверенно. В последнем АN, собственно, Ваше пожелание и удовлетворили.
@Michael_Kaa
@Michael_Kaa 4 жыл бұрын
Лучшая консоль это putty. vt100 и прочее. Не ради холивара.
@sailtogether3236
@sailtogether3236 2 жыл бұрын
А screen чем вам не зашёл? Не ради троллинга.
@Michael_Kaa
@Michael_Kaa 2 жыл бұрын
@@sailtogether3236 Как то он мимо меня прошел....
@user-zj8ib5sw7l
@user-zj8ib5sw7l 4 жыл бұрын
Диоды особо не помогли при контакте с щупом осциллографа и незаземленном компьютере.
@VladimirMedintsev
@VladimirMedintsev 4 жыл бұрын
Разумеется, это ведь была уже не статика... Это было больно.
@user-mm7zi4ey6i
@user-mm7zi4ey6i 4 жыл бұрын
@@kokotmkokot4926 каким образом осцил палит мк? Можете объяснить с точки зрения схемотехники?
@bogdan1543
@bogdan1543 4 жыл бұрын
@@user-mm7zi4ey6i ground loops в Google
@alx643
@alx643 4 жыл бұрын
ну правильно, чем быстрее спалишь контроллер, тем быстрее у них купишь новый...
Пробую самое сладкое вещество во Вселенной
00:41
когда повзрослела // EVA mash
00:40
EVA mash
Рет қаралды 4,3 МЛН
МАМА И STANDOFF 2 😳 !FAKE GUN! #shorts
00:34
INNA SERG
Рет қаралды 4,9 МЛН
Лекция 310.  Шина USB - функциональная схема
15:28
Электротехника и электроника для программистов
Рет қаралды 51 М.
GPIO STM32 Схемотехника портов ввода-вывода
13:06
Работа с COM-портом (RS-232) в Linux
11:36
Industrial Software Engineering Online
Рет қаралды 10 М.
Лекция 230. СОМ порт
19:53
Электротехника и электроника для программистов
Рет қаралды 76 М.
OZON РАЗБИЛИ 3 КОМПЬЮТЕРА
0:57
Кинг Комп Shorts
Рет қаралды 1,5 МЛН
Красиво, но телефон жаль
0:32
Бесполезные Новости
Рет қаралды 303 М.
ОБСЛУЖИЛИ САМЫЙ ГРЯЗНЫЙ ПК
1:00
VA-PC
Рет қаралды 1,7 МЛН