Tabla de contenido:

Cómo usar Dragon Rider 500 con su AVR Dragon: 10 pasos
Cómo usar Dragon Rider 500 con su AVR Dragon: 10 pasos

Video: Cómo usar Dragon Rider 500 con su AVR Dragon: 10 pasos

Video: Cómo usar Dragon Rider 500 con su AVR Dragon: 10 pasos
Video: AVR Programming - AVR Dragon Introduction 2024, Mes de julio
Anonim
Cómo utilizar Dragon Rider 500 con su AVR Dragon
Cómo utilizar Dragon Rider 500 con su AVR Dragon

Este instructivo es un curso intensivo sobre cómo usar algunas de las características del Dragon Rider 500 de Ecros Technologies. Tenga en cuenta que hay una guía del usuario muy detallada disponible en el sitio web de Ecros.

El Dragon Rider es una placa de interfaz para usar con un programador de microcontroladores AVR llamado AVR Dragon de Atmel. Para obtener más información: Atmel's Wesite: https://www.atmel.com/ AVR Dragon link: https://www.atmel.com/dyn/products/tools_card.asp? Tool_id = 3891 Dragon Rider 500 de Ecros Technology: https://www.ecrostech.com/AtmelAvr/DragonRider/index.htm Ensamblaje de Dragon Rider 500 Instructable: https://www.instructables.com/id/Assembling-the-Dragon-Rider-500-for-use-with- the-A / Aprenda todo sobre los microcontroladores AVR: https://www.avrfreaks.net ¡Este instructivo puede crecer con el tiempo, así que vuelva de vez en cuando!

Paso 1: AVR Dude

Necesita algún software de programación para poder utilizar el AVR Dragon para la programación. Utilizo AVRdude con el sistema operativo Ubuntu (linux) y estoy muy contento con los resultados. Este instructivo no se ocupará de las complejidades del software de programación. Si no sabe cómo configurar o utilizar el software de programación, consulte este instructivo para ponerse al día: https://www.instructables.com/id/Getting-started-with-ubuntu-and-the- AVR-dragon / Supongo que si ha comprado y ensamblado un Dragon Rider 500, ya sabe cómo programar un chip con el AVR Dragon… ¡en adelante!

Paso 2: ATtiny2313 - Hacer parpadear los LED

ATtiny2313 - Hacer parpadear los LED
ATtiny2313 - Hacer parpadear los LED
ATtiny2313 - Hacer parpadear los LED
ATtiny2313 - Hacer parpadear los LED
ATtiny2313 - Hacer parpadear los LED
ATtiny2313 - Hacer parpadear los LED

Programemos un ATtiny2313 que es un microcontrolador de 20 pines. El Dragon Rider 500 tiene enchufes para varios microcontroladores AVR de diferentes tamaños. Estos incluyen: enchufes de 8, 20, 28 y 40 clavijas. Dependiendo del zócalo que utilice, los puentes de la placa Dragon Rider deben configurarse de forma diferente.

Configuración del puente

Coloque los puentes en el Dragon Rider de modo que las derivaciones conecten los siguientes pines. (El pin 4 es el pin central para J22-J-24) Pines: J5 - 23J6 - 23J7 - 12J16 - 23J22 - 41J23 - 41J24 - 41 Esta es una configuración básica que permite ISP (Programación en el sistema).

Blinky Blinky

La programación no sirve de nada a menos que tenga algo que programar. He escrito un ejemplo de código muy corto para hacer parpadear los LED de Dragon Rider de uno en uno. Utilice un cable plano para conectar el encabezado del LED (J29) al encabezado del PuertoB (J2).

Programación

He incluido el archivo C, así como un archivo MAKE y el archivo hexadecimal. Como mencioné en la introducción, no puedo cubrir el lado del software de la programación en Instructable. Programe como lo haría con el AVR Dragon, ya que Dragon Rider no altera en absoluto el lado del software.

Paso 3: uso del complemento LCD

Uso del complemento LCD
Uso del complemento LCD

A continuación, le mostramos una forma sencilla de utilizar el complemento LCD. Esto escribirá "Dragon Rider" en la pantalla LCD.

Hardware:

  • ATtiny2313
  • Puente R / W: R / W debe estar conectado a "BIT1" en el tablero de Dragon Rider (ver explicación en el Instructable de ensamblaje)
  • J23: Este puente debe instalarse para la programación del ISP, pero luego debe retirarse para que la pantalla LCD funcione correctamente.
  • Conecte la pantalla LCD al PUERTO B con un cable plano (J31 a J2)

