¿Se pueden ejecutar los microcontroladores en frecuencias de reloj arbitrariamente bajas?

92

La hoja de datos para el ATTiny13A, por ejemplo, enumera la frecuencia mínima de 0 MHz. ¿Significa esto que el reloj se puede ejecutar en cualquier frecuencia arbitrariamente baja sin efectos negativos? ¿Supongo que consume una corriente más baja a velocidades de reloj más bajas? ¿0 MHz significa que puede detener el reloj por completo, y mientras se siga aplicando la alimentación, recordará su estado de forma indefinida?

    
pregunta endolith

5 respuestas

71

Sí. Si la hoja de datos dice "operación completamente estática", puede cronometrarla a cualquier velocidad, incluso a 0 Hz. Un chip "dinámico" necesita tener un reloj a una velocidad específica o pierde su estado.

    
respondido por el todbot
22

Estoy publicando otra respuesta, solo porque la última pregunta que tenías no fue respondida antes.

Todbot es completamente correcto. También atraerá una menor potencia a velocidades más bajas. También significa que si suministra el reloj desde otro procesador, por ejemplo, podría dejar de suministrarlo en cualquier momento y luego comenzar a cronometrarlo más tarde, siempre que no vaya más rápido que la velocidad máxima, estará bien.

Los chips que tengo tienen un cambio de orden de magnitud entre el oscilador 32768Hz y uno de 1MHz. He tenido aplicaciones en las que no necesitaba velocidad, solo necesitaba que otro pequeño hiciera un manejo básico de los datos por mí.

Espero que esto ayude.

    
respondido por el Kortuk
15

La mayoría de los diseños modernos de microcontroladores funcionarán con cualquier patrón en su entrada de reloj, siempre y cuando no haya un pulso alto por debajo de una cierta longitud mínima, ningún pulso bajo esté por debajo de una longitud mínima determinada, y no sea alto-bajo-bajo o alto El par de pulsos bajo-alto está por debajo de cierta longitud. Esencialmente, lo que sucede es que después de que el chip realiza todas las acciones asociadas con un borde de reloj en particular, el chip estará en un estado en el que no hará nada más que esperar el próximo borde de reloj. Si el siguiente borde del reloj no llega por diez días, entonces (a menos que el chip tenga algún perro guardián externo) el chip estará en el mismo estado que si el borde hubiera llegado en el momento en que el chip estaba listo para ello.

Tenga en cuenta que, en general, detener el reloj en un microcontrolador reducirá sustancialmente el consumo de corriente, pero no tanto como usar la función "dormir". El consumo de corriente de la mayoría de los microcontroladores en modo "funcionamiento" puede estimarse bastante bien como una corriente de reposo constante más una cierta cantidad de corriente por ciclo por segundo (lo que podría ser más "naturalmente" expresado como carga por ciclo). Por ejemplo, un chip puede tener una corriente de reposo de 10uA, más una corriente de 0.1mA / MHz (100pC / ciclo). Ejecutar un chip de este tipo a 10MHz produciría una corriente de 1.01mA. Ejecutarlo a 1MHz produciría 0.11mA. Ejecutarlo a 100KHz produciría 0.02mA. Ejecutándolo a 1Hz woudl rendimiento 0.0100001mA. Por otro lado, el chip podría ofrecer una corriente de reposo de 1uA. En general, al ingresar al modo de reposo se apagarán por completo las áreas del chip que no van a hacer nada útil mientras el chip está durmiendo, evitando así cualquier corriente de fuga que puedan tener dichas áreas. En algunos casos, también reducirá el voltaje a áreas como los archivos de registro a un nivel en el que los archivos de registro pueden mantener su contenido, pero no acceder a ellos muy rápidamente (ya que no se accederá a ellos en absoluto, la velocidad de acceso no importa) .

Algunos microprocesadores, microcontroladores y otros dispositivos más antiguos tenían tiempos máximos de reloj y / o tiempos de reloj mínimos. Tales procesadores hicieron uso de la lógica dinámica para salvar los circuitos. Como ejemplo de lógica dinámica, considere un registro de desplazamiento: un bit de registro estático típico requiere un circuito de dos transistores para mantener el valor, mientras que un bit de registro dinámico contiene el valor en la puerta de un transistor de lectura. Se puede realizar un registro de desplazamiento dinámico de dos fases en NMOS utilizando cuatro NFET y dos resistencias por bit. Un registro de desplazamiento estático requeriría ocho NFET y cuatro resistencias por bit. Los enfoques de lógica dinámica no son tan comunes hoy en día. En la década de 1970, la capacidad de la compuerta era considerable y no había forma de deshacerse de ella. Por lo tanto, no había ninguna razón particular para no aprovecharlo. Hoy en día, la capacitancia de la compuerta es generalmente mucho más baja, y los fabricantes de chips están intentando activamente reducirla aún más. Hacer que la lógica dinámica funcione de manera confiable a menudo requeriría un trabajo deliberado para aumentar la capacitancia de la compuerta. En la mayoría de los casos, el área de chip adicional necesaria para aumentar la capacitancia se podría utilizar con la misma eficacia para agregar más transistores a fin de hacer que la capacitancia sea innecesaria.

    
respondido por el supercat
8

Llegando tarde a esta pregunta, me recordó un proyecto que vi hace un tiempo.

Es un detector de murciélagos que utiliza un PIC que se ejecuta a cero Hz durante la mayor parte del tiempo, y luego se sincroniza con la señal que está detectando.

enlace

    
respondido por el Buzby
8

Sí, puedes detener el reloj por completo y reiniciarlo más tarde sin consecuencias. Incluso podría reemplazar el reloj con un botón y pasar por su programa literalmente paso a paso (frecuencia: aproximadamente 0,1 Hz).

La potencia es casi lineal con la frecuencia: a 10 MHz, el microcontrolador consumirá 10 veces más energía que a 1 MHz. Sin embargo, esto no significa que a 0 Hz el consumo sea completamente cero. Siempre hay una disipación estática, pero eso es muy bajo, generalmente 1 uA o menos.

PS: observe que el ADC tiene una frecuencia de operación mínima. Si la frecuencia es demasiado baja, el condensador sobre el que se mide la tensión se descargará demasiado y su medición será incorrecta.

    
respondido por el flup

Lea otras preguntas en las etiquetas