Tabla de contenido:

Entorno de desarrollo del ghetto: 5 pasos
Entorno de desarrollo del ghetto: 5 pasos

Video: Entorno de desarrollo del ghetto: 5 pasos

Video: Entorno de desarrollo del ghetto: 5 pasos
Video: Introducción a Scala: Cómo configurar tu entorno de desarrollo 🚀 2024, Mes de julio
Anonim
Entorno de desarrollo del ghetto
Entorno de desarrollo del ghetto

Hace un tiempo, publiqué un método rápido y sucio para comenzar a programar los chips de la serie AVR de Atmel: Ghetto Programmer (versión 1.0) Desde entonces, he mejorado, renovado y mejorado mi configuración. Pensé que sería bueno documentarlo. El objetivo era obtener un entorno de creación de prototipos de microcontroladores basado en AVR flexible, compacto, portátil y de uso en cualquier lugar. Barato (ish) Así que sin más preámbulos, aquí está el Ghetto Development Environment (GDE) (versión 1.2).

Paso 1: el kit

El kit
El kit

El kit básico contiene lo siguiente: Programador USB. Porque quieres poder programar microcontroladores desde tu portátil en cualquier lugar. Y porque el USB es una fuente muy útil de bases de programación de + 5v. Uno para cada tipo de ficha con la que estás jugando. Para mí, eso significa uno con 8 pines (ATtiny13, 15), uno con 20 pines (ATtiny 2313) y uno con 28 pines (ATmega8). Luces intermitentes. Cuando algo anda mal con su código, nada lo aclara como pegar luces para diagnosticar. Además, el programa de luz intermitente LED es el "Hola mundo" de los microcontroladores. Después de todo, es un kit de desarrollo.

Paso 2: el programador USB

El programador USB
El programador USB
El programador USB
El programador USB

En Ghetto Programmer (v.1.0) utilicé un programador de puerto paralelo. Es genial porque es simple, barato y rápido. Pero mi computadora portátil no tiene un puerto paralelo. Jugué con la creación de programadores de puertos serie por un tiempo, pero honestamente son tan complicados como la versión USB e incluso los puertos seriales se están volviendo escasos. De hecho, mi computadora portátil solo tiene USB. Así que USB lo es. Mirando a su alrededor, el programador USBTiny es bastante simple y funciona con las herramientas gratuitas GNU / AVR-GCC. ¿Hágalo usted mismo o compre un kit? La forma de bricolaje es buena si ya puede programar un ATTiny2313 (con programador paralelo) y tener un cristal de 12MHz alrededor. USBTiny Page establece los conceptos básicos. Termina el cable de programación con un puerto paralelo, pero yo lo terminaría en un encabezado estándar de 6 pines si comenzara de nuevo. (¿Por qué? Porque es estándar.) Aquí están sus pines, y revise la imagen de abajo para ver el diseño del cable. PD3 - MISOPD5 - ResetPD6 - SCKPD7 - MOSI Si haces el tuyo propio, aprende de mi experiencia y ponlo en una bonita caja de plástico. Si no lo hace, eventualmente fallará cuando el cristal de 12MHz se rompa. Por eso ahora uso … La forma más rápida y elegante es el kit USBtinyISP de Ladyada. Te costará $ 22, pero obtienes un buen PCB, un ATTiny2313 preprogramado y una caja limpia con buenos cables. Las piezas en bruto cuestan como $ 15-16 de todos modos, y no tiene que llamar a Digikey y luego preocuparse por programar su propio 2313. Se tarda entre 30 minutos y 1 hora en soldarlo todo. Derroche. Confía en mí. (Sin afiliación, cliente satisfecho) Y acabo de ver este enlace: Tutorial de AVR de Ladyada que me parece bastante bueno. (Y tenga en cuenta que el diseño de Ladyada y el USBTiny original usan diferentes códigos de identificación de producto USB; tendrá que encontrar las cadenas de identificación y volver a compilar avrGCC si está cambiando entre los dos. Creo que hay instrucciones en las páginas web respectivas.)

