Que es un microcontrolador. Cómo funciona un microcontrolador. Un ejemplo de uso del microcontrolador Arduino

Los microcontroladores han llenado casi por completo el mundo moderno de la electrónica. Por lo tanto, todo ingeniero electrónico principiante o experimentado tarde o temprano se encuentra con estos dispositivos misteriosos a primera vista. De hecho, un microcontrolador es solo una pieza de silicio en una caja de plástico con cables metálicos, que no realiza ninguna función por sí solo. Sin embargo, es capaz de resolver muchas tareas complejas a una velocidad bastante alta si hay un programa escrito ("firmware") en él. Por lo tanto, nuestra tarea es aprender a escribir programas para el microcontrolador, convirtiéndolo así de una pieza de silicio en una pieza de "oro".

Naturalmente, surgen preguntas: ¿qué es un microcontrolador, dónde comenzar a estudiarlo y qué tipo elegirá? Encontraremos respuestas a estas y otras preguntas a continuación. Ahora veamos cómo pueden verse y consideremos brevemente el alcance y algunas de las capacidades de los microcontroladores.

Tipos de paquetes de microcontroladores

Externamente, los microcontroladores no son diferentes de otros microcircuitos. Los cristales MK se colocan en estuches estándar, que tienen un número estrictamente definido de pines. Los microcontroladores se fabrican en tres tipos de carcasas fundamentalmente diferentes.

paquete DIP

El primer tipo es SALSA marco. abreviatura de ingles D doble yo norteL ine PAG paquete- caso con dos filas de conclusiones. La distancia entre los pines es de 0,1 pulgadas, lo que equivale a 2,54 mm. Asimismo, también se designan casos similares PDIP. La primera letra "P" significa que el estuche es de plástico. PAG elástico. También usaremos microcontroladores en tal caso, ya que dichos MK se instalan fácilmente en una placa de prueba, lo que facilita enormemente la depuración.

Fig.1 - MicrocontroladorATmega8 enSALSAcuerpo

Paquete SOIC

A continuación, en orden descendente, sería SOIC marco. Su abreviatura significa: S centro comercialO resumen yo integrado C circuito. Se utiliza para soldadura de montaje en superficie, es decir, los pines del microcircuito se sueldan a las almohadillas ubicadas en la superficie de la placa y no se insertan en los orificios, como un paquete DIP. Distancia entre y SOIC casos con pines es dos veces menor que en DIP y es de 1,27 mm.

Arroz. 2 - MicrocontroladorEN89 C2051 en paquete SOIC

Paquetes QFP y TQFP

Incluso las dimensiones más pequeñas tienen un tipo de cuerpo QFP (q uad F lat PAG paquete) o TQFP (T hin q uad F lat PAG paquete) (arroz. 3). Su característica distintiva es la ubicación de las conclusiones en los cuatro lados, y el caso en sí tiene la forma de un cuadrado. Me gusta SOIC, TQFP está diseñado para montaje en superficie. La distancia entre pines es 3 veces menor que en los paquetes DIP.

Arroz. 3 - MicrocontroladorATmega328 PAGenTQFPcuerpo

Carcasa QFN

Lo más exótico desde el punto de vista de la práctica amateur es el corpus QFN (q uad F lat norte oGuías) . Tal caso tiene las dimensiones más pequeñas entre todos los casos considerados. Como conclusión, aquí se utilizan contactos, cuya distancia es 6 veces menor que en los paquetes DIP. Por esta razón, los radioaficionados rara vez los utilizan. En la industria, sin embargo, estos casos se utilizan ampliamente, ya que las dimensiones del dispositivo electrónico terminado se pueden reducir diez veces. Sobre el figura 4 puede ver claramente las diferencias en las dimensiones del mismo microcontrolador (ATmega8) en SALSA y QFN edificios

Arroz. 4 - MicrocontroladorATmega8 enSALSAyQFNedificios

A modo de comparación, los microcontroladores en diferentes tipos de paquetes se muestran en arroz. 5. Usaremos microcontroladores exclusivamente en paquetes PID, al menos en las etapas iniciales de programación.

Arroz. 5 - Microcontroladores en diferentes tipos de casos

Los microcontroladores están a nuestro alrededor.

El alcance de MK se expande cada día más. Se utilizan en una gran variedad de dispositivos: desde una postal musical hasta un tren eléctrico de alta velocidad, un avión y un cohete. MK son ampliamente utilizados en electrodomésticos: tostadoras, hornos de microondas, cafeteras, refrigeradores, lavadoras. Están ampliamente implementados en teléfonos móviles, tabletas, relojes electrónicos, automóviles, es decir, en casi todos los dispositivos electrónicos. Y esto no es de extrañar, porque gracias a los microcontroladores, los dispositivos se vuelven más compactos, livianos, confiables y económicos; su consumo de energía se reduce.

Por otra parte, cabe señalar que los microcontroladores se utilizan cada vez más en robótica, es decir, en los sistemas de control de robots, tanto los más simples como los más complejos.

Características principales de los microcontroladores.

Los microcontroladores pueden recibir señales, por ejemplo, de varios sensores, botones o teclados, procesarlas y emitir señales de control, por ejemplo, para mostrar información en pantallas de cristal líquido.

Con la ayuda de MK, puede formar intervalos de tiempo muy precisos gracias a los contadores de tiempo incorporados. Esto le permite crear relojes, temporizadores, cronómetros y otros dispositivos donde es necesario tener en cuenta los intervalos de tiempo.

