Hardware de la PC Autor: Alejandro Furfaro 1 Origen de los Componentes de una PC: La primer IBM PC Autor: Alejandro Furfaro 2 0009FFFF 000A0000 000BFFFF 000C0000 000FFFFF 00100000 Vector de Int Modo Real BIOS Data Area Area de datos y programas 640 Kbytes 00000000 1 Kbyte Mapa de Memoria FFFFFFFF Autor: Alejandro Furfaro 3 Mapa de Memoria 0009FFFF 000A0000 000BFFFF 000C0000 Buffers de Video Modos Texto y Gráfico 128 Kbytes 00000000 000FFFFF 00100000 FFFFFFFF Autor: Alejandro Furfaro 4 Mapa de Memoria 0009FFFF 000A0000 Zona de Extensión de BIOS 000BFFFF 000C0000 000FFFFF 00100000 000EFFFF 000F0000 000FFFFF POST BIOS 192 Kbytes 000C0000 64 Kbytes 00000000 FFFFFFFF Autor: Alejandro Furfaro 5 Mapa de E/S en una PC Autor: Alejandro Furfaro 6 Hardware de Soporte de E/S 1 Programmable Interval Timer 8253 / 8254: 2 2 2 2 Timer 0: Dirección 40h. Base de tiempos del sistema. A la entrada CLK0 se conecta un cristal de 1,193,180 MHz. Se programa para generar por OUT0 un pulso cada 55 mseg. Este pin se conecta a la línea IRQ0 del PIC 8259: así se genera una interrupción a dicho intervalo, o como se refiere en la jerga, “genera 18,2 (¿?) interrupciones por segundo”. Timer 1: Dirección 41h. Se programa del mismo modo que Timer 0, pero se lo utiliza para activar el sistema de refresco de memoria DRAM. Para ello, OUT1 va conectado a la entrada DREQ0 del 8237. A partir del modelo AT 286 se utilizará un hardware dedicado al refresco de memoria. Timer 2: Dirección 42h. Se programa para generar a su salida una señal cuadrada de 50% de duty cycle y OUT2 se conecta al parlante del sistema. Registro de comando y status. Dirección 43h. Autor: Alejandro Furfaro 7 Hardware de Soporte de E/S 1Programable Parallel Interface: 8255: Fue inmediatamente reemplazado en el modelo siguiente (AT 286). Sin embargo los ports A y B, siguen presentes 2 2 2 Port A: Dirección 60h. La lógica de control de teclado al recibir los códigos de las teclas los almacena en este port. Port B: Dirección 61h. Sus líneas trabajan como salidas de control individuales. 2 Envío de la salida del Timer0 al parlante de la PC 2 Envío de un pulso a la línea IRQ1 del PIC 8259 cada vez que se recibe un código de tecla desde el teclado. Port C: Dirección 62h. Cuatro de estas líneas se utilizan como información de configuración del sistema. El sistema de configuración en los modelos originales PC y PC-XT era sumamente rudimentario (trabajaba con dip switches). Autor: Alejandro Furfaro 8 Interrupciones en los procesadores x86 Notas: 1 La instrucción UD2 fue introducida con el procesador Pentium Pro. 1 Los procesadores IA-32 posteriores al Intel386 no generan esta excepción. 1 Esta excepción fue introducida en el procesador Intel486. 1 Esta excepción fue introducida en el procesador Pentium y mejorada en la familia de procesadores P6. 1 Esta excepción fue introducida en el procesador Pentium III. Autor: Alejandro Furfaro 9 Interrupciones en la PC Autor: Alejandro Furfaro 10 Controlador de Interrupciones de Hardware: el PIC 8259 INTA D0 - D7 DATA BUS BUFFER INT LOGICA DE CONTROL BUS DE DATOS INTERNO RD IRQ0 WR READ WRITE LOGIC A0 IRQ1 IN SERVICE REGISTER (ISR) PRIORITY RESOLVER CS INTERRUPT IRQ2 REQUEST REGISTER (IRR) IRQ3 IRQ4 IRQ5 IRQ6 IRQ7 CAS0 CAS1 CAS2 CASCADE BUFFER COMPARATOR INTERRUPT MASK REGISTER (IMR) SP/EN Autor: Alejandro Furfaro 11 Configuración del PIC 8259 en la PC Timer Timer Tick Tick Data Bus Autor: Alejandro Furfaro CAS2 CAS1 CAS0 SP/EN 0 Disponibles en los buses de expansión IRQ3 IRQ4 IRQ5 IRQ6 IRQ7 IRQ8 IRQ9 IRQ10 IRQ0 IRQ1 INT IRQ2 IRQ3 INTA IRQ4 IRQ5 8259 Slave IRQ6 A0h-A1h IRQ7 SP/EN CAS2 Procesador 80x86 8042 Keyb Cont CAS1 INTA OUT CAS0 INTR 8259 Master IRQ0 20h-21h IRQ1 INT IRQ2 IRQ3 INTA IRQ4 IRQ5 IRQ6 IRQ7 8254 40h-43h Este 2do. 8259 fue agregado a partir de la PC-AT286 IRQ11 IRQ12 IRQ13 IRQ14 IRQ15 Vcc Nombre de las líneas del Sub-sistema de Interrupciones de la PC 12 Asignación y Tipo de las IRQ’s Autor: Alejandro Furfaro 13 Interrupción No Enmascarable (NMI) 80x86 Error de paridad en Memoria Error de paridad en el Bus Error del Coprocesador 8087 NMI 7 6 5 4 3 2 1 0 Port de E/S 0A0h 80x86 Error de paridad en Memoria Error de paridad en el Bus NMI 7 6 5 4 3 2 1 0 Port de E/S 070h Autor: Alejandro Furfaro 14 Programación del PIC 8259 1 El 8259, presenta al procesador una interfaz de programación a través de dos direcciones de E/S. 2 2 2 1 La primer PC tenía un solo PIC en las direcciones de port 20h y 21h. La PC AT 286, incluyó un segundo PIC, ya que la PC original ya había agotado la asignación de IRQ’s, y seguían apareciendo nuevos dispositivos: Placas de red, placas de sonido, etc. Este PIC es accesible en las direcciones de port A0h y A1h. Palabras de Comando de Inicialización: 2 2 2 Son una secuencia de entre dos y cuatro bytes que envía el procesador al 8259A antes de comenzar la operación normal, a fin de configurarlo. A los efectos del PIC 8259, la secuencia de Inicialización es una operación atómica, es decir, que no puede dividirse El 8259 detecta la secuencia de inicialización cuando recibe en la dirección de port par (A0 = 0), una palabra con el bit D4=1. Palabras de Comando de Operación: Una vez inicializado el 8259A, estas palabras le definen diversas operaciones a realizar. Luego de la inicialización, se pueden enviar en cualquier momento. Autor: Alejandro Furfaro 15 Programación del PIC 8259 ;;Inicialización InicializaciónPIC PIC#1 #1 mov mov al,11h al,11h ;ICW1: ;ICW1:IRQs IRQsactivas activaspor porflanco, flanco,Modo Modocascada, cascada,ICW4 ICW4Si. Si. out 20h,al out 20h,al mov ;ICW2: mov al,8 al,8 ;ICW2:INT INTbase basepara parael elPIC PICN#1 N#1Tipo Tipo8. 8. out out 21h,al 21h,al mov mov al,04h al,04h ;ICW3: ;ICW3:PIC PICN#1 N#1Master, Master,tiene tieneun unSlave Slaveconectado conectadoaaIRQ2 IRQ2(0000 (00000100b) 0100b) out out 21h,al 21h,al mov al,01h mov al,01h ;ICW4: ;ICW4:Modo ModoNo NoBuffered, Buffered,Fin Finde deInterrupción InterrupciónNormal, Normal,procesador procesador8086 8086 out 21h,al out 21h,al ;;Antes Antesde deinicializar inicializarel elPIC PICN#2, N#2,deshabilitamos deshabilitamoslas lasInterrupciones Interrupcionesdel delPIC PICN#1 N#1 mov mov al,0FFh al,0FFh:OCW1: :OCW1:Set SetooClear Clearel elIMR IMR out out 21h,al 21h,al ;;Inicialización InicializaciónPIC PICNN#2 #2 mov al,11h ;ICW1: mov al,11h ;ICW1:IRQs IRQsactivas activaspor porflanco, flanco,Modo Modocascada, cascada,ICW4 ICW4Si. Si. out 0A0h,al out 0A0h,al mov mov al,070h al,070h;ICW2: ;ICW2:INT INTbase basepara parael elPIC PICN#1 N#1Tipo Tipo070h. 070h. out out 0A1h,al 0A1h,al mov mov al,02h al,02h ;ICW3: ;ICW3:PIC PICN#2 N#2Slave, Slave,IRQ2 IRQ2es esla lalínea líneaque queenvía envíaal alMaster Master(010b) (010b) out 0A1h,al out 0A1h,al mov mov al,01h al,01h ;ICW4: ;ICW4:Modo ModoNo NoBuffered, Buffered,Fin Finde deInterrupción InterrupciónNormal, Normal,procesador procesador8086 8086 out out 0A1h,al 0A1h,al Autor: Alejandro Furfaro 16 Power On Self Test 1 1 1 1 1 Antes de iniciar su operación el sistema verificará el correcto funcionamiento de la CPU Chequea si el contenido de la ROM es el correcto (realiza un checksum del contenido de la ROM completa que en fábrica se ajusta de modo que el resultado del check sea cero). Detecta el tipo de adaptador de video instalado. Lo inicializa en modo texto 80x25. Escribe en la BIOS DATA AREA los principales datos de interés para el sistema que proporciona este controlador. Comprueba la correcta interacción con el 8042 y setea el modo de trabajo con los diferentes ports de E/S que proporciona este chip. Si el Timer 1 funciona correctamente se lo programa para generar un pulso al final de la cuenta, cuenta cíclica, y duración de la misma 15 mseg. Autor: Alejandro Furfaro 17 Power On Self Test Comprueba el correcto funcionamiento para el canal de DMA 0. 7. Si los test descriptos indican que el Timer 1 y el canal 0 de DMA funcionan correctamente, entonces se dispara el refresco de memoria. 8. Comprueba el 8259 y lo inicializa con los valores default de los vectores de Interrupción. A los que usa, los apunta a las rutinas de la ROM correspondientes. 9. Cuenta la memoria RAM y comprueba su funcionamiento 10. Una vez finalizada la cuenta de memoria, chequea los restantes timers y canales de DMA. Si funcionan correctamente los inicializa de acuerdo a la forma en la que van a trabajar cada uno de ellos. 11. Funcionando correctamente el teclado y el timer tick, habilita sus interrupciones en el 8259 6. Autor: Alejandro Furfaro 18 Power On Self Test 12. 13. 14. 15. 16. Testea el funcionamiento de las unidades de disco flexible y rígido. Una vez comprobado las inicializa, y escribe los resultados y principales parámetros en la BIOS DATA AREA. Chequea si existen ports serie. Inicializa a los que encuentra y guarda resultados en BIOS DATA AREA. Chequea si existen ports paralelo. Inicializa a los que encuentra y guarda resultados en BIOS DATA AREA. Establece si existen extensiones BIOS. Esto es: La ROM BIOS de las PC provee un camino para integrar adaptadores de E/S con su propia ROM on-board. Llama a la rutina Bootstrap loader para la carga del sistema operativo Autor: Alejandro Furfaro 19 Detección de extensiones BIOS 1 1 1 1 1 1 1 1 El POST busca extensiones de BIOS. El rango de direcciones de memoria en las que se pueden mapear estas ROMs va desde la C0000h hasta la EFFFFh. Se busca dentro de este rango cada 2K una firma fija e igual a 55AAh. Si la encuentra asume que en esa página de 2k comienza una extensión de BIOS. Si el POST detecta alguna ROM adicional, le transfiere temporariamente el control. La extensión de BIOS: Inicializará el hardware para el que fue diseñada Realizará, del mismo modo que el POST de la ROM del sistema) un checksum, cuyo resultado debe ser 0 para que la ROM se considere de contenido válido. Interceptará las interrupciones que necesite, enganchándose a sí misma en el sistema. Devolverá al POST el control del sistema (RET) dejando al hardware asociado a la extensión BIOS, listo para su uso. Autor: Alejandro Furfaro 20 Extensiones BIOS: Mapa de Memoria 00000000 0009FFFF 000A0000 000BFFFF 000C0000 000FFFFF 00100000 000C0000 2Kbytes 2Kbytes Extensión de BIOS 000EFFFF 000F0000 POST 000FFFFF BIOS Encabezado Código y datos de la extensión Formato del encabezado de la de extensión BIOS: FFFFFFFF Autor: Alejandro Furfaro 21 Arranque del sistema operativo 1 La rutina Boostrap Loader del BIOS solo se limita a 2 Leer el primer sector físico del disco. 2 Cargar los 512 bytes en memoria RAM (0000h:7C00h) 2 Saltar al primer byte (debe haber allí una instrucción válida) 1 La unidad de disco que lee es la que tiene configurada el equipo en la secuencia de arranque. 1 En ese sector debe residir un programa que sepa cargar al Sistema Operativo. 2 Debe leer del disco los archivos necesarios para bajar a la memoria. Para ello deben conocer la forma en que está organizada la información en el disco 2 Debe descargarlos en memoria y en algún momento transferirles la ejecución. Autor: Alejandro Furfaro 22 Acceso Directo a Memoria (DMA) CPU DREQ0 HRQ HLDA HLDA Address Bus HOLD DACK0 DREQ1 DACK1 Controlador de DMA (8237A)DREQ DRAM 2 DACK2 Address Bus DREQ3 DACK3 Device Device 1 1 Device Device 2 2 Device Device 3 3 Device Device 4 4 Data Bus Autor: Alejandro Furfaro 23 Subsistema de DMA en la PC y PCXT 5Vcc RAS OUT 1 CL A0 A1 A2 A3 A4 A5 A6 A7 DREQ0 Q 74LS74 DREQ1 DREQ2 DREQ3 DREQ 1 DREQ2 DREQ3 HRQ HLD A RDY TO DMA CLK RES Y4 RAS 3 NC DACK0 DACK1 DACK2 DACK3 EOP AEN XIOR XIO W XMEM R XMEMW IOR IOW MEMR MEMW D0 Q0 D1 Q1 D2 Q2 Q3 D3 WA WB74LS670 RB RA ADSTB A16 A17 A18 A19 Bus 74LS243 DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 de Bus de Control 8288 RD W GND DMA AEN WRT DMA PG RG 74LS32 Fig. 6. Circuito de Control de DMA en una IBM PC XT Autor: Alejandro Furfaro 2 74S08 “ Buffereado” IO IOW R MEMR MEMW AEN RAS 74S08 Datos Señales de Status del 8088 74LS138 S2 8237A 1 2G EOP G2A G2B S0 S1 CS Y0 A B C 1G DACK0 DACK1 DACK2 DACK3 de XA9 HLDA RDY CL K RES Bus AEN XA5 XA6 XA7 XA8 HRQ 74LS24 4 RAS RAS A0 A1 A2 A3 A4 A5 A6 A7 Direcciones 8253 0 Al Slot ISA del Sistema CL Bus de Direcciones “ Buffereado” D S XD0 XD1 XD2 XD3 XD4 XD5 XD6 XD7 OE 74LS37 3 A8 A9 A10 A11 A12 A13 A14 A15 LE 24 Subsistema de DMA: Direcciones de E/S DMA Page Registers: El 8237 solo direcciona 64 Kbytes (bus de address de 16 bits) En la XT, se agregan estos Registros para llegar al Mbyte de espacio de direccionamiento. Por lo tanto son registros de 4 bits. En las AT286 se extendieron a 8 bits, ya que el 80286 agrega al bus de direcciones las líneas A20 a A23 Autor: Alejandro Furfaro 25 Subsistema de DMA a partir de la PC AT286 Autor: Alejandro Furfaro 26 Subsistema de DMA a partir de la PC AT286 Autor: Alejandro Furfaro 27 Subsistema de DMA PC AT286: Limitaciones Este subsistema introdujo mejoras en la performance de una PC XT con un disco rígido de 10 Mbytes. 1 En las máquinas modernas con discos de 100 Gbytes, la combinación 8237 mas Bus ISA, se transformaría en un cuello de botella. 1 Los chipsets que acompañan a los procesadores Pentium, aún los mas modernos siguen incluyendo la lógica equivalente a este subsistema (8237 like). La única razón: COMPATIBILIDAD. A este montaje se lo denomina DMA de terceras partes. 1 las PCs modernas utilizan DMA de primera parte. Se refiere a controladores de dispositivos de E/S (como disco por ejemplo) capaces de requerir por si solos el DMA y manejarlo. Este concepto se conoce como Bus Mastering y en él se basa la tecnología Ultra DMA (UDMA) de los controladores IDE para discos rígidos. Autor: Alejandro Furfaro 28 1 Alternativas al Subsistema de DMA legacy E/S Programada (PIO) Esquema de acceso a la E/S mediante instrucciones de E/S del procesador (IN, OUT, INS, y OUTS) y algún hardware adicional. Arranca para Bus ISA. De acuerdo a la implementación se consiguieron diferentes velocidades de acceso. Estas se conocen como Modos de E/S Programada o PIO Modes. La solución resultó mas que aceptable para los primeros discos rígidos de tecnología IDE/ATA, de modo que estos PIO modes fueron incluidos en las respectivas especificaciones de los estándares ATA-1 y ATA-2. Cantidad de nano segundos para que se lleve a cabo la transferencia Autor: Alejandro Furfaro 1/Tiempo de Ciclo 29 Subsistemas de DMA modernos 1 Bus Mastering 2 2 2 1 Para los discos rígidos el método PIO, demanda demasiada CPU. El Bus PCI aumenta las velocidades de transferencia, y permite acceder al bus del sistema de manera transparente al procesador. Por este motivo se desarrollo el método de Bus Mastering para reemplazar al PIO en transferencias masivas de datos de modo de liberar al procesador Para habilitar Bus Mastering en un sistema, se requiere que el hardware del chipset, y el BIOS, lo soporten, que el dispositivo periférico soporte Bus Mastering, y trabajar con un sistema operativo de 32 bits: Windows 2000, Windows XP, Linux, etc. En algunas ocasiones se requiere la instalación de un driver. Ultra DMA 2 2 Esta tecnología corresponde al concepto de DMA de primera parte, y se implementó en los discos rígidos en reemplazo de la PIO. Nos referiremos en mas detalle al abordar el tema de Discos Rígidos, ya que no es un control de DMA abierto a cualquier periférico que lo requiera sino que se encuentra embebido en el hardware del controlador de disco y es exclusivo para éste. Autor: Alejandro Furfaro 30 Teclado Un Microcontrolador se encarga del barrido de la matriz de teclas con la implementación del control de antirrebote. Una vez detectada la pulsación o liberación de una tecla se transmite por línea serie a la PC el código de la misma. ¿Qué código? Cada tecla se identifica con un código de acuerdo con su posición dentro del layout del teclado. En el caso de la tecla ESC su código es 1. Este valor se denomina SCAN CODE (o código de rastreo en algunas traducciones) Autor: Alejandro Furfaro 31 Teclado MAKE BREAK Autor: Alejandro Furfaro El SCAN CODE se transmite cada vez que se pulsa una tecla acción conocida como MAKE, razón por la cual se denomina MAKE CODE Cuando se libera la tecla pulsada (acción conocida como BREAK), se vuelve a transmitir el SCAN CODE de la tecla a la PC para generar una segunda interrupción por IRQ1. La PC detecta tanto la pulsación como la liberación de cada tecla. De otro modo no se podría por ejemplo actuar ante CTRL+ALT+DEL Para diferenciar la acción de BREAK de un MAKE el código que se transmite es el mismo SCAN CODE pero con el MSB en 1. Este código se denomina BREAK CODE 32 Controlador de Teclado A partir de la AT 286 del lado PC un microcontrolador 8042 es quien se encarga de recibir el Make o el Break code. Es un miembro especial de la familia MCS- 51, denominado Universal Peripheral Interface: Dispone de una interfaz para que sus propios ports integrados sean accesibles desde el exterior por otro microprocesador. En este caso ese microprocesador es el de la PC. Recibe los datos desde el teclado por una interfaz serie, chequea paridad, traduce los scan codes y los deja disponibles en un port interno que visto desde el exterior se accede en la dirección 60h del mapa de E/S de la PC. Registros accesibles desde la PC 1 Registro de status (Read) o comandos (Write). Se accede en la dirección 64h de E/S de la PC 1 Output Buffer (Read only), para leer el código de la tecla pulsada o liberada. Se accede en la dirección 60h de E/S 1 Input Buffer (Write only). En la dirección 64h se escribe un comando al controlador (Command Register, visto anteriormente). En la dirección 60h se escribe un dato, que será enviado al teclado. Autor: Alejandro Furfaro 33 Controlador de Teclado Autor: Alejandro Furfaro 34 BIOS Data Area: Bytes de Estado de teclas modificadoras Address 0040:0017 Address 0040:0018 Autor: Alejandro Furfaro 35 Rutina de Atención de Int. de Teclado Detección Detección de de SCAN SCAN SI Actualiza Actualiza Bytes Bytes de de Estados Estados en en BIOS BIOS Data Data Area Area NO Analiza Analiza estado estado de de Teclas Teclas Modificadoras Modificadoras Es Es una una Tecla Tecla Modificadora? Modificadora? NO Es Es un un Break Break Code? Code? SI Es Es un un Break Break Code? Code? SI SI Es Es la la Tecla Tecla INS? INS? Traduce Traduce el el Scan Scan Code Code aa ASCII ASCII desde desde una una Tabla Tabla Es Es un un ASCII ASCII Extendido? Extendido? NO NO SI Escribe Escribe ASCII ASCII Extendido Extendido en en el el buffer buffer de de teclado teclado NO Escribe Escribe Scan Scan Code Code yy ASCII ASCII en en el el Buffer Buffer de de Teclado Teclado Autor: Alejandro Furfaro FIN FIN 36 BIOS Data Area: Buffer circular de teclado Autor: Alejandro Furfaro 37 Reloj en Tiempo Real A partir de la AT 286, se incluyó en el diseño un chip de Motorola con un Real Time Clock y una RAM CMOS de 64 bytes: El MC146818. Los registros internos de la RAM CMOS, se detallan a continuación: Registros del MC 146818 00 01 Segundos Segundos de alarma 10 11 Byte de tipo de drive de disquete (A y B) Reservado 02 03 04 05 Minutos Minutos de alarma Horas Horas de alarma 12 13 14 15 Byte de tipo de hard disk (C y D) Reservado Byte de equipo Byte bajo de memoria base 06 07 08 09 Día de la semana Fecha del Mes Mes Año 16 17 18 19-2D Byte alto de memoria base Byte bajo de expansión de memoria Byte alto de expansión de memoria Reservado 0A 0B 0C 0D Status Register A Status Register B Status Register C Status Register D 2E-2F 30 31 32 Checksum del CMOS (registros 10h a 2Fh) Byte bajo de expansión de memoria Byte alto de expansión de memoria Byte de siglo de fecha 0E 0F Byte de estados de diagnóstico Byte de estado de Shutdown 33 34-3F Flag de información (seteado durante power on) Reservado Autor: Alejandro Furfaro 38 Reloj en Tiempo Real 1 1 1 1 Al tener 64 registros internos, utiliza el modo de direccionamiento indirecto para evitar consumir demasiadas direcciones de E/S. Se muestra al procesador como dos ports: Uno de direcciones (en donde escribimos el número del registro interno con el cual queremos transaccionar), y otro de datos (en donde realizamos la transacción). READ: mov al,Memory_location out 70h, al in al,71h Autor: Alejandro Furfaro WRITE: mov out mov out al,Memory_location 70h,al al,New_contents 71h,al 39 Reloj en Tiempo Real Status Register A 7 6 UIP UIP 5 4 3 DV DV0-2 0-2 Update Update in in progress. progress. 2 RS RS3-0 3-0 1: 1: Indica Indica ciclo ciclo de de actualización actualización del del reloj reloj en en proceso. proceso. 0: 0: Indica Indica fecha fecha yy hora hora listas listas para para su su lectura lectura Autor: Alejandro Furfaro 1 0 RS : Rate Selection bits. RS3-0 3-0: Rate Selection bits. Seleccionan Seleccionan el el divisor divisor de de frecuencia frecuencia de de salida. salida. El El sistema sistema inicializa inicializa este este valor valor en en 0110. 0110. Esto Esto selecciona selecciona una una señal señal cuadrada cuadrada de de salida salida de de 1024 1024 Hz, Hz, oo lo lo que que es es igual igual un un período período de de 0,976562 0,976562 mseg. mseg. DV : DV2-0 2-0: Divisor Divisor de de 22 22 etapas etapas que que permite permite setear setear la la frecuencia frecuencia de de la la base base de de tiempos tiempos del del sistema. sistema. El El power power on on self self test test lo lo coloca coloca en en 010 010 de de modo modo de de establecer establecer 32,768 32,768 Khz. Khz. 40 Reloj en Tiempo Real Status Register B 7 6 5 4 3 2 1 0 SQWE DM Set 24/12DSE Set PIE DM 24/12 DSE PIE AIE AIE UIE UIESQWE Update-Ended Update-Ended Interrupt Interrupt Enable. Enable. Habilita Habilita (activo (activo alto) alto) el el envío envío de de interrupción interrupción cada cada vez vez que que actualiza actualiza fecha fecha yy hora. hora. Alarm Alarm Interrupt Interrupt Enable. Enable. Activo Activo alto. alto. Habilita Habilita el el envío envío de de una una interrupción interrupción en en la la fecha fecha yy hora hora de de alarma alarma programada. programada. Periodic Periodic Interrupt Interrupt Enable. Enable. Activo Activo alto. alto. Habilita Habilita el el envío envío de de una una señal del señal de de interrupción interrupción aa períodos períodos establecidos establecidos en en los los bits bits RS RS3-0 3-0 del Status Status Register Register A. A. 0: 0: Se Se actualiza actualiza el el reloj reloj aa razón razón de de una una cuenta cuenta por por segundo. segundo. 1: 1: Se Se detiene detiene la la actualización actualización permitiendo permitiendo inicializar inicializar los los 14 14 registros registros sin sin interrupción interrupción hasta hasta que que vuelva vuelva aa ponerse ponerse en en ‘0’. ‘0’. Autor: Alejandro Furfaro 41 Reloj en Tiempo Real 7 Status Register B 6 5 4 3 2 1 0 SQWE DM Set 24/12DSE Set PIE DM 24/12 DSE PIE AIE AIE UIE UIESQWE Daylight Daylight Saving Saving Enable. Enable. El El POST POST lo lo inicializa inicializa en en 0, 0, indicando indicando que que no no está está habilitado habilitado 0: 0: Modo Modo 12 12 hs. hs. 1: 1: Modo Modo 24hs. 24hs. (El (El POST POST lo lo inicializa inicializa de de este este modo) modo) Date Date Mode. Mode. 0: 0: Fecha Fecha yy hora hora se se actualizan actualizan en en BCD BCD (El (El POST POST lo lo inicializa inicializa de de este este modo). modo). 1: 1: Fecha Fecha yy hora hora se se actualizan actualizan en en Binario. Binario. Square Square Wave Wave Enable. Enable. Activo Activo alto. alto. Habilita Habilita la la generación generación de de una una onda onda cuadrada cuadrada aa intervalos intervalos establecidos establecidos en en el el Status Status Register Register A. A. Autor: Alejandro Furfaro 42 Reloj en Tiempo Real 7 6 Status Register C 5 4 3 2 1 0 PF PF AF AF UF UF Bits Bits Read Read only, only, que que reflejan reflejan el el estado estado de de los los bits bits PIE, PIE, AIE, AIE, yy UIE UIE del del Status Status Register Register BB Status Register D Valid Valid RAM RAM and and Time. Time. Indica Indica con con un un 00 que que el el sistema sistema no no tiene tiene alimentación alimentación suficiente suficiente (batería (batería de de Litio Litio baja) baja) Autor: Alejandro Furfaro 7 6 5 4 3 2 1 0 VRT VRT 43