Contactos

¿Qué es un controlador de EEPROM? Qué es un chip de memoria y cómo programar microcircuitos. Mira lo que es "EEPROM" en otros diccionarios

Los microcircuitos misceláneos se aplican como parte de la electrónica de la tecnología moderna. Una gran variedad de este tipo de componentes complementa los microcircuitos de memoria. Este tipo de componentes de radio (entre electrónica y personas) a menudo se llama simplemente chips. El propósito principal de las chips de memoria es el almacenamiento de cierta información con la posibilidad de hacer (grabación), cambios (sobrescritura) o remoción completa (borrando) software. El interés universal en los chips de memoria es comprensible. Wizards, que saben cómo programar chips de memoria, abre extensos expansiones en la reparación y configuración de los dispositivos electrónicos modernos.

El microcircuito de memoria es un componente electrónico, cuya estructura interna es capaz de guardar (memorizar) programas ingresados, cualquier datos o simultáneamente ambos.

En esencia, la información cargada en el chip es una serie de comandos que consisten en un conjunto de unidades de computación de microprocesador.

Cabe destacar: los chips de memoria son siempre una adición integral de microprocesadores: control de microcircuitos. A su vez, el microprocesador es la base de la electrónica de cualquier tecnología moderna.

Colocar componentes electrónicos En el tablero moderno dispositivo electronico. En algún lugar entre esta masa de componentes de radio, un componente se protegió, capaz de memorizar información

Por lo tanto, el microprocesador controla, y el chip de memoria almacena la información necesaria para el microprocesador.

Los programas o datos se almacenan en el chip de memoria como una serie de números, ceros y unidades (bits). Un bit se puede representar mediante cero lógico (0) o unidad (1).

En una sola forma, el procesamiento de bits se ve difícil. Por lo tanto, los bits se combinan en grupos. Dieciséis bits constituyen un grupo de "palabras", ocho bits son bytes, "parte de la palabra", cuatro bits, "una pieza de palabras".

Software térmico para chips, que se usa con más frecuencia que otros, es byte. Este es un conjunto de ocho bits, que pueden tomar de 2 a 8 variaciones numéricas, que en total proporcionan 256 valores diferentes.

Para representar el byte, se utiliza un sistema de números hexadecimales, donde se proporciona el uso de 16 valores de dos grupos:

  1. Digital (de 0 a 9).
  2. Simbólico (de A a f).

Por lo tanto, en combinaciones de dos signos del sistema hexadecimal, también se apilan 256 valores (a partir de 00h a FFH). El símbolo final "H" indica la pertenencia a números hexadecimales.

Organización de microcircuitos (chips) de memoria.

Para los chips de memoria de 8 bits (el tipo más común), los bits se combinan en bytes (8 bits) y se almacenan bajo una "dirección" específica.

En la dirección designada, acceso a bytes. La salida de ocho bits de direcciones de acceso se realiza a través de ocho puertos de datos.


Organización de la estructura estratégica. A primera vista, un algoritmo complejo e incomprensible. Pero si desea averiguar, la comprensión viene rápidamente.

Los chips de memoria permanentes programables lavados eléctricamente (EEPROM) son microcircuitos de la computadora semiconductora de óxido metálico que se utilizan en tarjeta de circuito impreso. Este tipo de chip se puede borrar y reprogramado utilizando una señal de electrón fuerte. Como esto se puede hacer sin quitar el chip desde el dispositivo al que está conectado, los chips EEPROM se utilizan en muchas industrias.
El microcircuito EEPROM contiene memoria no volátil, por lo que sus datos no se pierden cuando se interrumpe el chip. El chip de este tipo se puede programar de forma selectiva, lo que significa que la parte de su memoria se puede cambiar utilizando una nueva sobrescritura sin afectar el resto de la memoria. La información almacenada dentro del chip de EEPROM es constante hasta que está dirigida o reprogramada, lo que lo convierte en un componente valioso en computadoras y otros dispositivos electrónicos.

Los chips de EEPROM se basan en los transistores con un obturador flotante. El microcircuito EEPROM está programado al hacer cumplir la información programable en forma de electrones a través del óxido del obturador. Luego, el obturador flotante garantiza el almacenamiento de estos electrones. La celda de memoria se considera programada cuando se carga con electrones, y parece cero. Si la celda de memoria no está cargada, no está programada, y está representada por una.

La memoria requiere una amplia gama de dispositivos, por lo que los chips de EEPROM tienen muchas aplicaciones en el campo de la electrónica de consumo. Se utilizan en sistemas de juegos, televisores y monitores de computadora. Audífonos, cámaras digitales, tecnología Bluetooth Y los sistemas de juego también usan chips EEPROM. Se utilizan en la industria de telecomunicaciones, medicina y fabricación. Las computadoras personales y de negocios contienen EPPSU.