Los MC también se utilizan para contar pulsos, lo que permite contar el número de operaciones de un dispositivo. Por ejemplo, puede contar la cantidad de activaciones de relés para controlar o automatizar un proceso en particular.

La presencia de un dispositivo de modulación de ancho de pulso (PWM) incorporado le permite controlar la velocidad del eje del motor.

Muchos microcontroladores tienen convertidores de analógico a digital en su cristal, con los que puede crear varios dispositivos de medición, como voltímetros, amperímetros, ohmímetros, medidores de capacitancia, etc.

Los microcontroladores también pueden intercambiar datos entre una computadora y otro MK. Para hacer esto, casi cualquier MK tiene incorporada una o más interfaces de transferencia de datos: USART, SPI, CAN, USB, etc.

Además, otras unidades funcionales están integradas en el MK, como varias interrupciones, temporizadores de vigilancia y más. Sin embargo, espero que incluso las funciones y capacidades enumeradas de los microcontroladores le interesen y lo inspiren a seguir estudiándolos.

¿Cuál es la diferencia entre microcontrolador y microprocesador?

A menudo, un microcontrolador se llama microprocesador, sin embargo, esto no es del todo cierto. El microprocesador realiza solo una serie de operaciones aritméticas y lógicas. El microcontrolador, por otro lado, contiene un microprocesador y otras unidades funcionales, como puertos de entrada y salida, memoria, convertidores de analógico a digital, PWM, etc. En el caso general, el microcontrolador es análogo a la placa base de la computadora, en la que se encuentran todos los dispositivos, incluida la unidad central de procesamiento. Y el microprocesador es solo un elemento separado con un alto poder de cómputo.

¿Qué tipo de microcontrolador elegir para el estudio inicial?

Para dominar la programación de microcontroladores a un nivel bastante bueno, primero debe aprender a programar un tipo de microcontrolador y explorar todas sus capacidades. Entonces será mucho más fácil dominar otros tipos de MK.

Los principales criterios de selección para MC incluyen:

- disponibilidad, es decir, MK se puede comprar fácilmente en cualquier tienda de radio;

- bajo costo. Todo está claro aquí;

— disponibilidad de documentación técnica detallada;

- software libre;

- disponibilidad de literatura y un número suficiente de ejemplos sobre el tipo de MC seleccionado.

Destaco el último punto como el más importante. Ya que solo si tienes muchos ejemplos ilustrativos e interesantes, puedes dominar bien la programación de microcontroladores sin perder interés en esta lección, que es muy importante para un largo estudio de microcontroladores.

En mi opinión, y por experiencia personal, el microcontrolador ATmega8 de Atmel cumple con todos estos criterios. Lo tomaremos como base.

Considere la arquitectura interna de los microcontroladores AVR, intentemos descubrir en qué bloques consiste el cristal del microcircuito y de qué funciones es responsable cada bloque, cómo interactúan entre sí. También se darán comparaciones y ejemplos útiles, notas valiosas que ayudarán a aclarar los principios del microcontrolador con dispositivos y periféricos externos.

Microcontrolador AVR en el interior

El microcontrolador desde el interior es una computadora con su propio dispositivo de cómputo, memoria permanente y dinámica, puertos de E/S y varios periféricos.

Arroz. 1. La estructura del microcontrolador AVR. Dibujo de digikey.com

Dentro del microcontrolador contiene:

  • Procesador de alta velocidad con arquitectura RISC;
  • Memoria flash;
  • memoria EEPROM;
  • Memoria RAM;
  • puertos de E/S;
  • Módulos periféricos y de interfaz.

RISC (computadora de conjunto de instrucciones reducido) es una arquitectura con un conjunto de instrucciones cuidadosamente seleccionado que generalmente se ejecutan en un ciclo del procesador. Los microcontroladores AVR modernos contienen alrededor de 130 instrucciones, que son muy rápidas y no requieren grandes gastos tanto en términos de recursos internos del procesador como de consumo de energía.

Diagrama estructural del microcontrolador AVR

Miremos la figura a continuación y descubramos en qué consisten los bloques del microcontrolador y cómo están interconectados:

Arroz. 2. Diagrama estructural del microcontrolador AVR.

Considere brevemente lo que se muestra en los bloques en el diagrama:

  • Interfaz JTAG(Interfaz de grupo de acción de prueba conjunta) - interfaz de depuración en circuito (4 cables);
  • FLASH- memoria reprogramable para guardar el programa;
  • Interfaz de periféricos en serie, SPI- interfaz periférico serial (3 hilos);
  • EEPROM(Memoria de sólo lectura programable borrable eléctricamente) - ROM reprogramable, memoria no volátil;
  • UPC(CPU) - procesador de control central, el corazón del microcontrolador, núcleo de microprocesador de 8 bits;
  • ALU(ALU) - unidad lógica aritmética, la base del bloque de la CPU;
  • RAM(Memoria de acceso aleatorio) - RAM del procesador;
  • Contador de programa- contador de comandos;
  • 32 Registros de propósito general- 32 registros de propósito general;
  • registro de instrucciones- registro de comandos, instrucciones;
  • Decodificador de instrucciones- decodificador de comandos;
  • TOC(Depurador en chip) - bloque de depurador interno;
  • Comparador analógico- comparador analógico, bloque para comparar señales analógicas;
  • Convertidor A/D(Convertidor analógico/digital) - convertidor analógico a digital;
  • Interfaz LCD(Interfaz de pantalla de cristal líquido): interfaz para conectar una pantalla de cristal líquido, indicador;
  • USART(Receptor-Transmisor Asíncrono Universal), UART - transceptor asíncrono universal;
  • TWI(Interfaz serial de dos hilos) - interfaz serial con conexión de dos hilos;
  • Temporizador de vigilancia- temporizador de vigilancia o de control;
  • puertos de E/S- puertos de agua/salida;
  • Interrupciones- unidad de control y respuesta a las interrupciones;
  • Temporizadores/Contadores- módulos de temporizadores y contadores.