En caso de que esté en un sistema Ubuntu Linux y use el programador USBTiny, aquí están los comandos que harán que toda la cadena de herramientas esté en funcionamiento: sudo apt-get install build-essential avr-libc binutils-avr gcc-avr avrdude (probado en Hardy Heron) Si tiene un arco AMD64, también puede necesitar: byacc libusb-dev flex bison libc6-deva y luego compilar AVRdude a mano: (wget https://download.savannah.gnu.org/releases/avrdude/ avrdude-5.5.tar.gz tar xvzf avrdude-5.5.tar.gz cd avrdude-5.5 ## Parche necesario para AMD64: wget https://savannah.nongnu.org/patch/download.php?file_id=14754 parche -p1 <avrdude-5.5.usbtiny.64bit.patch./configure make && make install sudo avrdude -p attiny2313 -c usbtiny ## to test) Si ve algo como "avrdude: dispositivo AVR inicializado y listo para aceptar instrucciones", entonces Listo. Ah, sí, y el mérito de Wendel Oskay por el diagrama de los pines del programador estándar.

Paso 3: la base de programación

La base de programación
La base de programación
La base de programación
La base de programación
La base de programación
La base de programación

En Ghetto Programmer v.1.0 utilicé una base de programación con una entrada de pin no estándar y con encabezados de pin hembra para pegar cosas. Los pines no estándar son una mala idea porque no podrá usar su base con el programador de otra persona y viceversa. Los encabezados de clavija femeninos eran divertidos porque se podían conectar directamente los LED a ellos, pero cuando comenzaba a hacer algo más complejo, terminaba conectándolos a una placa de pruebas de todos modos. Con la nueva cuna, eliminé al intermediario. Menos cableado manual = mejor. Pero la mayor ventaja de este diseño de base es que puede conectar la base casi en cualquier lugar donde pueda conectar el chip AVR. Esto resulta ser enorme. En lugar de diseñar circuitos ISP en su robot o lo que sea, simplemente coloque esta cuna en el zócalo IC. Luego puede programar / reprogramar el cerebro de su robot en circuito. Cuando haya terminado de desarrollar, conecte el AVR directamente y pasará al siguiente. Hacer las bases es bastante fácil: todo lo que necesita hacer es conectar los pines del cabezal de 6 pines a los lugares correctos en las patatas fritas. Esta vez, utilicé PCB grabadas. También puede cablear todo a mano en el tablero perfilado. La base ATTiny13 / 15 está hecha con un enchufe para envolver cables de 8 pines. Me encantan estos. Es fácil insertar el chip en sus bonitos orificios redondos y las patas largas proporcionan espacio adicional en la placa de pruebas. Hice las trazas de PCB a mano alzada con un Sharpie. La base ATTiny2313 se fabricó con Eagle y el método de transferencia de tóner de papel láser. No pude encontrar ningún enchufe de envoltura de alambre de 20 pines, así que tuve que recurrir a un enchufe normal de 20 pines soldado en 2 cabezales de 10 pines. Esto termina con una cuna con patas más cortas, pero funciona. El esquema y el PDF que utilicé para el circuito se encuentran a continuación. En ambos, tuve que cablear manualmente una línea adicional. Así es la vida.

Paso 4: luces intermitentes

Luces intermitentes
Luces intermitentes
Luces intermitentes
Luces intermitentes

Sencillez en sí misma. No mencionaría estos en absoluto si no fueran tan malditamente útiles.

Suelde una resistencia (150-220 ohmios es un buen valor) directamente al cable negativo de algunos LED. Se encenderá desde alrededor de 2v-6v sin quemarse. Y la resistencia te ayuda a recordar qué lado es negativo. Pégalos donde quieras saber que hay electricidad. Averigua si ese transistor está quemado. Convierta una batería nicad en una luz nocturna de larga duración. Utilice una interfaz de código intermitente para leer los valores de su microprocesador (lentamente). O haz 8 de ellos y tendrás una pantalla de un byte (más el ingrediente activo en los ojos Cylon). Hazlos. Haz muchos. Hazlos ahora.

Paso 5: el final

El fin
El fin

Entonces este "sistema" satisface casi todas mis necesidades de desarrollo. Es modular, escalable, compacto y portátil.

Por ejemplo, elaboré las rutinas para ejecutar mensajes de desplazamiento en la pantalla de 4 dígitos (página de introducción) en el avión de camino a la boda de un amigo. Hace un buen rompehielos con los auxiliares de vuelo. Este potenciómetro -> ADC -> configuración de amperímetro impulsado por PWM se modificó, codificó y depuró por completo entre mi sofá y la mesa del comedor, y se limpia en 2 minutos cuando vienen los amigos. (Es la parte de ajuste de la hora de la alarma de lo que será un reloj medidor). A veces llevo la configuración a trabajar cuando tengo ganas de hacer novillos. Agregue una pequeña bolsa de golosinas (algunos condensadores y resistencias, cable de conexión, transistores, parlante piezoeléctrico, fotodiodos, micrófonos, motores pequeños, etc.) y estará tan por delante de MacGuyver que ni siquiera es gracioso.

Recomendado: