Atmega168pa-au без кварца и RC цепи

Liberty_Prime
Offline
Зарегистрирован: 18.10.2013

Возникла потребность прошить Atmega168pa-au, без кварца и RC цепи, используя внутренний генератор.

Долго искал bootloader-ы для нее, но так и не нашел, подскажите, пожалуйста, может кто сталкивался...

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

зачем именно бутлоадер? будете в терминал что то отправлять?

MaksMS
Offline
Зарегистрирован: 11.03.2013

Причем тут терминал и загрузчик ? )

Вот конструктор http://homes-smart.ru/index.php/oborudovanie/arduino/avr-zagruzchik

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

MaksMS пишет:

Причем тут терминал и загрузчик ? )

Вот конструктор http://homes-smart.ru/index.php/oborudovanie/arduino/avr-zagruzchik

блин точно. туплю. не проснулся еще

Liberty_Prime
Offline
Зарегистрирован: 18.10.2013

2MaksMS Спасибо огромное, выиручил!)

2jeka_tm Устройство находится в разработке, плата разведена без разъема ISP, провода накинул сверху, не хотелось бы все время в процессе разработки мучится с Arduino Uno как ISP программатором)

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

так можно же нормальный программатор использовать USBASP но дело ваше

я юзаю мегу 8, и тратить память на бутлоадер не хочется

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

Liberty_Prime
Offline
Зарегистрирован: 18.10.2013

МБ кому пригодится...хотя хз:

В версии 1.0.5 в папке atmega есть бутлоадер ATmegaBOOT_168_atmega328.hex который подходит и для 168 и 328, что ясно из названия, но сайт с конструктором все-таки пригодился: с помощью калькулятора фьюзов выставил нужные фьюзы и все работает))

daniln
Offline
Зарегистрирован: 30.11.2015

Добрый день, я попытался прошить атмегу 168 с флюзами:

a168_8MHz.name=atmega168 (8 MHz) 
a168_8MHz.upload.protocol=arduino 
a168_8MHz.upload.maximum_size=15872 
a168_8MHz.upload.speed=115200 
a168_8MHz.bootloader.low_fuses=0xe2 
a168_8MHz.bootloader.high_fuses=0xde 
a168_8MHz.bootloader.extended_fuses=0x4 
a168_8MHz.bootloader.path=optiboot 
a168_8MHz.bootloader.file=
ATmegaBOOT_168_atmega328.hex 
a168_8MHz.build.mcu=atmega168 
a168_8MHz.build.f_cpu=8000000L 
a168_8MHz.build.core=arduino 
a168_8MHz.build.variant=standard 