Más sobre los bloques internos del microcontrolador

Y ahora consideraremos en detalle todos los bloques del microcontrolador, descubriremos qué se necesita y por qué, daré ejemplos simples en un lenguaje accesible.

Interfaz JTAG- una interfaz importante que le permite realizar la depuración interna directamente en el chip utilizando el bloque de depuración interna ( TOC), sin utilizar emuladores. Podemos decir que JTAG es una interfaz para la depuración "de hierro" del microcontrolador. A través del adaptador JTAG, el microcircuito se conecta directamente al paquete de software para programación y depuración.

Usando esta interfaz, puede ejecutar el programa en modo paso a paso directamente en el microcontrolador, ver cómo cambia el contenido de los registros, cómo parpadean los indicadores y LED que están conectados al microcontrolador después de cada paso, etc. Para conectarse a la interfaz JTAG, 4 conductores son suficientes: TDI (Test Data In), TDO (Test Data Out), TCK (Test Clock), TMS (Test Mode Select).

La interfaz JTAG no está disponible en todos los microcontroladores AVR, por regla general, los chips con 40 o más patas tienen una adición tan sabrosa, y la cantidad de memoria disponible es de al menos 16 KB. Para tareas serias: materiales y herramientas serios).

FLASH- memoria de programa, ROM no volátil (memoria de solo lectura) que se fabrica utilizando tecnología FLASH. Almacena el programa que será ejecutado por la ALU del microcontrolador. La memoria flash del chip se puede reescribir repetidamente, cambiando o complementando así el código del programa para su ejecución. Este tipo de memoria puede retener los datos escritos en ella durante 40 años, y el número de posibles ciclos de borrado/escritura puede llegar a 10.000.

Dependiendo del modelo de microcontrolador, el tamaño de la memoria FLASH puede ser de hasta 256 KB.

Interfaz de periféricos en serie, SPI - interfaz periférica en serie (SPI) que a menudo se usa para intercambiar datos entre múltiples microcontroladores a velocidades de hasta varios MHz (varios millones de ciclos por segundo).

Para intercambiar datos a través de la interfaz SPI entre dos dispositivos, 3 conductores son suficientes:

  1. MOSI (Master Output Slave Input) - Datos de maestro a esclavo;
  2. MISO (Master Input Slave Output) - Datos de esclavo a maestro;
  3. CLK (Reloj) - señal de reloj.

Los dispositivos con interfaz SPI se dividen en dos tipos: maestro (Master) y esclavo (Slave). Si se conectan varios dispositivos a la interfaz, se necesitan líneas de comunicación adicionales (conductores) para intercambiar datos entre ellos, de modo que el maestro pueda seleccionar un dispositivo esclavo y hacerle una solicitud.

Además, la interfaz SPI se utiliza para la programación SPI en circuito; un programador está conectado al microcontrolador a través de esta interfaz.

eeprom- memoria de datos no volátil en la que se almacenarán los datos incluso cuando se apague el microcontrolador. Esta memoria puede almacenar configuraciones de ejecución de programas, datos recopilados para estadísticas de funcionamiento del dispositivo y otra información útil. Por ejemplo, al ensamblar una pequeña estación meteorológica en un microcontrolador, puede guardar datos sobre la temperatura del aire, la presión y la fuerza del viento en EEPROM para todos los días, y luego, en cualquier momento, leer estos datos recopilados y realizar estudios estadísticos.

A la EEPROM se le asigna un espacio de direcciones separado, que es diferente del espacio de direcciones de RAM y FLASH. La memoria EEPROM de un microcontrolador es un recurso muy valioso, ya que suele ser muy pequeña, de 0,5 a varios kilobytes por chip. El número de sobrescrituras para este tipo de memoria es de aproximadamente 100000 que es 10 veces más que el recurso de memoria FLASH.

ALU- Unidad lógica aritmética, que es síncrona con la señal del reloj y basada en el estado del contador de programa ( Contador de programa) selecciona de la memoria del programa ( FLASH) el siguiente comando y lo ejecuta.

La señal de reloj para el microcontrolador es generada por el generador de reloj y se puede suministrar desde varias fuentes disponibles para elegir:

  • oscilador RC interno que se puede calibrar a la frecuencia deseada;
  • resonador de cerámica o cuarzo con condensadores (no todos los modelos);
  • señal de reloj externa.

La fuente del reloj se configura usando los bits FUSE.

FUSIBLES(del inglés: melting, plug, fuse) - 4 bytes especiales (4 * 8 = 32 bits) de datos que configuran algunos de los parámetros globales del microcontrolador durante el proceso de firmware. Después de parpadear, estos bits no se pueden cambiar a través del programa interno que está grabado en el MK.

