Pages: 1 [2]   Go Down
Author Topic: [SOLVED] Arduino nano - Problema reset arduino con watchdog  (Read 965 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 24
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Risolto grazie! smiley-grin

Allora, ho seguito la dritta di PaoloP e la guida di Testato.

Scrivo qui come ho fatto, perchè magari a qualcuno può servire:

Come ho scritto, ho usato 2 arduino nano. Su di uno ho caricato normalmente come si fa di solito lo sketch che si trova negli sketch di esempio di arduino che si chiama "ArduinoISP".
Questo arduino l'ho usato come programmatore.

Poi ho preso l'arduino nano col bootloader da modificare, e l'ho collegato al precedente arduino tramite i pin "superiori" ICSP seguendo la guida che avevo incollato poco sopra nel thread, ovvero:

Code:
Arduino without   |  Arduino as ISP
   bootloader     |   programmer
__________________|________________
ICSP pin#1 (MISO) |      D12
ICSP pin#2 (+5V)  |      5V
ICSP pin#3 (SCK)  |      D13
ICSP pin#4 (MOSI) |      D11
ICSP pin#5 (RST)  |      D10
ICSP pin#6 (GND)  |      GND
__________________|________________

(a sinistra i pin ICSP sull'arduino col bootloader da modificare, da collegare con i pin a destra che sono sull'arduino che fa da programmatore).

Poi ho editato il file /usr/share/arduino/hardware/arduino/boards.txt (su linux), aggiungendo questa serie di righe:

Code:
##############################################################
nano328optiboot.name=Arduino Nano w/ ATmega328 (OptiBoot)
nano328optiboot.upload.protocol=arduino
nano328optiboot.upload.maximum_size=30720
nano328optiboot.upload.speed=115200
nano328optiboot.bootloader.low_fuses=0xff
nano328optiboot.bootloader.high_fuses=0xd6
nano328optiboot.bootloader.path=optiboot
nano328optiboot.bootloader.file=optiboot_atmega328.hex
nano328optiboot.bootloader.unlock_bits=0x05
nano328optiboot.bootloader.lock_bits=0x0F
nano328optiboot.build.mcu=atmega328p
nano328optiboot.build.f_cpu=16000000L
nano328optiboot.build.core=arduino
nano328optiboot.build.variant=eightanaloginputs
##############################################################

Ho qualche dubbio sulla riga
nano328optiboot.upload.maximum_size=30720
perchè l'ho copiata dalla parte "default" dell'arduino nano con atmega328, e mi pare che optiboot occupi meno spazio, quindi lo spazio massimo a disposizione dello sketch dovrebbe essere qualcosa in più, comunque non penso che crei problemi. Il resto i fuse ecc lì ho copiati da altri guide che usano il bootloader optiboot_atmega328.hex, quindi credo siano corretti.

Sucessivamente ho riavviato arduino ide, ho messo "Arduino as ISP" come programmatore nel menù strimenti, , come tipo device: "Arduino Nano w/ ATmega328 (OptiBoot)" (che sarebbe il nuovo modello di arduino creato poco sopra).
Poi "scrivi il bootloader". Ed ha caricato il bootloader.
Poi ho reimpostato il vecchio programmatore (AVRISP mkll) nel menù sstrumenti ( e provato a caricare qualche sketch, tra cui:

Code:
#include <avr/wdt.h>

void setup() {
  wdt_disable();
    pinMode(13, OUTPUT);
    digitalWrite(13, HIGH);
    wdt_enable(WDTO_1S);
}

void loop() {
  wdt_reset();
  delay(4000);
}

che funziona correttamente! smiley Ogni secondo il led del pin 13 si spegne un attimino e si riaccende. Cambiando WDTO_1S con altri valori, cambia anche l'intervallo di reset, quindi tutto ok! smiley
Chiaramente per caricare sketch ora bisogna usare il nuovo modello di arduino aggiunto modificando il file boards.txt.

Grazie per l'aiuto! smiley

« Last Edit: November 14, 2013, 11:11:22 am by michelef87 » Logged

ivrea (to)
Offline Offline
Faraday Member
**
Karma: 86
Posts: 4833
miaaao ^-^
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

x iscrizione
Logged

my name is IGOR, not AIGOR

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 112
Posts: 7079
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Dopo aver collegato i 2 nani e messo sul primo l'Arduino as ISP, potevi semplicemente scegliare la board Arduino uno e poi il comando scrivi bootloader senza dover aggiungere una virtual board.
Poi per la programmazione e l'upload degli sketch rimettevi il giusto programmatore e la board del nano.  smiley-mr-green

Comunque una guida in più e un po' di sperimentazione non fa male.  smiley-wink
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Offline Offline
Newbie
*
Karma: 0
Posts: 24
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ah ecco smiley-grin

Comunque sto un po' convertendo un po' di arduino nano che ho e ricaricando un po' di sketch su dei progetti.... mi pare più performante ora l'arduino.... è una mia impressione o può essere?  smiley-roll
Logged

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 112
Posts: 7079
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

No. Il micro è il medesimo ed alla stessa velocità.
Cambia forse l'upload dello sketch che può essere fatto a 115K invece che a 56K come la 2009.
Quindi mette la metà del tempo per l'upload del file sull'Arduino.
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

0
Online Online
Faraday Member
**
Karma: 46
Posts: 5835
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

e' anche piu' veloce all'avvio, dal momento in cui parte lo sketch e' tutto come prima

aumenta la flash a 32256 perche' optiboot occupa solo 512Byte

fai bene a tenere una board a parte, perche' cosi' sfrutti sia la velocita' a 115200 sia lo spazio flash superiore
Logged

- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

Pages: 1 [2]   Go Up
Jump to: