прошивка бутлоадера

strannic1
Offline
Зарегистрирован: 16.02.2016

Добрый вечер. Админы если тема не в нужном разделе - просьба не пинать. Возникла проблема. имееться в наличии и используеться ардуина nano. все работает. захотелось поконструировать ... (изготовить копию ардуины.) сделал печатку,распоял детали. считал программатором бут и фьзы из Nano... перелил все это в новую плату .... подключил к компу - и тут засада - в новую плату напрочь отказались заливаться скетчи....вопрос - где допустил ошибку? Заранее спасибо

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

strannic1, где угодно. Есть 1001 способ как допустить ошибку делая самому ардуино, очевидно что вы воспользовались одним из них :)

strannic1
Offline
Зарегистрирован: 16.02.2016

я понимаю что ошибок может быть МНОГО. но после того как просидел с платой неделю (проверка монтажа,и прочего ) пришел к заключению что напортачил с прошивкой контроллера.Поскольку здесь на фоуме собрались люди которые ДЕЙСТВИТЕЛЬНО разбираються в данном вопросе прошу помощи. судя по всему бут лоадер есть в наличии в папке с софтом ардуино. вопрос - как правильно выставить fuse биты при прошивке нового контроллера? Заранее спасибо

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

strannic1, вы удивитесь, но в ардуино всё сделано для того, чтобы вообще не думать про фузы и бутлоадеры. Если у вас есть программатор (или другая ардуина с залитым скетчем программатора) просто выбираете в меню ту плату, загрузчик кторой зашиваете, выбираете программатор, и "записать загрузчик". И всё что нужно пропишется автоматом.

strannic1
Offline
Зарегистрирован: 16.02.2016

это я уже понял. не поделитесь ссылкой на инструкцию как и что сделать?

Штирлиц
Штирлиц аватар
Offline
Зарегистрирован: 13.06.2015

strannic1 пишет:

это я уже понял. не поделитесь ссылкой на инструкцию как и что сделать?

ССЫЛКА ТУТ!

strannic1
Offline
Зарегистрирован: 16.02.2016

спасибо! буду изучать. но на всяки случай может кто подскажет fuse биты?

bwn
Offline
Зарегистрирован: 25.08.2014

strannic1 пишет:

спасибо! буду изучать. но на всяки случай может кто подскажет fuse биты?

они в board.txt прописаны для каждой платы-версии.

Да, и в списке разделов на строчку выше никак не подняться?

Тарас Петрович
Offline
Зарегистрирован: 21.11.2015

Тут же вопрос: если взять штатную мегу 328 из уно, подключить программтор и всё из неё прочитать (три памяти и фьюзы), а потом тем же программатором залить это в купленную пустую мегу328, в ней бутлоадер появится?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

да нет никакого смысла в этом. просто записываешь загрузчик и все. ставил ли ты кварц?

а как проверяшь работоспособность? просто в нано есть переходник usb-aurt. ты у себя тоже его сделал?

bwn
Offline
Зарегистрирован: 25.08.2014

Тарас Петрович пишет:

Тут же вопрос: если взять штатную мегу 328 из уно, подключить программтор и всё из неё прочитать (три памяти и фьюзы), а потом тем же программатором залить это в купленную пустую мегу328, в ней бутлоадер появится?

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

bwn
Offline
Зарегистрирован: 25.08.2014

Тема вроде профильная и оба в ней отметились. Вопросы к jeka_tm и dimax. Залил через ISP UNO-вский загрузчик в 328P-PU. Лил на внутренний 8мГц генератор.  В board.txt установил fuse E2 DE 05 и исправил на 8 000 000. В целевой плате работает, тайминги отрабатывает корректно. НО, если пытаюсь поставить в ардуиновскую плату и залить через USB, нет синхронизации 00, это первая ошибка. Вторая, перестал работать WDT, на том же загрузчике под кварц работает вполне корректно. Здесь виснет уже в setup на конструкции:

  wdt_disable(); //Отключить собаку
  delay(2000);
 
  wdt_enable(WDTO_2S); // Взвести собаку на 2 секунды
 

В чем накосячил? Заранее благодарю.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

если внутренний генератор там врядли таже скорость загрузки. хотя у меня работало на 115200. но глючило периодически. перешел на 38400

bwn
Offline
Зарегистрирован: 25.08.2014

jeka_tm пишет:

если внутренний генератор там врядли таже скорость загрузки. хотя у меня работало на 115200. но глючило периодически. перешел на 38400

А она где меняется?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

ну это бутлоадер должен быть изначально. вот то что я использую

##############################################################

atmega328_8mhz.name=Atmega328 (3.3V, 8 MHz internal E2 DE 05)

atmega328_8mhz.upload.protocol=arduino
atmega328_8mhz.upload.maximum_size=30720
atmega328_8mhz.upload.speed=38400

atmega328_8mhz.bootloader.low_fuses=0xE2
atmega328_8mhz.bootloader.high_fuses=0xDE
atmega328_8mhz.bootloader.extended_fuses=0x05
atmega328_8mhz.bootloader.path=set
atmega328_8mhz.bootloader.file=optiboot_atmega328_8mhz.hex
atmega328_8mhz.bootloader.unlock_bits=0x3F
atmega328_8mhz.bootloader.lock_bits=0x0F

atmega328_8mhz.build.mcu=atmega328p
atmega328_8mhz.build.f_cpu=8000000L
atmega328_8mhz.build.core=arduino:arduino
atmega328_8mhz.build.variant=arduino:standard

бутлоадер

bwn
Offline
Зарегистрирован: 25.08.2014

