¿Cómo modificar DS1307 RTC para usar 3.3V para Raspberry Pi?

Compré DS1307 RTC pero es de 5 V, por lo que no se puede conectar a la RasPi. Sé que se puede modificar para usar 3.3V quitando 2 resistencias. Este sensor es diferente al kit de adafruit, por lo que no estoy seguro de qué resistencias quitar. También tiene 2 juegos de pines. ¿Para qué sirven los pines adicionales y cuáles debo usar y cuáles debo quitar?

Aquí está la imagen de la RTC:

ingrese la descripción de la imagen aquí

Aquí está la hoja de datos para el DS1307 RTC .

¿Cuál es el RTC, P1 o P2?
Supongo que es P1 por el oscilador. Entonces, ¿esencialmente son 2 dispositivos en 1 pcb divididos por la mitad en el centro sin ninguna interacción?
Basado en los nombres P1 ya que tiene pines BAT y SQ
¿Qué son exactamente los pines BAT y SQ? De la hoja de datos, supongo que era P2 con seguridad. Consulte la edición de la hoja de datos de RTC.
Pin Vbat: entrada de suministro de respaldo. SQW/OUT (SQ en su placa): Controlador de salida/onda cuadrada. Lea la página 6 de la hoja de datos
@alexan_e decir que son independientes sin un diseño esquemático o de tablero o incluso una buena imagen es incorrecto. Por un lado, i2c está diseñado como un protocolo de bus. Tener ambos circuitos integrados en buses i2c separados sería una estupidez. Lo más probable es que pasen de P1 a P2.
@Passerby Tengo una placa similar y pensé que eran independientes pero me equivoqué, dije que las líneas I2C están conectadas en mi respuesta, tal vez debería eliminar mi comentario para evitar confusiones.

Respuestas (4)

Para que funcione con líneas de 3.3v, debe quitar las dos resistencias pull-up conectadas entre SCL-> 5v y SDA-> 5v y luego usar resistencias pull-up de 3.3v en el lado MCU (a menos que ya estén integrados ).

En la placa veo cuatro resistencias 332 (3k3) que definitivamente son los pull-ups, solo ubique cuáles se conectan a las almohadillas I2C relevantes, no debería ser difícil con un ohmímetro.


Sus pines de conexión RTC están en el lado derecho (encabezado P1)

Finalmente logré encontrar un esquema aquí.

ingrese la descripción de la imagen aquí

Los pull-ups para las líneas RTC I2C son R2 y R3

ingrese la descripción de la imagen aquí


De acuerdo con el esquema y los comentarios en el sitio de referencia, las líneas SCL y SDA de ambos encabezados están interconectadas.
También hay un pin DS (uno en cada lado, interconectado), actualmente no se usa pero está destinado a la señal de 1 cable de un sensor de temperatura DS18B20 que se puede agregar en la placa en los tres pads ubicados en el lado superior izquierdo.

ingrese la descripción de la imagen aquí

Encontré la hoja de datos para el RTC y puedo ver los rastros para poder resolverlo sin un ohmímetro.
¿Qué quieres decir con resistencias de 3.3V? Lo estoy conectando a Raspberry Pi, así que creo que no necesito resistencias adicionales ya que Raspberry Pi las tiene integradas.
@DominicM Estaba hablando de líneas I2C de microcontroladores en general, si su placa ya tiene estos pull-ups, entonces no necesita agregar nada
Se quitaron las resistencias R2 y R3 y funcionó perfectamente. ¡Gracias!
Intenté quitar resistencias, etc., pero no funcionará porque Vcc necesita 5V para funcionar correctamente. La única opción (hasta donde puedo encontrar) es usar un 3.3 - 5 V DC/DC o simplemente comprar el DS1672 u otro RTC nativo de 3.3 V.
@Danny La eliminación de las dos resistencias pullup de 5v es para poder conectar un dispositivo 3v3 a los pines I2C. El Vcc de la placa RTC seguirá siendo de 5V.
Genial respuesta! ¿Veo bien que esta placa en realidad no hace nada con la línea DS? ¿Cuál es el punto entonces? ¿Cableado de fuente de alimentación más fácil para un DS18B20 (o cualquier otro dispositivo de un solo cable, para el caso)?
@Sz. Las líneas de suministro de energía de la placa ya están conectadas a las almohadillas de suministro de energía de DS18B20. Simplemente suelde un DS18B20 y conecte la línea DS a un microcontrolador para usarlo (tenga en cuenta que la resistencia pullup para DS18B20 no está incluida en la placa)

Para que estos módulos funcionen bien con Raspberry Pi y la batería CR2032 (no recargable), debe:

  1. quite el diodo y TODAS las resistencias

  2. pines cortos donde se colocaron r6

  3. suelde el cristal a la almohadilla debajo de él

  4. (opcionalmente) quitar el chip de memoria 24C32 I2C (el de la derecha)

  5. conecte SDA/SCL/GND a los pines correspondientes del RPi, conecte el pin Vcc al 5V en el RPi. Aquí está el pinout de RPi .

La respuesta aceptada de Alexan_e no es una buena solución. Tener líneas I2C de 3,3 V en el DS1307 de 5 V hace que funcione fuera de las especificaciones. (Alimentar el DS1307 desde una fuente de 3,3 V es aún peor).

Una mejor solución es cambiar el DS1307 por el NXP PCF85263A compatible con pines. Este último puede operar desde 1.8V, es superior al DS1307 en todos los aspectos y cuesta menos de un dólar (menos de un tercio del precio del DS1307).

Puede encontrar una comparación entre los dos aquí .

Nota: los RTC son compatibles con el hardware, pero tendrá que modificar su software.

¿Por qué está fuera de especificación con líneas de 3,3 V (y VCC de 5 V)? La hoja de datos DS1307 dice 2.2V min para lógica alta. ¿O esos pullups son requeridos por I2C independientemente? Gracias.

Tengo exactamente el mismo módulo y funciona bien con los pines de 5 voltios en el Banana Pro, que es compatible con los pines de Raspberry Pi. Los pines 2 y 4 son de 5 voltios.ingrese la descripción de la imagen aquí

En otra respuesta, cuando hablan de 5v, no se trata del VCC. se trata de SDA y SCL que usa 5v, donde raspi usa 3.3v.