Interfaz serial de dos cables frente a tres cables para RTC

2

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 usar algo llamado "interfaz serial de dos cables" mientras que el DS1302 usa algo llamado "interfaz de 3 cables".

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

Entonces, ¿en qué se diferencian estos dos y cómo los conectaría?

    
pregunta capcom

3 respuestas

7

La principal diferencia entre SPI (interfaz de 3 cables) y I2C (interfaz de 2 cables) es que debe enviar una dirección cuando usa I2C. Por lo tanto, no será tan rápido como SPI porque tendrá que enviar más datos.

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

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

El microcontrolador ATMega tiene periféricos de hardware para ambos métodos, por lo que depende de usted

    
respondido por el Hardwarefreak
5

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

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

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

    
respondido por el Matt Young
4

Depende de algunos factores:

  1. Diseño de hardware: si solo está utilizando este chip con su microcontrolador, cualquiera de ellos lo hará. Pero si su diseño consta de dos o más dispositivos que utilizan la interfaz I2C, entonces tiene sentido usar el RTC de I2C para que no tenga que hacer una interfaz adicional, solo agregue el RTC al bus existente. Lo mismo se aplica a SPI, pero tenga en cuenta que cuando agrega más dispositivos al bus SPI, necesita una señal SS adicional por dispositivo. También depende de los periféricos de hardware que tenga en su microcontrolador. Si su micro tiene un hardware SPI periférico 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 del software: otro factor decisivo es si está implementando cualquiera de los protocolos en el software. I2C implica un poco más de trabajo que SPI. También puede encontrar algunas implementaciones de código en la web. Si ya tiene un código I2C con alta confianza, úselo. Lo mismo se aplica si está bastante seguro con un fragmento de código para SPI que encontró en la web.

  3. Tu comprensión: la elección también depende de tu comprensión de cualquiera de los protocolos y de tu nivel de conocimientos. Si ha usado alguno de ellos anteriormente, tiene sentido utilizar la experiencia previa.

respondido por el Chetan Bhargava

Lea otras preguntas en las etiquetas