Antes de nada un saludo a todos,
hasta la fecha había programado solo con microcontroladores de microchip, pero desde que conocí el proyecto arduino siempre he tenido ganas de probarlo.
Por el momento he empezado comprando unos ATmega168 y mediante la placa StandAlone me gustaría empezar a probar el código de arduino.
El problema radica en que no soy capaz de programar el Bootloader ni con UISP ni con AVRdude. En ambos parece que el micro no responde. Antes de postear me he mirado todos los posts que he encontrado al respecto pero ninguno a solucionado mi problema, también he hecho búsquedas por internet y nada. A continuación os explico todos los pasos y pruebas que he seguido:
1.- El programador
El programador paralelo es de la propia pagina de arduino. Lo he comprobado decenas de veces y parece que funciona bien. Lo acorte hasta unos 25cm, le he añadido algún pin más de GND que he visto por internet (concretamente a los pines 21 y 22 del db-25) tambien la salida de VCC (del pin 3) tal y como dice AVRdude.
Para probar el cable, he conectado unos leds a SCK, MOSI y MISO y si hago una petición con AVRdude puedo ver como el pin de SCK y el de MOSI parpadean, en cambio el pin de MISO permanece siempre medio iluminado suficiente para obtener en todas las medidas 0xFF.
2.- La conexión al micro
Los pines del microcontrolador están bien, o al menos lo he comprobado muchas veces.
Diferentes pruebas:
- Con y sin alimentación externa (5V mediante 7805)
- Con y sin el led del pin 19 que lleva la StandAlone
- Con y sin cristal de cuarzo @ 16MHz
Tan solo he probado con uno de los atmega168, por temor a romper el segundo si hay algo mal...
3.- Los resultados obtenidos
Mediante las pruebas que he hecho con AVRdude siempre obtengo lo mismo, por ejemplo:
$ avrdude -p m168 -c dapa -P /dev/parport0 -t -vvvv
obtengo toda la información sobre avrdude que por cierto es la versión 5.2 y seguido obtengo el resultadod e la comunicación:
avrdude: Calibrating delay loop... calibrated to 548 cycles per us bitbang_cmd(): [ AC 53 00 00 ] [ FF FF FF FF ] bitbang_cmd(): [ AC 53 00 00 ] [ FF FF FF FF ] ...
Si hago un puente entre el MISO y GND obtengo lo mismo pero con :
bitbang_cmd(): [ AC 53 00 00 ] [ 00 00 00 00 ]
Por lo que parece que el cabe funciona.
Mediante el IDE de arduino, modificando previamente el archivo "preferences.txt" tal y como se explica, de nuevo parece que la información se envía pero que no hay respuesta, además recibo el error:
flash error at address 0xXXXX : file=0xXX, mem=0xff
Con todas mis pruebas parece que el chip este muerto, ya que sin conectarlo el resultado obtenido siempre es el mismo.
4.- Ordenadores
He usado dos ordenadores, un windows 98SE que con UISP me daba problemas de error de memoria flash al verificarla y el ordenador que estoy usando actualmente, con un Ubuntu 7.04 (1500MHz, 512MB ram)
Aun no he podido comprobar la integridad de las señales que le llegan al microcontrolador, espero que me traigan un osciloscopio portátil un día de estos a ver que veo. Pero mientras si me dais alguna posible solución sería muy bien recibida.
Muchas gracias de antemano!
PD: Supongo que me habré dejado muchas cosas y detalles por comentar pero si surgen ya iré respondiendolos ;)