Найти в Дзене
oleg gorshkov

Проблемы с прошивкой клонов Arduino. Поддельные CH340

Многие любители Ардуино сталкиваются с систематическими проблемами, при заливке скетчей в китайские клоны. Как правило, загрузка происходит нормально через программатор, но не загружается через встроенный загрузчик, или в лучшем случае загружается изредка. У меня есть две китайских Ардуино нано, одна относительно нормально шьётся, другая только программатором. В общем-то, для меня не проблема пользоваться программатором, но интересно разобраться. Беглые поиски в интернете дают результаты типа: криво драйвер поставил, плохой провод, у тебя руки кривые, это же клон…. Но проблема явно более глобальная, так как слишком много людей с этим сталкиваются. «Гуру» российского Ардуино эту тему типа не замечают. Для начала решил убедиться в правильности драйверов. Для этого залил в проблемную ардуино следующий скетч. Через программатор разумеется. Помним, что после использования программатора загрузчик сотрётся, и его нужно будет загрузить по-новому. void setup() { // Инициализация последовательн

Многие любители Ардуино сталкиваются с систематическими проблемами, при заливке скетчей в китайские клоны. Как правило, загрузка происходит нормально через программатор, но не загружается через встроенный загрузчик, или в лучшем случае загружается изредка. У меня есть две китайских Ардуино нано, одна относительно нормально шьётся, другая только программатором. В общем-то, для меня не проблема пользоваться программатором, но интересно разобраться.

ошибка
ошибка

Беглые поиски в интернете дают результаты типа: криво драйвер поставил, плохой провод, у тебя руки кривые, это же клон…. Но проблема явно более глобальная, так как слишком много людей с этим сталкиваются. «Гуру» российского Ардуино эту тему типа не замечают.

Для начала решил убедиться в правильности драйверов. Для этого залил в проблемную ардуино следующий скетч. Через программатор разумеется. Помним, что после использования программатора загрузчик сотрётся, и его нужно будет загрузить по-новому.

void setup() {

// Инициализация последовательного порта на скорости 9600 бит/с

Serial.begin(9600);

}

void loop() {

// Отправка строки в монитор порта с переходом на новую строку

Serial.println("Hello, world!");

// Задержка в 1000 миллисекунд (1 секунда)

delay(1000);

}

Включаю монитор порта, и вижу на экране "Hello, world!" всплывающие каждую секунду.

монитор порта работает
монитор порта работает

Монитор порта работает, значит, обмен данными между платой и ПК происходит, значит с драйверами всё нормально. Какие варианты? Загрузчик залил обратно, проблема осталась. Чем отличается обмен данными с монитором порта от заливки скетча? Наличием ещё одой линией – «сброс». Вероятно, в ней-то и есть какой-то косяк.

Пытаю ИИ, даёт правдоподобную версию. В китайских клонах Ардуино обычно используется CH340 - чип преобразователь USB-TTL. Его вывод 13 (DTR) через ёмкость 100 нФ соединяется цепью RESET Ардуино, включающую в себя вывод RESET микроконтроллера, подтягивающий резистор (10кОм), кнопку сброса. Так вот якобы бывает, что китайцы вместо 100 нФ, ставят больший номинал, и это может приводить к сбоям. Надо смотреть плату с задней стороны.

Посмотрим сначала рабочий клон

рабочий клон
рабочий клон

Нашёл эту ёмкость, выделена красным кругом. Мерить её емкость в цепи бесполезно, по крайней мере мультиметром, ну собственно и нет смысла, плата рабочая.

Смотрим теперь проблемную плату

проблемная плата
проблемная плата

Чип с затёртой маркировкой, расположение элементов немного другое, но главное цоколёвка чипа совсем не совпадает с CH340. У CH340 должно быть: GNG – вывод 1, VCC – вывод 16, DTR – вывод 13. Здесь же подходят GNG – вывод 9, VCC – вывод 8, DTR – вывод 12.

Вывод – это не CH340, ни одна из его модификаций не имеет такой цоколёвки. Но компьютер то его определяет именно, как CH340.

диспетчер устройств
диспетчер устройств

Выходит Китайцы зачем-то делают фальшивые CH340, с другой цоколёвкой, с поддельной ID, да ещё и разрабатывают для него новую плату.

Поиски в российском интернете привели только к аналогичным догадкам, о которых писали пользователи. Однако окончательно мои подозрения подтвердила статья с иностранного сайта (в России недоступен), там автор тоже рассматривал клон Ардуино с поддельным чипом, цитата:

"......Сообщив производителю оригинальных чипов, компании Nanjing Qinheng Microelectronics Co., Ltd, которая владеет брендом WinChipHead (WCH), о данной подделке, их представитель подтвердил, что некоторое время назад, они уже получали аналогичные отзывы клиентов, о существовании не оригинальных чипов.

По моему мнению, все проблемы как раз и кроются в этом безымянном чипе, который маскируется под CH340. Что бы не плясать с бубном, перед покупкой нужно обязательно уточнять у продавца, действительно ли на плате установлен CH340 с маркировкой на нём........"

В общем, ясно, что, скорее всего проблема в левом чипе, однако версию с неправильным номиналом ёмкости тоже проверил. Нашёл его на плате.

через микроскоп
через микроскоп

И тут замечаю, что рядом с этим конденсатором стоит резистор подтяжки RESET, и он не на 10 кОм, а на 1 кОм (маркировка 102). Неужели я разгадал мировую проблему? Китайцы просто впаяли 1 кОм вместо 10 кОм?

Поменял резистор на 10 кОм, заодно проверил конденсатор – показания близки к 100 нФ.

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

Пишите в комментариях, кто сталкивался с подобным.