Red de conocimiento informático - Aprendizaje de programación - ¿Cuál es el uso de la RAM en DS1302? Escribí un programa hoy,

¿Cuál es el uso de la RAM en DS1302? Escribí un programa hoy,

Índice de DS1302

1 Resumen

1 Introducción

2 Estructura y principio de funcionamiento de DS1302

3 DS1302 Software y hardware para visualización de la hora en tiempo real

4 Descripción de problemas durante la depuración

5 Conclusión

[Editar este párrafo] 1 Resumen

Introducción a los Estados Unidos La estructura, principio de funcionamiento y aplicación del circuito de reloj en tiempo real de baja potencia DS1302 con capacidad de carga de corriente lenta introducido por DALLAS Company en visualización de la hora en tiempo real. Puede cronometrar el año, mes, día, domingo, hora, minuto y segundo, y tiene varias funciones como la compensación de año bisiesto. Se proporcionan el programa C51 y el diagrama de flujo de DS1302 en lectura y escritura, así como las precauciones durante la depuración.

Palabras clave: circuito de reloj; reloj en tiempo real; microcontrolador; aplicación

[Editar este párrafo] 1 Introducción

Existen muchos circuitos de reloj en serie populares, como como DS1302, DS1307, PCF8485, etc. Estos circuitos tienen interfaces simples, precios bajos y facilidad de uso, y se utilizan ampliamente. El circuito de reloj en tiempo real DS1302 presentado en este artículo es un circuito de DALLAS Company con capacidad de carga por corriente lenta. Su característica principal es que utiliza transmisión de datos en serie para proporcionar una función de carga programable para la fuente de alimentación de protección contra fallas de energía y la función de carga. se puede apagar. Utilice un oscilador de cristal normal de 32,768 kHz.

[Editar este párrafo] 2 Estructura y principio de funcionamiento de DS1302

DS1302 es un circuito de reloj en tiempo real de alto rendimiento y bajo consumo con RAM lanzado por la empresa estadounidense DALLAS. Puede cronometrar el año, mes, día, domingo, hora, minuto y segundo. Tiene función de compensación de año bisiesto y el voltaje de funcionamiento es de 2,5 V ~ 5,5 V. Se utiliza una interfaz de tres cables para la comunicación síncrona con la CPU y se pueden transmitir varios bytes de señales de reloj o datos RAM en modo ráfaga a la vez. Hay un registro RAM de 31 × 8 dentro del DS1302 para almacenar datos temporalmente. DS1302 es un producto actualizado de DS1202. Es compatible con DS1202, pero agrega dos pines de fuente de alimentación principal/fuente de alimentación trasera y también proporciona la capacidad de cargar la fuente de alimentación trasera con corriente lenta.

2.1 Función y estructura de los pines

La disposición de los pines del DS1302, donde Vcc1 es la fuente de alimentación de respaldo y VCC2 es la fuente de alimentación principal. El reloj también puede mantenerse funcionando continuamente incluso cuando la fuente de alimentación principal está apagada. El DS1302 funciona con Vcc1 o Vcc2, el que sea mayor. Cuando Vcc2 es mayor que Vcc1+0.2V, Vcc2 suministra energía al DS1302. Cuando Vcc2 es menor que Vcc1, el DS1302 funciona con Vcc1. X1 y X2 son fuentes de oscilación, conectadas a un oscilador de cristal externo de 32,768 kHz. RST es la línea de reinicio/selección de chip. Todas las transferencias de datos se inician elevando la entrada RST. La entrada RST tiene dos funciones: primero, RST activa la lógica de control, permitiendo que una secuencia de dirección/comando se introduzca en el registro de desplazamiento; segundo, RST proporciona un medio para terminar la transferencia de datos de un solo byte o de varios bytes. Cuando RST es alto, todas las transferencias de datos se inicializan, lo que permite el funcionamiento del DS1302. Si RST se establece en un nivel bajo durante la transmisión, la transmisión de datos finalizará y el pin de E/S pasará a un estado de alta impedancia. Cuando funciona con energía, RST debe permanecer bajo hasta que Vcc ≥ 2,5 V. RST se puede configurar en alto sólo cuando SCLK está en nivel bajo. E/S es un terminal de entrada y salida de datos en serie (bidireccional), que se describirá en detalle más adelante. SCLK es siempre una entrada. La siguiente imagen muestra el diagrama de función del pin de DS1302

Diagrama del paquete DS1302

2.2 Byte de control de DS1302

La palabra de control de DS1302 se muestra en la Figura 2.

El bit más significativo del byte de control (bit 7) debe ser 1 lógico. Si es 0, los datos no se pueden escribir en el DS1302. Si el bit 6 es 0, indica acceso a los datos del reloj del calendario y 1 indica acceso a la RAM. Datos; los bits 5 a 1 indican la dirección de la unidad operativa; si el bit menos significativo (bit 0) es 0, indica una operación de escritura, y si es 1, indica una operación de lectura. salida comenzando desde el bit más bajo.

2.3 Entrada y salida de datos (E/S)

En el flanco ascendente del siguiente reloj SCLK después de que se ingresa la palabra de instrucción de control, los datos se escriben en DS1302 y los datos La entrada es desde el bit 0 bajo. De manera similar, los datos de DS1302 se leen en el flanco descendente del siguiente pulso SCLK inmediatamente después de la palabra de comando de control de 8 bits, y los datos se leen desde el bit 0 de orden inferior al bit 7 de orden superior.

2.4 Registros de DS1302

DS1302 tiene 12 registros, 7 de los cuales están relacionados con el calendario y el reloj. Los bits de datos almacenados están en forma de código BCD. Sus palabras de control se muestran en la Tabla 1.

Además, DS1302 también tiene registros de año, registros de control, registros de carga, registros de ráfagas de reloj y registros relacionados con RAM, etc. El registro de ráfaga de reloj puede leer y escribir secuencialmente el contenido de todos los registros excepto el registro de carga al mismo tiempo. Los registros relacionados con la RAM del DS1302 se dividen en dos categorías: una es una única unidad de RAM, hasta 31 unidades, cada unidad está configurada como un byte de 8 bits y sus palabras de control de comando son C0H ~ FDH, entre los cuales los números impares. son operaciones de lectura, los números pares son operaciones de escritura; el otro tipo es el registro de RAM en modo ráfaga. En este modo, los 31 bytes de RAM se pueden leer y escribir al mismo tiempo. Las palabras de control de comando son FEH (escritura) y FFH. (leer).

[Editar este párrafo] 3 software y hardware DS1302 para visualización de la hora en tiempo real

La conexión entre DS1302 y la CPU requiere tres líneas, a saber, SCLK(7), E/S (6), PRIMERO (5). La Figura 3 muestra el diagrama de conexión entre DS1302 y 89C2051, en el que se muestra el reloj en una pantalla LCD.

3.1 Conexión entre DS1302 y CPU

De hecho, no se puede añadir un condensador al depurar el programa, simplemente añadir un oscilador de cristal de 32.768kHz. Justo al elegir un oscilador de cristal, diferentes osciladores de cristal tienen errores mayores. Además, también puede agregar DS18B20 al circuito anterior para mostrar la temperatura en tiempo real al mismo tiempo. Solo ocupa una línea de puerto de la CPU. La pantalla LCD también se puede reemplazar con LED, o puede usar el módulo LCD multifuncional de 8 segmentos de 10 bits LCM101 producido por Beijing Weixinjie Technology Development Co., Ltd., que contiene un generador de reloj/vigilancia (WDT) y dos pitidos de frecuencia. Tiene una pantalla RAM incorporada y puede mostrar trazos en cualquier campo. Tiene una interfaz serial de 3-4 líneas y puede interactuar con cualquier microcontrolador o IC. El consumo de energía es bajo, la corriente es de 2 μA (valor típico) en el estado de visualización y menos de 1 μA en el modo de ahorro de energía. El voltaje de funcionamiento es de 2,4 V ~ 3,3 V y la pantalla es clara.

3.2 Flujo de tiempo en tiempo real de DS1302

La Figura 4 muestra el flujo de tiempo en tiempo real de DS1302. Según este diagrama de flujo, no es difícil recopilar tiempo en tiempo real. Lo siguiente se combina con el diagrama de flujo para programar las operaciones básicas de DS1302:

[Editar este párrafo] 4 Descripción de problemas durante la depuración

Cuando DS1302 intercambia datos con el microprocesador, el microprocesador primero El dispositivo envía un byte de comando al circuito. El bit más alto MSB (D7) del byte de comando debe ser 1 lógico. Si D7 = 0, está prohibido escribir en DS1302, es decir, protección contra escritura, especifica D6 = 0; los datos del reloj, y D6 = 1, especifica los datos de RAM; D5 ~ D1 especifica registros específicos para entrada o salida; el bit LSB más bajo (D0) es 0 lógico, especifica una operación de escritura (entrada), D0 = 1, especifica la operación de escritura (entrada). una operación de lectura (salida).

Al transmitir datos desde el calendario del reloj o la RAM del DS1302, el DS1302 debe enviar primero el byte de comando.

Si se realiza una transmisión de un solo byte, una vez completada la transmisión del byte de comando de 8 bits, el byte de datos se ingresa en el flanco ascendente de los siguientes 2 ciclos SCLK, o el byte de datos se emite en el flanco descendente de los siguientes 8 SCLK ciclos.

Los registros relacionados con la RAM DS1302 se dividen en dos categorías: una es una única unidad RAM, máximo 31 unidades, cada unidad está configurada como un byte de 8 bits y su palabra de control de comando es C0H ~FDH. , donde los números impares son operaciones de lectura y los números pares son operaciones de escritura, el otro tipo es el registro RAM en modo ráfaga, en el que los 31 bytes de RAM se pueden leer y escribir al mismo tiempo;

Una nota especial es la fuente de alimentación de respaldo B1, que puede usar baterías o supercondensadores (por encima de 0,1F). Aunque el consumo de energía del DS1302 es muy pequeño después de apagar la alimentación principal, si desea mantener el reloj normal durante mucho tiempo, es mejor utilizar una pequeña batería recargable. Puede utilizar la batería recargable de 3,6 V en la placa base del ordenador antiguo. Si el tiempo de corte de energía es corto (unas pocas horas o días), se puede reemplazar por un capacitor electrolítico común con fugas más pequeñas. 100 μF pueden garantizar un tiempo de funcionamiento normal durante 1 hora. DS1302 debe inicializarse después de encenderlo por primera vez. Después de la inicialización, puede ajustar la hora de la forma habitual.

[Editar este párrafo] 5 Conclusión

DS1302 tiene deficiencias como baja precisión del reloj, fácil de verse afectado por el entorno y caos del reloj. DS1302 se puede utilizar para grabar datos, especialmente para registrar ciertos puntos de datos con significado especial. Puede registrar datos y la hora en que aparecen los datos al mismo tiempo. Este tipo de registro es de gran importancia para el análisis de los resultados del sistema de control y medición continua a largo plazo y la búsqueda de las causas de datos anormales. El método tradicional de registro de datos es el muestreo por intervalos o el muestreo programado, sin registros de tiempo específicos. Por lo tanto, solo puede registrar datos pero no puede registrar con precisión el momento en que ocurre. Si se utiliza la sincronización del microcontrolador, por un lado, se requiere un contador. lo cual ocupa recursos de hardware, y por otro lado es necesario utilizar un contador, por un lado es necesario configurar interrupciones, consultas, etc., lo que también consume los recursos del microcontrolador, y algo de medición y. Es posible que los sistemas de control no lo permitan. Sin embargo, si se utiliza el chip de reloj DS1302 en el sistema, este problema se puede resolver bien.

La RAM DS1302 se puede usar como una EEPROM general para almacenar algunas de sus propias variables, etc. Generalmente, no desaparecerá mientras la batería no esté desenchufada y se puede usar como un anti- apertura, etc., tal y como usted diseñó. Una vez abierta la máquina, se desconecta la batería y desaparece la variable de periodo, para poder determinar si el producto ha sido abierto, etc. Generalmente estas RAM no se utilizan.