Duino на внутреннем резонаторе, может комуто будет полезно.

Mogalkov
Offline
Зарегистрирован: 23.06.2011

Duino на внутреннем резонаторе, может комуто будет полезно.
Чем удобна ардуина? Кроме простоты прототипирования основным удобством является язык программировани с кучей библиотек. Но готовить конечное устройство на плате ардуино дорого и не очень удобно. Ради уменьшения цены и размеров можно избавиться от многих деталей, в том числе и от кварцевого резонатора. В конце-концов для работы минимальной обвязкой является сам микроконтроллер и питание. Конечно внутренний резонатор контроллера не особо точен, да и частота всего 8МГц, но для многого хватит и этого.

Первое что понадобится для того чтобы избавитья от кварца – это дописать в ардуино иде файл .\arduino-0022\hardware\arduino\boards.txt
Фьюзы высчирывал вот этим калькулятором: http://www.engbedded.com/fusecalc/
Простым способом, сначала забил в него старые фьюзы контроллера (взять можно из того-же boards.txt), получив набор параметров микроконтроллера просто поменял строку Ext. Crystal Osc. На Int. RC Osc. 8Mhz default value И прочитал там новые фьюзы где вводил старые.
#пример для ATmega168
#Я не стал ничего придумывать, я просто скопировал кусок
#для ардуины про мини, переименовал его и поменял фьюзы.
##############################################################
pro.name=MyName duino int8 MHz ATmega168
pro.upload.protocol=arduino
pro.upload.maximum_size=14336
pro.upload.speed=19200
# Поменял эти 3 строки
pro.bootloader.low_fuses=0xE2
pro.bootloader.high_fuses=0xDD
pro.bootloader.extended_fuses=0xF8
#
pro.bootloader.path=atmega
pro.bootloader.file=ATmegaBOOT_168_pro_8MHz.hex
pro.bootloader.unlock_bits=0x3F
pro.bootloader.lock_bits=0x0F
pro.build.mcu=atmega168
#И поменял эту строку
pro.build.f_cpu=8000000L
#
pro.build.core=arduino
pro.build.variant=standard

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

После доработки файла boards.txt, запустил ардуино, выбрал появившуюся в платах MyName duino int8 MHz ATmega168.
Для проверки использовал blink, но стандартный 13 было не интересно, поправил на 0 (это 2й вывод микроконтроллера в пдип корпусе). Скомпилировал с зажатым шифтом чтобы узнать куда ложится хекс файл и прошил вот по этой инструкции: http://freeduino.ru/arduino/isp.html Но используя новые фьюзы.
Надо учесть что если контроллер уже прошивался раньше, то первую прошивку фьюзов в него надо производить с тем кварцем с которым он раньше был.
Соответствие выводов для разъема ХЗ дуины, микросхемы ft232 и контроллера ATmega168-20PU (ATmega328-20PU)
X3 - ft232 - ATmega168-20PU
1 - CTS(pin11) - MISO (pin18)
2 - DSR(pin9) - SCK (pin19)
3 - DCD(pin10) - MOSI (pin17)
4 - R(pin6) - RESET (pin1)

 

NooBAsTiK
Offline
Зарегистрирован: 16.09.2011

Я прочел и нифига не понял :)

Mogalkov
Offline
Зарегистрирован: 23.06.2011

  В папке ардуины в подпапках \hardware\arduino\ есть файл boards.txt, он отвечает за параметры той дуины которую ты выбрал. Параметры в основном зависят от процессора, фьюзов выставленных для этого процессора и частоты на которой этот процессор работает. Напряжение (в действительности не напряжение питания а напряжения HIGH), а также внешний кварц или внутренний резонатор использовать зависит от фьюзов которые зашиваются в процессор (фьюзы или fuse bits определяют кучу параметров но в данном случае интересны именно частота и напряжение). Соответственно чтобы поменять частоту  и напряжение нужно поменять фьюзы в файле boards.txt просто добавив туда кусок как новую плату ардуино. А так как микроконтроллер не менялся то достаточно скопировать кусок с подобного контроллера и поменять параметры фьюзов и частоты.

