5 votos

Interfaz serie de dos hilos frente a tres hilos para RTC

Estoy buscando elegir un RTC para un proyecto que tengo en mente.

Tengo las siguientes opciones (vinculadas a la hoja de datos):

  1. DS1307
  2. DS1302

La principal diferencia parece ser el protocolo de comunicación. El DS1307 parece utilizar algo llamado "interfaz serie de dos hilos" mientras que el DS1302 utiliza algo llamado "interfaz de 3 hilos".

Me gustaría utilizar uno de estos chips para mantener el tiempo en mi microcontrolador ATMega (probablemente ATmega8).

¿En qué se diferencian estas dos cosas y cómo puedo conectarlas?

10voto

FilmJ Puntos 376

La principal diferencia entre SPI (interfaz de 3 hilos) e I2C (interfaz de 2 hilos) es que tienes que enviar una dirección cuando usas I2C. Así que no será tan rápido como SPI porque tienes que enviar más datos.

Cuando uses SPI necesitarás un pin extra para la señal de habilitación del chip. Esto será necesario para cada esclavo. Así que es más rápido, pero necesitas más pines de salida.

Yo preferiría I2C porque la velocidad no importa en este escenario.

El microcontrolador ATMega dispone de periféricos de hardware para ambos métodos, así que depende de ti

7voto

AndroidUser Puntos 26

El primero se escapa I2C . La información de temporización se encuentra en la Figura 5 de la página 7 de la hoja de datos.

El segundo se escapa SPI . La información de temporización se encuentra en la Figura 4 de la página 8 de la hoja de datos.

Parece que el ATmega8 tiene TWI y SPI al igual que todas las otras partes ATmega, puede utilizar ambos con él, simultáneamente si lo desea. Mi preferencia sería SPI. Es un poco más fácil de trabajar, y como un protocolo tiende a ser un poco menos temperamental.

5voto

Chetan Bhargava Puntos 3758

Depende de algunos factores:

  1. Diseño de hardware: Si sólo va a utilizar este chip con su microcontrolador, cualquiera de ellos servirá. Pero si su diseño consta de dos o más dispositivos que utilizan la interfaz I2C, entonces tiene sentido utilizar I2C RTC para que usted no tiene que hacer la interconexión adicional, sólo tiene que añadir el RTC al bus existente. Lo mismo se aplica a SPI pero ten en cuenta que cuando añades más dispositivos al bus SPI, necesitas una señal SS extra por dispositivo. También depende de los periféricos hardware que tengas en tu microcontrolador. Si tu micro tiene periféricos hardware SPI pero no I2C entonces tiene sentido usar un dispositivo SPI sobre un dispositivo I2C. Lo mismo ocurre con el periférico I2C.

  2. Diseño de software: Otro factor decisivo es si vas a implementar uno u otro protocolo en software. I2C implica un poco más de trabajo que SPI. También puedes encontrar algunas implementaciones de código en la web. Si ya tienes un código I2C con alta confianza, úsalo. Lo mismo se aplica si estás bastante seguro con un trozo de código para SPI que encontraste en la web.

  3. Su comprensión: La elección también depende de tus conocimientos sobre uno u otro protocolo y de lo familiarizado que estés con ellos. Si ya has utilizado alguno de ellos, lo más lógico es que te sirvas de tu experiencia previa.

4voto

elichai2 Puntos 131

En DS1302 no utiliza realmente estándar SPI porque la única señal de datos "E/S" está multiplexada en el tiempo durante la comunicación (el chip la conduce durante una lectura entre el flanco descendente de "CLK" y justo después del flanco ascendente de "CLK", y a z alto en todos los demás momentos).

Estándar SPI tiene pines MOSI (Master-Out/Slave-In) y MISO (Master-In/Slave-Out) separados para cada periférico (aunque el MISO puede ser triestado por el periférico si está multiplexado con múltiples esclavos).

En DS1302 "CE" (antes llamado "/RST") es absolutamente esencial en la comunicación para iniciar/detener cada transmisión, además de almacenar los datos del RTC después de una "Ráfaga" (NO se puede conectar simplemente a un carril). Además, el primer bit enviado después de que CE se afirma indica si usted está haciendo una lectura (1) o una escritura (0). Dicho esto, todavía hay menos sobrecarga de protocolo que el uso de I2C, porque usted no tiene que preocuparse por el direccionamiento específico de I2C y el tiempo.

Incluso con la especificación de 2V (la hoja de datos da la sincronización para 2V y 5V), el DS1302 sigue siendo más rápido que utilizar I2C, y WAY más rápido cuando se utilizan 5V. Ten en cuenta que cada uno de los 3 pines de comunicaciones del DS1302 tienen una resistencia pull-down (nominal) de 40k, para evitar que los pines floten.

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