6 votos

Relación entre la energía extraída de I2C / el consumo de energía y la tasa de datos

Refiriéndome sólo a lo que dibujan las líneas I2C, ¿me equivoco al pensar que cuanto mayor sea la frecuencia de reloj, menor será el tiempo en el que habrá (la misma cantidad de) corriente fluyendo a través de los pullups y, por tanto, menor será la potencia consumida?


pregunta lateral

No creo que vaya a llegar a los 100 kHz, eso está muy por encima del límite de mi hardware. Estoy alternando entre unos 32 y 4 kHz. ¿El mismo valor de resistencia (3.3k @ 3V) será bueno para ambos?

10voto

Corey Puntos 700

Las líneas de datos y de reloj I2C se alimentan cuando se ponen a nivel bajo. Porque entonces la energía se consume a través de las resistencias de pull-up.

Mientras que una línea se tira de baja se dibuja 5V/4.7k \$~\Omega \approx\$ 1mA. Asumiendo 5V VCC y resistencias pullup de 4,7k.

La línea de reloj tendrá un ciclo de trabajo del 50%. La línea de datos está baja al menos 1 de cada 9 ciclos de reloj (cada ack para un byte exitoso) pero rara vez vas a enviar/recibir sólo 0xff bytes. Es más probable que esté baja el 75% del tiempo.

Pero, en efecto, un reloj más rápido significa una transmisión más corta, lo que implica una menor pérdida de energía a través de los tirones. Sin embargo, una transmisión más rápida puede requerir resistencias de menor valor para superar la capacitancia parásita entre las líneas y la tierra.

0 votos

También se necesita energía para cargar y descargar la capacitancia parásita. Creo que otro factor que afecta al consumo de energía es el porcentaje de tiempo activo del bus.

0 votos

¿Qué le parece mi pregunta lateral?

0 votos

La potencia consumida cargando y descargando la capacitancia estaría (suponiendo que no cambies el circuito y que tu reloj sea lo suficientemente lento para que esto ocurra hasta su efectiva finalización) determinada por el número de relojes ciclos pero no por el reloj tasa .

8voto

Stefan Arentz Puntos 151

Tu idea es correcta, siempre y cuando puedas conseguir una mayor velocidad con las mismas resistencias de pull up.

0 votos

¿Qué le parece mi pregunta lateral?

4 votos

@kellogs no puede responder a eso ya que no tengo ni idea de cuál es la capacitancia de tus líneas. Así que sólo puedo decirte que estamos corriendo 100 kHz con resistencias de 100 kOhm en uno de nuestros productos sin problemas. Supongo que usted está bien.

1 votos

¿alguna forma de calcularlo?

6voto

sabrina Puntos 17

Una mayor frecuencia de reloj suele requerir un menor valor de pull-up, lo que aumenta la corriente.

El aumento de la frecuencia de reloj de 100kHz a 400kHz suele requerir que el pull-up se reduzca con un factor de 4-5.

Como la potencia es inversamente proporcional a la resistencia, la potencia consumida será casi la misma.

0 votos

¿Qué le parece mi pregunta lateral?

5 votos

@kellogs 32KHz es realmente lento para I2C. Dependiendo de la capacidad del bus probablemente puedas usar 10k o más. Utiliza un osciloscopio para ver el flanco de subida de SCL y SDA para determinar el valor del pull-up. SDA debe ser capaz de subir de bajo a alto en el periodo bajo de SCL.

2voto

Elfudge Puntos 141

Como dijo @ratchet-freak, en términos de tiempo, podrías tener el 75% del tiempo el bus pull-down, por lo tanto, si aumentas la velocidad de reloj, tu consumo por el bus disminuirá siempre y cuando tengas el mismo valor para las resistencias pull-up. Pero, a velocidades más altas, los valores de las resistencias deben reducirse.

Teniendo esto, el consumo del bus será menor, pero los dispositivos esclavos y maestros podrían aumentar su consumo en función de la velocidad de reloj.

En cuanto a tu pregunta lateral, si 3,3kohms sirve tanto para 4khz como para 32khz, tienes que comprobar la capacitancia de tu bus. Esta capacitancia depende de la longitud del bus, la distancia entre líneas y el número de dispositivos conectados a él. Puede ser difícil calcular la capacitancia real, pero puedes comprobar la forma de onda de tus datos en el bus a ambas frecuencias y ver si hay alguna distorsión de la señal a 32khz usando 3,3k.

0 votos

¿Qué le parece mi pregunta lateral?

0voto

edou_art Puntos 1

A alta velocidad de datos, el consumo de energía será mayor: - La MCU tiene que trabajar más rápido - Se necesitarán pullups de bajo valor para conseguir un flanco de subida/bajada adecuado de los pulsos

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X