Con esta configuración de bits, le indicamos al microcontrolador esto:

  • qué oscilador maestro usar (externo o interno);
  • dividir la frecuencia del generador por un factor o no;
  • use el pin de reinicio (RESET) para reiniciar o como un pin de E / S adicional;
  • la cantidad de memoria para el gestor de arranque;
  • otros ajustes dependiendo del microcontrolador utilizado.

UPC- este es el cerebro del microcontrolador, que contiene la ALU, los registros y la RAM.

Un bloque de 32 registros de propósito general está conectado a la ALU ( 32 Registros de propósito general- memoria de registro), cada uno de los cuales representa 1 byte de memoria (8 bits). El espacio de direcciones de los registros de propósito general se encuentra al comienzo de la memoria de acceso aleatorio (RAM), pero no forma parte de ella. Con los datos que se colocan en los registros, puede realizar una variedad de operaciones aritméticas, lógicas y de bits. La realización de tales operaciones en la RAM no está disponible. Para trabajar con datos de la RAM, debe escribirlos en registros, realizar las operaciones necesarias en los registros y luego escribir los datos resultantes de los registros en la memoria u otros registros para realizar alguna acción.

RAM- RAM. Puede escribir datos de registros. , leer datos en registros, todas las operaciones de datos y cálculos se realizan en registros. Para diferentes familias de chips AVR, el tamaño de la RAM es limitado:

  • ATxmega - hasta 32 KB;
  • ATmega - 16 Kb;
  • ATtiny - 1 Kb.

Comparador analógico- este bloque compara dos niveles de señal entre sí y almacena el resultado de la comparación en un registro determinado, después de lo cual se puede analizar el resultado y se pueden realizar las acciones necesarias. Por ejemplo: puede usar este bloque como un ADC (convertidor analógico a digital) y medir el voltaje de la batería, si el voltaje de la batería ha alcanzado un nivel bajo, realice algunas acciones, parpadee el LED rojo, etc. Además, este módulo se puede utilizar para medir la duración de las señales analógicas, leer los modos de funcionamiento establecidos del dispositivo mediante un potenciómetro, etc.

Convertidor A/D- este bloque convierte el valor de voltaje analógico en un valor digital que se puede usar en el programa y en base al cual se pueden realizar ciertas acciones. Como regla general, el rango de voltaje que se aplica a la entrada del ADC en el microcontrolador AVR está en el rango de 0 a 5,5 voltios. Para esta unidad, es muy importante que el microcontrolador esté alimentado por una fuente de alimentación estable y de alta calidad. Muchos microcontroladores AVR tienen un pin especial separado para suministrar energía estable al circuito ADC.

Interfaz LCD- interfaz para conectar un indicador o display de cristal líquido. Se utilizarán para mostrar información, el estado del dispositivo y sus nodos.

USART- Interfaz serial asíncrona para intercambio de datos con otros dispositivos. Hay soporte para el protocolo RS-232, por lo que el microcontrolador se puede conectar para comunicarse con una computadora.

Para tal conexión del MK con el puerto COM de la computadora, necesita un convertidor de nivel de voltaje lógico (+ 12V para COM - a + 5V para el microcontrolador), o simplemente RS232-TTL. Para fines similares, se utilizan chips MAX232 y similares.

Para conectar el microcontrolador a una computadora a través de USB usando la interfaz UART, puede usar un chip FT232RL especializado. Por lo tanto, en computadoras y computadoras portátiles nuevas, sin un puerto COM físico, puede vincular el microcontrolador usando el puerto USB a través de la interfaz USART.

TWI- interfaz para el intercambio de datos a través de un bus de dos hilos. Se pueden conectar hasta 128 dispositivos diferentes a dicho bus de datos utilizando dos líneas de datos: una señal de reloj (SCL) y una señal de datos (SDA). La interfaz TWI es análoga a la versión básica de la interfaz I2C.

A diferencia de la interfaz SPI (un maestro y uno/varios esclavos), la interfaz TWI es bidireccional, lo que permite organizar una pequeña red interna entre varios microcontroladores.

Temporizador de vigilancia es un sistema para monitorear la congelación del dispositivo con su posterior reinicio. Es como un botón de REINICIO automático para una computadora vieja con un sistema operativo defectuoso.))

puertos de E/S, GPIO- este es un conjunto de bloques de puertos de entrada / salida a cuyos pines puede conectar una variedad de sensores, dispositivos de ejecución y circuitos. La cantidad de pines de entrada/salida que provienen de los puertos en el microcontrolador puede ser de 3 a 86.

Los drivers de salida en los puertos AVR del microcontrolador permiten conectar directamente una carga con un consumo de corriente de 20 mA (máximo 40 mA) a una tensión de alimentación de 5V. La corriente de carga total para un puerto no debe exceder los 80 mA (por ejemplo, cuelgue 4 pines para uno de los puertos en un LED con una corriente de 15-20 mA).

Interrupciones- este es un bloque que se encarga de reaccionar y lanzar ciertas funciones cuando se recibe una señal en ciertas entradas del microcontrolador o por algún evento interno (por ejemplo, el tictac de un temporizador). Para cada interrupción, se desarrolla una subrutina separada y se escribe en la memoria.

