Данный метод требует прямых рук наноботов — используйте описанное на свой страх и риск.
Ко мне в руки попал преобразователь USB-UART на чипе CP2102, который шел в комплекте с Arduino Pro Mini и заявлялся как программатор для него:
Подключив к Arduino и попробовав залить скетч, я обнаружил, что заливка не происходит. Выдается ошибка:
avrdude: stk500_getsync(): not in sync: resp=0x00
Поиск дал ответ на вопрос, почему это происходит. Оказалось, RST на выходе программатора разведен таким образом, что он является цифровым входом и предназначен для сброса чипа CP2102 по сигналу с внешнего устройства, а не сброса самого внешнего устройства. Дальнейшие поиски привели к статье, где было описано, как это исправить.
В статье мне не понравилось, что к чипу припаивается отдельный провод. Захотелось попробовать использовать уже имеющийся выход RST. Немного разобравшись с топологией платы, я обнаружил, что дорожка от вывода RST через сквозное переходное отверстие соединена с одной из ножек чипа CP2102 и сопротивлением на лицевой стороне платы.
Таким образом, необходимо перерезать участок дорожки между переходным отверстием и выводом CP2102, а также выпаять SMD-резистор над надписью POW (на резисторе надпись «1001»). Далее необходимо соединить при помощи провода вывод CP2102 «DTR» и контактную площадку, оставшуюся после выпайки резистора, расположенную ближе к надписи POW. Это соединит вывод чипа «DTR» и вывод платы «RST».
Вооружившись ножом для макетирования и паяльником, я приступил к работе. В результате получилось такое вот чудо техники:
Круг слева отмечает перерезанную дорожку, а овал справа кусочек припаянного провода. Для того, чтобы выводы микросхемы на слиплись от олова, следует залить данную сторону микросхемы спирто-канифольной смесью. Спирт быстро испарится, однако, при паянии, кипящая под жалом канифоль не даст олову спаять ножки в одно целое (конечно, если не переборщить с оловом).
Далее следует проверить работоспособность полученной платы при помощи программы RealTerm. Открываем вкладку «Pins» — установка и сброс пина DTR не должна влиять на работу пина DSR, однако должно управлять напряжением на выходе RST платы.
Когда все проверки завершены, можно пробовать залить скетч. Подключаем Arduino Pro Mini к преобразователю:
(Преобразователь) <-> (Arduino)
RST <-> DTR
TXD <-> RXD
RXD <-> TXD
GND <-> GND
5V <-> VCC
Теперь у меня скетч залился успешно.
Надеюсь, у вас всё получится!
Автор: ZloAlien