NooBAsTiK
Offline
Зарегистрирован: 16.09.2011

А программировать то её так же как и обычную ардуину или же с помощью вот фьюзов?!

Mogalkov
Offline
Зарегистрирован: 23.06.2011

 Программировать или с помощью программатора, или если контроллер в дип корпусе воткнуть в обычную дуину и программировать как обычную.

12sd
Offline
Зарегистрирован: 04.08.2011

 спасибо, это действительно полезно.

ведь так можно писать программы на МК не на асме или голых сях, а на удобном Wiring-е.

автору респект!

а еще расскажи, как прошить самодельную ардуино (аналог duemilanove) программматором громова.

просто мне как новичку надо что бы кто-то один раз потыкал пальцем и показал, что и откуда брать в даташите, а 

дальше я сам)

заранее спасибо!

Mogalkov
Offline
Зарегистрирован: 23.06.2011

12sd пишет:

а еще расскажи, как прошить самодельную ардуино (аналог duemilanove) программматором громова.

просто мне как новичку надо что бы кто-то один раз потыкал пальцем и показал, что и откуда брать в даташите, а 

дальше я сам)

заранее спасибо!

Программатором громова никогда не пользовался, нет ком порта.

Вроде про него неплохо написано тут: easyelectronics.ru/avr-shag-pervyj-programmator.html

Сам пользовался таким (как в первой схеме, без буфера): easyelectronics.ru/skorostnoj-avr-usb-programmator-na-ft232rl-bez-vspomogatelnogo-kontrollera.html#more-268

Но общий принцип такой прошивки один:

1) у контроллера есть ножки MISO MOSI SCK RESET GND их узнать можно по даташиту на контроллер и подсоединить к соответствующим выводам программатора.

2) Нужна программа для прошивки, вариантов много, но я предпочитаю AVRDUDE

3) Нужен хекс файл с прошиваемой программой, например Ардуино при компиляции скетча такой создает, узнать где он лежит можно нажав кнопку компиляции с зажатым шифтом (кроме ардуино 1.0, у нее это ставится в настройках)

4) Нужно знать фьюзы прошиваемого контроллера, их можно посчитать самому или если это ардуиноподобный проект - посмотреть в файле boards.txt (хранится в каталоге ардуины, в подкатологах)

5)Прошивать с аврдуде, сначала фьюзы, затем программу. Для удобства можно взять AVRDUDE-GUI

(скачать можно тут yuki-lab.jp/hw/avrdude-GUI/avrdude-GUI-1.0.5.zip или тут www.geocities.jp/arduino_diecimila/bootloader/files/avrdude-GUI-1.0.5.zip)

Mogalkov
Offline
Зарегистрирован: 23.06.2011

Вот выложил видео на ютубе как это работает:

www.youtube.com/watch

ABC
Offline
Зарегистрирован: 08.10.2011

 Здравствуйте,вопрос.А на сколько сложно будет "внедрить" в среду Мегу8? Ну т.е чтоб в меню в списке появилось что-то типа  Ардуина8-8мГц. Если я правильно понимаю,то все дело в Фюз битс.Т.е можно сделать по аналогии с Вашим примером?

  

Mogalkov
Offline
Зарегистрирован: 23.06.2011

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

leshak
Offline
Зарегистрирован: 29.09.2011

 Добавлю еще такую "хитрость". Если у вас уж есть "полноценна" ардуина, то программатор горомова (и проч.) собирать не обязательно. Ардуина тоже может выступать в роли программатора. Для этогоЖ

1. В нее нужно зашить скетч ArduinoISP (идет в примерах с ArduinoIDE).

2. Подключить ваш кристал к ардуине как показано на http://arduino.cc/en/Tutorial/ArduinoISP,  