Software

Estoy usando la biblioteca LCD de Peter Fleury para manejar la pantalla LCD en modo de 4 bits. Consulte la página de inicio de Peter para descargar la biblioteca. Deberá asegurarse de que lcd.c esté compilado con su código y de realizar los siguientes cambios en lcd.h:

Estamos usando el oscilador RC interno, por lo que XTAL debe configurarse para 1MHz:

#define XTAL 1000000

  • La configuración del puerto debe ajustarse a PORTB:
  • #define LCD_PORT PORTB

  • Es necesario adaptar el pinout para 4 líneas de datos:
  • #define LCD_DATA0_PIN 4 #define LCD_DATA1_PIN 5 #define LCD_DATA2_PIN 6 #define LCD_DATA3_PIN 7

  • Es necesario adaptar el pinout para RS, RW y E:
  • #define LCD_RS_PIN 3 #define LCD_RW_PIN 1 #define LCD_E_PIN 2

    El programa principal es muy simple gracias al trabajo que hizo Peter Fleury en su biblioteca LCD.

    #include #include "lcd.h" int main (void) {lcd_init (LCD_DISP_ON); // Inicializar LCD con el cursor apagado lcd_clrscr (); // Limpia la pantalla LCD lcd_gotoxy (5, 0); // Mueve el cursor a esta ubicación lcd_puts ("Dragon"); // Ponga esta cadena en la pantalla LCD lcd_gotoxy (6, 1); // Mueve el cursor a esta ubicación lcd_puts ("Rider"); // Coloque esta cadena en la pantalla LCD para (;;) {// No haga nada para siempre (el mensaje ya se muestra en la pantalla LCD)}}

    Código adjunto

    El código adjunto incluye la biblioteca LCD de Peter Fleury (lcd.cy lcd.h) con su permiso. ¡Gracias Peter! La única alteración que le he realizado es establecer los pines adecuados en Defines. Visite su sitio para descargar el paquete: https://www.jump.to/fleury También he incluido un archivo MAKE que uso escrito por Eric B. Weddington y Jorg Wunsch. Envié un PM a Jorg en avrfreaks.net pero nunca recibí una respuesta de él. Hay algunos cambios en el archivo MAKE para adaptarlos al uso de Linux y Dragon. Gracias a ambos, por favor, hágame saber sus preferencias sobre que comparta su trabajo.

    Paso 4: Programación UC ISP de 28 pines (ATmega8)

    Programación UC ISP de 28 pines (ATmega8)
    Programación UC ISP de 28 pines (ATmega8)
    Programación UC ISP de 28 pines (ATmega8)
    Programación UC ISP de 28 pines (ATmega8)

    La próxima demostración del proyecto utilizará un ATmega8 que es un avr de 28 pines. Aquí está el conjunto de puentes básicos para la programación del ISP de los microcontroladores de 28 pines.

    Configuración del puente

    Coloque los puentes en el Dragon Rider de modo que las derivaciones conecten los siguientes pines. (el pin 4 es el pin central para J22-J-24) Pines: J11 - 23J12 - 23J13 - 12J16 - 23J22 - 42J23 - 42J24 - 42

    Información técnica

    • Conectar J11 y J12 de esta manera le permite usar esos pines como pines de E / S. La alternativa sería encaminar estos pines para hacer una conexión con el cristal externo.
    • Conectar J13 de esta manera nos permite usarlo como el pin de reinicio. La alternativa encaminaría este pin al encabezado PORTC para usarlo como pin de E / S. (esto tendría muchos inconvenientes, incluida la imposibilidad de programar este chip usando ISP).
    • J16 y J22-J24 están conectados de esta manera para enrutar los pines apropiados (Reset, MISO, MOSI y SCK) al encabezado ISP del AVR Dragon.

    Paso 5: Uso avanzado de botones y LCD: el gran reloj

    Uso avanzado de botones y LCD: el gran reloj
    Uso avanzado de botones y LCD: el gran reloj

    Este es un proyecto divertido que hace uso de la pantalla LCD y los botones. Nos ocuparemos de las funciones del reloj en tiempo real y los caracteres personalizados en la pantalla LCD. En la imagen de la parte inferior puede ver la hora 7:26:07 pm mostrada en grandes números en la pantalla LCD. Cada número usa una cuadrícula de 2x2 de la pantalla de caracteres para mostrar el número grande. Esto utiliza una fuente escrita originalmente por Xtinus para el proyecto XBMC. Los botones se utilizan para configurar el reloj. Izquierda incrementa las horas, Arriba incrementa los minutos, Derecha alterna entre 12 y 24 horas y Enter restablece los segundos a cero. El reloj no marca muy bien el tiempo ya que estamos usando un oscilador interno muy impreciso, pero este programa puede modificarse fácilmente para usar un cristal externo mucho más preciso. Vea esto en acción en el video a continuación. Una explicación de cómo funciona este código está en orden, pero no tengo tiempo en este momento. Por ahora, conecte el encabezado del LCD (J31) al PORTD (J4) y el encabezado del botón (J30) al PORTB (J2). Asegúrese de tener tanto SW1 como SW2 en la posición de apagado. Conecte el AVR Dragon a un cable USB y conecte el otro extremo de ese cable a su computadora. Encienda SW2 y programe el ATmega8 con el software de programación de su elección (archivo hexadecimal a continuación; fusibles quemados a la configuración de fábrica). NOTA: Para utilizar los botones Izquierda y Arriba, necesitará quitar las derivaciones de J22 y J24, haga esto mientras la energía está apagada.

    Paso 6: Programación de alto voltaje

    He utilizado la programación en paralelo de alto voltaje para resucitar un ATtiny2313 en el que configuré los fusibles incorrectos. Lo necesitaba una segunda vez cuando trabajaba en este instructable porque accidentalmente escribí la configuración de lfuse que quería en el registro de hfuse… ooops. ¡La programación en paralelo de alto voltaje es una herramienta útil para tener a su disposición! A continuación se muestra una lista de la configuración de mis puentes: ¡USE BAJO SU PROPIO RIESGO, ESTE TIPO DE PROGRAMACIÓN PUEDE DAÑAR SU HARDWARE SI NO SABE LO QUE ESTÁ HACIENDO! Programación en paralelo de alto voltaje: ATtiny2313 en el zócalo U3: SW1 - OFFSW2 - ONJ5, J6, J7 - conecta pin1 y pin2XTAL1 - conecta pin1 y pin2J16 - conecta pin1 y pin22x5 Cables IDC: PROG_CTRL a PORT D, PROG_DATA a PORT BAtodos los demás puentes desconectados (J8-J13, J18, J19, J20, J22-J28, J24) Para otros chips, debería poder averiguar la configuración que necesita en la guía del usuario de Atmel para su STK500.

    Paso 7: expandirse más allá del tablero

    Expandiéndose más allá del tablero
    Expandiéndose más allá del tablero

    Me resulta bastante fácil interactuar con una placa de pruebas. Esto permite mucha más flexibilidad en la creación de prototipos y el desarrollo de código al mismo tiempo. A continuación, verá un par de placas de prueba conectadas al Dragon Rider. Conecto los cables planos a los puertos apropiados en un extremo. En el otro, uso cables de puente para conectar el conductor ICD adecuado con las placas de prueba.

    Paso 8: Conclusión

    Hay mucho más que podría estar involucrado en este Instructable. Esta noche completé un adaptador que le permite usar el encabezado de programación de 6 pines sin quitar el dragón del Dragon Rider. Estaré poniendo información sobre cómo construir uno usted mismo … próximamente. Si tiene otras cosas que cree que deben agregarse, deje un comentario.

    Paso 9: Agregar un ISP de 6 pines

    Agregar un ISP de 6 pines
    Agregar un ISP de 6 pines
    Agregar un ISP de 6 pines
    Agregar un ISP de 6 pines
    Agregar un ISP de 6 pines
    Agregar un ISP de 6 pines

    Por lo general, construyo un encabezado ISP de 6 pines en todos mis proyectos para poder reprogramar el chip si es necesario y no tener que sacarlo de la placa del proyecto. Lamentablemente, el jinete del dragón no tiene un encabezado ISP de 6 pines disponible, pero descubrí cómo hacer uno disponible.

    ¡¡¡Advertencia!

    Este es un truco. Si no sabe exactamente cómo funciona esto, no lo haga

    Has sido advertido He creado mi propia placa adaptadora y un puente de 3 pines para suministrar el encabezado isp de 6 pines. Lo que debe hacer es configurar el Dragon Rider para programar y un microcontrolador de 8 pines. Usando un enchufe de 3 pines, estoy puenteando J8 para conectar los pines 1 y 3. Esto enruta la señal del reloj al conector PortB. Luego ejecuto un cable de puente desde el encabezado PortB a mi placa adaptadora y ¡listo! Hay imágenes a continuación…. Por favor, por favor, no hagas esto a menos que realmente entiendas lo que estás haciendo, ya que podrías dañar tu AVR Dragon o peor si lo haces mal.

    Configuración de pines: Puerto B ISP1 42 13 34 NC5 NC6 57 NC8 NC9 610 2

    Paso 10: Lector de RSS con conexión en serie y LCD

    Lector de RSS mediante conexión en serie y LCD
    Lector de RSS mediante conexión en serie y LCD
    Lector de RSS mediante conexión en serie y LCD
    Lector de RSS mediante conexión en serie y LCD

    Sigo jugando con esta placa de desarrollo. Esta vez pasé parte de una tarde desarrollando una lectura de RSS (principalmente en el lado de Python). No creo que merezca su propio instructable, así que lo agregaré aquí.

    Hardware

    Estamos utilizando Dragon Rider 500 como placa de desarrollo. Esto proporciona todo el hardware que necesita (suponiendo que tenga todos los kits complementarios). Dicho esto, ciertamente puede hacer esto con su propia configuración de hardware:

    • Microcontrolador ATmega8 (o cualquiera que tenga un USART y suficientes pines para todas las conexiones
    • Una forma de programar el microcontrolador (yo uso el AVR Dragon)
    • Chip MAX232 para las comunicaciones en serie
    • Conector DB9
    • Pantalla LCD HD44780
    • Cristal (utilicé un cristal de 8 MHz)
    • Condensadores y resistencias surtidos

    A continuación se proporciona un esquema. En Dragon Rider, necesitaremos usar algo de creatividad para enrutar las conexiones. Normalmente, el puerto D se puede conectar directamente al encabezado de la pantalla LCD. Este no es el caso aquí porque el USART necesario para la conexión en serie usa PD0 y PD1. Además, el puerto B no se puede usar porque PB6 y PB7 están en uso para el cristal externo. A continuación, se muestra mi solución a este problema. Enchufo un cable plano a los encabezados de la pantalla LCD, el puerto B y el puerto D, luego uso cables de puente para hacer las rutas adecuadas. No olvide conectar el voltaje y la tierra al encabezado de la pantalla LCD.

    Software

    El software para este proyecto viene en dos partes, el firmware para el microcontrolador y el script de Python para raspar las fuentes RSS y enviarlas a través de la conexión serial. Firmware AVR Estoy usando la biblioteca LCD de Peter Fleury nuevamente (https://jump.to / fleury). Es potente y conciso, versátil y fácil de modificar para la configuración de su hardware. Si observa el archivo de encabezado adjunto (lcd.h), verá que estoy ejecutando en modo de 4 bits con el puerto D como bits de datos y el puerto B como bits de control. El concepto de este firmware es bastante simple:

    • Una vez encendido, el microcontrolador muestra "RSS Reader" y luego espera los datos en serie.
    • Cada byte de datos en serie recibido hace que un búfer de 16 caracteres se desplace a la izquierda y agregue el byte al búfer, luego muestre el búfer.
    • El microcontrolador acepta tres comandos especiales: 0x00, 0x01 y 0x02. Estos son pantalla clara, se mueven a la línea 0 y se mueven a la línea 1 respectivamente.

    Python Scrypt: escribí un script de Pyton para raspar los datos RSS y enviarlos a través de la conexión en serie. Esto requiere el módulo de Python "pyserial" que probablemente tendrá que instalar en su sistema para que esto funcione. La fuente RSS se puede configurar en la parte superior del archivo de Pyton. Tenga en cuenta que debe ingresar un nombre para el feed, así como la URL del feed. Hay tres ejemplos allí, estoy seguro de que puede seguirlos para la síntesis adecuada.

    • Ensamble el hardware
    • Programe el microcontrolador (puede usar dragon_rss.hex si no desea compilarlo usted mismo). Configuración de fusibles para ATmega8 usando un cristal de 8 MHz: lfuse = 0xEF hfuse = 0xD9
    • Encienda el Dragon Rider y asegúrese de que el cable serial esté enchufado (la pantalla LCD debería leer: "Lector RSS")
    • Ejecute el programa python (python serial_rss.py)
    • Disfrutar

    Recomendado: