Hace tiempo que no escribia nada por aquí, y he pensado que a lo mejor me ayudabais a entender el problema que tengo.
He hecho un pequeño circuito pseud-automata de los que suelo hacer bastantes. Hasta ahora el método de programación era sacando el chip y programando con un arduino Uno como ISP. Es bastante engorroso, pero para programas pequeños pues es bastante útil.
Pero en la nueva generación de placas quiero poder programar el circuito a través del puerto serie a través del bootloader como hacen las placas normales.
Para ello en la placa tengo un conector con acceso a los pines RESET, TX y RX, además de un GND del circuito. El proceso de grabado lo hago con un Uno sin el atmega328p, uniendo los pines con sus correspondientes. Y como era de esperar no funciona, el resultado es el siguiente:
Obviamente el problema debe venir de lo que haya conectado a los pines de programación. Para ello desoldé los componentes del circuito RC del reset y del RS485. Y funcionando perfectamente (previa quema de bootloader).
Primero me centré en el Reset.
Cuando soldé de nuevo los componentes, volvía a tener el mismo problema, pero ahora, si pulsaba el reset de la placa justo en el momento adecuado si carga el sketch. Indagando un poco, vi que el atmega ya posee una resistencia PULL-UP que le permite prescindir de una externa, a no ser, que trabaje en ambientes ruidosos, con lo cual se recomienda, y por eso en las placas arduino se prescinde de ella y se conecta directamente el botón. De momento está funcionando así, pulsando el botón de reset yo mismo.
Este es el circuito de RS485 que uso. Quitando el MAX485, la placa se deja programar, pero con el conectado me sigue dando el mismo error. Por si alguien me dice que quite la resistencia del PULL_UP en la patita RX, debo decir que esa no molesta y solo es el IC. En esta parte es donde me he quedado bloqueado, aunque sigo investigando.
La solución mas sencilla sé que es utilizar jumpers, que cuando quiera programar aisle el reset y el rs485 del circuito, y cuando termine volver a ponerlos... aunque no es una solución muy de mi agrado... ya que me gustaria entender el por qué del fallo.
¿Algún consejo, truco, recomendación?
PD. Iba a poner una foto de la placa, pero la he trastocado en el teléfono y no la encuentro, pero mañana seguro que la subo.