Ничего не найдено :(
    В гостях у Самоделкина! » Темы » Советы » Несколько способов прошивки Arduino и решение проблем, связанных с этим

    Несколько способов прошивки Arduino и решение проблем, связанных с этим


    Первым делом хочу сказать, что это не гайд по решению всех на свете проблем с ардуино, а лишь тех, с которыми пришлось столкнуться мне. Тем не менее сталкиваясь с этими проблемами я потратил немало времени на поиски информации по их решению, так что думаю, статья будет полезна. Так же я не буду рассматривать проблемы, связанные с компиляцией. Ошибки компиляции — это ошибки программирования, это уже частные случаи и рассматривают их так же в частном порядке на всевозможных форумах.


    Способ 1. Стандартная прошивка


    Несмотря на всю простоту ардуино в плане программирования, даже на этом этапе могут возникнуть проблемы. Возникают они, как правило, при использовании китайских клонов. Но будем планомерными. Для программирования ардуино так, как это замышлялось разработчиками, необходимо скачать и установить с оффсайта среду разработки Arduino IDE и провести установку в соответствии с указаниями. Об этом есть сотни, если не тысячи, статей даже в русскоязычном сегменте интернета, по этому останавливаться на этом не буду. При использовании оригинальных ардуино проблем возникнуть не должно. Но у нас, как правило, все используют куда более дешевые китайские клоны. Они, в общем то, ничем не отличаются от оригинала, по крайней мере в плане производительности. Лично мне китайская компоновка Arduino Pro Mini с контактами А4 и А5 в ряду с остальными, нравиться куда больше, чем компоновка оригинальной платы. Но в ту же очередь китайцы, несмотря на коммунистический строй, по сути самые настоящие капиталисты, и экономят для экспорта на всем, на чем только можно. Под эту экономию подпадают и чипы USB интерфейса тех самых ардуино. Тут и начинаются проблемы. Дело в том, что в китайских клонах используется не оригинальный чип CH340. И так, будем считать, что Вы выполнили все стандартные процедуры установки ПО и драйверов, но ардуино так и не шьется. Первым делом идем в ПУСК>Панель управления>Диспетчер устройств. Тут обращаем внимание на два пункта: Контроллеры USB и COM LPT порты.


    Несколько способов прошивки Arduino и решение проблем, связанных с этим


    Если пункта Порты (COM и LPT) нет вообще, это первая подсказка в решении проблемы. Если все хорошо, то в ком портах должен появляться новый порт при подключении ардуино. Если этого не происходит, то смотрим что творится в "Контроллеры USB". При подключении ардуино должно появляться новое устройство с надписью USB 2.0 Serial. Это, на самом деле, хороший знак. Если комп видит, что к нему подключились, но не может понять кто — значит ардуинка у нас живая, а проблема в дровах. Если же этого не происходит — читаем способ 2 и способ 3. Для решения же этой проблемы необходимо установить новый драйвер вручную. Скачиваем драйвер, папку с ним кладем в удобное место. Идем снова в Диспетчер устройств, далее USB 2.0 Serial>ПКМ>Свойства>Драйвер>Обновить>Выполнить поиск драйверов на этом компьютере и выбираем папку с драйвером. После этого система может начать ругаться, что драйвер не из проверенных источников. Жмем все равно установить.








    Скачать драйвер

    Вы скачали драйвер, установили, но ардуино все равно не шьется. Проблема может быть как и с завода, так и по вине пользователя, это не суть важно. Что делаем. Переходим ко второму способу.

    Способ 2. Прошивка через TTL конвертер


    Все платы ардуино, начиная с серии Nano, имеют USB интерфейс. Серия Mini и Pro Mini его не имеет, и прошивается исключительно TTL конвертером. Но дело в том, что и любая другая ардуинка шьется этим программатором. Если у Вас его нет — настоятельно рекомендую купить, тем более цена у него 50-60 рублей (на момент написания статьи), это универсальный программатор, который может еще не раз пригодится. Так я, например, при помощи него перепрошил свою аппаратуру радиоуправления FlySky i6 и рацию Kenwood T2000, не покупая специальных фирменных программаторов, которые стоят куда дороже. Но я отошел от темы. В общем, на всех платах ардуино есть выводы RX и TX (это интерфейс общения, "передача/прием"), при помощи которых можно прошить ардуино в обход чипа USB интерфейса. Эти конвертеры, однако, тоже есть разных версий. Когда я покупал свой, самый распространенный и самый дешевый был конвертер, без вывода reset. Особенность программирования ардуино таким программатором заключается в том, что ровно по окончанию компиляции и началу загрузки нужно жать кнопку reset на плате. Тут, на самом деле, нужна некая сноровка. Если первый раз пропустили — продолжайте жать кнопку с периодичностью примерно в 2 секунды. Среда дает 10 запросов, если удастся попасть в один из них — вуаля, мы прошили ардуинку. Более современные программаторы имеют пятый вывод, который подключается к тому самому ресету, и дергает его автоматически. Но главное, нюанс я описал. Ещё момент. Как правило, RX нужно подключать к TX и наоборот. Но в редких случаях (ну китайцы) нужно подключать RX в RX, а TX в TX. Просто неправильно подписывают. И так, если и это не помогает, переходим к способу 3.







    Но на всякий прикрепляю дрова для CP2102

    Особенности.

    Программатор требует установки драйверов, проблем с этим не у меня, не у других замечено не было, просто ставьте драйвер на CP2102, либо тот, который предлагает производитель.

    Способ 3. Прямое программирование чипа


    Начиная с версии Nano платы Arduino имеют разъем внутрисхемного программирования ISP . Это шести контактный разъем, на который, как правило, никто не обращает внимание. При помощи него можно прошить микроконтроллер непосредственно, напрямую, в обход всего, что только можно обойти, как физической части, так и программной. Именно таким образом мне пришлось прошивать свою последнюю плату arduino. Собственно, при помощи этого метода можно создавать и свои клоны ардуино, прошивая в атмегу ардуиновский бутлоадер. Об этом я писал в своей статье про авионику спортивной ракеты. Но снова же, не об этом. Для прошивки потребуется вот такой вот программатор:




    Это обычный USBasp, самый распространённый программатор AVR микроконтроллеров. Стоит на али те же копейки.

    Особенности

    Программатор имеет стандартный 10-ти контактный разъем, однако в комплекте можно купить переходник на 6-ти контактный. Его конечно можно изготовить и самому или подключить просто проводами, однако так значительно проще и удобнее.



    Прошивка осуществляется не стандартным способом. Для начала идем в Инструменты>Программатор>USBasp



    Далее Скетч/Загрузить через программатор.



    Проблемы

    Как и говорил, тут я описываю проблемы, с которыми столкнулся я. Этот программатор так же требует драйверов. Найти их не сложно. Однако связываясь с китайцами с целью экономии, нужно быть готовым к неожиданным поворотам. Лично я, при работе с этим программатором, столкнулся со следующей проблемой, которую когда-то описывал на радиокоте:

    avrdude.exe: error: could not find USB device "USBasp" with vid=0x16c0 pid=0x5dc


    Над решением беды бился долго, и нашел лишь на забугорных форумах. И так:

    1)По следующей ссылке скачиваем архив LibUSB-64bit.zip
    2)Подключаем программатор к USB порту.
    3)Распаковываем архив и переходим по пути куда распаковали\LibUSB-64bit\libusb-win32-bin-1.2.1.0\bin\x86
    4) Запускаем inf-wizard.exe
    5)Жмем Next
    6)Выбираем USBasp и жмем Next
    7)Следующие поля заполняем таким образом:

    vendor ID (hex format) = 0x16C0
    product ID (hex format) = 0x05DC
    mi (hex format) = оставить пустым
    manufacturer name = VOTI
    device name = USBasp


    Жмем Next

    8 )Сохраняем сгенерированный файл по пути:
    LibUSB-64bit\libusb-win32-bin-1.2.1.0\bin\amd64 - если у вас 64-х разрядная система или
    LibUSB-64bit\libusb-win32-bin-1.2.1.0\bin\x86 - если 32-х разрядная

    9)Жмем install now
    10) Система уведомит, что драйвер не из проверенных источников. Жмем "Все равно установить"
    11)Начнется установка драйвера. В процессе установки услышим звук отключения и подключения USB устройства. По окончанию установки жмем ОК.

    Ещё несколько советов

    Очень распространенные модули NRF24L01 имеют большой косяк. Для нормальной и стабильной работы этих модулей необходимо по питанию повесить конденсатор хотя бы на 10 мкФ 5 В. Меньше не желательно, больше — бесполезно. Но если нет на 10, конечно, ставьте на 22 или 47. Так же советуют параллельно нему повесить еще один керамический на 10-100 нФ. При чем как можно ближе к самому модулю, в идеале — на выводы. В противном случае модуль вроде и видится, но нормально не передает.


    Если на выводах RX и TX висит какое-то исполняющее устройство — ардуинка не прошьется. Сначала прошивайте, потом подключайте на эти выводы необходимое устройство.

    На этом все, Надеюсь информация будет кому-то полезна.
    Всем удачи в творчестве!

    Усилитель звука по схеме Дорофеева на SMD компонентах

    Изготовление печатной платы методом негативного фоторезиста ORDYL ALPHA 350

    Добавить комментарий

    10 комментариев
    Гость Вик #64655

    Эти чинайские платки все такие . То есть заливаешь тестовый блинк и кидаешь в коробочку . Потом через пол года достаёшь ,а оно не шьётся .

       Эта длинная статья очень короткая .  Проблем с ардуинками много.......

       На про мини atmega32u4 на одну пришлось резет кнопку паять и случайно обнаружил что на 2 одинаковых нужно разные блинк скетчи .

       Бутлоудеры разные или чё ?

    Гость Игорь #35169
    А у меня выскакивает Unknow Error, когда сохраняю полученный файл по указанному пути((
    feonor12 #29787 Автор
    Лучше бы дополнил статью


    Уже бегу. Щас прям возьму и потрачу пол дня, переустановлю ОС лишь для того, что бы разобраться с проблемой, с которой Вы не можете.

    Первым делом хочу сказать, что это не гайд по решению всех на свете проблем с ардуино, а лишь тех, с которыми пришлось столкнуться мне.


    Читайте внимательнее. Между прочим первое предложение в статье.
    Лосяш #29742
    Заходит человек у которого 10я винда в надежде наконец-то запустить ардуино, и видит сборник "советов" которые он уже читал не раз на просторах инета. Но так и не находит решения...
    Полезен ли этот сборник? Нет. Зато автор знает про линукс и весело шутит про отсутствие USB. Лучше бы дополнил статью как установить драйвера, если система не даёт тебе этого сделать, как было в 7ке.
    feonor12 #29692 Автор
    Никогда не пробовал, т.к. программаторы давно есть, но да, прошить можно и другой ардуинкой.
    Гость Илья #29675
    Вместо программатора может быть другая Arduino.
    .
    feonor12 #29571 Автор
    А на линуксе и маке они вообще не станут! А у некоторых и USB порта нет на компьютере! И правда, чем я только думал, когда выкладывал...
    Лосяш #29563
    В 8 винде и выше нельзя просто так установить драйвера. Статья бесполезна.
    Гость Сергей #29536
    Спасибо что делитесь информацией, проверкой личным опытом ! Я ещё не программирую (не пробовал, не умею), но не редко читаю разные подобные статьи о программировании и контроллерах (в надежде что скоро начну обучаться)
    Немо Иванофф #29520
    Хорошая статья, для себя узнал некоторые моменты о которых не знал.

    Привет, Гость!


    Зарегистрируйтесь

    Или войдите на сайт, если уже зарегистрированы...

    Войти

    Добавьте самоделку

    Добавьте тему

    Онлайн чат

    Последние комментарии

    Все комментарии