Si elimino C5
, puedo usar ISP. Sin embargo, con C5 a bordo, la programación del ISP falla... El condensador es para eliminar el rebote de los botones.
¿Cuál es la solución rápida para tener una rutina antirrebote y usar ISP? No puedo cambiar la placa porque ya está en PCB, solo puedo hacer un parche.
Una solución simple podría ser conectar la unión de C5 y R1 mediante una resistencia de 10k a PB2 y conectar el conector ISP directamente a PB2.
Esta es una solución general que puede usar siempre que desee anular una señal con una señal más fuerte que no estará presente (o está en tres estados) cuando se deba leer la señal más débil. Por supuesto, la resistencia en serie colocada 'antes' de la señal más débil para debilitarla no debe causar ningún problema. En general, los pines de entrada del microcontrolador digital tienen una impedancia muy alta, por lo que una extar de 10k no se notará en nada más que en frecuencias muy altas. (pero recuerde: las entradas analógicas pueden tener una impedancia mucho más baja, por lo que en ese caso este truco probablemente no funcionará).
Ese condensador rompe ISP porque limita los tiempos de subida y bajada en PB2. El programador solo puede generar o absorber tanta corriente, por lo que solo carga/descarga este capacitor tan rápido.
Si no puede cambiar la placa, tendrá que quitar el condensador y hacer el antirrebote en el software.
Alternativamente, haga R1 más grande y C5 mucho más pequeño. Si C5 es lo suficientemente pequeño como para que los bordes sigan siendo lo suficientemente afilados, no tendrá este problema. La programación a una velocidad más baja también ayudará.
No ha especificado qué micro está usando, pero en muchos (la mayoría) de los casos, un límite de 1uF causará estragos en el reloj de programación del ISP.
No abriría el límite e iría por un rebote de software en lugar de fuerza bruta.
Gustavo Litovsky
Pablo
ATTiny 45/85
pjc50
Gustavo Litovsky