Buenas, este es un proyecto personal el cual he usado el esquema de mega2560 R3.
El caso es que lo he integrado en una pcb custom, el problema que tengo es que solo puedo cargar el codigo por ICSP ya que por 16u2 es imposible.
Aqui dejo el esquema que se ha diseñado, se ha intentado dejar lo minimo posible para que funcione correctamente, le he dado un monton de vueltas buscando donde esta el problema pero no lo encuentro, siempre sale timeout, ni usando IDE ni VSCode por ejemplo, sin embargo si cargo el codigo con avrdudes por ISCP siempre funciona, ya comprobe fusibles, configurandolo tal cual esta en una placa de arduino mega2560 hecha pero no encuentro donde esta el fallo.
Ojala podais decirme donde esta el fallo porque llevo dias y no entiendo donde, se carga el bootloader correctamente para subir el codigo pero nada, no hay manera, siempre sale timeout.
Hola, gracias por tu respuesta, si, use el avrdudes para cargar el firmware, localizado en Arduino15/packages/arduino/hardware/avr/.
Windows detecta todo, detecta incluso como Mega2560 ya, una vez subido el firmware por ICSP, conectas el USB con el software que estoy usando para el uso que le voy a dar, y funciona, el problema es que necesito encontrar el fallo del porque no deja subir por usb serial. Gracias!
Buenas, perdona la demora, sigo intentando de todas las formas posibles con un amigo pero nada, no conseguimos .
no daba respuesta, raro porque probamos el serial debug assistant y parece que si funcionaba pero estoy probando con el IDE y no da respuesta hace parpadeo el led RX cada vez que intento.
por otra parte, no hay forma humana, al menos en mi caso de abrir el programa del DFU, he intentado por todos los medios, desactivando el antivirus, como administrador, no hay manera, lo he programado con el avrdudes y todo correcto.
Hay varios tipos de archivos .hex para el usb serial 16u2 por lo que no se si hemos probado el correcto pero intente a escribir el mensaje que me pusiste y nada, seguia igual, puentee el tx y rx y me salio el mismo mensaje escrito.
Si, por ICSP , conecte a un arduino UNO , el arduino UNO por USB al portatil, con el IDE, abro Arduino as ISP, entonces selecciono tarjeta Mega - Mega2560 , le doy a run Bootloader y se sube correctamente, sin embargo ,luego intento cargar un codigo como el de Blink, y me sale este error.
El Sketch usa 1536 bytes (0%) del espacio de almacenamiento de programa. El máximo es 253952 bytes.
Las variables Globales usan 9 bytes (0%) de la memoria dinámica, dejando 8183 bytes para las variables locales. El máximo es 8192 bytes.
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_getsync(): timeout communicating with programmer
Failed uploading: uploading error: exit status 1
Buenas de nuevo, como actualizacion, hemos cargado un par de codigos, de hola mundo , para comprobar la conexion entre la atmega16u2 y atmega2560, el primero era automatico cada segundo, lo subimos por ICSP usando el arduino UNO, se subio correctamente, y luego abrimos el monitor serial y funciona, probamos otro codigo que si envias una A te envia un mensaje, si envias B te envia otro mensaje, funciono correctamente, por lo que en principio la comunicacion y funcionamiento del 16u2 y el micro Mega2560 funcionan correctamente, hemos vuelto a cargar el bootloader , pero estamos casi en el mismo problema de que no deja subir por el USB.
Te iba a decir que hicieras justo esas pruebas para descartar tema de comunicación.
Bueno, descartado.
En el link que te dejé más arriba hablan de los fusibles, tendrías que verificar ese tema porque la verdad que no se me ocurre que pueda ser otra cosa, salvo...
Lo único que restaría probar es que la señal de reset que envía el 16U2 al 2560 sea correcta.
Pulsa brevemente el botón de reset cuando muestra el primer timeout y debería iniciar el bootloader.
Si el problema es la señal de reset entonces con el pulsador debería cargar.
Si no carga así tampoco... ya se me acaban las ideas.
El problema del IDE, es que no te muestra una barra de progreso, solo pone Uploading, entonces no sabes hasta que punto se debe presion reset. en si cuando empiece a cargar el codigo soltar pero no hay nada que te indique si carga o sigue dando errores. Por otra parte, he probado varios ya tipos de programadores para probar pero no se cual seria el adecuado para poder cargar el codigo a la Atmega2560 usando el usb serial 16u2. Gracias.
en el IDE no sale nada , solo se queda uploading y no sabes si esta saliendo timeout o no, en el VScode si , si sale timeout , he probado a pulsar una vez, varias veces, intervalos de un segundo, etc pero no hay manera.
Buenos dias, me sonaba que ya lo habiamos probado a quitar la R68 en este caso segun el esquema que es la resistencia de 1K de la linea PD7, he hecho varias pruebas, sigue con el mismo error, aun tenemos lecturas negativas , dejo lo que midio con el osciloscopio , lo que si cambiamos el C100 del esquema que es de 100nf por uno de 470pf por probar si modificaba el tiempo y/o voltaje pero practicante no hubo cambios en el osciloscopio.
Buenas noches, despues de hacer muchoas mas pruebas, ya no sabiamos que mas probar, decidimos probar otro micro y ese era el problema. los esquemas estaban correctos. funcionando todo correctamente, sin necesidad de hacer reset de forma manual. Saludos!!!
EDITO: casi todo funciona correctamente, excepto cuando hace la verificacion sale este error:
avrdude: verification error, first mismatch at byte 0x1b8c
0x53 != 0xd3
avrdude: verification error; content mismatch
he intentado con el eeprom_clear y simplemente cambio lo numeros pero sigue el mismo error. Alguna idea? Gracias