Entrenamiento del microcontrolador atmega8. Programación AVR. Programación de microcontroladores AVR para principiantes. ¿Es difícil empezar a crear algo propio?

Buenos días. Continuemos. Después de familiarizarnos con el proceso de depuración del programa que escribimos en atmel studio y ensamblar virtualmente un circuito con un LED en proteus, llegó el momento de ensamblar el circuito en hardware y flashear el microcontrolador.

Para la programación de prototipos ( mega 8) usaremos el programador USBASP. Se parece a esto:

Se conectará un cable al conector, en el que se conectarán los puentes, que a su vez se conectarán a los enchufes de la placa de pruebas en la que está instalado el microcontrolador:

El primer pin está marcado con una flecha en el conector.


Después de que descubrimos el programador. Pasamos a la colección del circuito en el hardware. Montamos el microcontrolador en la protoboard. Te recuerdo: el primer tramo está marcado en el MK con un pequeño círculo.

La tarea es conectar las salidas del programador con las salidas de la "piedra".

Conecte los puentes al conector de 10 pines. Usamos los siguientes pines MOSI, RST, SCK, MISO, VTG (VCC), GND.

Espero que ya haya descargado la hoja de datos en atmega8. Si no, puedes descargarlo. Nos fijamos en el pinout de los pines del microcontrolador.

Conectamos puentes con las siguientes conclusiones:

  • VCC al pin 7 MK;
  • SCK al pin 19 MK;
  • MISO al pin 18 MK;
  • MOSI al pin 17 MK;
  • GND (salida del programador 10) a salida MK 8;
  • RST a 1 pin MK;

Para un trabajo más exitoso, el sistema operativo en el primer inicio de la máquina shaitan (programador) ofrece instalar los controladores necesarios para el funcionamiento del dispositivo.

No debería haber ningún problema con la exp. Descargando Cree una carpeta en la que descomprimamos el archivo descargado. Después de eso, en el asistente de instalación de hardware, especifique la ruta a la carpeta con el controlador descomprimido.

Si está ejecutando Windows 7 o superior, puede experimentar algunas dificultades menores. Los controladores para el programador son bastante antiguos, por lo que no tienen firma digital. Cuando intente instalar dicho controlador, el sistema operativo mostrará algo como esto *

"No se pudo verificar la firma digital de los controladores necesarios para este dispositivo. El cambio de hardware o software más reciente podría haber instalado un archivo corrupto o firmado incorrectamente, o malware de origen desconocido. (Código 52)".

Para solucionar la situación, debe deshabilitar la verificación de firma digital del controlador. No describiré cómo deshabilitarlos (cada uno tiene su propio sistema operativo), se pueden encontrar en Internet.

Después de deshabilitar la verificación de firma, en el asistente de instalación de hardware, especifique la ruta a la carpeta con el controlador descomprimido.

Espero que todo te haya ido bien y que el programador esté listo para trabajar.

Pasemos al montaje del circuito con el LED.

Usaremos el programa avrdudeprog para flashear el microcontrolador. Se encuentra en el archivo general.

Seleccione atmega8 de la lista de microcontroladores. Después de haber seleccionado el MK, aparecerá una ventana que le informará que los fusibles y los bits de bloqueo están configurados de forma predeterminada.

Luego abra la pestaña Fusibles. En términos simples, los fusibles son ajustes de configuración de MK con los que es mejor no jugar. En el caso de que haya comprado el mismo controlador que yo y no tenga un resonador de cuarzo externo (usa un generador de reloj interno), configure exactamente las mismas casillas de verificación que se muestran en la imagen. Asegúrese de marcar la casilla junto al elemento "inverso".

La configuración establecida "ordena" al Atmega8A que haga su trabajo, siempre que esté sincronizado desde el oscilador interno (frecuencia de reloj de 8 MHz). Para que la configuración surta efecto, debe presionar el botón "Programación". Pero antes de presionar dos veces más, verifique si todo está configurado correctamente.

Volvemos a la página "Programa".

Después de haberle dicho al programa qué microcontrolador coseremos, seleccionamos el archivo de firmware que escribimos en la última lección. Tiene la extensión HEX. Ubicado en la carpeta "Depurar"

Antes de mostrar el "guijarro", haga clic en el botón "Borrar todo". Esto lo protegerá de errores incomprensibles (de repente, la piedra ya está cosida):

Disfrutamos el resultado de nuestro trabajo 🙂 Continuará…


En este tutorial sobre avr, traté de describir todas las cosas más básicas para que los principiantes programen microcontroladores. Avr. Todos los ejemplos están construidos en un microcontrolador. atmega8. Esto significa que para repetir todas las lecciones solo necesitarás un MK. Como emulador de circuitos electrónicos, se utiliza Proteus, en mi opinión, la mejor opción para principiantes. Los programas en todos los ejemplos están escritos en el compilador C para avr CodeVision AVR. ¿Por qué no en algún ensamblador? Debido a que el principiante ya está cargado de información, y el programa que multiplica dos números toma alrededor de cien líneas en ensamblador, y usan C en proyectos complejos en negrita.El compilador CodeVision AVR está optimizado para microcontroladores atmel, tiene un generador de código conveniente, un buena interfaz y directamente desde ella puede ser flasheada por el microcontrolador.

Este tutorial mostrará y explicará con ejemplos simples cómo:

  • Comience a programar microcontroladores, por dónde empezar, qué necesita para esto.
  • Qué programas usar para escribir firmware para avr, para simular y depurar código en una PC,
  • Qué dispositivos periféricos hay dentro del MK, cómo controlarlos usando su programa
  • Cómo escribir el firmware terminado en el microcontrolador y cómo depurarlo
  • Cómo hacer una placa de circuito impreso para su dispositivo
Para dar los primeros pasos hacia la programación MK, solo necesitas dos programas:
  • Proteus es un programa emulador (puede desarrollar un circuito en él sin recurrir a la soldadura real y luego probar nuestro programa en este circuito). Primero lanzaremos todos los proyectos en Proteus, y luego ya podemos soldar un dispositivo real.
  • CodeVisionAVR es un compilador de lenguaje de programación C para AVR. En él, desarrollaremos programas para el microcontrolador y será posible flashear un MK real directamente desde él.
Después de instalar Proteus, ejecútelo
Nos ofrece ver los proyectos que van con él, lo rechazamos cortésmente. Ahora vamos a crear el circuito más simple en él. Para hacer esto, haga clic en el icono visualmente no pasa nada. Ahora necesitas hacer clic en la letra minúscula R (seleccionar de la biblioteca) en el panel de lista de componentes, se abrirá la ventana de selección de componentes
en el campo máscara, ingrese el nombre del componente que queremos encontrar en la biblioteca. Por ejemplo, necesitamos agregar un microcontrolador mega8
en la lista de resultados, toque mega8 y presione el botón OK. Tenemos un microcontrolador mega8 en la lista de componentes
Por lo tanto, agregamos otra resistencia a la lista de componentes ingresando la palabra en el campo de máscara resolución y LED LED

Para colocar partes en el diagrama, haga clic en la parte, luego haga clic en el campo del diagrama, seleccione la ubicación del componente y haga clic nuevamente. Para agregar una conexión a tierra o un signo menos común al circuito de la izquierda, haga clic en "Terminal" y seleccione Conexión a tierra. Por lo tanto, sumando todos los componentes y conectándolos, obtenemos un circuito tan simple
¡Todo, ahora nuestro primer esquema está listo! Pero te estarás preguntando, ¿qué puede hacer ella? Pero nada. Nada, porque para que el microcontrolador funcione, debe escribir un programa para él. Un programa es una lista de instrucciones que ejecutará el microcontrolador. Necesitamos el microcontrolador para instalar en una pierna. PC0 0 lógico (0 voltios) y 1 lógico (5 voltios).

Escribir un programa para un microcontrolador

Escribiremos el programa en lenguaje C utilizando el compilador CodeVisionAVR. Tras lanzar CV nos pregunta qué queremos crear: Fuente o Proyecto Seleccionamos este último y pulsamos el botón OK. A continuación, se nos pedirá que ejecutemos CVAVR CodeWizard (esta es una herramienta invaluable para un principiante, ya que puede generar el esqueleto principal del programa) escoger
El asistente comienza con la pestaña Chip activa, aquí podemos seleccionar el modelo de nuestro MK: este es mega8 y la frecuencia a la que funcionará el MK (mega8 está configurado en 1 megahercio de forma predeterminada), por lo que configuramos todo como se muestra en la captura de pantalla de arriba. Ir a la pestaña Puertos
El microcontrolador atmega8 tiene 3 puertos: Puerto C, Puerto D, Puerto B. Cada puerto tiene 8 pines. Los pines del puerto pueden estar en dos estados:
  • Producción
Con la ayuda del registro DDRx.y, podemos configurar el pin como entrada o salida. si en
  • DDRx.y = 0 - la salida funciona como ENTRADA
  • DDRx.y = 1 pin funciona en PRODUCCIÓN
Cuando el pin está configurado como salida, podemos configurarlo en 1 lógico (+5 voltios) y 0 lógico (0 voltios). Esto se hace escribiendo en el registro PORTx.y. A continuación se discutirá en detalle acerca de los puertos de entrada-salida. Y ahora configuramos todo como se muestra en la captura de pantalla y hacemos clic en Archivo->Generar, Guardar y Salir. A continuación, CodeWizard nos ofrecerá guardar el proyecto, lo guardamos y miramos el código:

#incluir // biblioteca para crear retardos de tiempo void main(void) ( PORTB=0x00; DDRB=0x00; PORTC=0x00; DDRC=0x01; // hacer la salida del tramo PC0 PORTD=0x00; DDRD=0x00; // Inicialización del temporizador/contador 0 TCCR0=0x00; TCNT0=0x00; // Inicialización del temporizador/contador 1 TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00 ; OCR1BL=0x00; // Inicialización del temporizador/contador 2 ASSR=0x00; TCCR2=0x00; TCNT2=0x00; OCR2=0x00; // Inicialización de interrupciones externas MCUCR=0x00; // Temporizador(es)/Contador(es) ) Inicialización de interrupción(es) TIMSK=0x00; // Inicialización del comparador analógico ACSR=0x80; SFIOR=0x00; while (1) ( ); )


Todo aquí puede parecerle aterrador y desconocido, pero en realidad no todo es así. El código se puede simplificar tirando la inicialización de los periféricos MK que no usamos. Después de la simplificación se ve así:

#incluir //biblioteca para trabajar con el microcontrolador mega8 #include //biblioteca para crear retardos de tiempo void main(void) ( DDRC=0x01; /* hacer que el tramo PC0 sea la entrada de salida 0x01 puede parecerle desconocido, y este es solo el número 1 en hexadecimal, esta línea será equivalente a 0b00000001 en binario, entonces escribiré exactamente así. */ while (1) ( ); )


Todo esta bien. Pero para que el LED parpadee, necesitamos cambiar el nivel lógico en la pata PC0. Para hacer esto, agregue algunas líneas al bucle principal:

#incluir //biblioteca para trabajar con el microcontrolador mega8 #include //biblioteca para crear retardos de tiempo void main(void) ( DDRC=0x01; /* hacer que el tramo PC0 sea la entrada de salida 0x01 puede parecerle desconocido, y este es solo el número 1 en hexadecimal, esta línea será equivalente a 0b00000001 en binario, entonces escribiré exactamente así.*/ while (1)//el bucle del programa principal (// el paréntesis del operador del bucle del programa principal abre PORTC.0=1; //establece el puerto C 1 en pin 0 delay_ms(500); //hace un retraso de 500 milisegundos PORTC.0=0; //establece el puerto C 0 en pin 0 delay_ms(500); //hace un retraso de 500 milisegundos );//cierra el corchete del operador del bucle del programa principal)