¿Por qué este bloque se llama bloque de interrupción? - porque cuando ocurre un evento definido por interrupción, la ejecución del programa principal interrumpido y hay una ejecución prioritaria de la subrutina que está escrita para la interrupción actual. Una vez completada la ejecución de la subrutina, el programa principal vuelve al punto donde fue interrumpido.

Temporizadores/Contadores- un conjunto de temporizadores y contadores. El microcontrolador, por regla general, contiene de uno a cuatro temporizadores y contadores. Se pueden utilizar para contar la cantidad de eventos externos, generar señales de cierta duración, generar solicitudes de interrupción, etc. La capacidad de los temporizadores y contadores es de 8 y 16 bits (busque en la hoja de datos del chip).

Conclusión

Eso es básicamente todo lo que inicialmente es útil saber sobre la estructura del microcontrolador AVR. Además, en el proceso de trabajo y programación, tendrá la oportunidad de estudiar hojas de datos para diferentes modelos de chips AVR en la práctica, conocer con más detalle los principios de funcionamiento de cada uno de los cubos estructurales MK y estudiar cómo funcionan, jugar con depuración, etc.

En el próximo artículo, trataremos de tratar el marcado de microcontroladores, reflexionaremos sobre los chips más accesibles y adecuados para el estudio inicial.

Suponga que se le ha encomendado la tarea de hacer que el LED parpadee.
Analicemos cómo resolver este problema:

La opción 1 es la más simple, tome un interruptor / botón de palanca, coloque un esclavo al lado, que encenderá / apagará el LED con un interruptor de palanca. Por lo general, en Rusia, la mayoría de los problemas se resuelven de esta manera. ¿Qué está parpadeando?
Opción 2: ensamblar un multivibrador. Ya más interesante. Para parpadear, un LED es una buena solución. Además, es simple, barato y confiable.
Opción 3: ensamblar en un microcontrolador. Más caro que montar un multivibrador, pero en mi opinión más sencillo. Escribió el programa, flasheó, obtuvo el resultado. Sin ambientación. Por supuesto, este es el caso ideal.

Ahora compliquemos la tarea. Por ejemplo, 5 LED y 5 opciones para su parpadeo (cambia la velocidad y el orden de su parpadeo). La primera opción desaparece inmediatamente, se puede realizar el método 2, pero el tamaño del dispositivo aumentará drásticamente. La opción 3 seguirá siendo aproximadamente del mismo tamaño, solo agregue un par de líneas de código. Por tanto, hay diferentes casos, donde es imposible sin un microcontrolador, y donde es un exceso. Por lo tanto, evalúe siempre la mano de obra, el tiempo y los costos financieros.

Entonces, el microcontrolador nos permite administrar de manera flexible sistemas, procesos, etc., tiene pequeñas dimensiones, en términos de funcionalidad es una minicomputadora. Los microcontroladores son fabricados por diferentes empresas. Una de las variedades de microcontroladores Atmel AVR. ¿Por qué exactamente ellos? Son bastante fáciles de encontrar en la tienda, es fácil encontrar ejemplos de código listo para usar, la funcionalidad integrada le permite resolver incluso tareas complejas.

Para que el microcontrolador comprenda lo que queremos de él, debemos descargar el firmware en él, una secuencia de acciones que debe realizar. El firmware es una secuencia de unos y ceros. Para hacerlo más conveniente, se les ocurrieron lenguajes de programación. Por ejemplo, escribimos encender, y el compilador mismo convierte una secuencia de unos y ceros en una secuencia de unos y ceros que es comprensible para el microcontrolador. La figura muestra el firmware HEX cuando se abre con el bloc de notas.

Los microcontroladores generalmente se programan en lenguaje C o ensamblador. Sobre qué escribir, en general, no hay diferencia. Debido a la gran cantidad de ejemplos listos para usar, hice mi elección a favor de C. Además, existen varios programas que te permiten escribir en C. Por ejemplo, AVR Studio, CodeVision, WinAVR, etc., gratuitos y de marca. A pesar de que escribo en CodeVision, uso AVR Studio de forma muy activa como depurador.

Espero que al menos algo de esto te quede claro. En mi opinión, lo más difícil es dar el primer paso. El que lo hace, vence su miedo y su pereza, definitivamente logrará un resultado. Buena suerte aprendiendo sobre microcontroladores.

AVR es el nombre de una popular familia de microcontroladores producidos por la empresa Atmel. Además de ATS, también se producen otras arquitecturas bajo esta marca, por ejemplo, ARM e i8051.

¿Qué son los microcontroladores AVR?

Hay tres tipos de microcontroladores:

La familia de microcontroladores de 8 bits ha sido la más popular durante más de una década. Muchos radioaficionados comenzaron a estudiar microcontroladores a partir de él. Casi todos exploraron el mundo de los controladores programables haciendo sus manualidades simples, como luces intermitentes LED, termómetros, relojes, así como automatización simple, como dispositivos de iluminación y calefacción.

Los microcontroladores AVR de 8 bits, a su vez, se dividen en dos familias populares:

    attiny- por el nombre, está claro que los más jóvenes (pequeños - jóvenes, jóvenes, junior), en su mayoría tienen 8 pines o más. La cantidad de su memoria y funcionalidad suele ser más modesta que la siguiente;

    Atmega- microcontroladores más avanzados, tienen más memoria, salidas y varias unidades funcionales;

