Para poder programar el chip, el programador debe poder conducir los pines que están input al chip a sus niveles digitales correctos, y el chip debe poder conducir el chip. pines que son salida desde el chip a sus niveles digitales adecuados.
Entonces, por ejemplo, el SCK
es una señal generada por el programador y leída por el chip. Para que pueda programar el chip, el programador debe ser capaz de conducir esta línea tanto alta como baja. Si tiene otros componentes conectados a este pin, entonces el programa aún debe poder conducir este pin alto y bajo incluso con esos componentes conectados (¡y esperemos que sin freír esos componentes en el proceso!).
En su caso, parece probable que el programador no pueda conducir el pin alto y bajo con el potenciómetro conectado. Si observa ese pin utilizando un osciloscopio mientras intenta programar el chip, es probable que vea el voltaje moviéndose alrededor de algunos impulsados por el programador, pero el potenciómetro está ganando y los oscilaciones no están lo suficientemente cerca del suelo y Vcc para el chip. Para verlos como la señal del reloj.
La solución convencional de AI podría ser usar un potenciómetro más grande si está conectando el chip a la toma central. Todavía funcionará como se esperaba cuando se proporciona un voltaje de entrada al pin, pero debido a que hay una mayor resistencia entre el pin y Vcc y tierra, el programador podrá hacer cambios de voltaje más amplios contra él.
Una solución no convencional es proporcionar al programador salidas más potentes utilizando un búfer o un par de transistores. Esto puede ayudarlo a generar mayores oscilaciones de voltaje contra el componente que está conectado al pin, solo asegúrese de que el componente pueda tomarlo. Una vez usé este truco para poder colgar un LED bicolor de un pin IO y aún así poder usar el mismo pin para la programación.
Otro truco es ralentizar el reloj de programación (es decir, el parámetro -B
en AVRDUDE). Esto puede ayudar si hay una parte unida al pin de programación que solo ralentiza los cambios de voltaje, como una capacidad.
En la otra dirección de los pines que el chip le envía al programador (como MISO
), está limitado por la capacidad de la unidad del chip, pero es posible obtener incluso pequeñas salidas dependiendo de a qué componente esté conectado. el pin. Por ejemplo, podría usar un par de OP AMP conectados entre el chip y el programador para convertir un pequeño movimiento de voltaje en el centro del rango en uno digital que pueda usar el programador.
Aquí hay una aplicación no de ATMEL que habla sobre esto, pero que solo cubre las estrategias convencionales ...
enlace