Problema de condensador e ISP

ingrese la descripción de la imagen aquí

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.

No has mencionado qué microcontrolador estás usando. De las etiquetas puedo ver a Attiny, pero su pregunta debería mostrar claramente cuál es. 1uF me parece demasiado grande para el rebote. ¿Miraste la constante RC?
lo siento, esATTiny 45/85
La disposición de los interruptores me resulta un poco extraña. ¿Qué está detectando, un borde ascendente o un borde descendente?

Respuestas (3)

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á.

Un poco sorprendido por el hardware antirrebote para empezar. ¿Existe alguna limitación extrema en el software que impida el rebote allí? Puede ser tan simple como ignorar el botón durante algún tiempo después de detectar su activación.

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.

Vaya, mira mi comentario. yo dije lo mismo :D
No recibí la ventana emergente antes de comprometerme.
¿Alguna posibilidad de resolverlo bajando el valor del capacitor o usando algún diodo?
@Pablo: si. Creo que 10nF podría ayudar un poco, pero el software sería el camino a seguir con un temporizador.
@Madmanguruman: No me quejaba de la respuesta. Simplemente me sorprendió que dijimos exactamente las mismas dos cosas (falta microinformación y gran valor de capitalización).
Sin ofender ni implicar. Por lo general, hago una verificación de '¿alguien se me adelantó?' antes de responder, solo que no esta vez.