La subfamilia de microcontroladores más poderosa es xMega: estos microcontroladores están disponibles en paquetes con una gran cantidad de pines, de 44 a 100. Se necesita mucho para proyectos con una gran cantidad de sensores y actuadores. Además, la mayor capacidad de memoria y la velocidad de trabajo le permiten obtener un alto rendimiento.

Descifrado: Pin (pin inglés - aguja, pin): esta es la salida del microcontrolador o, como se suele decir, una pierna. De ahí la palabra "pinout", es decir, información sobre el propósito de cada una de las piernas.

¿Para qué sirven los microcontroladores y de qué son capaces?

¡Los microcontroladores se utilizan en casi todas partes! Casi todos los dispositivos del siglo XXI funcionan con un microcontrolador: instrumentos de medición, herramientas, electrodomésticos, relojes, juguetes, cajas de música y postales, y mucho más; solo listar tomará varias páginas de texto.

El diseñador puede utilizar una señal analógica para introducirla en la entrada del microcontrolador y manipular los datos sobre su valor. Este trabajo lo realiza un convertidor de analógico a digital (ADC). Esta función permite al usuario comunicarse con el microcontrolador, así como percibir varios parámetros del mundo circundante mediante sensores.

En los microcontroladores AVR comunes, por ejemplo, atmega328, que en 2017 es el corazón de muchos tableros arduino, pero sobre ellos más tarde. Se utilizan 8 canales ADC, con profundidad de bits 10 bits. Esto significa que puede leer el valor de 8 sensores analógicos. Y los pines digitales conectan sensores digitales, lo que podría ser obvio. Sin embargo, una señal digital solo puede ser 1 (uno) o 0 (cero), mientras que una señal analógica puede tomar una cantidad infinita de valores.

Explicación:

Profundidad de bits es un valor que caracteriza la calidad, precisión y sensibilidad de la entrada analógica. No suena muy claro. Un poco de práctica: ADC de 10 bits, escriba información analógica del puerto en 10 bits de memoria, en otras palabras, el microcontrolador reconoce una señal digital que cambia suavemente como un valor numérico de 0 a 1024.

Un ADC de 12 bits ve la misma señal, pero con mayor precisión, en forma de 0 a 4096, lo que significa que los valores medidos de la señal de entrada serán 4 veces más precisos. Para comprender de dónde provienen 1024 y 4096, simplemente eleve 2 a la potencia igual a la profundidad de bits del ADC (2 a la potencia de 10, para 10 bits, etc.)

Para controlar la potencia de la carga, tienes a tu disposición canales PWM, se pueden usar, por ejemplo, para ajustar el brillo, la temperatura o la velocidad del motor. En el mismo controlador 328 hay 6 de ellos.

En general, la estructura del microcontrolador AVR se muestra en el diagrama:

Todos los nodos están firmados, pero es posible que algunos nombres no sean tan obvios. Echemos un vistazo a sus designaciones.

    ALU- unidad aritmético-lógica. Necesario para realizar el cálculo.

    Registros de propósito general (RON)- los registros que pueden recibir datos y almacenarlos mientras el microcontrolador está conectado a la alimentación se borran después de un reinicio. Sirven como celdas temporales para operaciones de datos.

    Interrupciones- algo así como un evento que ocurre debido a influencias internas o externas en el microcontrolador - desbordamiento del temporizador, interrupción externa del pin MK, etc.

    JTAG- interfaz para programación en circuito sin quitar el microcontrolador de la placa.

    Flash, RAM, EEPROM- tipos de memoria - programas, datos de trabajo temporales, almacenamiento a largo plazo independiente de la fuente de alimentación del microcontrolador, según el orden en los nombres.

    Temporizadores y contadores- los nodos más importantes en el microcontrolador, en algunos modelos su número puede ser de hasta una docena. Son necesarios para informar el número de ciclos, respectivamente, intervalos de tiempo, y los contadores aumentan su valor para cualquiera de los eventos. Su trabajo y su modo dependen del programa, sin embargo, estas acciones las realiza el hardware, es decir. paralelamente al texto principal del programa, pueden provocar una interrupción (por desbordamiento del temporizador, como opción) en cualquier etapa de la ejecución del código, en cualquiera de sus líneas.

    A/D (analógico/digital)- ADC, ya hemos descrito su propósito.

    WatchDogTime (temporizador de vigilancia)- un generador RC independiente del microcontrolador e incluso de su generador de reloj, que cuenta un cierto periodo de tiempo y genera una señal de reset para el MK si estaba funcionando, y de despertador si estaba en modo de suspensión (ahorro de energía). Se puede desactivar configurando el bit WDTE en 0.

Las salidas del microcontrolador son bastante débiles, lo que significa que la corriente a través de ellas suele ser de hasta 20-40 miliamperios, lo que es suficiente para encender el LED y los indicadores LED. Para una carga más potente, se necesitan amplificadores de corriente o voltaje, por ejemplo, los mismos transistores.

¿Qué necesitas para empezar a aprender microcontroladores?

Primero debe comprar el microcontrolador en sí. El papel del primer microcontrolador puede ser cualquier Attiny2313, Attiny85, Atmega328 y otros. Es mejor elegir el modelo que se describe en las lecciones que utilizará.

Lo siguiente que necesitas es programador. Se necesita cargar el firmware en la memoria del MK, se considera el más barato y popular. USBASP.

Programador un poco más caro, pero no menos común. AVRISP MKII, que puedes hacer con tus propias manos, desde un tablero normal arduino

Otra opción es flashearlos UART USB un adaptador que generalmente se hace en uno de los convertidores: FT232RL, CH340, PL2303 y CP2102.

En algunos casos, los microcontroladores AVR con soporte de hardware USB se utilizan para dicho convertidor, no hay demasiados modelos de este tipo. Aquí están algunas:

Solo hay un "pero": primero debe cargar el cargador de arranque UART en la memoria del microcontrolador. Por supuesto, esto todavía requiere un programador para microcontroladores AVR.

Interesante: cargador de arranque- este es un programa común para un microcontrolador, solo con una tarea inusual: después de que se inicia (conectado a la alimentación), espera un momento para que se pueda cargar el firmware. La ventaja de este método es que puedes flashearlo con cualquier adaptador USB-UART, y son muy económicos. La desventaja es que el firmware tarda mucho en cargarse.

Para el trabajo UART(RS-232) en microcontroladores AVR, se asigna un registro UDR completo (registro de datos UART). UCSRA (configuración de bits del transceptor RX, TX), UCSRB y UCSRC: un conjunto de registros responsables de la configuración de la interfaz en su conjunto.

¿En qué se pueden escribir los programas?

Además del programador, para escribir y descargar un programa, necesita un IDE, un entorno de desarrollo. Por supuesto, puede escribir código en un bloc de notas, pasarlo a través de compiladores, etc. ¿Por qué lo necesita cuando hay excelentes opciones preparadas? Quizá uno de los más potentes sea IAR, pero es de pago.

El IDE oficial de Atmel es AVR Studio, que pasó a llamarse Atmel studio en la versión 6. Es compatible con todos los microcontroladores AVR (8, 32, xMega), detecta automáticamente los comandos y ayuda a ingresar, resalta la sintaxis correcta y mucho más. Con su ayuda, puede flashear MK.

El más común es C AVR, así que encuentre un tutorial sobre él, hay muchas opciones en idioma ruso, y una de ellas es Hartov V.Ya. Microcontroladores AVR. Práctica para principiantes.

Vea también los cursos de video de capacitación detallados sobre la programación de microcontroladores para principiantes de Maxim Selivanov:.

La forma más fácil de aprender AVR

Compra o haz el tuyo propio. El proyecto Arduino está diseñado específicamente para fines educativos. Tiene docenas de tableros de varias formas y número de contactos. Lo más importante en arduino es que compra no solo un microcontrolador, sino también una placa de depuración completa, soldada en una placa de circuito impreso de textolita de alta calidad, cubierta con una máscara y componentes SMD montados.

Los más comunes son Arduino Nano y Arduino UNO, son esencialmente idénticos, excepto que Nano es unas 3 veces más pequeño que Uno.

Algunos hechos:

    Arduino se puede programar en un lenguaje estándar - "C AVR";

    con su propio cableado;

    entorno de desarrollo estándar - Arduino IDE;

    para conectarse a una computadora, solo necesita conectar el cable USB al conector micro-USB en la placa arduino nano, instalar los controladores (lo más probable es que esto suceda automáticamente, excepto cuando el convertidor está en CH340, no tenía controladores en Win 8.1, tuve que descargarlo, pero esto no tomó mucho tiempo), después de lo cual puede cargar sus "bocetos";

    "Sketches" es el nombre de los programas de arduino.

recomendaciones

Los microcontroladores serán de gran ayuda en tu práctica de radioaficionado, que te permitirá descubrir el mundo de la electrónica digital, diseñar tus propios instrumentos de medida y la domótica.

Los microcontroladores son una parte integral de los sistemas integrados. Un microcontrolador es una computadora barata y pequeña en un solo chip que contiene un procesador, una pequeña cantidad de RAM y periféricos de E/S programables. Están destinados para su uso en productos y dispositivos controlados automáticamente para realizar tareas predefinidas y programadas. Para tener una mejor idea de lo que realmente es un microcontrolador, veamos un ejemplo de un producto que usa un microcontrolador. Un termómetro digital que muestra la temperatura ambiente utiliza un microcontrolador al que se conectan un sensor de temperatura y una unidad de indicación (como una pantalla LCD). El microcontrolador aquí recibe información sin procesar del sensor de temperatura, la procesa y la muestra en una pequeña pantalla LCD en una forma legible por humanos. De manera similar, uno o más microcontroladores se utilizan en muchos dispositivos electrónicos según los requisitos y la complejidad de las aplicaciones.

¿Dónde se utilizan los microcontroladores?

Los microcontroladores se utilizan en sistemas embebidos, principalmente productos y dispositivos que son una combinación de hardware y software, y están diseñados para realizar funciones específicas. Algunos ejemplos de sistemas integrados que utilizan microcontroladores son las lavadoras, las máquinas expendedoras, los hornos microondas, las cámaras digitales, los automóviles, los equipos médicos, los teléfonos inteligentes, los relojes inteligentes, los robots y varios electrodomésticos.

¿Por qué usamos microcontroladores?

Los microcontroladores se utilizan para la automatización en aplicaciones integradas. La razón principal de la gran popularidad de los microcontroladores es su capacidad para reducir el tamaño y el costo de un producto o diseño, en comparación con los diseños que se pueden construir usando un microprocesador, memoria y dispositivos de E/S separados.

