Как залить прогу в Pro Mini через Nano?
- Войдите на сайт для отправки комментариев
Сб, 02/03/2013 - 23:40
Есть Nano и есть Pro Mini (5В/16Мгц).
Как залить скетч в Pro Mini используюя Нану?
Нашел только описания, где льют через Uno, пробросив один в один с Уны на Pro Mini GRN, Vcc, Reset, Rx,Tx,
НО там перед прошивкой из Уны достают контроллер, т.е. Уна работает простым USB->UART'ом.
Из наны я контроллер не выковыряю. Как быть?
Программно пробросить? Какие тогда в заливальщике настроки указывать, чтобы нана не перегружалась при заливке?
Его можно выпаять и впаять обратно, НО если у вас есть термовоздушная станция.
У вас собственно два варианта:
1. Шить через UART;
2. Шить через ISP.
В обоих случаях необходимо выпаять с Наны конденсатор С4.
В первом случае все как вы написали, только Reset нужно припаять к одной из контактных площадок выпаянного конденсатора С4 через такой же или этот же конденсатор и в Нане не должно быть скейтча рабатающего с UART-ом.
Но я бы на вашем месте смотрел в сторону ISP, потому как тогда можно затереть загрузчик и МК будет быстро стартовать. В этом случае собираете программатор Mega-ISP.
Спасибо за ответ.
Но хотелось бы без пайки, поскольку дле тестов (с nrf24) нужны обе ардуины, а постоянно запаивать и выпаивать кондер не здорово.
А зачем для заливки через ISP из наны кондер выпаивать, если я, по сути, наной передаю данные (hex) с компа в проминю?
И смотрю статью по ссылке: вариант соединить выводы Reset и +5V резистором номиналом порядка 120 Ом (оригинал здесь) - подойдет вместо выпайтки кондера?
Чтобы Нана не перезагружалась. Кстати, можете вместо выпаивания конденсатора (в случае с ISP) поставить резистор на 100 Ом между RST и +5V.
В общем рассказываю как:
- в Nano залил скетч из примеров ArduinoISP
- по схеме http://arduino.cc/en/uploads/Tutorial/arduinoisp.png (отсюда http://arduino.cc/en/Tutorial/ArduinoISP) подключил Nano к Pro Mini (пины Nano.11,12,13 на ProMini.11,12,13, Nano.10 на ProMini.RST, землю на землю, 5V на 5V). Никакие кондеры не выпаивал, резисторы не подтыкал.
- в Arduino-проге выбрал программатор Arduino as ISP, плату выбрал Pro or Pro Mini (5V 16MHz)
- как обычно пролил скетч в Pro Mini (Nano при этом работала ISP программатором)
Все заработало.
P.S. Ну и дейтсвительно, если на ардуину нану меж Reset'ом и +5V воткнуть 120 Ом, она не перегружается при подклчении к USB, но эт оне понадобилось.
P.S. Ну и дейтсвительно, если на ардуину нану меж Reset'ом и +5V воткнуть 120 Ом, она не перегружается при подклчении к USB, но эт оне понадобилось.
Как я уже писал, неперегружаемость на "аппаратном" уровне, получается, не нужна - все и так прошиваетется "мимо" наны в прошиваемый МК.
Обсыпаюсь пеплом - был неправ: при описанном мною способе прога льется таки в нану, а поскольку тестом был блинк на 13-ю, то нана мигая 13-ой ногой, мигала еще и 13-ой ногой промини(поскольку spi соединение не отключал)
Если же на нане замкнуть ресет на +5 через 120Ом - ничего не прошивается, и пишет:
stk500_getsync(): not in sync: resp=0x00
то же если на промине ресет нажать , когда нана начнет помигивать зеленым...
пробовал везде (в ArduinoISP.pde, в boards.txt для промини и в programmers.txt для Arduino as ISP) выставить скорость 9600 - начинает лить и пишет ошибку:
avrdude: verification error, first mismatch at byte 0x0002
0x61 != 0x60
avrdude: verification error; content mismatch
после чего проминя начинает мигать 13-ой ногой, но не с той частотой, как я прошу в скетче - то бишь не мой скетч работает.
Выручайте - совсем запутаюсь...
Для начала опишите или лучше нарисуйте как подключаете.
Да все так же как на рисунке по ссылке http://arduino.cc/en/uploads/Tutorial/arduinoisp.png: пины Nano.11,12,13 на ProMini.11,12,13 соответственно, Nano.10 на ProMini.RST, землю на землю, 5V на 5V + сейчас на нане RST соеденен с +5V через 120 Ом (если отчно, то 117.5 Ом набрал из того что было)
имхо, не хватает поправленного файла boards.txt
А что там должно быть? Я как раз вчера поправил в разделе Mini и ProMini (16MHz 5V) после первой ошибки.. убавил скорость для Seriala до 9600 - начало проливаться, но вылезла вторая ошибка
Там было так (у меня атмега328):
pro5v328.name=Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega328
pro5v328.upload.protocol=arduino
pro5v328.upload.maximum_size=30720
pro5v328.upload.speed=57600
pro5v328.bootloader.low_fuses=0xFF
pro5v328.bootloader.high_fuses=0xDA
pro5v328.bootloader.extended_fuses=0x05
pro5v328.bootloader.path=atmega
pro5v328.bootloader.file=ATmegaBOOT_168_atmega328.hex
pro5v328.bootloader.unlock_bits=0x3F
pro5v328.bootloader.lock_bits=0x0F
pro5v328.build.mcu=atmega328p
pro5v328.build.f_cpu=16000000L
pro5v328.build.core=arduino
pro5v328.build.variant=standard
Поправил на pro5v328.upload.speed=9600
И в programmers.txt было:
arduinoisp.name=Arduino as ISP
arduinoisp.communication=serial
arduinoisp.protocol=stk500v1
arduinoisp.speed=19200
поправил на arduinoisp.speed=9600
Не уверен правильно ли сделал, номне показалось, что скорости везде должны быть одинаковые...
pro5v328.name=Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega328
pro5v328.upload.protocol=arduino
pro5v328.upload.maximum_size=30720
pro5v328.upload.speed=19200
pro5v328.upload.using=arduino:arduinoisp
pro5v328.bootloader.low_fuses=0xFF
pro5v328.bootloader.high_fuses=0xDA
pro5v328.bootloader.extended_fuses=0x05
pro5v328.bootloader.path=atmega
pro5v328.bootloader.file=ATmegaBOOT_168_atmega328.hex
pro5v328.bootloader.unlock_bits=0x3F
pro5v328.bootloader.lock_bits=0x0F
pro5v328.build.mcu=atmega328p
pro5v328.build.f_cpu=16000000L
pro5v328.build.core=arduino
pro5v328.build.variant=standard
Попробуйте так. Обратите внимание на выделенные строчки.
Arduino as ISP - верните как было
Либо ничего не поправляя во вкладке File -> Upload using programmer предварительно выбрав программатор ArduinoISP
Да, вернул все настройки (boards.txt и programmers.txt) как было, у наны оставил подоткнутый резистор на 120Ом меж +5V и RST, залил через File -> Upload using programmer предварительно выбрав программатор ArduinoISP.
Все пролилось. Заработало. Заработали и радиомодули.
Всем спасибо!
P.S. 2 maksim: А чем отличается простая заливка от Upload using programmer?
Простая, если указан бутлоудэр, будет пытаться прошить МК через этот самый бутлоудэр, Upload using programmer через указанный программатор.