Todo, ahora el código está listo. Hacemos clic en el ícono Build all Project files para compilar (traducir a las instrucciones del procesador MK) nuestro programa. En la carpeta Exe, que se encuentra en nuestro proyecto, debe aparecer un archivo con la extensión hexadecimal, este es nuestro archivo de firmware para el MK. Para alimentar nuestro firmware al microcontrolador virtual en Proteus, debe hacer doble clic en la imagen del microcontrolador en Proteus. Aparecerá una ventana como esta
haga clic en el icono de la carpeta en el campo Archivo de programa, seleccione hexadecimal - el archivo de nuestro firmware y presione el botón Aceptar. Ahora podemos ejecutar la simulación de nuestro circuito. Para hacer esto, haga clic en el botón "Reproducir" en la esquina inferior izquierda de la ventana de Proteus.

Hola. Como prometí, a partir de hoy comenzamos a estudiar la programación de microcontroladores AVR (usando el ejemplo de Atmega8). Para los mismos lectores que estén interesados ​​en programar la placa Arduino, no se preocupen, los artículos en esta área continuarán 🙂 .

Puede hacer una pregunta lógica por qué, de una serie de otros microcontroladores (en adelante, MK), fue precisamente MK AVR. Hay varias razones para esto:

  • MK AVR disponible universalmente;
  • Tienen un precio bastante bajo;
  • En Internet puede encontrar muchos programas gratuitos que lo ayudarán cuando trabaje con datos MK.
  • Además, hay una gran cantidad de artículos escritos y foros donde puede hacer preguntas sobre los datos. AVR MK.

Como dije antes, usaremos MK como sujeto de prueba atmega8. ¿Por qué él?

Este microcontrolador cuenta con 3 puertos de E/S. Además, es bastante barato.

Por puertos entienden buses de datos que pueden funcionar en dos direcciones opuestas (es decir, para salida y entrada).

En atmega8 3 puertos El puerto B consta de 8 pines (numerados 0,1,2,3,4,5,6,7). El puerto C consta de 7 pines (numerados 0,1,2,3,4,5,6). El puerto D consta de 8 pines (numerados 0,1,2,3,4,5,6,7).

El microcontrolador se puede alimentar con 3,3 y 5 V. Con una tensión de alimentación de 5 V, la frecuencia de reloj máxima es de 16 MHz, y con una tensión de alimentación de 3,3 V, la frecuencia de reloj máxima es de 8 MHz. Por ahora, no nos preocupemos por las frecuencias de reloj.

La alimentación se suministra al pin 7 y la tierra se conecta al pin 8.

Descárgalo gratis. Descargado, instalado, lanzado 🙂

Lo primero para comenzar con Atmel Studio es crear un proyecto.

Seleccione Archivo -> nuevo -> proyecto.

Se abrirá una ventana de selección. Seleccione la carpeta "Examinar", en la que guardaremos los proyectos escritos. Creó una carpeta para proyectos por adelantado.

Le asignamos un nombre al proyecto, en mi caso Lesson_avr_1

Preste atención a la casilla de verificación "crear directorio para la solución". Si la casilla de verificación está marcada, en la carpeta que hemos elegido para guardar proyectos, se creará una carpeta separada para el proyecto actual.

Eso es todo: se crea el proyecto.

Configuremos el proyecto que creamos. Presiona Projest -> Lesson_avr_1 propiedades o (alt+F7)

Vaya a la pestaña Herramienta. Elige un simulador. Las acciones que hemos tomado permitirán depurar el código escrito. Guardamos los cambios. Puede guardar los cambios en un archivo (actual) o en todos los archivos del proyecto a la vez. Cierra la configuración.

Microcontroladores(en adelante los llamaremos simplemente MK) son cada vez más populares entre los radioaficionados. Con su ayuda, puede ensamblar casi cualquier cosa: indicadores, voltímetros, electrodomésticos (dispositivos de protección, dispositivos de conmutación, termómetros ...), detectores de metales, varios juguetes, robots, etc. la lista puede ser muy larga...

En estos artículos, intentaremos explorar microcontroladores AVR empresas ATMEL, aprenda a trabajar con ellos, considere los programas de firmware, haga un programador simple y confiable, considere el proceso de firmware y, lo más importante, los problemas que pueden surgir (y no solo para principiantes).