El chip de EEPROM también tiene una amplia gama de aplicaciones en la industria automotriz. Se utiliza en sistemas antibloqueo, almohadas de seguridad, medios electronicos Estabilidad de control, transmisiones y unidades de control del motor. Los chips de EEPROM también se utilizan en los acondicionadores de aire, pantallas. tablero, Módulos de control de CORPS y sistemas de entrada sin clave. Estos chips ayudan a controlar el consumo de combustible, y también se utilizan en varios sistemas de diagnóstico.

Hay un límite en el número de repeticiones que se pueden sobrescribir por el chip EEPROM. La capa dentro del chip es dañada gradualmente por numerosas reescrituras. Este no es un problema importante, porque algunos chips de EEPROM se pueden cambiar a un millón de veces. Es probable que los programas de éxito posteriores tengan un impacto positivo en lo que puede contar en los chips de memoria en el futuro.

En el amanecer de la memoria, guardando los datos cuando se apaga la alimentación (EPROM, MI. Rasable pag. Rogrammable. ROM , ROM BORABLE / programable, o en ruso - Pisa, ROM programable), su tipo principal fue la memoria lavada por Ultraviolet: UV-EPROM ( EPROM ultravioleta , UV-PPZ). Además, el prefijo UV bajó, ya que todos estaban claros en que EPROM es un borrado por ultravioleta, una ROM (o ROM) simplemente, sin adiciones, es una vez que se producen cristales OTP-ROM programables. Los microcontroladores con programas de memoria UV se distribuyeron a mediados de la década de 1990. En las muestras de trabajo de dispositivos con memoria UV, la ventana de cuarzo a través de la cual se llevó a cabo el borrado, se atascó con una pieza de cinta adhesiva negra, ya que la información en la UV-EPROM se destruye lentamente y a la luz del sol.

En la Fig. 18.7 Se muestra la célula elemental de EPROM, que se basa en todos los tipos modernos de memoria flash. Si excluye de él, lo que indica la inscripción "Shutter flotante", obtenemos los más comunes transistor de efecto de campo - Exactamente lo mismo entra en la celda DRAM. Si envía una tensión positiva al disparador de control de dicho transistor, se abrirá, y la corriente fluye a través de ella (esto se considera un estado de una unidad lógica). En la Fig. 18.7 En la parte superior representa este caso cuando el obturador flotante no tiene ningún efecto en el trabajo de la celda, por ejemplo, dicho estado es típico para la memoria flash limpia, que nunca se ha registrado en ningún momento.

Higo. 18.7. Dispositivo celular elemental EPROM.

Si somos de alguna manera (cómo hablar por separado), logramos acomodar algunos cargos de electrones libres en una puerta flotante, que se muestran en la FIG. 18.7 Abajo En forma de círculos oscuros con un icono menos, protegerán el funcionamiento del electrodo de control, y dicho transistor ya no detendrá el conducto. Este es un estado de cero lógico. Dado que el obturador flotante se debe a que se llama "flota" en el grosor del aislante (dióxido de silicio), entonces los cargos informados a él un día no pueden ir a ninguna parte. Y la información registrada de esta manera se puede almacenar durante décadas (hasta hace poco, los fabricantes generalmente dieron una garantía durante 10 años, pero en la práctica en condiciones normales, el tiempo de almacenamiento es mucho más).

Notas sobre los campos

