viernes, 16 de mayo de 2014

Arduino - Programador ICSP o SPI

Estoy con el proyecto del calentador controlado por pwm y viendo alguna opcion de seguridad, usar interrupciones para resetear el freaduino mega 2560 el cual uso se me ocurrio probar el reset del watchdog timer o perro guardian el cual chequea que el procesador este siempre funcionando si se demora es porque se bloquea y realiza un reset se me ocurrio hacerlo pero en una funcion implemente el siguiente codigo el cual me reiniciaba el freaduino mega y me lo bloqueo no podia bajarle codigo ni funcionaba tampoco :( crei que lo habia perdido, asi que no me quedaba mas opcion que recargarle el bootloader despues de muchos post no explicaban muy bien como como hacerlo, aqui dejo mi experiencia errores y quedo funcionando el cual era el objetivo.

codigo el cual sabia me hiba a ocasionar problema pero probar no cuesta nada

<include avr/wdt.h>

void setup()
{
wdt_disable()

wdt_enable(7); // WDT0_2S
}

void loop()
{
wdt_reset ; //aca cometi el error en teoria si el wdt no recibe señal dentro de los 2s resetea y quedo en un bucle infinito :P sisi puden decirme y vos sos programador jeje errar es humanooooo... :p

}


En teoria si el wdt no recibe señal dentro de los 2s resetea y quedo en un bucle infinito :P sisi puden decirme y vos sos programador ? jeje errar es humanooooo... :p

paso siguiente arreglar la macana que me mande para cargarle el bootloader de nuevo podemos usar un programador ISP puede ser un kit o podemos usar otro arduino funciona de la siguiente manera tendremos un arduino maestro y otro como esclavo conectado a trsves SPI o ISP.

pines arduino mega 2560
50     MISO
51     MOSI
52     SCK
53      Reset

pines del conector ISP o SPI

1    MISO
2    VCC
3    SCK
4    MOSI
5    Reset
6    GND

pines arduino uno

5vcc
gnd
10 reset
11 MOSI
12 MISO
13 SCK

1)Conectar el master y el slave

master            slave ISCP
12     50           ----   1
11     51           ----   4
13     52           ----   3
10     53           ----   5
5v     5v           ----   2
gnd   gnd         ----   6
uno   mega       ficha SPI

2)Descargarle el soft de la lista de ejemplos ArduinoISP al master  que vamos a usar de programador
3)Ponemos modo de programador ARDUINO ISP
4)Le damos  BURN BOOTLOADER
5)Cuando esta quemando nos da un error o aviso pero luego funciona igual.






Si les da errores al cargar los sketch, firmware, o un bootloader y esta todo bien conectado cambien de puerto USB me paso, lo intercambias y funciona todo bien..

Sldos...

******************************actualizacion 20-05-14*****************************
Otro ejemplo buscando mi GPS EM406 encontre una seeeduino mega 1280 el cual sin querer me enrede en el cable usb y le arranque la ficha :( hace tiempo atras trate de soldarle la ficha pero no tenia pista se despego totalmente no la tire de lastima porque no me servia para nada hasta ahora como subir un sketch de un arduino uno a un seeduino mega sin USB usando la comunicacion SPI.


1)vamos al ide de arduino y bajamos el ejemplo de arduinoISP al arduino uno sin conectar el positivo de seeduino mega.


Sketch ejemplo: ArduinoISP "lo convierte en un programador al arduino master"
Board o tarjeta: Arduino Uno
pines:10 - 11 - 12 - 13 - 5v - gnd
descargamos sketch al uno con el mega 1280 desconectado.

2)conectamos el positivo seleccionamos la tarjeta arduino mega 1280 y programador Arduino ISP
Cargamos el sketch a subir al mega 1280
Board o Tarjeta: Arduino Mega 1280
Vamos a archivo y seleccionamos descargar desde programador



en el arduino uno usamos los pines


12 *************1    MISO
5v *************2    VCC
13 *************3    SCK
11 *************4    MOSI
10 *************5    Reset
gnd*************6  GND


Esta imagen es genial esta bien explicada la conexion a la ficha.



En resumen podemos cargarle un bootloader a nuestro arduino o cargarle un sketch o firmware desde otro arduino usado como programador. :).



                                 

Sldos...


No hay comentarios.:

Publicar un comentario