Los principales parámetros de los microcontroladores de la familia AVR.

microcontrolador

Memoria flash

memoria RAM

memoria EEPROM

puertos de E/S

usted suministra

Parámetros adicionales de MK AVR mega:

Temperatura de funcionamiento: -55…+125*С
Temperatura de almacenamiento: -65…+150*С
Voltaje en el pin RESET relativo a GND: max 13V
Tensión de alimentación máxima: 6,0 V
Corriente máxima de línea de E/S: 40 mA
Corriente máxima en la línea de alimentación VCC y GND: 200mA

Distribución de pines del ATmega 8X

Distribución de pines de los modelos ATmega48x, 88x, 168x



Asignaciones de pines para modelos

Asignación de pines para modelos ATmega16, 32x

Asignaciones de pines para modelos ATtiny2313


Al final del artículo, en el anexo, hay hojas de datos para algunos microcontroladores

Puntas de ajuste FUSIBLE MK AVR

Recordar fusible programado es 0, no programado– 1. Debe tener cuidado al configurar los fusibles, un fusible mal programado puede bloquear el microcontrolador. Si no está seguro de qué fusible necesita programar, es mejor flashear el MK sin fusibles por primera vez.

Los microcontroladores más populares para radioaficionados son atmega8, seguido de ATmega48, 16, 32, ATtiny2313 y otros. Los microcontroladores se venden en paquetes TQFP y DIP, recomiendo que los principiantes compren en DIP. Si compras TQFP, será más problemático flashearlos, tendrás que comprar o hacer un adaptador y soldar la placa. sus piernas están muy cerca una de la otra. Aconsejo microcontroladores en paquetes DIP, colóquelos en paneles especiales (sockets), es conveniente y práctico, no tiene que soldar el MK si desea volver a flashearlo o usarlo para otro diseño.

Casi todos los MK modernos tienen Capacidad de programación en circuito ISP, es decir. si su microcontrolador está soldado a la placa, entonces para cambiar el firmware no tenemos que desoldarlo de la placa.

6 pines se utilizan para la programación:

REINICIAR- Entrada MK
CCV- Plus alimentación, 3-5V, depende del MK
TIERRA- Cable común, menos potencia.
MOSI- Entrada MK (señal de información en MK)
MISO- Salida MK (señal de información de MK)
SCK- Entrada MK (señal de reloj en MK)

A veces también se utilizan las salidas XTAL 1 y XTAL2, el cuarzo se adhiere a estas salidas si el MK funcionará desde un generador externo, en ATmega 64 y 128 las salidas MOSI y MISO no se utilizan para la programación de ISP, sino que las salidas MOSI se conectan a el tramo PE0 y MISO a PE1. Al conectar el microcontrolador al programador, los cables de conexión deben ser lo más cortos posible y el cable del programador al puerto LPT tampoco debe ser demasiado largo.

La marca del microcontrolador puede contener letras incomprensibles con números, por ejemplo, Atmega 8L 16PU, 8 16AU, 8A PU, etc. La letra L significa que el MK funciona a un voltaje más bajo que el MK sin la letra L, generalmente 2.7V . Los números después del guión o espacio 16PU o 8AU indican la frecuencia interna del oscilador que está en el MK. Si los fusibles están configurados para funcionar desde un cuarzo externo, el cuarzo debe configurarse a una frecuencia que no exceda el máximo según la hoja de datos, esto es 20MHz para ATmega48/88/168 y 16MHz para otros atmegas.

Los primeros dígitos en el nombre del microcontrolador indican la cantidad de FLASH ROM en kilobytes, por ejemplo, ATtiny15 - 1 Kb, ATtiny26 - 2 Kb, AT90S4414 - 4 Kb, Atmega8535 - 8 Kb, ATmega162 - 16Kb, ATmega32 - 32 Kb, ATmega6450 - 64Kb, Atmega128 - 128Kb.

A veces hay esquemas donde se utilizan microcontroladores con nombres como AT90S... estos son modelos antiguos de microcontroladores, algunos de ellos pueden ser reemplazados por modernos, por ejemplo:

AT90S4433-ATmega8
AT90S8515 - ATmega8515
AT90S8535 - ATmega8535
AT90S2313 - ATtiny2313
ATmega163 - ATmega16
ATmega161 - ATmega162
ATmega323 - ATmega32
ATmega103 - ATmega64/128

ATmega 8 tiene varios pines de alimentación, digital - VCC, GND y analógico - AVCC, GND. En una conexión estándar, ambos pares de cables están conectados en paralelo, es decir juntos. A los microcontroladores AVR no les gusta el alto voltaje, si la fuente de alimentación es superior a 6 voltios, entonces pueden fallar. Usualmente uso un regulador de voltaje de 5 voltios de baja potencia, KR142EN5 o 78L05. Si el voltaje de suministro es demasiado bajo, el MK no parpadeará, el programa maldecirá y dará errores (por ejemplo, -24 en PonyProg).

Terminaremos esto, mientras puede elegir el circuito que le gusta en Internet y estudiarlo, puede ir y comprar el microcontrolador deseado al mismo tiempo. A continuación, ensamblaremos un programador simple y confiable, nos familiarizaremos con los programas para flashear y probar flash mk.


La radioafición moderna no se puede imaginar sin microcontroladores, y esto es obvio. En las últimas décadas, los microcontroladores de diversos fabricantes se han generalizado en diversos campos de la actividad humana. A menudo se pueden encontrar en los dispositivos y diseños más inesperados. Somos testigos de la informatización y automatización de los procesos que nos rodean. La verdad es que sin conocimientos básicos de programación, se ha vuelto casi imposible crear dispositivos competitivos modernos...

Si está leyendo este artículo, probablemente desee comprender cómo funcionan los microcontroladores, y lo más probable es que tenga preguntas:

4. ¿Qué literatura estudiar?

Tratemos de responder a estas preguntas.

1. ¿Qué microcontrolador elegir para trabajar?

Los microcontroladores de 8 bits son muy populares entre los radioaficionados. FOTO Tecnología de microchips y AVR Atmel, 16 bits MSP430 empresas de TI, así como microcontroladores de 32 bits, arquitecturas BRAZO.

En la industria, de forma un poco diferente, el primer lugar por un amplio margen lo ocupa Electrónica Renesas en el segundo Escala libre, en el tercero Samsung, entonces vete Pastilla Y TI, luego todos los demás.
La popularidad está determinada por el precio y la disponibilidad, la disponibilidad de información técnica y el costo del soporte de software juegan un papel importante.

Estudiaremos microcontroladores AVR de 8 bits, familias Serie ATMEGA 8 y 16. La elección estuvo determinada, nuevamente, por la disponibilidad, la presencia de muchos desarrollos de aficionados y una gran cantidad de material educativo. La presencia de una variedad de componentes incorporados y la funcionalidad de esta familia.

2. ¿Qué entorno de desarrollo debo usar para programar el microcontrolador seleccionado?

Se han creado varios entornos de desarrollo integrado (IDE, entorno de desarrollo integrado) para el AVR.
IDE es un sistema de herramientas de software utilizado por los programadores para desarrollar software (SW), que incluye:
editor de texto,
compilador y/o intérprete,
construir herramientas de automatización
depurador

Los más comunes AVRStudio, ATmelStudio, WINAVR, CodeVision, banco de trabajo integrado IAR.
Para escribir programas, usaremos la libre ATmelStudio IDE versión 6 y más alto.
Puede descargar Atmel Studio desde el sitio web oficial después de registrarse (¡el registro es absolutamente gratuito y no lo obliga a nada!)

ATmelStudio te permite crear proyectos y escribir programas tanto en ensamblador como en C.

Inicialmente, siempre hay una pregunta: ¿qué lenguaje de programación elegir para escribir programas efectivos?