Estrictamente hablando, en los nand-chips (sobre los cuales, la lógica está obligada a ser inversa. Si en la celda programada habitual de EPROM no puede abrir el voltaje de alimentación, entonces, por el contrario, es imposible bloquearlo con la eliminación del voltaje. Por lo tanto, en particular, la memoria NET NAND le da a todos los ceros, y no la unidad como EPROM. Pero estos son matices que no cambian la esencia del caso.

No queda nada para crear cómo colocar cargos aislados de todas las influencias externas por la puerta flotante. Y no solo para post-después de todo, a veces la memoria y borrarla, por lo tanto, debe ser una forma de extraerlos desde allí. En la capa UV-EPROM de óxido entre el obturador flotante y el sustrato fue bastante grueso (si el valor de 50 nanómetros se puede caracterizar por la palabra "grasa", por supuesto), y todo funcionó con bastante rudeza. Al grabar, se suministró un voltaje positivo bastante alto al obturador de control, a veces hasta 36-40 V, y en el transistor de stock, un pequeño positivo. Al mismo tiempo, los electrones que se movían de la fuente al drenaje, así que aceleró el campo del electrodo de control, lo que simplemente saltó la barrera en forma de un aislante entre el sustrato y un obturador flotante. Tal proceso se llama inyectando electrones calientes .

La corriente de carga al mismo tiempo llegó a Milliamper: puede imaginar lo que fue el consumo de todo el esquema si aplica simultáneamente al menos varios miles de células. Y aunque se requiera una corriente de este tipo por un tiempo suficientemente corto (sin embargo, desde el punto de vista de la velocidad del esquema, no hay un poco de milisegundos), pero fue la mayor desventaja de todas las muestras antiguas de memoria de EPROM. Peor aún que otro, y el aislante, y el obturador flotante de tales taurinas durante mucho tiempo no se pudo degradarse y gradualmente, por lo que la cantidad de ciclos de borrado / grabación se limitó a varios cientos, el máximo de miles. En muchas muestras de memoria flash, incluso se ha proporcionado un esquema especial para almacenar las células "rotas", exactamente como se hace para discos duros. En modelos modernos con millones de células, tal tarjeta también tiene, sin embargo, el número de ciclos de borrado / grabación ahora ha aumentado a cientos de miles. ¿Cómo se logró lograr esto?

Primero, veamos cómo se llevó a cabo el borrado en este esquema. En UV-EPROM, cuando se irradia con ultravioleta, se informaron fotones de alta energía a los electrones en una puerta flotante un pulso adecuado para que "saltaron" de nuevo al sustrato, sin ningún efecto eléctrico. Las primeras muestras de memoria borrable eléctricamente (EEPROM, ROM programable Borrable eléctricamente La ROM reprogramada eléctricamente borrable, ESPRU) se crearon en la empresa. Intel A fines de la década de 1970, con la participación directa del Futuro Fundador. Atmel George Perelegelos. El usó efecto cuántico Tunneling Fowler Nordhaima . Este nombre incomprensible se encuentra bastante simple en esencia (pero muy complejo desde un punto de vista físico) el fenómeno, con una película bastante delgada del aislante (su espesor tenía que reducirse de 50 a 10 nm) electrones, si están ligeramente empujando el relleno alto voltaje En la dirección correcta, pueden filtrarse a través de la barrera, sin saltarlo. El proceso en sí se muestra en la FIG. 18.8 En la parte superior (preste atención al signo de voltaje en el electrodo de control).

Higo. 18.8. Borrar proceso en la celda elemental. EPROM.

Las antiguas muestras de EEPROM estaban tan trabajadas: el registro fue hecho por la "inyección en caliente", y el borrado es "Túnel cuántico". Debido a que eran bastante complejos en la operación, los desarrolladores con experiencia recuerdan que los primeros chips de EEPROM exigían dos, o incluso tres voltajes de suministro, y para aplicarlos cuando se requiera la grabación y el borrado en una secuencia específica.

Transformación de eeprom en Destello. Sucedió en tres direcciones diferentes. En primer lugar, en la dirección de mejorar el diseño de la celda propia. Para empezar, se libraron de la etapa desagradable: "inyección caliente". En cambio, cuando la escritura comenzó a usar "Túnel cuántico", como para borrar. En la Fig. 18.8 A continuación se muestra este proceso, si con un transistor abierto para enviar un voltaje bastante alto (pero significativamente menor que cuando la "inyección en caliente"), luego parte de los electrones que se mueven a través de transistor exterior Desde la fuente hasta el desagüe, "inclinándose" a través del aislante y estará en una puerta flotante. El consumo actual durante la grabación disminuyó por varios pedidos. Aislador, sin embargo, tuve que hacerlo aún más delgado, lo que llevó a dificultades bastante grandes con la introducción de esta tecnología en producción.

La segunda dirección: la célula se hizo algo más complicada al colocarla el segundo transistor (normal, no de dos cadenas), que dividió la salida del desagüe y lee el neumático de todo el chip. Gracias a todo esto, fue posible lograr un aumento significativo de la durabilidad, hasta cientos de miles de ciclos de grabación / borrado (millones de ciclos característicos de las tarjetas de flash, se obtienen si agrega esquemas de corrección de errores). Además, los esquemas de formación de alto voltaje y los generadores de impulsos correspondientes de registro / borrado se transfirieron dentro del chip, lo que permite utilizar estos tipos de memoria. Se convirtió en incomparablemente más conveniente: comenzaron a comer de un voltaje (5, 3.3 o incluso 1.8 V).

Y, finalmente, el tercero, apenas más importante, la mejora fue cambiar la organización del acceso a las células en el cristal, como resultado de lo cual este tipo de memoria y merece el nombre. destello. (I.E. "LIGHTNING"), ahora conocido por cada propietario de una cámara digital o un reproductor de Pocket MPZ. Entonces, a mediados de la década de 1980, llamaron la diferencia de EEPROM, en la que se realizaron el borrado y el registro inmediatamente con bloques completos: páginas. Sin embargo, el procedimiento de lectura de una célula arbitraria, sin embargo, por razones obvias, desaceleradas, por su aceleración, es necesario colocar el SRAM intermedio (tampón) para acelerarlo en los cristales de memoria flash. Para las unidades flash, esto no importa mucho, ya que todavía hay que los datos se leen y se escriben inmediatamente por grandes matrices, pero para su uso en microcontroladores puede ser incómodo. Además, en el MC es un inconveniente usar la versión más rápida de la tecnología Flash: la llamada memoria de NAND (desde el nombre función lógica "I-NO"), donde leer y registrar la memoria en principio es posible solo por bloques de 512 bytes (este es el tamaño habitual del sector en el disco duro, también legible y grabado a la vez, desde aquí puede entender El propósito principal de NAND).

El MK usualmente use la memoria flash tradicional (tipo Ni) de los programas en los que las páginas son relativamente pequeñas en tamaño, aproximadamente 64-256 bytes. Sin embargo, si el propio usuario no toma la creación de un programador para tal chip, puede sobre el carácter de la página de la memoria y no la adivina. Y para los datos de usuario, EEPROM se usa o con la capacidad de leer un byte arbitrario, o particionado, pero en bloques muy pequeños, por ejemplo, 4 bytes. Al mismo tiempo, el usuario todavía tiene acceso al acceso. Un rasgo característico de tal memoria es bastante lento (sobre milisegundos) el procedimiento de grabación, mientras que la lectura fluye sin más lento que cualquier otra operación en el MK.

El desarrollo de las tecnologías de memoria flash fue de gran importancia para la reducción y disponibilidad de microcontroladores. En el futuro, nos ocuparemos de la memoria no volátil no solo en forma de programas incorporados en el microcontrolador y los datos, sino también con chips individuales que le permiten registrar grandes cantidades de información.

Microcontroladores ATMEL AVR.

El número total de familias de microcontrolistas existentes se estima en aproximadamente el 100%, y todas las nuevas y nuevas aparecen anualmente. Cada una de estas familias puede incluir docenas de modelos diferentes. Además, la parte del león de los chips fabricados cae en controladores especializados, por ejemplo, para controlar la interfaz USB o las pantallas LCD. A veces es bastante difícil clasificar el producto, por lo que muchos representantes de la familia ARM, que se usa ampliamente para construir dispositivos móvilesDesde el punto de vista de la funcionalidad incorporada desarrollada se relaciona con los controladores típicos, pero al mismo tiempo que un kernel bastante poderoso les permite atribuirlos a la clase de microprocesadores.

De la familia de microcontroladores universales de 8 bits, por así decirlo, "para todas las ocasiones", los tres controladores más comunes de la arquitectura clásica X51 (el primer controlador de la familia 8051 fue emitido por la Compañía Intel De vuelta a mediados de los años 80), las firmas de los controladores de PIC Pastilla. (ideal para diseñar dispositivos simples, especialmente destinados a la replicación), y somos considerados ATMEL AVR. .

Notas sobre los campos

En 1995, dos estudiantes de la Universidad Noruega de Ciencia y Tecnologías de Trondheim, Alf Bogen y la Vagrada Warel, presentaron la idea de un núcleo de RISC de 8 bits, que se ofreció al liderazgo atmel. Los nombres de los desarrolladores ingresaron el nombre de la arquitectura AVR: ALF + VEGARD + RISC. En Atmel, le gustaba tanto la idea de que en 1996 se fundó el Centro de Investigación en Trondheim, y al final del mismo año se lanzó la liberación del primer microcontrolador experimentado de la nueva serie AVR llamada AT90S1200. En la segunda mitad de 1997, Atmel procedió a la producción en serie de la familia AVR.

¿Por qué AVR?

Los controladores AVR "desde el nacimiento" tienen varias características que distinguen a esta familia del resto del MC, simplifican su estudio y aplicación. Una de las ventajas esenciales de AVR fue el uso del transportador. Como resultado, el AVR no tiene el concepto del ciclo de la máquina: la mayoría de los equipos, como dijimos, se realiza para un tacto (para comparación, notamos que el MK de la familia PIC es el equipo más popular para 4 relojes. ). Es cierto, al mismo tiempo, tuve que sacrificar la simplicidad del sistema de equipos, hay algunas dificultades en el área de operaciones con bits. Sin embargo, esto no conduce a dificultades notables al estudiar el ensamblador AVR, por el contrario, los programas se obtienen más cortos y se parecen más a un programa en un lenguaje de alto nivel (observamos que AVR se diseñó específicamente en función de la aproximación máxima a la Estructura del idioma. DE).

Otra gran ventaja de la arquitectura AVR es la presencia de 32 registros operativos, no en todo igual, pero lo permite en los casos más simples que lo hagan sin apelar a memoria de acceso aleatorio Y, lo que es más importante, sin el uso de la pila, la principal fuente de errores de los programadores novatos (además, en los modelos más jóvenes AVR Stack no está disponible para el programador). Para AVR, no hay concepto de "baterías", clave para varias otras familias. Esto es aún más abordando la estructura de los programas de ensamblador para AVR a los programas en un lenguaje de alto nivel, donde los operadores no trabajan con celdas de memoria y registros, pero con variables y constantes abstractas.

Pero esto, por supuesto, no significa que AVR es definitivamente la mejor familia del mundo de MK. También tiene una serie de deficiencias (por ejemplo, un sistema imperfecto para proteger la memoria de datos no volátiles, EEPROM, algunos problemas con la inmunidad al ruido, la complejidad innecesaria en el sistema de equipos y la estructura de los programas, etc.). Y considerando que cualquier MK moderno universal lo hace todo lo mismo, la cuestión de elegir una plataforma es una cuestión de considerable grado de preferencias y experiencia personal Desarrollador.

Sin lugar a dudas, un verdadero regalo para la empresa. Atmel Se convirtió en la posición de los ingenieros italianos que eligieron AVR en 2004 para la plataforma de Aficionado Arduino, por lo que la popularidad de esta familia ha crecido rápidamente, y no está preocupado por su futuro. Acerca de Arduino. Hablaremos en detalle en los últimos capítulos de este libro.

Clásico, mega y Diminuto

La línea de controladores de uso general de AVR universal se divide en familias: Clásico, mega. y Diminuto (Hay una familia más nueva XMEGA. que contiene cristales muy "recortados"). Mk familia Clásico. (Se nombran como AT908<марка контроллера>) Ahora ya no se producen, pero aún son comunes en la literatura, ya que hay un número significativo de programas para ellos. A los usuarios no tienen que volver a escribir, firme. Atmel se encargó de la continuidad - la mayoría de la familia MK Clásico. Tiene análogos funcionales en la Mega Familia, por ejemplo, AT90S8515 - ATMEGA8515, AT90S8535 - ATMETE8535, etc. (SOLO AT90S2313 tiene análogo en la familia Diminuto - Attiny2313).

La compatibilidad completa es proporcionada por un bit de instalación especial (de un conjunto de llamadas Fusible) Cuando la programación que el Mega Controller comienza a funcionar como Clásico. (Más sobre esto se cuenta en capítulo 19.). Para dispositivos recién desarrollados, generalmente no tiene sentido usarlos en el modo de compatibilidad, sin embargo, una recepción en algunos casos puede ser útil para los principiantes, ya que los programas para MK Clásico. Es fácil y con frecuencia en la literatura.

La pequeña familia (que significa literalmente "pequeña") está destinada a los dispositivos más simples. Parte del MK de esta familia no tiene capacidades de programación en una interfaz en serie, y por lo tanto, estamos, con la excepción de Attiny2313, no se considerará en este libro (esto no significa que se debe evitar el otro pequeño, entre ellos. Hay chips muy convenientes y funcionales, a menudo, en absoluto, teniendo análogos). Attiny2313 MK componente le falta un bit de compatibilidad con un análogo "clásico" AT90S2313, uno de los controladores más simples y convenientes. Atmel Pero con una consideración atenta, resulta que también son compatibles "desde abajo", los programas para el "clásico" 2313 son casi totalmente adecuados para Tiny2313 (ver capítulo 19.).

Estructura mk AVR.

Estructura general dispositivo interno MK AVR se muestra en la FIG. 18.9. Aquí están todos los componentes principales de AVR (con la excepción de algunos especializados), en modelos separados, algunos componentes pueden no estar ausentes o variar según las características, solo el kernel del procesador total de 8 bits permanece sin cambios (GPU, Unidad de procesamiento general.). Consideraremos brevemente los componentes más importantes, con la mayoría de los cuales conoceremos más.

Higo. 18.9. General esquema estructural Microcontroladores AVR.

Vamos a empezar con la memoria. En la estructura AVR hay tres tipos de memoria: programas de memoria flash, RAM (SRAM) para almacenamiento de datos temporales y memoria no volátil (EEPROM) para almacenamiento a largo plazo Constantes y datos. Considerarlos por separado.

Programas de memoria

La memoria flash incorporada de los programas en los controladores AVR tiene un volumen de 1 KBYTE en Attiny11 a 256 KB en ATMEGA2560. El primer número en el nombre del modelo contiene la cantidad de esta memoria en kilobytes desde el rango: 1, 2, 4, 8, 16, 32, 64, 128 y 256 KB. Entonces, Attiny2313 tiene 2 kb de memoria, un ATMEGA8535 - 8 KB.

Desde el punto de vista del programador, la memoria de los programas se puede considerar construida de células individuales: palabras de dos bytes cada uno. Un dispositivo de memoria de dispositivo (¡y solo esta memoria!) Por palabras de doble circuito - muy momento importanteQué programador de ensamblador necesita asimilarse firmemente. Dicha organización se debe a que cualquier equipo en AVR tiene una longitud de exactamente 2 bytes. La excepción es el equipo. jMP, llamada y algunos otros (por ejemplo, lDS.), que funciona con direcciones de 16 bits y más tiempo. La longitud de estos comandos es de 4 bytes, y se utilizan solo en modelos con la memoria del programa más de 8 kb, por lo que en esta sección del libro no cumplirá con ellos. Arduino. Basado en los controladores AVR con una gran cantidad de memoria, pero hay que saber sobre estas sutilezas. En todos los demás casos, el mostrador de comandos se desplaza al ejecutar el siguiente comando a 2 bytes (una palabra), por lo que la capacidad de memoria requerida es fácil de calcular, sabiendo simplemente el número de comandos utilizados.

De forma predeterminada, todos los controladores AVR siempre comienzan a ejecutar un programa desde $ 0000. Si el programa no usa interrupciones, entonces de esta dirección puede comenzar programa de aplicaciónComo veremos a continuación. De lo contrario, esta dirección es la llamada tabla de Vectores de Interrupción , Más sobre los cuales hablaremos en capítulo 19. .

Memoria de datos ( RAM, SRAM)

En contraste con la memoria de los programas, el espacio de direcciones de la memoria de datos se dirige a fondo (y no alternativamente). El direccionamiento es completamente lineal, sin ninguna división en páginas, segmentos o bancos, ya que es habitual en algunos otros sistemas.

Excluyendo algunos modelos pequeños menores, el volumen del SRAM incorporado varía de 128 bytes (por ejemplo, Attiny2313) hasta 4-8 KB de modelos senior Mega. . El espacio de direccionamiento de la memoria de datos estáticos (SRAM) se divide condicionalmente en varias áreas mostradas en la FIG. 18.10. Solo el SRAM incorporado incluye solo una parte oscura, a ella, en orden de direcciones, hay un espacio de direcciones de registros, donde los primeros 32 bytes ocupan una matriz de registros de propósito general (RON), 64 entrada / salida más Registros (RVR).

Higo. 18.10. Dirección del espacio de la memoria de datos estáticos ( SRAM.) Microcontroladores AVR.

Para algunos modelos Mega. (ATMEGA8515, ATMEGA162, ATMEGA128, ATMEGA2560, etc.) Se proporciona conexión. memoria externa Hasta 64 KB. Tenga en cuenta que los espacios de direcciones de RON y RVV no toman el espacio en la RAM de datos, por lo que si modelo específico El MK tiene 512 bytes SRAM, y el espacio de registro ocupa los primeros 96 bytes (a la dirección $ 5F), las direcciones SRAM tomarán el espacio de direcciones de $ 0060 a $ 025F (es decir, de 96 a 607 células inclusivas). El final de la memoria de datos incorporada se denota por la constante Ramend. . Cabe señalar que la última SRAM aborda, al menos de cuatro a seis células desde el final (dependiendo del número de procedimientos anidados, para la confiabilidad, es mejor tomar este número a diez o incluso más) no debe estar ocupada, ya que Son cuando usan subrutinas e interrupciones están ocupadas bajo la pila.

Las operaciones de lectura / escritura en la memoria están funcionando igualmente con cualquier dirección del espacio disponible y, por lo tanto, cuando se trabaja con SRAM, debe estar atento, en lugar de escribir a la memoria, puede "obtener" fácilmente en algún registro. Es posible sustituir el número de registro como una dirección al RON, pero al poner en contacto con RVV, debe agregar $ 20 como el último número. También se debe recordar que de forma predeterminada, cuando se enciende la alimentación, todos los RVV se instalan en el estado cero en todos los bits (aún se dispone de excepciones individuales, por lo que en casos críticos es necesario observar la documentación), pero el ron y las células SRAM pueden tomar valores arbitrarios.

Memoria de datos no volátiles ( EEPROM.)

Todos los modelos MK AVR (excepto la atribución adjunta11) tienen una EEPROM incorporada para almacenar constantes y datos cuando se apaga la alimentación. EN diferentes modelos El volumen varía de 64 bytes (ATTINYLX) a 4 KB (MEGA MEGA MEGA). El número de ciclos de reprogramación de EEPROM puede alcanzar los 100 mil.

Recuerde que EEPROM difiere de la memoria flash con la posibilidad de seleccionar la programación de la programación (en realidad, incluso batida, pero esta función está oculta del usuario). La lectura de EEPROM se lleva a cabo a la misma velocidad que leer desde RON, - durante un ciclo de máquinas (sin embargo, en la práctica se estira en 4 ciclos, pero el programador necesita seguir esto específicamente no requerido). Pero la entrada en EEPROM procede significativamente más lenta y, además, con una tasa indefinida, el ciclo de grabación de un byte puede tomar de 2 a 4 o más milisegundos. El proceso de grabación está regulado por el generador de RC incorporado, cuya frecuencia es inestable (con un voltaje de baja potencia, puede esperar que el tiempo de grabación sea mayor). Por ese tiempo con ordinario frecuencias de reloj MK tiene tiempo para realizar varios miles de comandos, por lo que la programación del procedimiento de grabación requiere precisión, por ejemplo, debe monitorear la interrupción en el momento en que la interrupción no está "encajada".

La principal dificultad al usar EEPROM es que con una reducción insuficiente de la tensión de suministro en el momento del apagado, se puede corromper. Se debe al hecho de que cuando el voltaje de suministro se reduce por debajo de un cierto umbral (debajo del umbral trabajo establePero insuficiente para completar el apagado) y, como resultado de su Dobessing Mk, comienza a realizar comandos arbitrarios, incluido el procedimiento de grabación en EEPROM, si está en el programa. Si consideramos que el comando típico de MK Type AVR se realiza para las décimas de Microsegundo, está claro que ninguna fuente de alimentación real puede proporcionar una reducción en la tensión a cero durante el tiempo deseado. De acuerdo con la experiencia del autor en la alimentación de un estabilizador de tipo LM7805 convencional con valores de capacitancia recomendados de los condensadores en la entrada y en la salida, el contenido de EEPROM se echará a perder a aproximadamente la mitad de los casos.

Este problema no debe existir si el registro de la constante en EEPROM se realiza al programar MK, y falta el procedimiento de grabación. En todas las demás cosas (y, obviamente, la mayoría absoluta: EEPROM se usa con mayor frecuencia para el almacenamiento. instalaciones personalizadas Y la configuración actual cuando se apaga la alimentación) tiene que tomar medidas especiales. Detector de caída de voltaje incorporado ( Detección marrón , BOD) existente en casi todos los modelos. Diminuto y Mega. , Por lo general no lo hace bien. El más cardinal de tales medidas es la instalación. monitor externo Nutrición, sosteniendo el MK al tiempo que reduce el voltaje de suministro por debajo del valor de umbral en el estado de restablecimiento (consulte los detalles).

  • Tutorial

Resumen: Si actualizó periódicamente algún valor en EEPROM cada pocos minutos (o unos pocos segundos), puede encontrar el problema de las células EEPROM. Para evitar esto, debe reducir la frecuencia de los registros en la celda. Para algunos tipos de EEPROM, incluso la frecuencia de grabación es más frecuente de una vez por hora por hora.

Cuando escribes los datos, el tiempo vuela rápidamente.

EEPROM se utiliza en todas partes para guardar la configuración y registrar el registro en los sistemas integrados. Por ejemplo, es posible que desee una función de "caja negra", para grabar los datos más recientes en el momento del accidente o la pérdida de energía. He visto la especificación con el requisito de registrar datos similares cada pocos segundos.

Pero el problema es que EEPROM tiene un recurso limitado del número de registros. Después de 100,000 o un millón de registros (depende de un chip específico), algunos de sus sistemas comenzarán a experimentar problemas con la falla de EEPROM. (Mire la hoja de datos para averiguar una figura específica. Si desea liberar una gran cantidad de dispositivos, el "peor caso" es probablemente más importante que "típico"). Millones de registros parecen grandes dígitos, pero de hecho, terminará muy rápidamente. Veamos el ejemplo, lo que sugiere que necesitamos guardar el voltaje medido en una sola célula cada 15 segundos.

1,000,000 entradas en un récord en 15 segundos dan registros por minuto:
1,000,000 / (4 * 60 minutos / hora * 24 horas / día) \u003d 173.6 días.
En otras palabras, su EEPROM agotó la reserva en un millón de registros en menos de 6 meses.

El siguiente es un gráfico que muestra el tiempo para usar (en años) en función del período de actualización de la célula EEPROM específica. La línea restrictiva para el producto con una vida útil de 10 años es una actualización cada 5 minutos 15 segundos para el microcircuito con un recurso de 1 millón de registros. Para EEPROM con un recurso de 100k, puede actualizar la celda específica más de una vez cada 52 minutos. Esto significa que no vale la pena y espero actualizar la celda cada pocos segundos si desea que su producto funcione durante años, y no meses. Sin embargo, la anterior se escala linealmente, en el presente dispositivo también hay factores secundarios, como el modo de temperatura y acceso.

Reducir la frecuencia

La forma más indolora de resolver el problema es simplemente escribir datos con menos frecuencia. En algunos casos, los requisitos del sistema lo permiten. O puede grabar solo con grandes cambios. Sin embargo, con un registro atado a eventos, recuerde el posible escenario, en el que el valor fluctuará constantemente, y causará el flujo de eventos que conducirán a la desgaste de EEPROM.
(No será malo si puede determinar cuántas veces se registró en EEPROM. Pero esto requerirá un contador que se almacenará en EEPROM ... El problema convierte el problema del desgaste del mostrador.)

Relieve para reducir la nutrición

En algunos procesadores, existe una interrupción de un nivel de potencia bajo que se puede usar para registrar un último valor en EEPROM, mientras que el sistema está desactivado por la pérdida de energía. En el caso general, almacena el valor de interés en RAM, y guárdelo en EEPROM solo cuando se apaga la alimentación. O quizás registre EEPROM de vez en cuando, y escriba otra copia en EEPROM como parte del procedimiento de apagado para garantizar que se registren los últimos datos.
Es importante asegurarse de que haya un gran capacitor para la nutrición, que mantendrá un voltaje suficiente para la programación de EEPROM un tiempo suficiente. Puede funcionar si necesita escribir uno o dos valores, pero no un bloque de datos grande. PRECAUCIÓN, ¡hay un gran espacio para un error!

Tampón de anillo

Solución clásica para usar el uso del tampón de anillo FIFO que contiene n Últimos valores. También deberá guardar el puntero hasta el final del búfer en EEPROM. Esto reduce el desgaste de EEPROM por magnitud proporcional al número de copias en este búfer. Por ejemplo, si el búfer pasa a través de 10 direcciones diferentes para guardar un valor, cada celda en particular se modifica 10 veces menos a menudo, y el recurso de grabación aumenta 10 veces. También necesitará un medidor o una marca de tiempo separados para cada una de las 10 copias para que pueda determinar cuál es el último en el momento del apagado. En otras palabras, necesitará dos búferes, uno por valor, y uno para el medidor. (Si guarda el medidor en la misma dirección, conducirá a su desgaste, ya que debe aumentar con cada ciclo de grabación). La desventaja de este método es que necesita 10 veces más espacio para obtener 10 veces mayor esperanza de vida. Puede mostrar una mezcla y empacar el medidor junto con los datos. Si eres grabado un gran número de Los datos, agregando algunos bytes para el medidor, no es un problema tan grande. Pero en cualquier caso, necesitarás mucha EEPROM.
Atmel preparó un appNet que contiene todos los detalles sangrientos:
AVR-101: Alta resistencia EEPROM Storage: www.atmel.com/images/doc2526.pdf

Caso especial para el medidor Número de registros

A veces necesitas salvar el mostrador, y no los valores en sí. Por ejemplo, es posible que desee saber el número de inclusiones de instrumentos, o el tiempo de operación de su dispositivo. Lo peor en los medidores es que cambian constantemente el bit de significado más joven, usando las células más jóvenes EEPROM más rápido. Pero es posible aplicar algunos trucos aquí. En el Anexo de Microchip, hay varias ideas inteligentes, como el uso del código gris, de modo que solo un bit del contador multibyte cambie cuando cambie el valor del contador. También recomiendan el uso de códigos correctivos para compensar el desgaste. (No sé qué tan eficiente el uso de dichos códigos, ya que dependerá de la independiente que haya errores en los bits en los bytes de paso del mostrador, use a su propio riesgo, aprox. Auth.). Consulte AppNet: ww1.microchip.com/downloads/en/appnotes/01449a.pdf

Nota: Para aquellos que desean aprender más, Microchip ha preparado un documento que contiene información detallada Sobre las células EEPROM y su desgaste con los diagramas:
ftp.microchip.com/Tools/Memory/TOTAL50/tutorial.html

Déjeme saber si tiene alguna idea interesante sobre el control del desgaste de EEPROM.

Frío: Phil Koopman, "Mejor sistema incrustado SW"
mejorembsw.blogspot.ru/2015/07/avoiding-eeprom-wearout.html.

Nota del traductor: En los últimos años, los chips de EEPROM con una página de borrado (como fichas flash), donde puede abordar lógicamente las celdas (leer, escribir y lavar) toleradamente, pero el chip es invisible para el usuario borra la página completa y sobrescribe completamente. datos. Esos. Células Únicas en 0, en realidad robamos y sobrescribimos células con direcciones 0 ... 255 (con un tamaño de página de 256 bytes), por lo que el truco con tampón no ayudará en este caso. Con el agotamiento del recurso de las entradas, este chip falla, no una célula, y la página completa es totalmente. En hojas de datos para tales chips, se especifica el recurso del registro. para la página, no para una celda en particular. Vea, por ejemplo, la hoja de datos en 25LC1024 de Microchip.

Etiquetas: agregar etiquetas

Memoria conmemorativa eeprom

Ciclo de ejemplo pasamos en todas las celdas de memoria y escribimos ceros en ellos.

// Conectar la biblioteca para trabajar con EEPROM. #incluir "EEPROM.H" Configuración vacía () (// Pass de todas las células (bytes) y grabe en ellos ceros. Para (int i \u003d 0; i< EEPROM.length(); i++) EEPROM.update(i, 0); } void loop() { // Пустой цикл... }


Rollback a la configuración de fábrica

Si desea devolver la memoria a la configuración de fábrica, es necesario reemplazar 0 a 255, es decir, Grabar no ceros, y el número 255. Por lo tanto, en el futuro, utilizando la función ISNAN () () es posible verificar si la memoria EEPROM se registra o no.

// Conectar la biblioteca para trabajar con EEPROM. #incluir "EEPROM.H" Configuración de vacío () (// Pass de todas las células (bytes) y números de registro 255. Para (int i \u003d 0; i; i< EEPROM.length(); i++) EEPROM.update(i, 255); } void loop() { // Пустой цикл... }

Cuéntanos sobre nosotros

Mensaje

Si tiene experiencia en trabajar con Arduino y, en realidad, hay tiempo para la creatividad, invitamos a todos a convertirse en los autores de los artículos publicados en nuestro portal. Puede ser tanto lecciones como historias sobre sus experimentos con Arduino. Descripción diferentes sensores y módulos. Consejos e instrucciones principiantes. Escribe y publica tus artículos en



¿Te gustó el artículo? Compártelo