bootloader зашился, но микросхема при этом все равно не работает. Зашивал обратно родной bootloader, все работает, а без кварца никак не могу запустить микросхему, уже 2 дня мучаюсь(

Прошу помочь...

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

фьюзы проверял в калькуляторе? там точно на внутреннем генераторе?

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

daniln, для 8 Мгц нужно делать свой бутлоадер.  А МаксаМС есть генератор

daniln
Offline
Зарегистрирован: 30.11.2015

Именно из вашей ссылки я и взял данные, калькулятор выдал значения и файлик hex. С файлом hex из калькулятора вообще не загружался bootloader, а с hex'ом ATmegaBOOT_168_atmega328.hex  все прошилось, но после прошивки не загружались по уарту.

Если нужно, могу написать полностью что я делал, но будет проще если подскажете как нужно.

В качестве ISP программатора использую другую ардуину. Родную прошивку ардуина спокойно зашивает.

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

daniln, Не понимаю фразу "С файлом hex из калькулятора вообще прозагружался bootloader"

daniln
Offline
Зарегистрирован: 30.11.2015

Исправил, автозамена заменила слово.

*не загружался

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

daniln. объясните толком. Что есть не загружался? Не заливался программатором или не проявлял признаков жизни после прошивки? Перечитайте фьюзы после заливки дудкой, точно ли сответствуют тем. что указаны в конструкторе.

daniln
Offline
Зарегистрирован: 30.11.2015

Ок, расскажу поэтапно что я делал:

В качестве программатора использую другую ардуину

В файл *:\Program Files (x86)\Arduino\hardware\arduino\avr\boards.txt добавляем 

a168_8MHz.name=atmega168 (8 MHz) 
a168_8MHz.upload.protocol=arduino 
a168_8MHz.upload.maximum_size=15872 
a168_8MHz.upload.speed=115200 
a168_8MHz.bootloader.low_fuses=0xe2 
a168_8MHz.bootloader.high_fuses=0xde 
a168_8MHz.bootloader.extended_fuses=0x4 
a168_8MHz.bootloader.path=optiboot 
a168_8MHz.bootloader.file=a168_8MHz_e2_de_4.hex 
a168_8MHz.build.mcu=atmega168 
a168_8MHz.build.f_cpu=8000000L 
a168_8MHz.build.core=arduino 
a168_8MHz.build.variant=standard 
 
Скачиваем файл a168_8MHz_e2_de_4.hex и копируем его в папку bootloaders
 
При запуске программы arduino т попытке загрузить загрузчик вылазит ошибка
Ошибка при записи загрузчика: пропущен параметр конфигурации 'bootloader.tool'
Копируем данный параметр из оригинального файла boards.txt
a168_8MHz.bootloader.tool=avrdude
Снова ошибка:
avrdude: invalid byte value ({bootloader.unlock_bits}) specified for immediate mode
Ошибка при записи загрузчика.
avrdude: read from file '{bootloader.unlock_bits}' failed
Снова копируем настройки их ориганального файла
a168_8MHz.bootloader.unlock_bits=0x3F
a168_8MHz.bootloader.lock_bits=0x0F
После этого плата прошилась... странно.
Обычно после прошивки загрузчика pro.mini 5V 16MHz обе платы синхронно мигали светодиодами. Сейчас нет.
При подаче питания несколько раз моргает синим диодом.
Теперь я пытаюсь залить скетч по UART и тут новая ошибка:
 
Плата a168_8MHz (платформа avr, пакет arduino) неизвестна
Ошибка компиляции.
 
И тут я не знаю что делать... 
 
 
dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

daniln, почему у вас часть строк a328 а часть a168 ? Попробуйте этот конфиг вставить:

##############################
atmega168.name=Arduino ATmega168  8MHZ int RC
atmega168.upload.protocol=arduino
atmega168.upload.maximum_size=15872
atmega168.upload.speed=115200
atmega168.bootloader.low_fuses=0xe2
atmega168.bootloader.high_fuses=0xde
atmega168.bootloader.extended_fuses=0x04
atmega168.bootloader.path=optiboot
atmega168.bootloader.file=a168_8MHz_e2_de_4.hex
atmega168.bootloader.unlock_bits=0x3F
atmega168.bootloader.lock_bits=0x0F
atmega168.bootloader.tool=avrdude
atmega168.build.mcu=atmega168
atmega168.build.f_cpu=8000000L
atmega168.build.core=arduino
atmega168.build.variant=standard

 

 

daniln
Offline
Зарегистрирован: 30.11.2015

Текст поправил, видимо промахнулся когда копировал, в общем у меня такие настройки

Загрузчик записался, но теперь не могу скетч залить, он даже не проверяется. Сразу появляется ошибка:

Плата a168_8MHz (платформа avr, пакет arduino) неизвестна
Ошибка компиляции.
 
Если вернуть обратно оригинальный файл boards.txt, то не получается зашить плату:
 
avrdude: stk500_recv(): programmer is not responding
Проблема загрузки в плату. Помощь по загрузке: http://www.arduino.cc/en/Guide/Troubleshooting#upload .

 

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

протокол Arduin )))

daniln
Offline
Зарегистрирован: 30.11.2015