Responderé simplemente: debe poder escribir al menos dos lenguajes ensamblador y C. El ensamblador es simplemente necesario cuando necesita escribir subrutinas y macros rápidas y compactas, varios controladores de dispositivos. Pero, cuando necesita crear un proyecto grande basado en algoritmos complejos, sin saber SI, se puede gastar mucho tiempo, especialmente durante la depuración, y si desea transferir a otra plataforma, como PIC18 o STM, puede hacerlo. convertirse en un problema irresoluble.
Además, ahora existen plataformas informáticas de hardware arduino, cuyo trabajo requiere conocimientos del lenguaje C++.
Por tanto, escribiremos programas tanto en ensamblador como en C.

Para ver visualmente el resultado de su trabajo, sin usar un soldador o una placa de prueba, simplemente instale el programa Proteo.

3. ¿Cómo flashear el controlador y qué dispositivos y accesorios adicionales se necesitan para un trabajo conveniente con ellos?

Usamos datagorian. Además, deberá comprar placas de prueba, una fuente de alimentación con un voltaje de salida de 5 voltios. Puede usarlo como fuente de alimentación con ondas bajas usando un diodo zener de 5 voltios.
Quizás, con el tiempo, Igor y yo ofrezcamos un proyecto para ensamblar una placa de depuración.

4. ¿Qué literatura estudiar?

Y aquí, por ejemplo:
Programación práctica de AVR en ensamblador. Revich, 2011
1000 y un circuito de microcontrolador Vol. 1-2. Ryumik, 2010-2011
10 dispositivos prácticos en MK AVR Libro 1-2. Kravchenko, 2008-2009
Manual de autoinstrucciones para desarrolladores de dispositivos en MK AVR. Belov, 2008
Familias MK AVR Tiny y Atmega. Efstifeev, 2008
CodeVisionAVR. Una guía para principiantes. Lébedev, 2008
Control por microprocesador de dispositivos, tiristores, relés. Belov, 2008
Interfaces analógicas MK. Mayordomo, Pelota, 2007
Creamos dispositivos en MK AVR. Belov, 2007
MK AVR en la práctica de la radioafición. Análisis completo de ATTINY2313. Belov, 2007
Intercambio de datos de red e inter-red con MK. Vamos, 2007
AVR MK. práctica para principiantes. Hartov, 2007
Aplicación de Esquemas AVR, algoritmos, programas. Baranov, 2006
Microcontroladores AVR. Curso introductorio. Mortón, 2006
Medida, control y regulación con AVR. Trompeta, 2006
Programación en C para AVR y PIC MK. Shpak, 2006
Diseño de dispositivos en MK. Belov, 2005
MK - es simple, volúmenes 1-3. Frunce, 2002-2003
El lenguaje de programación C, 2ª edición. Kernigan, Ritchie, 2009
Programación de microcontroladores ATMEL en el lenguaje de S. Prokopenko, 2012

5. ¿Dónde puedo hacer preguntas en línea y obtener respuestas específicas?

Puede hacer preguntas en nuestro foro o en cualquier otro donde se traten temas sobre microcontroladores. Lo principal en los foros es formular correctamente las preguntas para recibir respuestas claras. Las preguntas abstractas no son bienvenidas, y lo más probable es que, en lugar de una respuesta, recibas duras críticas, ¡o tu pregunta quedará sin atención!

Ahora echemos un vistazo más de cerca a nuestro microcontrolador favorito, el ATMEGA 8.

Microcontrolador AVR de bajo consumo y alto rendimiento de 8 bits
Arquitectura RISC progresiva
130 instrucciones de alto rendimiento, la mayoría de las instrucciones ejecutadas en un ciclo de reloj
32 registros de trabajo de propósito general de 8 bits
Funcionamiento totalmente estático
Acercándose a 16 MIPS (a 16 MHz) de rendimiento
Multiplicador de 2 ciclos incorporado

Programa no volátil y memoria de datos
Flash autoprogramable en el sistema de 8 KB
Proporciona 1000 ciclos de borrado/escritura
Sector adicional de códigos de arranque con bits de bloqueo independientes
Modo de lectura/escritura simultáneo (Read-While-Write) provisto
EEPROM de 512 bytes
Proporciona 100.000 ciclos de borrado/escritura
SRAM integrada de 1 KB
Bloqueo programable para proteger el software del usuario