Además, los microcontroladores tienen características como un microprocesador integrado, RAM, ROM, interfaces seriales, interfaces paralelas, convertidor de analógico a digital (ADC), convertidor de digital a analógico (DAC), etc. Esto facilita la creación de aplicaciones. alrededor. Además, el entorno de programación del microcontrolador brinda una amplia oportunidad para controlar varios tipos de aplicaciones bajo demanda.

Varios tipos de microcontroladores.

Existe una amplia gama de microcontroladores disponibles en el mercado. Varias empresas como Atmel, ARM, Microchip, Texas Instruments, Renesas, Freescale, NXP Semiconductors, etc. y otros Se ha establecido la producción de varios tipos de microcontroladores con varios tipos de funciones. Al observar varios parámetros, como la memoria programable, el tamaño de la memoria flash, el voltaje de suministro, las E/S, la velocidad, etc., se puede elegir el microcontrolador adecuado para su aplicación.

Veamos estos parámetros y varios tipos de microcontroladores por estos parámetros.

Bus de datos (Ancho):

Si se clasifican por tamaño de bits, la mayoría de los microcontroladores son de 8 bits a 32 bits (también están disponibles microcontroladores de bits más altos). En un microcontrolador de 8 bits, su bus de datos consta de 8 líneas de datos, y en un microcontrolador de 16 bits, su bus de datos consta de 16 líneas de datos, y así sucesivamente para los microcontroladores de 32 bits y superiores.

Memoria:

Los microcontroladores necesitan memoria (RAM, ROM, PROM, EEPROM, Flash, etc.) para almacenar programas y datos. Mientras que algunos microcontroladores tienen chips de memoria incorporados, otros requieren una memoria externa en conjunto. Se denominan microcontroladores de memoria interna y microcontroladores de memoria externa respectivamente. La cantidad de memoria incorporada también varía en diferentes tipos de microcontroladores y, en general, encontrará microcontroladores con 4B a 4 MB de memoria.

Número de contactos de entrada/salida:

Los microcontroladores varían en el número de tamaños de E/S. Puede seleccionar un microcontrolador específico según los requisitos de la aplicación.

Conjunto de comandos:

Hay dos tipos de conjuntos de instrucciones: RISC y cisc. El microcontrolador puede utilizar un procesador RISC (computadora de conjunto de instrucciones reducido) o CISC (conjunto de instrucciones de computadora). Como su nombre indica, RISC reduce el tiempo de la operación que determina el ciclo de una instrucción; y CISC permite aplicar una instrucción como alternativa a muchas instrucciones.

Arquitectura de memoria:

Hay dos tipos de microcontroladores: la arquitectura de memoria del microcontrolador de Harvard y la arquitectura de memoria del microcontrolador de Princeton.

Aquí hay algunos microcontroladores populares entre estudiantes y aficionados.

Microcontroladores de la serie 8051 (8 bits)

Microcontroladores AVR de Atmel (ATtiny, serie atmega)

Microchip es una serie de microcontroladores pic

Texas Instruments, microcontroladores msp430 de

microcontroladores ARM

Características de los microcontroladores

Los microcontroladores se utilizan en sistemas embebidos por sus diversas características. Como se muestra en el siguiente diagrama de bloques del microcontrolador, consta de un procesador, E/S, puertos seriales, temporizadores, ADC, DAC y disyuntor de control.

Procesador o unidad central de procesamiento

El procesador es el cerebro del microcontrolador. Dada una señal de entrada a través de los pines de entrada e instrucciones a través del programa, procese los datos y proporcione en consecuencia en los pines de salida.

memoria

Los chips de memoria están integrados en el microcontrolador para almacenar todos los programas y datos. Puede haber diferentes tipos de memoria integrados en microcontroladores como RAM, ROM, PROM, EEPROM, memoria Flash, etc.

puertos de E/S

Cada microcontrolador tiene puertos de entrada y salida. Dependiendo de los tipos de microcontroladores, la cantidad de pines de entrada puede variar. Se utilizan para conectar dispositivos externos de entrada y salida, como sensores, unidades de visualización, etc.

Puertos seriales

Facilitan la comunicación del microcontrolador a través de una interfaz serial con dispositivos periféricos. Un puerto serie es una interfaz de comunicación serie a través de la cual se transmite información de entrada o salida de uno en uno bit a la vez.

ADC y DAC

A veces, los sistemas integrados utilizan la conversión de datos de digital a analógico y viceversa. Por lo tanto, la mayoría de los microcontroladores se combinan con un ADC (Convertidor de analógico a digital) y un DAC (Convertidores de digital a analógico) incorporados para realizar la conversión requerida.

Temporizadores

Los temporizadores y contadores son componentes importantes en los sistemas integrados. Son necesarios para diversas operaciones como modelado de pulsos, conteo de pulsos externos, modulación, oscilación, etc.

Control de interrupciones

El control de interrupciones es una de las poderosas características de los microcontroladores. Este es un tipo de notificación que interrumpe el proceso actual e instruye para realizar las tareas definidas por el control de interrupción.

En resumen, los microcontroladores son una especie de minicomputadoras compactas que están diseñadas para realizar tareas específicas en el campo de los sistemas integrados. Con una amplia gama de funciones, su valor y beneficios son enormes y se pueden encontrar en productos y electrodomésticos para todas las industrias.