Исправил, не помогло. Вот как выглядит дело с файлом настройками из калькулятора

А вот как выглядит все это, если взять оригинальный файл boards.txt и подправить фьюзы для моей платы

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

daniln, я не понял, вы попробовали конфиг из  #15 ?

daniln
Offline
Зарегистрирован: 30.11.2015

Пробовал. Все равно:

Плата a168_8MHz (платформа avr, пакет arduino) неизвестна
 
Ошибка компиляции.
dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

daniln пишет:

Пробовал. Все равно:

Плата a168_8MHz (платформа avr, пакет arduino) неизвестна
 
Ошибка компиляции.

Такого сообщения не может быть хотя бы потому, что в моем конфиге плата называется по другому. Короче вы ничего не пробывали. Раз не нужны советы, разбирайтесь самостоятельно.

daniln
Offline
Зарегистрирован: 30.11.2015

Скажите мне пожалуйста, чем отличаются конфиги кроме названия?

Ваши:

atmega168.name=Arduino ATmega168  8MHZ int RC
atmega168.upload.protocol=arduino
atmega168.upload.maximum_size=15872
atmega168.upload.speed=115200
atmega168.bootloader.low_fuses=0xe2
atmega168.bootloader.high_fuses=0xde
atmega168.bootloader.extended_fuses=0x04
atmega168.bootloader.path=optiboot
atmega168.bootloader.file=a168_8MHz_e2_de_4.hex
atmega168.bootloader.unlock_bits=0x3F
atmega168.bootloader.lock_bits=0x0F
atmega168.bootloader.tool=avrdude
atmega168.build.mcu=atmega168
atmega168.build.f_cpu=8000000L
atmega168.build.core=arduino
atmega168.build.variant=standard

Мои:

a168_8MHz.name=atmega168 (8 MHz) 
a168_8MHz.upload.protocol=arduino 
a168_8MHz.upload.maximum_size=15872 
a168_8MHz.upload.speed=115200 
a168_8MHz.bootloader.low_fuses=0xe2 
a168_8MHz.bootloader.high_fuses=0xde 
a168_8MHz.bootloader.extended_fuses=0x04 
a168_8MHz.bootloader.path=optiboot 
a168_8MHz.bootloader.file=a168_8MHz_e2_de_4.hex 
a168_8MHz.build.mcu=atmega168 
a168_8MHz.build.f_cpu=8000000L 
a168_8MHz.build.core=arduino 
a168_8MHz.build.variant=standard 

a168_8MHz.bootloader.tool=avrdude
a168_8MHz.bootloader.unlock_bits=0x3F
a168_8MHz.bootloader.lock_bits=0x0F

a168_8MHz.build.board=AVR_PRO
a168_8MHz.build.core=arduino
a168_8MHz.build.variant=standart

a168_8MHz.upload.tool=avrdude
a168_8MHz.upload.protocol=arduino

Я прошу помощи, а Вы меня обвиняете. 

Вот, я специально для Вас сделал тоже самое с вашим кодов, как ни странно, ничего не изменилось...

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

daniln, судя по скришоту у вас новая версия IDE, в ней много всего наменяли. Данный  конфиг для более старых версий.

daniln
Offline
Зарегистрирован: 30.11.2015

Ок, сейчас попробую с 1.0. Спасибо.

daniln
Offline
Зарегистрирован: 30.11.2015

Попробовал с кодом из сообщения #15 через программу Arduino 1.0.5

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

Размер скетча в двоичном коде: 4 696 байт (из 15 872 байт максимум)
avrdude: stk500_getsync(): not in sync: resp=0x00
dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

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

PS: попробуйте вот этот бутлоадер, конфиг можно оставить мой, только скорость на 57600 поменять.

daniln
Offline
Зарегистрирован: 30.11.2015

Ура! Свершилось!

Ваш бутладер работает, огромное спасибо!

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