Periféricos integrados
Dos temporizadores/contadores de 8 bits con preescalador independiente, uno con modo de comparación
Un temporizador/contador de 16 bits con preescalador independiente y modos de captura y comparación
Contador en tiempo real con generador separado
Tres canales PWM
Convertidor de analógico a digital de 8 canales (en paquetes TQFP y MLF)
6 canales con precisión de 10 bits
Convertidor de analógico a digital de 6 canales (en paquete PDIP)
4 canales con precisión de 10 bits
2 canales con precisión de 8 bits
Interfaz serie de 2 hilos orientada a bytes
USART serial programable
Interfaz serie SPI (maestro/esclavo)
Temporizador de vigilancia programable con oscilador incorporado separado
Comparador analógico incorporado

Funciones especiales del microcontrolador
Reinicio de encendido y detector de voltaje de apagado programable
Oscilador RC calibrado incorporado
Fuentes de interrupción internas y externas
Cinco modos de bajo consumo: inactivo, ahorro de energía, apagado, espera y reducción de ruido ADC

Pines y paquetes de E/S
23 líneas de E/S programables
Paquete PDIP de 28 derivaciones, paquete TQFP de 32 derivaciones y paquete MLF de 32 derivaciones

Tensiones de funcionamiento
2.7 - 5.5V (ATmega8L)
4,5 - 5,5 V (ATmega8)

Frecuencia de operación
0 - 8 MHz (ATmega8L)
0 - 16 MHz (ATmega8)

diferencias entre ATMEGA16 y 8
Flash autoprogramable en el sistema de 16 KB

Interfaz JTAG (compatible con IEEE 1149.1)
Capacidad de escaneo periférico compatible con el estándar JTAG
Soporte de depuración en línea mejorado
Programación a través de la interfaz JTAG: Flash, memoria EEPROM, puentes y bits de bloqueo

Cuatro canales PWM/PWM

Convertidor A/D de 8 canales y 10 bits
8 canales no balanceados
7 canales diferenciales (solo paquete TQFP)
2 canales diferenciales con ganancia programable de 1x, 10x o 200x (solo paquete TQFP)

Seis modos de apagado: inactivo, ahorro de energía, apagado, espera, espera extendida y reducción de ruido ADC

32 líneas de E/S programables

Paquete PDIP de 40 derivaciones y paquete TQFP de 44 derivaciones

AtmelStudio

Si recién está comenzando, debe descargar e instalar el programa AtmelStudio desde la página oficial atmel.com
Después de instalar el programa AtmelStudio, puede comenzar a crear un proyecto.
Proyecto- este es su programa que escribirá, depurará y flasheará, después de la compilación, en la memoria del microcontrolador.

Para crear un proyecto, debe abrir el programa, aparecerá una pantalla de inicio,

y se abrirá la página de creación del proyecto

Para crear un nuevo proyecto, haga clic en Nuevo proyecto...
En este caso, se abrirá una nueva ventana donde podrá seleccionar el lenguaje de programación, el nombre del proyecto, su ubicación, el nombre del paquete con los archivos del proyecto y la posibilidad de crear un directorio para su uso posterior en otros proyectos cruzados. . Para crear un proyecto donde programaremos en ensamblador, debe seleccionar - ensamblador, luego cambie el nombre del proyecto, su ubicación y seleccione está bien.

La siguiente ventana aparecerá

Escoger megaAVR, 8 bits y encontrar el microcontrolador que necesitamos, elegimos ATmega8. En el lado derecho de la pantalla de bienvenida aparece una lista de dispositivos que funcionan con este microcontrolador, uno de los cuales podemos conectar. Escoger está bien.

Aparece la página del editor de texto, que le permite editar y depurar el programa. Mientras la página está limpia, se indica la hora y la fecha de creación y el nombre del archivo del proyecto, nombre de usuario. Hay una ventana de dispositivo de entrada y salida adicional, una ventana de informe de compilación de programa. ahora nosotros


Podemos programar en ensamblador.
De igual forma, se crea un proyecto para programar en lenguaje C.