jeka_tm, благодарю, но продолжу вопросы, хочу понять. У тебя указано: upload.maximum_size=30720, это для загрузчика на 2К. А HIGH fuse - DE по калькулятору, на который ссылку приводил, это BOOT Flash section size = 256 Words. Одно слово это 2 байта или я что то неправильно понимаю?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

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

bwn
Offline
Зарегистрирован: 25.08.2014

jeka_tm пишет:

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

Оки, попробую попозже.

Теперь бы еще Dimax, про собаку рассказал))))

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

bwn, а откуда дровишки то, в смысле бут? Я бы посоветовал взять из надёжного источника  https://github.com/Optiboot/optiboot/tree/master/optiboot/bootloaders/optiboot   там же и правильные блоки для boards.txt проживают.

bwn
Offline
Зарегистрирован: 25.08.2014

dimax пишет:

bwn, а откуда дровишки то, в смысле бут? Я бы посоветовал взять из надёжного источника  https://github.com/Optiboot/optiboot/tree/master/optiboot/bootloaders/optiboot   там же и правильные блоки для boards.txt проживают.

Брал родной из IDE 1.0.6, но как ранее написал, если прошиваю им же, но под 16 мГц кварц - FF DE 05, она работает.((((

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

bwn,  не совсем понял, что значит им-же? Буты для 8 и 16 МГц разные. А на 8-МГц только один для промини кажется. Он и старый очень и с собакой не работал. В общем по ссылке то что нужно, свежие оптибуты без особых проблем с чем либо..

bwn
Offline
Зарегистрирован: 25.08.2014

dimax пишет:

bwn,  не совсем понял, что значит им-же? Буты для 8 и 16 МГц разные. А на 8-МГц только один для промини кажется. Он и старый очень и с собакой не работал. В общем по ссылке то что нужно, свежие оптибуты без особых проблем с чем либо..

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

P/S, а почему все, что к собаке не относится, корректно работает? millis, I2C на 1602 и пр.? Или загрузчик для нее что то конфигурирует?

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

bwn пишет:

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

Судя по размеру у него старый бут. Зачем время тратить? бери сразу новый.

bwn пишет:

P/S, а почему все, что к собаке не относится, корректно работает? millis, I2C на 1602 и пр.? Или загрузчик для нее что то конфигурирует?

да, бутлоадер же использует вотчдог в своих целях. Тут можно подробнее почитать

bwn
Offline
Зарегистрирован: 25.08.2014

dimax, пасибки, буду изучать.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

не скажи. новые они все практически на 115200. а при такой связи периодически появляются глюки. я не просто так перешел на этот бутлоадер

strannic1
Offline
Зарегистрирован: 16.02.2016

итак пытки платы продолжаються. вылетает такая вот ошибка.

strannic1
Offline
Зарегистрирован: 16.02.2016

админы - тему можно закрывать. с проблемой клона - разобрался. все работает.Всем помогавшим СПАСИБО! 

bwn
Offline
Зарегистрирован: 25.08.2014

strannic1 пишет:

админы - тему можно закрывать. с проблемой клона - разобрался. все работает.Всем помогавшим СПАСИБО! 

Так уж поведай, что было, как победил? Форум все таки весчь общественная, хоть тему поднимает и индивидуум.))))

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Некрасиво как-то за спасибо.
Грабли в студию.

strannic1
Offline
Зарегистрирован: 16.02.2016

грабли оказались в сборке.... там с ft232 на сброс атмеги идет сигнал при начале заливки скетча. так вот там вместо кондера - стоял резюк... замена его на кондер номналом 0,1 мкф решило проблему заливки скетчей. Заливка будтов программатором из комплекта софта - успеха не принесло. скорее всего нужно было както поправить board.txt - инфы пока не нашол но в поиске)   копия дампа из рабочей nano - работает. если нужно - выложу дамп прошивки и фьюзы. Еще раз всем спасибо! 

bwn
Offline
Зарегистрирован: 25.08.2014

Отписываюсь, как обещал. Позаливал разные загрузчики. Вариант от jeka_tm заработал сразу. Все заливается через USB в камень, WDT работает.

По ссылке dimax присутствуют два  на 8мГц, в наименовании обоих есть "pro". По врожденному языковому дебилизму не смог обнаружить секций для board.txt, правил сам по образу и подобию. Ни один не взлетел. Грешу больше на себя.((((

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

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

bwn
Offline
Зарегистрирован: 25.08.2014

dimax, спасибо, потом попробую еще раз. Вроде все правильно прописывал. В секциях boards.txt, смутило, что все fuse указаны для внешнего кварца, я когда пробовал, естественно указывал внутренний. Здесь никакой засады быть не может?

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

bwn, да вроде есть и  c внутренним RC..

optiboot28.menu.mhz.16MHz=16MHz
optiboot28.menu.mhz.16MHz.upload.speed=115200
optiboot28.menu.mhz.8MHz=8MHz (int)
optiboot28.menu.mhz.8MHz.build.f_cpu=8000000L
optiboot28.menu.mhz.8MHz.bootloader.low_fuses=0xE2
optiboot28.menu.mhz.8MHz.upload.speed=57600
optiboot28.menu.mhz.1MHz=1MHz (int)
optiboot28.menu.mhz.1MHz.build.f_cpu=1000000L
optiboot28.menu.mhz.1MHz.bootloader.low_fuses=0x62
optiboot28.menu.mhz.1MHz.upload.speed=9600

но судя по всему для всех этих вариантов нужно отдельно компилить..

bwn
Offline
Зарегистрирован: 25.08.2014

Тоже склоняюсь, что не все так просто, потом поковыряю. ))))