¿Por qué algunos circuitos integrados de IC están programados, pero otros no?

3

¿Por qué algunos IC son programables mientras están conectados en un sistema / circuito, pero otros no lo son? ¿Cuál es el (los) factor (es) determinante (s) para saber si un chip puede o no puede?

Esta pregunta surge de mi investigación sobre los encabezados de ICSP y, en particular, una declaración que dice que "En la mayoría de los casos, la MCU ni siquiera necesita ser eliminada de su circuito primero [para poder programarla mediante un encabezado de ICSP]. "

Fuente

Editar: Esto está relacionado con AVR ISP / ISCP.

    
pregunta Coldblackice

2 respuestas

4

Depende del circuito. Si los pines del ISP no están rotos o accesibles, deberá quitar el chip. Si los pines del ISP, esencialmente SPI, se están utilizando para algo que afectará a la programación, el chip debe ser eliminado. Si los pines del ISP se utilizan como GPIO y están atados alto o bajo, eso podría alterar la programación.

Si de alguna manera estropeaste un circuito y atabas un pin ISP a vcc / tierra, eso ciertamente requeriría que se eliminara el chip.

Si desordena un fusible en el que el ISP de bajo voltaje no puede arreglarlo, debe recurrir al modo de programación de alto voltaje, que a 12 V, podría matar algunos circuitos, por lo que desearía quitar el chip.

El ISP requiere que el chip AVR de destino se ejecute al menos 4 veces más rápido que el reloj del ISP. Si no lo está, el ISP no se puede utilizar.

    
respondido por el Passerby
0

Algunos chips utilizan voltajes fuera de los parámetros de funcionamiento normales para la programación, ya sea porque el circuito de programación necesita voltajes más altos que el funcionamiento normal, o porque tal diseño evitará la posibilidad de que una parte ingrese accidentalmente al modo de programación durante la operación. Tal diseño puede dificultar la programación en circuito.

Algunos chips requieren el uso de muchos pines para la programación. Para programar un PIC 16C54 de 18 clavijas, por ejemplo, se requiere el uso de VDD y VSS (obviamente), MCLR para activar el modo de programación (conducir a 12 voltios), las 12 clavijas de E / S para ingresar datos, la clavija RTCC para actuar como un estroboscopio de lectura / escritura, la entrada del reloj para avanzar direcciones. El único pin que no se usa para la programación es la salida del reloj. La programación de un dispositivo de este tipo en el circuito generalmente requeriría desconectar tantos de sus pines de otras funciones que generalmente no valdría la pena el esfuerzo.

Como mínimo, tener un dispositivo compatible con la programación en circuito generalmente requiere, como mínimo, que incluya alguna forma de aislar cualquier memoria programable interna de cualquier circuito que normalmente intentaría usarla. Esto no necesita ser demasiado complicado, pero puede ser difícil en dispositivos que intentan ser lo más rápido posible durante el funcionamiento normal. En algo como el PICC 16C54, el almacén de códigos no necesitaba ningún circuito de direccionamiento especial para la programación; en cambio, cuando MCLR se elevó a 12 voltios, eso obligó al procesador a ejecutar las instrucciones de NOP, por lo que su contador de programa podría usarse para suministrar direcciones. Era necesario agregar una ruta bidireccional conmutable entre los pines de E / S y los cables de datos del almacén de código, pero eso no tendría que deshabilitar las rutas normales tomadas por esas señales (ya que los pines de E / S están predeterminados en flotante, y El comportamiento de "forzar NOP" (también utilizado por las instrucciones de omisión) significaba que cualquier código que llegara al enclavamiento de instrucciones sería ignorado. Permitir la programación en el circuito requeriría que el modo de programación afecte la funcionalidad de más circuitos.

    
respondido por el supercat

Lea otras preguntas en las etiquetas