- Мультиобзор четырех преобразователей USB-COM с BuyinCoins
- Как подключить кучу старого RS232 оборудования по USB без регистрации и sms (STM32 + USB-HID)
- Вместо вступления
- Зачем?
- Пробуем что-то сделать
- Low Level
- High level
- Заключение
- Подключение удаленного СОМ контроллера к USB порту компьютера через несогласованные линии
- Структура канала USB – плата Arduino UNO
- Структура канала USB – RS-232 – плата Arduino UNO
- Прошивка контроллера Arduino UNO
Мультиобзор четырех преобразователей USB-COM с BuyinCoins
Дешевые USB-COM: расстановка точек над i. Расчлененка. Осциллограммы. Тестирование в реальных условиях.
Как-то потребовалось максимально бюджетно организовать прием факсов в небольшом офисе. Для этого с антресолей был извлечен факс-модем ZyXEL Omni 56K, а поскольку в современных компьютерах порт RS-232 давно канул в лету, на БиКе было решено приобрести адаптер USB-COM. Изучение предложений привело к решению купить все четыре имеющиеся в продаже на тот момент разновидности, благо итоговая стоимость получалась порядка 11 USD.
Итого по получении из пакета были извлечены (слева направо в порядке возрастания цены):
Самый дешевый экземпляр обзора. Выглядит хлипко, плата из корпуса вытаскивается невооруженными руками.
Вместо корпусного чипа просто «капля» на текстолите. Флюс не отмыт.
Идентификатор устройства — VID_1A86&PID_7523, на диске и в интернете наличествуют драйверы под современные 32- и 64-битные операционные системы от Microsoft. После установки драйверов идентифицируется как USB_SERIAL CH340.
Backtrack linux тоже в курсе о его существовании:
Подключенный осциллограф показал, что выходы RTS и DTR выдают в качестве логической единицы +5В, в качестве логического нуля 0В, то есть никакой не RS-232, а самый что ни на есть незамутненный TTL. То же самое относится к выводу TXD.
В режиме передачи данных. Здесь и далее на всех осциллограммах скорость порта 9600 бод, 8 бит посылка, 1 стоп-бит, нет контроля четности. Развертка — 1 мс/деление, чувствительность — 5 вольт/деление (делитель в щупе установлен в положение 1:10).
В порт выводится одно и то же слово. Первому, кто его назовет — плюс в карму.
2. «Прозрачный».
В отличие от предыдущего не разбирается вообще. Но сквозь прозрачную пластмассу видна такая же «капля», да и определяется в системе с тем же VID-PID. Не удивительно, что и логические уровни оказались такие же.
3. «Черный». Опознался при включении как VID_067B&PID_2303.
Самый свежий драйвер, скачанный с сайта Prolific, завелся с полтыка, что позволяет сделать вывод, что чип — либо оригинальный Prolific, либо поздний клон, не опознающийся драйвером как контрафактный.
На обратной стороне нашлась микросхема-преобразователь уровней SP3243ECA.
Уровень в режиме простоя:
В режиме передачи данных:
Тот же VID_067B&PID_2303. Так же заработал с последним драйвером.
Чип преобразователя уровней — MAX211CAI.
Уровень в режиме простоя:
В режиме передачи данных:
Тестирование работоспособности с реальными устройствами.
Устройство №1: спутниковый ресивер Dreambox 500S.
Параметры подключения: 115200 8N1.
Адаптеры на CH340 выдают в консоль мусор:
Адаптеры на PL2303 работают корректно:
Устройство №2: тот самый ZyXEL Omni 56K
Параметры подключения: 57600 8N1.
Все 4 адаптера подключились успешно.
.
Устройство №3: маршрутизатор Cisco 2801.
Параметры подключения: 9600 8N1.
Все 4 адаптера подключились успешно.
Устройство №4: офисная АТС Nortel Meridian 11C.
Параметры подключения: 9600 8N1
Все 4 адаптера подключились успешно.
Устройство №5: попытаемся прочесть EEPROMы 24Cxx и 93Cxx программатором PonyProg.
Как известно, программа PonyProg2000 позволяет читать и писать большое количество последовательных флэшек и микроконтроллеров, используя последовательный порт компьютера в качестве интерфейса. Отличие от предыдущих испытаний в том, что собственно выводы приема и передачи данных нам понадобятся постольку поскольку. Для программирования используется режим Bit-Banging — имитация сигналов интерфейса методом «дрыгания» в нужном порядке выводов GPIO (DTR, DST, CTS, RTS). На многих форумах электронщиков утверждается, что USB-COM преобразователь для этих целей непригоден вообще. Что мы сейчас и проверим.
Сдуваем SPD-чип со старой планки памяти. Это и есть EEPROM 24С02.
Панельки-переходника с SOIC на DIP у меня нету, поэтому подпаиваю по проводу к каждой ноге.
Сигналы порта уходят на ноги чипа через резисторы 4.7к и «подперты» стабилитронами 5.1В согласно схеме.
Общая часть программатора.
Переходник для I2C.
Переходник для Microwire.
Подаем 5В от USB, запускаем программу, выбираем чип, нажимаем кнопку «Прочитать».
Вот оно, содержимое:
Флэшка прочлась, но очень-очень медленно. На несчастные 256 байт понадобилось порядка 30 секунд. Страшно представить, сколько будет читать флэшка размером хотя бы 1 мегабайт.
Тем не менее, констатируем, что прочесть 24Cxx удалось.
Теперь попробуем прочесть EEPROM с интерфейсом Microwire.
Выдергиваем 93C46 из панельки на старой сетевой плате:
Вставляем в макетку и обвязываем резисторами-стабилитронами согласно схеме.
Нажимаем кнопку «Прочитать».
В ответ получаем нули:
Неужели флэшка пустая? Подключаем стенд к порту на материнской плате, читаем.
Нет, не пустая. В чем же дело? Подключаем логический анализатор и смотрим обмен.
Кроме ужасающей разницы в периодах следования импульсов видим, что аппаратный порт дрыгает ногой сброса (канал №3), а USB-COM не хочет. Эта нога управляется сигналом TXD порта. Как его разработчики Ponyprog умудрились сделать постоянно высоким, я не знаю. Возможно, это недокументированная возможность именно «аппаратного» порта. Напишите в комментариях, если кто в курсе.
Констатируем: прочитать 93Cxx не удалось.
Субъективные выводы: с модемом оставлю работать «бесхвостого», ибо если нет разницы, то зачем платить больше. «Прозрачного» и «черного» положу рядом в резерв, так как «капли» по моим наблюдениям долго не живут. В сумку с инструментами брошу «серого» как имеющего максимальные уровни.
Как подключить кучу старого RS232 оборудования по USB без регистрации и sms (STM32 + USB-HID)
Вместо вступления
Как обычно я предлагаю заняться странным — попробовать подключить несколько старых RS232 устройств, через один USB порт с помощью синей изоленты и смекалки. Статья не будет большой, скорее это описание что где взять и зачем вообще все это делать.
Зачем?
Нужно это бывает когда некий специальный аппаратный комплекс, состоящий из отдельных устройств и который выполняет какую-то единый функционал, вдруг начинают модифицировать. Разумеется что можно попробовать найти комплекс оборудования по новее, но в реальной жизнь на это идут очень редко. Начинают модифицировать то что есть. Иногда вдумчиво, но чаще как получится.
Как правило «мозгами» такого комплекса является компьютер у которого 100500 выходов RS232. Из примеров могу привести место кассира в супермаркете, банкоматы и тому подобное. С первым случаем столкнулся я.
Эти компьютеры не блещут мощностью, но отличаются космической стоимостью. Естественно он перестает отвечать требованиям современных технологий и многим приходит в голову идея заменить их на обычный ПК и получить приличную мощность по адекватной цене, однако быстро выясняется что RS232 на новых ПК вымер как класс. Теперь этот интерфейс стал сугубо специализированным. Соответственно надо или самостоятельно прикручивать кучу RS232 или искать уже готовое спец решение.
Разумеется что можно заменить само оборудование, но если вы посмотрите сколько стоит стационарный лазерный сканер приличной фирмы и помножите эту цену на их количество то передумаете.
Люди не посвященный в тему сразу радостно покупают пучок китайских USBtoRS232 переходников, а дальше все идет очень печально. Лучше этого не делать. Вторым вариантом является покупка специализированной платы расширения с кучей RS232. Этот вариант уже лучше и имеет право на жизнь, но тоже имеет свои недостатки. Например стоимость и проблемы с дровами если используется не Windows или не та версия. Так же не маловажным фактором является доступность в будущем, так как что-то выходит из строя и парк может расширятся в будущем. Потом оказывается что конкретная модель уже не выпускается или не постановляется в конкретную местность и т.д. В общем привязывать себя к конкретному устройству это всегда опасно, особенно если можно этого не делать.
Пробуем что-то сделать
Может показаться странным что примитивные RS232 устройства так сложно и дорого подключить по нормальному если по сути там обычно простые протоколы и примитивный физический уровень. А все потому что обычно подобные аппаратные комплексы используются в коммерческих доходных сферах и покупка оборудования по таким ценам оправдана, а само оборудование уже перешло в разряд специального. Спец оборудование = спец цена вопроса.
Однако все это не мешает попробовать собрать свой бюджетный велосипед. Бонусом получим возможность менять поведение такого своеобразного RS232 мультиплексора и полностью обойдем проблему написания USB драйверов. HID профиль поддерживается почти везде.
Однажды я прочел отличную статью автора RaJa До этого я интересовался USB, но до практики не доходило. В наличии у меня было несколько дешевых отладочных плат, китайских клонов Blue Pill на микроконтроллере Stm32f103c8t6. Сама история и идея создания этой платы очень интересная, стоит поинтересоваться.
Этот микроконтроллер отличается тем что имеет три UART и аппаратную поддержку USB. Это то что может быть нам интересно в разрезе нашей задумки, а вообще микроконтроллер на этой плате, работает на частоте 72Mhz и по характеристикам порвет любое Arduino схожего формфактора. Но самое главное преимущество это повсеместная распространенность этой платы. Я не знаю более простых и дешевых способов пощупать «железный» USB.
Добавив три дешевых преобразователя RS232toUART MAX2323 и немного «рассыпухи» можно собрать своеобразный конвертер интерфейса 3хRS232 USB.
В моем случае нужно было подключить три RS232 устройства к Raspberry Pi 3. Если использовать обычные RS232 USB переходники то в итоге сталкиваешься с тем что в системе куча одинаковых устройств к которым не понятно что подключено и все это дико глючит, а выглядит еще более печально.
Если вы немного капнете в сторону какие микросхемы USB to UART доступны повсеместно, то обнаружите что там полно подделок. Думаю не стоит объяснять как это все потом себя ведет с оригинальными драйверами. И никто не сможет гарантировать вам что даже брендовые переходники вдруг не закупят левую партию микросхем. Удешевление производства оно происходит повсеместно.
В итоге придумалась примерно такая простая схема коммутации ее даже можно изобразить в стиле Arduino:
Я отломал резистор который подтягивает D+ к питанию и сделал эту подтяжку управляемой с помощью транзистора. Она отвечает за опознание устройства на USB шине.
Распиновка разъемов RS232 в программе (Fritzing) где я набрасывал схему странноватая, но думаю никому не составит труда найти ее в интернете, контакты задействованы как обычно 2,3 и 5. А еще удобнее будет использовать платы конвертера UART to RS232 котором уже присутствует разъем RS232.
Low Level
Код для микроконтроллера я писал и отлаживал с помощью IDE EmBitz (если честно то я был удивлен как легко завелась эта IDE, особенно после танцев с бубном вокруг CooCox. ). За основу взял проект из статьи выше. Это первый пример который у меня заработал сразу после заливки.
Я добавил работу с тремя UART и изменил структуру HID репортов так чтобы обмен с ПК шел всегда по 64 байта с контрольной суммой (crc8).
Попытался организовать автопереподключение устройства если соединение по USB не прошло корректно. Не претендую на супер алгоритм, должен признать что не являюсь специалистом по USB. Отдельный транзистор, отображенный на схеме, управляемый отдельным пином B5 подтягивает одну из сигнальных линий USB к питанию что имитирует включение устройства и хост проводит инициализацию устройства. Если попытка не удачная то происходит переподключение.
Было замечено что в Linux (Raspbian) процент не успешных подключений значительно меньше чем в Win 10, возможно этот результат получился из-за моих локальных технических условий.
Общий алгоритм похож на примитивный маршрутизатор, принимая пакет по USB мы смотрим какому UART оно предназначено и пересылаем туда, в обратную сторону аналогично. Есть немного обработки самих пакетов но это относится к конкретному RS232 оборудованию которое я подключал. Это были: экран покупателя Datecs dpd-201, стационарный лазерный сканер штрихкодов Datalogic Magellan 8300 и весы Digi DS890.
На фото выше тестовый образец устройства содержит еще DC-DC шим преобразователь питания на микросхеме MP2307.
Это нужно для того чтобы питать устройство от напряжения 10-24В (входное) и иметь возможность подключить дисплей покупателя который питается от такого же напряжения. После DC-DC шим преобразователя поулчаем 3.3В для всех остальных модулей. Для этого дисплея так же установлен «телефонный» разъем вместо RS232, не хотелось перепаивать стоковый штекер.
High level
Вторая часть софта это примеры и тесты собранные в сумбурный проект на Java написанный IDE IDEA. Предполагается что работа с устройством интегрируется в софт высокого уровня используя различные обертки по работе с USB стеком в зависимости от языка на кортом этот софт пишется. Сейчас сложно найти такой ЯП чтобы под него не существовало таких оберток. Отдельно для староверов отмечу что java и usb совместимы если готовить правельно, это доказано практикой и используется в коммерческом проекте.
В процессе тестирования выяснилось что работа в Linux и Windows с USB HID несколько отличается, работа отлаживалась через две библиотеки usb4java и hid4java. Работа через последнюю используется в Linux (Raspberry Pi 3).
Разница заключается в том что в Windows можно обратится напрямую к USB устройству даже если оно зарегистрировано как HID и писать\читать его конечные точки (endpoint). В Linux же приходится работать с hid устройством. То есть устанавливается стандартный драйвер hid и всё, работайте только с ним пожалуйста. Работа таким образом происходит немного медленнее чем напрямую, но напрямую тоже возможно если убедить систему не ставить драйвера. Это реально.
Как и обещал не растягиваю статью и не привожу подробное описание кода, те пару человек кому интересно могут посмотреть проекты и поиграться в живую, а остальным думаю будет полезнее принять к сведению что есть такое решение и прибегнуть к более глубокому изучению в случае необходимости.
Заключение
Представленное устройство это лишь одни из примеров как довольно легко можно приобщится к процессу создания нативных USB устройств и перестать наконец использовать переходники.
Не забываем плюсовать RaJa автора статью в которых на пальцах объясняется как пощупать железный USB и сохранить желание разбираться дальше.
Подключение удаленного СОМ контроллера к USB порту компьютера через несогласованные линии
Структура канала USB – плата Arduino UNO
Типовая схема подключения контроллера Arduino UNO к компьютеру через USB порт показана на Рисунок 1. Со стороны компьютера канал связи виден как стандартный СОМ порт. Но, на самом деле, это виртуальный СОМ порт с которым компьютер обменивается пакетами данных на частоте 12 МГц, а специализированный контроллер, расположенный на плате Arduino UNO, преобразует пакеты USB данных в последовательность бит в формате асинхронного интерфейса UART с уровнями 0/5В, которые и используются основным контроллером Arduino UNO (микросхема ATmega328P) для загрузки программ и обмена данными с компьютером в процессе выполнения программ.
Рисунок 1. Типовое подключение контроллера Arduino UNO к компьютеру через USB порт.
Временная диаграмма последовательной передачи данных по правилам UART устройства с уровнем сигналов 0/5В показана на Рисунок 2. Данные передаются байтами. Помимо данных последовательность содержит стартовый и стоповый биты и может включать другие служебные биты, например, бит контроля четности, применение которого задается в настройках СОМ порта, там же устанавливается и одна из стандартных скоростей передачи.
Примечание. В семействе асинхронного интерфейса UART наиболее известен стандарт физического уровня RS-232, применяемый COM-портом компьютера.
СОМ порт не имеет сигналов синхронизации, временные интервалы формируются как передатчиком так и приемником с точностью тактирования не хуже 5%.
Рисунок 2. Временная диаграмма UART последовательной передачи данных (01001011) микросхемы ATmega328P контроллера Arduino UNO.
Контроллер Arduino UNO содержит специализированный контроллер для преобразования UART сигналов в USB последовательность и наоборот. Порт USB компьютера осуществляющий связь с виртуальным СОМ портом работает в режиме Full-speed на частоте 12 Мбит/с (Рисунок 3). Этот режим поддерживает как USB 1.0. так и USB 2.0.
Рисунок 3. Измеренный 4В сигнал на дифференциальной линии USB–COM контроллера Arduino. Длина USB кабеля 2м. Частота сигналов на USB линии 12 МГц. Для формирования сигналов использовалась запись данных в СОМ порт контроллера. Частота USB данных 12 МГц не изменялась при записи в СОМ порт как на скорости 9600 бит/c так и 115200 бит/c.
Данные по шине USB передаются пакетами (Рисунок 4). Размеры пакета зависят от типа выполняемой передачи. Каждый пакет в режиме Full-speed содержит 8 бит синхронизации тактов приемника и передатчика (Sync), 8 бит идентификатора пакета (PID) и 2 бита конца пакета (EOP). Блок данных может составлять от 0 до 1023 байт.
Рисунок 4. Пример передачи пакета по дифференциальной линии USB 1.1 в режиме Full-speed [2]. Изменение состояние дифференциального сигнала соответствует передаче нуля, сохранение уровней — соответствует передаче единицы. Для улучшения синхронизации на единичных последовательностях принудительно вставляют нуль на каждые 6 единиц подряд.
Кроме пакета данных передаются и другие пакеты. Для выполнения всех передач по USB требуется, чтобы 2 или 3 пакета информации были переданы между хост-контроллером и приемником. Если передача оказалась успешной, пункт назначения возвращает пакет квитирования. При обнаружении ошибки во время передачи генерируется пакет отсутствия уведомления.
Дифференциальные сигналы USB передаются по витой паре экранированного 4-проводного кабеля. По стандарту, сечение сигнальных проводников высокоскоростного кабеля USB 2.0 должно быть 28 AWG и от 20 до 28 AWG для жил питания, в зависимости от длины кабеля (см. Таблица 1).
Таблица 1. Примерное соответствие длины и диаметра проводов USB2 кабеля.
Размер провода [3]
Для увеличения длины USB кабеля его снабжают встроенными усилителями сигнала.
По требованию спецификации USB 2.0 для режима High-speed (до 480 Мбит/с) задержка распространения сигнала в кабеле не должна превышать 5,2 нс/м и быть не более 26 нс, что и определяет максимальную длину кабеля 5 м.
Задержка на метр длины в коаксиальном кабеле обратно пропорциональна скорости распространения волны в м/c, которая вычисляется как
,
где с – скорость света 3*10^8 м/с; е — диэлектрическая проницаемость материала внутреннего изолятора; u — магнитная проницаемость изолятора. Для полиэтилена с u= 1 и е= 2,2 фазовая скорость равна 2*10^8 м/с и, соответственно, задержка 5 нс/м.
Для уменьшения потерь сигнала важно обеспечить однородность волнового сопротивления (в.с.) сигнальной линии. Изменение в.с. может быть связано с некачественной заделкой кабеля, плохим согласованием элементов линии, низким качеством разъёма и др.
Волновое сопротивление кабеля определяется его конструкцией. В.с. коаксиального кабеля в области высоких частот (30 кГц и выше) вычисляется по следующей формуле.
где L – продольная индуктивность закороченного кабеля, Гн; C – поперечная ёмкость разомкнутого кабеля, Ф; e — диэлектрическая проницаемость изолятора; D — диаметр изолятора; d – диаметр проводника. Величина в.с. не зависит от длины кабеля.
Диэлектрическая проницаемость изоляторов лежит в диапазоне 1… 7: 1 – воздух, вакуум; 1.3… 2.4 – полиэтилен; 2.5..6 — резина; 5..7 – фарфор; 6..7 – слюда; 7 — стекло.
Величина в.с. витой пары USB 2.0.кабеля составляет 90 ± 15% Ом [5]. Расчет в.с. экранированной витой пары должен учитывать и взаимное расположение проводников.
В согласованном кабеле у которого нагрузка по концам, имеет сопротивление, равное в.с., вся передаваемая электромагнитная энергия полностью поглощается приемником без отражения. В неоднородных линиях и при несогласованных нагрузках в местах электрической несогласованности возникают отраженные волны и часть энергии возвращается к началу линии.
Коэффициент отражения волн в кабеле равен отношению
,
где rH — сопротивление нагрузки; Z – в.с. кабеля.
Включении несогласованных элементов в USB линию может значительно исказить сигнал. Например, линия оказывается неработоспособной при включение в неё эектровводов из силового кабеля с волновым сопротивлением 10… 40 Ом.
Структура канала USB – RS-232 – плата Arduino UNO
Для обеспечения устойчивой связи удаленного СОМ устройства с компьютером через USB порт длина USB канала сведена к минимуму, на выходе USB линии поставлен USB – RS-232 преобразователь, который через длинную линию подключен к преобразователю уровней +15/-15В == 0/5В, находящегося вблизи контроллера Arduino и подключенного к его UART порту, как показано на Рисунок 5. Скорость обмена данными в этой структуре такая же как и при подключении Arduino к компьютеру через USB кабель, но частота сигнала в протяженной линии почти в 100 раз ниже — как 0,115200 Мбит/с и 12 Мбит/с.
Рисунок 5. Схема подключения контроллера Arduino UNO к компьютеру через USB порт и длинные несогласованные линии. Обозначение контактов GND, передатчика Tx и приемника Rx на стандартном разъеме DB-9 СОМ порта компьютера показано вверху слева. Со стороны устройства сигналы TxD и RxD на разъема DB-9 надо поменять местами.
Преобразователь RS232 уровней (Рисунок 5) не меняет последовательность бит. Он изменяет уровни сигнала 0/5 В в +12/-12 В и наоборот (Рисунок 6).
Рисунок 6. Временная диаграмма и уровни сигналов преобразователя RS232.
Для преобразования уровней сигналов RS232 могут использоваться микросхемы, например, MAX232 (компании Maxim Integrated Products), SP232 (Sipex), ADM232 (Analog Devices). Эти микросхемы имеют одинаковые характеристики и назначения выводов. Подключение преобразователя MAX232 показано на Рисунок 7 [6].
Рисунок 7. Схема подключения преобразователя уровней MAX232. Схема обеспечивает уровень выходного напряжения приблизительно ± 7.5 В соответствующий интерфейсу RS-232.
Рынок предлагает множество модулей преобразователей уровней построенных на базе перечисленных и других микросхем. Внешний вид одного из таких модулей показан на (Рисунок 5).
К компьютеру устройство можно подключить через стандартный COM порт, если он есть, или использовать преобразователь USB-RS232 (другие названия: USB-COM конвертеры, переходники или адаптеры), связанный с USB портом напрямую или через собственный USB кабель. Внешний вид USB преобразователей показан на Рисунок 5.
Вариант реализации макета линии COM устройство – USB порт компьютера без RS-232 линии показан на Рисунок 8.
Рисунок 8. Вариант подключения контроллера Arduino UNO к преобразователю USB-COM компьютера.
Для проверки работоспособности канала обмена данными между контроллером Arduino UNO и компьютером через длинную несогласованную линию был собран провод показанный на Рисунок 9 и Рисунок 10. Куски провода соединялись скруткой или удерживались в гнездах разъемов на трении.
Рисунок 9. Канал RS232 из составного кабеля 9,5 м.
Рисунок 10. Куски провода канала RS232 из составного кабеля 9,5 м.
Передача и прием данных через СОМ порт контроллера Arduino UNO контролировалась утилитой компьютера COM Port Toolkit.
Используемая для тестирования линии программа Arduino UNO, передающая в СОМ порт байты данных и переключающая светодиод контроллера по приходу внешних команд, показана ниже.
Осциллограммы сигналов, снятые на концах состоящей из кусков линии RS-232 показаны на Рисунке 11. Данные передаются на частоте 115200 бит/с.
Рисунок 11. Сигнал амплитудой +7.5/-8 В на концах RS-232 линии составного кабеля длиной 9,5 м. Частота передачи данных 115200 бит/с. Сигнал не имеет заметных искажений.
Прошивка контроллера Arduino UNO
Загрузка программ в контроллер Arduino выполняется при помощи его внутреннего загрузчика, который запускается сразу после включения питания контроллера, или после нажатия на кнопку reset платы, или когда компьютер через линию USB выдаёт сигнал сброса.
При подключении платы Arduino через канал RS-232 с двумя сигнальными линиями Tx и Rx при отсутствии линии сигнала сброса загрузка выполнялась в следующем порядке.
1. Запускалась среда разработки Arduino (как и в режиме загрузки через USB).
2. Загружалась программа (как и в режиме загрузки через USB).
3. Прошивка программы запускалась командой Ctrl+U или через кнопку (как и в режиме загрузки через USB)
4. Дополнительно, после запуска прошивки и заполнения прогресс индикатора нажималась кнопка Reset
на плате контроллера Arduino приблизительно на 0,5 секунды.
Успешная прошивка завершается сообщением
.
Прошивка выполнялась успешно и при кратковременном отключении питания контроллера, вместо нажатия на кнопку Reset.
Запуск загрузчика контроллера Arduino можно выполнять и в автоматическом режиме от компьютера, без нажатия на кнопку Reset или кратковременного отключения питания. Для этого необходимо, например, канал RS-232 с Tx, Rx, и GND дополнить линией RTS и подключить ее через преобразователь уровней ко входу RESET контроллера Arduino.