Při zprovozňování fotovoltaického měniče, jsem narazil na podivné chování Arduina Nano. Do programu jsem zařadil watchdog, který by v případě problémů provedl reset procesoru a program by znovu naběhl. Při zkouškách, ale když watchdog zapůsobil celé arduino se zaseklo a jen na něm rychle blikaly LEDky. Nešlo dokonce resetnout ani tlačítkem pouze odpojením napájení! Je to způsobené originálním bootloaderem, který je v Arduinu Nano a také v Arduinu Pro Mini (asi i jiných). Bootloader jsem nakonec vyřadil tím, že jsem program nahrál programátorem přes ISP, pak watchdog fungoval normálně.
Pro správnou funkci watchdogu je potřeba v Arduinu Nano vyměnit bootloader. Ideální je použit Optiboot, který má několik výhod. Watchdog funguje správně, zabírá méně místa, tím zbude více pro program, dokáže nahrát program mnohem rychleji a program je po resetu spuštěn mnohem rychleji. Optiboot je již použitý i v Arduino UNO. Zkoušej jsem Optiboot zprovoznit podle návodu na jeho stránkách, ale nedařilo se mi to. Zvolil jsem proto trochu jiný postup.
Proto aby se dal Optiboot do Arduina Nano napálit je možné provést drobnou úpravu souboru boards.txt. Soubor je umístěn ve složce s instalací Arduina.
Arduino\hardware\arduino\avr
Nebo po aktualizaci Manažéra Desek ve složce : c:\Users\xxxx\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.11\
Po otevření souboru stačí na jeho konec přidat toto:
############################################################## atmega328o.name=[Optiboot] Arduino Pro Mini (5V, 16 MHz) or Nano w/ ATmega328 atmega328o.upload.tool=avrdude atmega328o.upload.protocol=arduino atmega328o.upload.maximum_size=32256 atmega328o.upload.speed=115200 atmega328o.bootloader.tool=avrdude atmega328o.bootloader.low_fuses=0xff atmega328o.bootloader.high_fuses=0xde atmega328o.bootloader.extended_fuses=0x05 atmega328o.bootloader.path=optiboot atmega328o.bootloader.file=optiboot/optiboot_atmega328.hex atmega328o.bootloader.unlock_bits=0x3F atmega328o.bootloader.lock_bits=0x0F atmega328o.build.mcu=atmega328p atmega328o.build.f_cpu=16000000L atmega328o.build.board=AVR_ATMEGA328O atmega328o.build.core=arduino:arduino atmega328o.build.variant=arduino:eightanaloginputs ##############################################################
Po spuštění Arduino IDE, pak zkontrolujeme přes menu Nástroje/ Vývojová deska, že se na konci objevila nová položka s Optiboot loaderem.
Pak již stačí jen zvolit tuto položku, připojit ISP programátor a zvolit Vypálit zaváděč.
Pro nahrávání programu přes USB kabel je pak potřeba mít navolenou desku s Optibootem. Stejně je možné Optiboot použít i pro Arduino Pro Mini. Odzkoušeno vše s Arduino IDE verze 1.6.7.
Pingback: Fotovoltaický MPPT měnič pro bojler | TN Web
Pingback: Arduino Nano a Optiboot
Ahoj, potřebuji poradit.
Po úpravě boards.txt se mi v seznamu desek
[Optiboot] Arduino Pro Mini (5V, 16 MHz) or Nano w/ ATmega328 objeví, ale již při kompilaci program hlásí, že
C:\Program Files\Arduino\hardware\arduino\avr\boards.txt is invalid
A přes toto se nemohu dostat. Má pro mě někdo radu?
Díky, přeji pěkný den…
Tak si sám i odpovím 🙂
soubor boards.txt jsem upravoval v notepadu a měl jsem blbé kodování. Nabízelo mi to UTF-8, s tím to nefungovalo, zkusil jsem ANSI, sice se pomršila diakritika (arduino Y?N), ale funguje. Teď jsem našel i nějaký „Arduino boards txt editor“, tak jdu pokusničit 🙂
Lepší je používat, pro úpravu takových souborů PSPad nebo Notepad++.
Pingback: Přednostní proudové relé | TN Web
Pingback: Prioritní proudové relé | TN Web