Как залить прогу в Pro Mini через Nano?

alderArduino
Offline
Зарегистрирован: 13.02.2013

Есть Nano и есть Pro Mini (5В/16Мгц).

Как залить скетч в Pro Mini используюя Нану?

Нашел только описания, где льют через Uno, пробросив один в один с Уны на Pro Mini GRN, Vcc, Reset, Rx,Tx, 

НО там перед прошивкой из Уны достают контроллер, т.е. Уна работает простым USB->UART'ом.

Из наны я контроллер не выковыряю. Как быть?

Программно пробросить? Какие тогда в заливальщике настроки указывать, чтобы нана не перегружалась при заливке?

maksim
Offline
Зарегистрирован: 12.02.2012

Его можно выпаять и впаять обратно, НО если у вас есть термовоздушная станция.
У вас собственно два варианта:
1. Шить через UART;
2. Шить через ISP.

В обоих случаях необходимо выпаять с Наны конденсатор С4.

В первом случае все как вы написали, только Reset нужно припаять к одной из контактных площадок выпаянного конденсатора С4 через такой же или этот же конденсатор и в Нане не должно быть скейтча рабатающего с UART-ом.

Но я бы на вашем месте смотрел в сторону ISP, потому как тогда можно затереть загрузчик и МК будет быстро стартовать. В этом случае собираете программатор Mega-ISP.

alderArduino
Offline
Зарегистрирован: 13.02.2013

Спасибо за ответ.

Но хотелось бы без пайки, поскольку дле тестов (с nrf24) нужны обе ардуины, а постоянно запаивать и выпаивать кондер не здорово.

А зачем для заливки через ISP из наны кондер выпаивать, если я, по сути, наной передаю данные (hex) с компа в проминю?

И смотрю статью по ссылке: вариант соединить выводы Reset и +5V резистором номиналом порядка 120 Ом (оригинал здесь) - подойдет вместо выпайтки кондера?

maksim
Offline
Зарегистрирован: 12.02.2012

Чтобы Нана не перезагружалась. Кстати, можете вместо выпаивания конденсатора (в случае с ISP) поставить резистор на 100 Ом между RST и +5V.

alderArduino
Offline
Зарегистрирован: 13.02.2013

В общем рассказываю как:

 - в 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, но эт оне понадобилось.

maksim
Offline
Зарегистрирован: 12.02.2012

alderArduino пишет:

P.S. Ну и дейтсвительно, если  на ардуину нану меж Reset'ом и +5V воткнуть 120 Ом, она не перегружается при подклчении к USB, но эт оне понадобилось.

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

alderArduino
Offline
Зарегистрирован: 13.02.2013

Как я уже писал, неперегружаемость на "аппаратном" уровне, получается, не нужна - все и так прошиваетется "мимо" наны в прошиваемый МК.

alderArduino
Offline
Зарегистрирован: 13.02.2013

Обсыпаюсь пеплом - был неправ: при описанном мною способе прога льется таки в нану, а поскольку тестом был  блинк на 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-ой ногой, но не с той частотой, как я прошу в скетче  - то бишь не мой скетч работает.

Выручайте - совсем запутаюсь...

maksim
Offline
Зарегистрирован: 12.02.2012

Для начала опишите или лучше нарисуйте как подключаете.

alderArduino
Offline
Зарегистрирован: 13.02.2013

Да все так же как на рисунке по ссылке 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 Ом набрал из того что было)

ustas
Offline
Зарегистрирован: 12.03.2012

имхо, не хватает поправленного файла boards.txt 

alderArduino
Offline
Зарегистрирован: 13.02.2013

А что там должно быть? Я как раз вчера поправил в разделе Mini и ProMini (16MHz 5V) после первой ошибки.. убавил скорость для Seriala до 9600 - начало проливаться, но  вылезла вторая ошибка

alderArduino
Offline
Зарегистрирован: 13.02.2013

Там было так (у меня атмега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

Не уверен правильно ли сделал, номне показалось, что скорости везде должны быть одинаковые...

ustas
Offline
Зарегистрирован: 12.03.2012

 

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 - верните как было

maksim
Offline
Зарегистрирован: 12.02.2012

Либо ничего не поправляя во вкладке File -> Upload using programmer предварительно выбрав программатор ArduinoISP

alderArduino
Offline
Зарегистрирован: 13.02.2013

Да, вернул все настройки (boards.txt и programmers.txt) как было, у наны оставил подоткнутый резистор на 120Ом меж +5V и RST, залил через File -> Upload using programmer предварительно выбрав программатор ArduinoISP.

Все пролилось. Заработало. Заработали и радиомодули.

Всем спасибо!

P.S. 2 maksim: А чем отличается простая заливка от Upload using programmer?

maksim
Offline
Зарегистрирован: 12.02.2012

Простая, если указан бутлоудэр, будет пытаться прошить МК через этот самый бутлоудэр, Upload using programmer через указанный программатор.