Problemas con Arduino y UsbtinyISP

Hola a todos :grin:

Quería comentarles que hace algunas semanas ya, comencé a dar mis primeros pasos con el hardware Arduino. Hasta ahora no había tenido problema alguno, pero al avanzar en mis pruebas, me he topado con 2 problemas puntuales que no he podido resolver.

1º - Error al grabar sketch mediante el grabador USBtinyISP.

El error aparece cuando quiero sobrescribir un sketch encima del otro. Por ejemplo: grabo el ejercicio Blink....(se graba correctamente) y a continuación quiero cargar el ejercicio fade (de los ejemplos que vienen con la IDE de programación ) y me aparece el siguiente mensaje:

avrdude: verification error, first mismatch at byte 0x0042
0xae != 0x8a
avrdude: verification error; content mismatch

Les dejo 2 imágenes para que vean de que les hablo.

Grabación del Sketch de manera correcta :smiley:

Error de grabación :astonished:

Alguien me podría aclarar de que se trata el error ?

2º - Problema de velocidad con el USBtinyISP - Como implementar solución en arduino :~

Luego de hacer algunas pruebas con mi placa Arduino, quedé impresionado al ver la lentitud con la que se cargaban los sketch usando USBtiny.
Cuando el tamaño del programa no supera los 1....3Kb no es problema ...tarda algunos segundos y ya tenemos nuestro programa corriendo en el microcontrolador. El problema se presenta cuando quiero grabar un programa que pesa entre 10 y 32Kb ...ahí tarda hasta 40 seg......totalmente inaceptable cuando se está haciendo depuración.....

La gente de http://www.ladyada.net/ nos dá una solución muy sencilla al problema: modificar la velocidad del programador mediante línea de comando.

You can use the -B option to specify the ISP speed. By default the value is 10 which means 100KHz clock, this is good for target clock speeds > 500KHz. If you want the high speed clockrate (400KHz) for target frequencies > 4MHz you can use "-B 1" to speed up programming

Como esto es muy impráctico para el usuario común...procedí a crear un script para ejecutar la modificación mediante un archivo .bat:

Para realizar el script, primero hay que abrir el Notepad de windows y escribimos lo siguiente:

avrdude -c usbtiny -B 1 -p m328p -u -U flash:w:Blink.hex
pause

El programa Blink.hex lo generé con el IDE de Arduino. Como estamos trabajando a 16Mhz>4Mhz (cristal que lleva la placa arduino)..no hay problemas en aumentar la velocidad de programación.

Con el Script el programador tardó 280 ms en grabar mi programa:

Con el IDE de Arduino , tarda 2.2 seg....una gran diferencia.

Para apreciar mejor el efecto del script...procedemos a grabar el bootloader de la placa arduino.

El bootloader pesa un poco más de 32K.....y tarda en grabarse...13.52 segundos.....

Con el IDE de Arduino, tarda 40 segundos.....casi 3 veces más...

Quería saber si hay alguna manera de implementar o integrar el script al IDE de arduino para poder cargar los sketch de manera más rápida :grin:

En fin esas son mis dudas....espero no haber sido demasido extenso :fearful:

Un saludo !

Hola
Lo que has comentado en el post me ha "mosqueado" y he hecho la prueba a ver si me pasa lo mismo.
Estate tranquilo, funciona bien, al menos en mi caso.
Estoy empleando un USBTiny, un arduino diecimila con micro 328P, un ordenador con XP SP3, y el IDE 022 de arduino.

Como puedes ver, ha compilado y enviado al arduino bien, sin problemas.

Supongo que cambiaste el fichero preferences del arduino de esta forma verdad?

c:\Documents and Settings\<USERNAME>\Application Data\Arduino\preferences.txt

c:\Documents and Settings\administrador\datos de programa\Arduino\preferences.txt

ese fichero hay que editarlo y cambiar la linea de texto que dice:

 upload.using=bootloader

por este otro:

upload.using=usbtinyisp

Porque a menos que en la nueva placa (arduino uno) se hubiera cambiado algo, si que te puedo asegurar que funciona bien en estas condiciones.

Cargar esos ejemplos han sido segundos, si quieres que pruebe algun sketch dimelo y cronometro.

Un saludo.

PD: Se me olvidaba, el equipo: Un portatil dual core a 1.8Mhz. 2GB ram.

Hola como estás.

Uso la misma placa que usas vos y la misma configuración del archivo preference.txt, pero uso windows 7 de 32 bits....igual funciona correctamente el programador...por lo que no creo que sea ese el problema.

Con respecto a la velocidad que comento del programador, grabá el bootloader nuevamente usando la opción burn bootloader w/usbtinyISP. Ahí tardará aprox. 40 seg en grabar el programa.

Un saludo y gracias por responder :wink:

Confirmado Jonathan

Efectivamente, 40 seg. exactos para grabar el bootloader.

A ver si el problema va a ser algo de windows o java ...???

Compañero, una pregunta aparte del tema a ver si puedes ayudarme, que ademas es acerca de pic, y la formulo aqui porque puede ser interesante para el resto:

En un 18F2550 y por ejemplo en placa "Pinguino" ¿Como grabas el bootloader por primera vez con el tema del controlador USB en un chip en blanco, es con un pickit?

(Esta pregunta se la hago porque se que el compañero es un fiera en el tema PIC y yo desde que programaba estos en ASM la serie 16CXX no los habia vuelto a tocar)

Un saludo.

Heke yo también ando metido con el proyecto Pinguino PIC y si la primera vez grabo el bootloader con el Pickit2 pero desde el MPLAB para que se reconozcan bien los fuses del programa, he probado desde el software que trae el Pickit2 y no me ha funcionado. Pero con el MPLAB si que me ha funcionado, yo tengo montada otra versión con solo un pulsador, eliminando el pulsador de Run y con el bootloader de solo un pulsador. El esquemático que he montado se encuentra en www.webdearde.com, es una placa desarrollada por ellos. Espero que te haya sido de utilidad.

Por supuesto Regata.

Claro que me es de utilidad, ademas no conocia esa web y se ve muy interesante.

Respecto a PIC, aunque este metido en Arduino y me encanta, no descarto ninguna plataforma y los PIC de ahora me parecen muy interesantes.

Gracias y un saludo.