3. в boards.txt, в раздел описаный в первом сообщении дописать строчку (дополнительно к тому что привел Mogalkov):
pro.upload.using=arduinoisp

После этого скетч в кристал будет заливаться использую ардуину в качестве программатора, просто по нажатию кнопки Upload. Без необходимости искать "куда ложится хекс файл" и узнавания что "такое avrdude" и т.п.

P.S. После изменений boards.txt нужно перезапустить ArduinoIDE. 

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

 Есть несколько микроконтроллеров формата Ардуино (DIP-корпуса в панельках). Есть несколько микросхем Атмега 168, 328 (прошиты загрузчики). 

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

А вот теперь вопрос: хочу заставить одну из своих поделок работать без кварцевого резонатора (как раз по теме обсуждения). Можно ли просто повторить то, что описано с файлом boards.txt и добавить туда соответствующую "плату" и просто прошить микросхему так же, как я описал чуть выше? Будет прошиваться? После установки на монтажную плату "взлетит" без кварца?

Или все-таки шить через ArduinoISP и подключать Ардуино к макетке, на которой установлен "прошиваемая" Атмега?

leshak
Offline
Зарегистрирован: 29.09.2011

 Практически уверен что это дело вкуса. Нравится прошивать в панельках и не смущает необхомость дергать туда-сюда "родную" - можно в панельках, нравится уже установленную на макетке - можно через ArduinoISP.

Вообщем способ прошивания не должен влиять на дальнейший полет и то куда будет установлен камень. Ключевыми тут будут именно правильные фьюзы.

 

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

Ммм.. проблемка нарисовалась.

Изменения в boards.txt полностью соответствуют тому, что выше приведено в топике:

01##############################################################
02pro.name=MyName duino int8 MHz ATmega168
03pro.upload.protocol=arduino
04pro.upload.maximum_size=14336
05pro.upload.speed=19200
06# Поменял эти 3 строки
07pro.bootloader.low_fuses=0xE2
08pro.bootloader.high_fuses=0xDD
09pro.bootloader.extended_fuses=0xF8
10#
11pro.bootloader.path=atmega
12pro.bootloader.file=ATmegaBOOT_168_pro_8MHz.hex
13pro.bootloader.unlock_bits=0x3F
14pro.bootloader.lock_bits=0x0F
15pro.build.mcu=atmega168
16#И поменял эту строку
17pro.build.f_cpu=8000000L
18#
19pro.build.core=arduino
20pro.build.variant=standard
21 
22##############################################################

Прошиваю камень в iteaduino v1.1 (вставляю 168 чип в панельку и шью соответствующим образом). Прошивка работает (проверял так - прошивал "блинк" с выбором "duemilanove atmega168"- вижу, как моргает светодиод. Потом шил тот же "блинк" с выбором этой новой платы "8МГц, атмега 168" - светодиод моргает, но явно с другой частотой - на вид примерно вдвое чаще, чем в первом случае). Т.е. прошиваем вроде как правильно.

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

Обнаружены следующие грабли:

1. Если чип прошиваем как обычный (с кварцем) и ставим его в макетку, где кварц установлен - все работает нормально.

2. Если чип шьем как с "внутренним осциллятором" и ставим на макетку, где кварц еще не убран - все работает нормально.

3. Если чип шьем как с "внутренним осциллятором" и ставим на макетку, где кварц уже убран (вместе с конденсаторами) - не работает.

Может, кто-то подскажет, почему так? как правильно прошить чип, чтобы он работал без кварца? Может, ноги для кварца при этом надо как-то коммутировать? (вроде как везде видел в схемах - они просто висят в воздухе)?

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

http://arduino.cc/en/Tutorial/ArduinoToBreadboard - вот еще какую ссылку нашел... но тут на картинках 168, в описании - 328 атмега... и файл с конфигурацией тоже для 328 атмеги... 

Помогите, как в этот файл добавить "минимальную" конфигурацию для 186 атмеги?

