Загрузчик optiboot в pro mini

volser
Offline
Зарегистрирован: 10.02.2016

Доброго времени суток! Я новичок в этой теме, только вникаю, помогите пожалуйста, если сможете. Как я понимаю, ардуино может в какой то момент зависнуть и потребуется перезагрузка вручную, без которой ответственные задачи будут убиты. Предустановленный загрузчик в про мини не поддерживает функцию сторожевого таймера для автоматическое перезагрузки после зависания через заданное время, в связи с чем дефолтный загрузчик использовать нет смысла. По инструкциям в сети не могу зашить загрузчик optiboot. Работаю купленным USB ASP. Первую платку каким то чудом прошил, с предупреждением, но она после этого перестала работать, вероятно скорость не поправил. Взялся через некоторое время за вторую, но на этот раз вылетают ошибки, касаемые оборудования: Arduino: 1.6.7 (Windows 7), Плата:"Arduino Mini, ATmega328"

 
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: error: programm enable: target doesn't answer. 1 
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.
Драйвер на usb asp пытался другой установить, но система отписала, что установленный лучше и не внесла изменения. Программатор такой: http://ru.aliexpress.com/item/2PCS-USBASP-10PIN-TO-6PIN-ADAPTER-BAITE-brand-new-version-with-delicate-shell-USBASP-USBISP-AVR/1758664675.html
Подскажите пожалуйста, что делать?
 
volser
Offline
Зарегистрирован: 10.02.2016

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

volser
Offline
Зарегистрирован: 10.02.2016

Не долго длилась радость :). В общем перешил все свои платы, протестировал скетчем на сторожевой таймер:

#include <avr/wdt.h> void setup() { wdt_disable(); // бесполезная строка до которой не доходит выполнение при bootloop Serial.begin(9600); Serial.println("Setup.."); Serial.println("Wait 5 sec.."); delay(5000); // Задержка, чтобы было время перепрошить устройство в случае bootloop wdt_enable (WDTO_8S); // Для тестов не рекомендуется устанавливать значение менее 8 сек. Serial.println("Watchdog enabled."); } int timer = 0; void loop(){ // Каждую секунду мигаем светодиодом и значение счетчика пишем в Serial if(!(millis()%1000)){ timer++; Serial.println(timer); digitalWrite(13, digitalRead(13)==1?0:1); delay(1); } // wdt_reset(); }

После чего ни в одну плату не могу загрузить другой скетч, хотя с УНО такого нет. Что делать то? Платы отрабатывают адекватно, т.е. не виснут.