Здравствуйте, хотелось бы узнать, - 1) надо ли стирать программу с arduino nano перед перепрошивкой? 2) Надо ли выставлять фьюзы на каком-либо этапе?
1) Да 2) И нет, и да А теперь более развёрнуто, но простым языком (сложным -- нужно много заумных букв): 1) Во время записи прошивки в память контроллера, каждый бит памяти можно перевести только из "1" в "0". Если надо перевести из "0" в "1", то это возможно только при стирании блока памяти. Т.е. при программировании памяти сначала производится стирание блока -- все биты переводятся в состояние "1", потом производится запись -- нужные биты переводятся в "0". Правда при использовании всяких интегрированных сред это всё делается "прозрачно" для пользователя -- пользователь думает, что просто производится запись в память. 2) Фьюзы скорее всего трогать не нужно, но иногда требуется более тонкая настройка контроллера при помощи фьюзов. Но, когда это (изменение фьюзов) может потребоваться, простым языком не просто изложить.
Если новичку сказать, что фьюзы трогать нельзя, то он никогда не попытается разобраться с ними. WDTON, EESAVE, CKDIV, CKOUT, ....
спасибо, интересная информация. А если, допустим, понадобится изменить фьюзы на ардуино, то сделать это можно через usb, или нужен программатор? Я читал, что фьюзы меняются только через программатор
Но это уже совсем другая сказка за пределами Ардуино не так ли? WDTON-собака то зачем в ардуино?EESAVE и так активно зачем менять CKDIV выключен зачем такт делить на 8?Не я понимаю что всё можно юзать и RSTDISBL но только с умом и на голом контроллере. Да только через него.Если накосячите то только через высоковольтный программатор или фьюзбит Доктор.Правда я на Форуме выкладывал Доктор-шилды (шилды для восстановления фьюзов Тини13 Мега8/168/328)вместе со скетчами так что можете поиграться с фьюзами но без причины не советую.
Не так. Arduino (те которые на основе AVR) обладают всеми достоинствами и недостатками AVR и отделять их от "голых" AVR нельзя. "Если звезды зажигают -- значит -- это кому-нибудь нужно?" (В.Маяковский). Как уже упоминал выше Arduino -- это AVR, а если в AVR (в контексте данного форума -- читай "в Arduino") придумали "сторожевую собаку" -- значит она кому-нибудь нужна. Но суть в том, что Watchdog нужен не всем и это фьюз позволяет отключить его. Фраза не совсем понятна (хоть бы запятые между каких-нибудь буковок поставили). К вопросу зачем блокировать стирание EEPROM (фьюз EESAVE) -- при перепрошивке в EEPROM могут храниться какие-либо настройки, которые должны сохраняться при обновлении ПО (перепрошивке flash), этот фьюз сохранит эти данные от стирания. К вопросу зачем делить частоту тактов на 8 (фьюз CKDIV) -- для уменьшения энергопотребления. И насчет "так активно" менять фьюзы -- активно фьюзы менять глупо, но поменять их в конкретной плате под свои потребности иногда нужно...
Всё вышесказанное относиться именно к "голым" AVR. Для Вас (как и для меня)поиграться с фьюзами даже в плате Ардуино(но честно говоря сам не понимаю для чего)вообще не проблема.Но вот если по ошибке выставить например SPIEN или RSTDISBL (а программы прошивки сами знаете какие в одних галочка-активный фьюз а в других неактивный фьюз.Сам 100 раз так попадал поэтому и купил HV прогер) в плате где жОстко впаяна smd ATMega328.Что делать будете?TL-868 уже не поможет придётся Мегу выпаивать из платы чтоб разлочить а это ещё то удовольствие.Я живу 25 лет с паяльником в руке и то не решусь а как НУБ?DIP Мегу вытащить и разлочить можно как два пальца об асфальт и опять если есть TL-868.Не надо вводить новичков во искушение а то Русский Человек сами знаете какой.Ардуино это и есть тот начальный старт с защитой от Дурака (манипуляции с фьюзами)для простых решений.кстати и ВочДог и Деление на 8 можно включить программно если очень хочется.
Тоже считаю, что не надо без нужды фъюзы в готовых изделиях трогать. Нравится хардкор - бери голые AVR и делай что хочешь, они для этого и есть.
Спасибо, спрашиваю просто чтобы полнее представлять картину. У меня имеется Arduino nano v 3.0, программатора нет. У нее есть ICSP разъем, и, как я понял по загугливанию, он нужен для программирования процессора. Т.е. сюда можно воткнуть программатор ( в ICSP)?
Да для программирования-но без нужды программировать проц через ICSP не нужно для этого есть USB интерфейс. Просто подключаем Ардуино по USB и программируем через него. А для программирования через ICSP нужен специальный программатор да и среда разработки (и компиляции). В практике(как делаю иногда Я) : устройство с шилдом откатывается на Ардуино плате код оптимизируется до минимума размера и максимума быстродействия. Если лень разводить плату под готовое устройство то "бутерброд" (Ардуино+шилд) помещаются в красивый корпус. Из среды IDE (можно из AVR Studio CV AVR IAR итд)получаем НЕХ файл сносим нах Бутлоадер (чтоб не занимал память!)и НЕХ файлом прошиваем "бутерброд" оптимизируем фьюзы (если нужно) прошиваем их и Всё! Второй случай если "слетит" Бутлоадер а как я понял по Форуму это явление не такое уж и редкое хотя у меня ни разу не бывало.
А мне Восточные братья уже хардкорными прислали ( и как узнали, что я их первый раз вижу ?!!) Вот теперь всю репу сморщил, собирая инфу - откуда ноги ... нумеровать. "Знание через силу!" - журнал такой был.