Кстати, еще интересно - в этой "минимальной" конфигурации даже резистор в 10к между reset и VCC предлагается выбросить для получения "truly minimal configuration"... а у меня эта минимальная конфигурация ну никак "взлетать" не хочет и я даже не представляю, в какую сторону копать :(

Есть мысли?

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

 Не выходит цветок каменный :( нужна помощь.

Дано:

1. Плата iteaduino на базе атмега328 (в нее прошит скетч ArduinoISP, между Reset и GND установлен конденсатор на 10мкФ)

2. собран кабель согласно http://freeduino.ru/arduino/isp.html (раздел Mega-ISP)

3. "подопытная" плата - ардуино нано v3.0 (тоже на базе атмеги328)

4. в файле boards.txt сделан вот такой раздел:
 

01atmega328isp.name=Arduino Duemilanove w/ ATmega328 (ISP)
02 
03atmega328isp.upload.protocol=arduino
04atmega328isp.upload.maximum_size=30720
05atmega328isp.upload.speed=19200
06atmega328isp.upload.using=arduinoisp
07 
08atmega328isp.bootloader.low_fuses=0xFF
09atmega328isp.bootloader.high_fuses=0xDA
10atmega328isp.bootloader.extended_fuses=0x05
11atmega328isp.bootloader.path=atmega
12atmega328isp.bootloader.file=ATmegaBOOT_168_atmega328.hex
13atmega328isp.bootloader.unlock_bits=0x3F
14atmega328isp.bootloader.lock_bits=0x0F
15 
16atmega328isp.build.mcu=atmega328p
17atmega328isp.build.f_cpu=16000000L
18atmega328isp.build.core=arduino
19atmega328isp.build.variant=standard

Данные взяты от платы Arduino Duemilanove w/ ATmega328, изменена скорость прошивки на 19200 и добавлена строчка о том, что использовать для прошивки arduinoisp. Все остальные параметры оставлены без изменений.

Требуется:

 Прошить подопытную плату с помощью ардуинки.

Текущее положение дел:

1. Берем "блинк"

2. В качестве порта для коммуникации выбираем тот порт, к которому подключена плата с ArduinoISP

3. В качестве "платы" выбрана новосозданная Arduino Duemilanove w/ ATmega328 (ISP)

4. Нажимаем Upload 

5. Видим, как на плате ArduinoISP моргают светодиоды RX/TX (видно, что моргают заметно медленнее, чем обычно - оно и понятно, скорость-то понизили)

6. На прошиваемой плате видим помаргивание светодиода на D13 (только в процессе прошивки). RX/TX на прошиваемой плате - молчат.

7. в окне с отладочными данными выходят следующие строчки:
 

1Binary sketch size: 1026 bytes (of a 30720 byte maximum)
2avrdude: stk500_initialize(): programmer not in sync, resp=0x15
3avrdude: stk500_initialize(): programmer not in sync, resp=0x15
4avrdude: verification error, first mismatch at byte 0x0100
5         0x8d != 0x85
6avrdude: verification error; content mismatch

 

 и прошивка, конечно, не удалась. 

Что делаю неправильно? В каком месте накосячил?

leshak
Offline
Зарегистрирован: 29.09.2011

 По описанию выглядить все правильно. Немного лень вчитываться в вашу статью, сравните подключение с http://arduino.cc/en/Tutorial/ArduinoISP

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

так же, где-то натыкался, что какие-то ревизи UNO (я так понял у вас ее аналог) - имеют баг в бутлоадере, из-за которого скетч ArduinoISP не корректно работает и нужно вначале прошить фиксаный бутлоадер.

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

 Подключение полностью соответствует туториалу.

Про бутлоадер - попробую. с ним явно могут быть проблемы (мы уже общались на эту тему - сторожевой таймер именно на этой плате не срабатывал). Попробую беспроблемную нано сделать программатором и прошить или голый чип с кварцем (или тиньку, благо приобрел пару штучек).. а вообще цель - отработать технологию прошивки и уже нормально шить платы: http://devicter.ru/goods/Iteaduino-GBoard-V1-0-ATmega и http://devicter.ru/goods/Iteaduino-Iboard

Кстати, может, кто-то имел дело с этими платами? 

 

Еще вариант - сгородить преобразователь  USB-COM и шить с его помощью.. но это доп.корпус (и его еще нужно купить).

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

Новые данные.

Ардуино Нано в качестве программатора Ардуино ISP замечательно сработал для tiny45. Правда, сработало только после того, как воспользовался вот этим советом:

1Note for Arduino 1.0: you need to make one small change to the ArduinoISP code. Find the line in the heartbeat() function that says "delay(40);" and change it to "delay(20);"

Т.е. программатор работает.

А теперь опять неудача:

Пытаюсь залить обычный блинк в "дочернюю" плату (аналог Arduino Duemilanove w/ ATmega328 (ISP)). Параметры для платы приводил в 15 постинге этого обсуждения.

Компилируется, но не заливается :( 

Ошибки вот такие:

1Binary sketch size: 1026 bytes (of a 30720 byte maximum)
2avrdude: stk500_initialize(): programmer not in sync, resp=0x15
3avrdude: stk500_initialize(): programmer not in sync, resp=0x15
4avrdude: verification error, first mismatch at byte 0x0002
5         0x61 != 0x60
6avrdude: verification error; content mismatch

Куда копать?

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

Нашел решение!!!

В файле с определением "платы" надо поправить вот так:

1#atmega328isp.upload.protocol=arduino
2atmega328isp.upload.maximum_size=30720
3atmega328isp.upload.speed=19200
4atmega328isp.upload.using=arduino:arduinoisp

После этого скетч спокойно залился в "дочернюю" платку!

Zaliv
Offline
Зарегистрирован: 05.03.2011

Спасибо, очень позновательно. Я как раз присматриваюсь к tiny45

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

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

Захотелось запустить это все на внутреннем резонаторе (кварца же нет;)). 

В файл boards.txt вношу секцию как в первом посте (продублирую):

Прошиваю голую (без обвязки, но с бутлоадером) 168 микросхему сначала с кварцем (позаимоствовал с другой макетки, где другая "поделка" ждет своего часа): "блинк". Моргает. 

Теперь выбираю эту "модифицированную" плату - шьется нормально, моргает в два раза чаще. Ну, изменения есть, шьется, моргает. Хорошо.

Снимаю питание с контроллера, вынимаю из макетки кварц и его конденсаторы. Включаю и "Индейское национальное жилище. Фиг-вам, называется" (с) 

Пробую прошить уже без кварца - все, не шьемся. 

Возвращаю кварц и конденсаторы - заморгали частенько, шьемся. 

 

Как быть? что делаю не так, чтобы запустить 168 без кварцевого резонатора?

МК - ATMEGA168-20PU 

leshak
Offline
Зарегистрирован: 29.09.2011

Вот родственная тема http://arduino.ru/forum/apparatnye-voprosy/bootloader-v-atmega8l

Я на внутренем atgema8l шил.

Но, таки пришлось через online калькулятор расшифровывать фьюзы и подбирать "правиьлные".

И еще, а что значит "шьется нормально"? Вы учитываете что сами фьюзы в него выставляются только в момент заливки бутлоадера? (если через ArduinoIDE, а не самому дудку дергать)

То есть, если вы просто выбрали "другую" плату и залили скетч - фьюзы не обновятся. И как работало на внешнем кварце - так и останется.

Так что "нужно выбрать плату, залить бутлоадер...." и вот с этого момента она станец "бескварцевой".

Если вы пойдете в File/Preferences и включите Show verbose... upload, то увидите что при заливке скетчей - фьюзы даже не мелкают в параметрах вызова AvrDude

 

 

 

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

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

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

Прошил :) теперь камень перестал шиться совсем :(

Что с кварцем, что без него :( Последнее, что залилось - вот на этой ккконфигурации:

01##############################################################
02 
03lopowerisp.name=Arduino Ultru Low-Power (<2.4V, 8 MHz) w/ ATmega168 (ISP)
04  
05lopowerisp.upload.protocol=arduino
06lopowerisp.upload.maximum_size=14336
07lopowerisp.upload.speed=19200
08lopowerisp..upload.using=arduino:arduinoisp
09  
10lopowerisp.bootloader.low_fuses=0xFF
11lopowerisp.bootloader.high_fuses=0xDA
12lopowerisp.bootloader.extended_fuses=0x06
13lopowerisp.bootloader.path=atmega
14lopowerisp.bootloader.file=ATmegaBOOT_168_pro_8MHz.hex
15lopowerisp.bootloader.unlock_bits=0x3F
16lopowerisp.bootloader.lock_bits=0x0F
17  
18lopowerisp.build.mcu=atmega168
19lopowerisp.build.f_cpu=8000000L
20lopowerisp.build.core=arduino:arduino
21lopowerisp.build.variant=arduino:standard

 

Теперь ни через ISP ни через программатор на FT232RL не шьется. 

Ругань обычная: avrdude: stk500_getsync(): not in sync: resp=0x00

Какие варианты по восстановлению?

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

оживил, камень снова работает! (живучий!)

теперь бы понять, все-таки, какая правильная конфигурация для 168 с внутренним осциллятором?

При попытке прошиться через ArduinoISP со следующей конфигурацией:

01##############################################################
02proisp.name=MyName duino int8 MHz ATmega168 (ISP)
03proisp.upload.protocol=arduino
04proisp.upload.maximum_size=14336
05proisp.upload.speed=19200
06proisp.upload.using=arduino:arduinoisp
07 
08proisp.bootloader.low_fuses=0xE2
09proisp.bootloader.high_fuses=0xDD
10proisp.bootloader.extended_fuses=0xF8
11 
12proisp.bootloader.path=atmega
13proisp.bootloader.file=ATmegaBOOT_168_pro_8MHz.hex
14proisp.bootloader.unlock_bits=0x3F
15proisp.bootloader.lock_bits=0x0F
16proisp.build.mcu=atmega168
17 
18proisp.build.f_cpu=8000000L
19 
20proisp.build.core=arduino:arduino
21proisp.build.variant=arduino:standard

В общем-то, конфигурация из первого поста, только указано, что программатором будет ArduinoISP

1proisp.upload.using=arduino:arduinoisp

Вылетает оошибка:

 

 ***failed;  

 

avrdude: verification error, first mismatch at byte 0x0000
         0xf8 != 0x00
avrdude: verification error; content mismatch
 
Куда копать дальше?
spa-sam
Offline
Зарегистрирован: 14.12.2012

Я прошил несколько микросхем с такой вот конфигой...работает безупречно...

01fabduino.name=Fabkit/Fabduino w/ ATmega168 (internal clock)
02 
03fabduino.upload.protocol=stk500
04fabduino.upload.maximum_size=14336
05fabduino.upload.speed=19200
06 
07fabduino.bootloader.low_fuses=0xe2
08fabduino.bootloader.high_fuses=0xdd
09fabduino.bootloader.extended_fuses=0x00
10fabduino.bootloader.path=arduino:atmega
11fabduino.bootloader.file=ATmegaBOOT_168_pro_8MHz.hex
12fabduino.bootloader.unlock_bits=0x3F
13fabduino.bootloader.lock_bits=0x0F
14 
15fabduino.build.mcu=atmega168
16fabduino.build.f_cpu=8000000L
17fabduino.build.core=arduino:arduino
18fabduino.build.variant=arduino:standard

 

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

spa-sam, спасибо! Заработало!!!

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

 

Сегодня (с Вашей помощью) запустил мегу168 на внутреннем осцилляторе (правда обычную, с пониженным потреблением пока еще не держал в руках). Обнаружилось, что работа с датчиками типа DS18B20 осуществляется нормально (видимо, грамотная библиотека), NRF24 - эти модули тоже заработали нормально.

А вот датчики DHT11 - данные отдавать отказались :(, аналогичная проблема там, где используется ИК-приемник (подобная проблема будет, похоже везде, где используются тайминги). 

Видимо, много зависит от того, насколько грамотно библиотеки сделаны.

spa-sam
Offline
Зарегистрирован: 14.12.2012

Поправил немного конфиг, кому интересно...

01fabduino.name=Fabkit/spa ATmega168 (internal clock 1.8V)
02 
03fabduino.upload.protocol=stk500
04fabduino.upload.maximum_size=14336
05fabduino.upload.speed=19200
06 
07fabduino.bootloader.low_fuses=0xe2
08fabduino.bootloader.high_fuses=0xde
09fabduino.bootloader.extended_fuses=0x00
10fabduino.bootloader.path=arduino:atmega
11fabduino.bootloader.file=ATmegaBOOT_168_pro_8MHz.hex
12fabduino.bootloader.unlock_bits=0x3F
13fabduino.bootloader.lock_bits=0x0F
14 
15fabduino.build.mcu=atmega168
16fabduino.build.f_cpu=8000000L
17fabduino.build.core=arduino:arduino
18fabduino.build.variant=arduino:standard

Смысл изменения в строке    fabduino.bootloader.high_fuses=0xde   с этой кинфигурацией отключен детектор низкого напряжение...точнее он установлен на 1.8 V, в предыдущей было 2.7 V... Такое снижение обусловлено работой от батареи до последнего )...пока работает...будем тестить дальше

chk
Offline
Зарегистрирован: 14.04.2013

перевел pro mini (mega328p) c 16MHz на 8 внутренние. Оказалось что IDE 1.5.2 со скетчем arduinoISP не хочет работать. С версией 1.0.5-r2 все получилось. Для boards.txt есть редактор удобный кстати в сети.

Делал это чтоб подключить напрямую к литию через vin ради энергосбережения. Знает ли кто - нужно выпаивать кварц на 16 чтоб через него ничего не утекало, или можно оставить? по идее на него уже ничего не подается, но мало ли.

In_Got_we_trust
Offline
Зарегистрирован: 16.03.2014

Mogalkov пишет:

Duino на внутреннем резонаторе, может комуто будет полезно.

 Скомпилировал с зажатым шифтом чтобы узнать куда ложится хекс файл и прошил вот по этой инструкции:

http://freeduino.ru/arduino/isp.html Но используя новые фьюзы.
Надо учесть что если контроллер уже прошивался раньше, то первую прошивку фьюзов в него надо производить с тем кварцем с которым он раньше был.

что такое и для чего нужен "зажатый шрифт"

для чего полезно знать, куда ложится hex файл, разьве не в первый байт после загрузчика?

 

renoshnik
Offline
Зарегистрирован: 11.04.2013

у меня фьюзы для 328ой атмеги вот такие...

a328p_8MHz.name=atmega328p (RC 8 MHz)
a328p_8MHz.upload.protocol=arduino
a328p_8MHz.upload.maximum_size=32256
a328p_8MHz.upload.speed=115200
a328p_8MHz.bootloader.low_fuses=0xe2
a328p_8MHz.bootloader.high_fuses=0xde
a328p_8MHz.bootloader.extended_fuses=0x5
a328p_8MHz.bootloader.path=optiboot
a328p_8MHz.bootloader.file=a328p_8MHz_e2_de_5.hex
a328p_8MHz.build.mcu=atmega328p
a328p_8MHz.build.f_cpu=8000000L
a328p_8MHz.build.core=arduino
a328p_8MHz.build.variant=standard

правда я ещё залил бутлоадер для внутреннего резонатора, выпаял кварц и два конденсатора - добавилось ещё два пина... :)