Tabla de contenido:

Cómo usar los pines GPIO de una Raspberry Pi y Avrdude para el programa Bit-bang DIMP 2 o DA PIMP 2: 9 pasos
Cómo usar los pines GPIO de una Raspberry Pi y Avrdude para el programa Bit-bang DIMP 2 o DA PIMP 2: 9 pasos

Video: Cómo usar los pines GPIO de una Raspberry Pi y Avrdude para el programa Bit-bang DIMP 2 o DA PIMP 2: 9 pasos

Video: Cómo usar los pines GPIO de una Raspberry Pi y Avrdude para el programa Bit-bang DIMP 2 o DA PIMP 2: 9 pasos
Video: ¿Qué es Raspberry Pi? 2024, Mes de julio
Anonim
Cómo usar los pines GPIO de una Raspberry Pi y Avrdude para el programa Bit-bang DIMP 2 o DA PIMP 2
Cómo usar los pines GPIO de una Raspberry Pi y Avrdude para el programa Bit-bang DIMP 2 o DA PIMP 2

Estas son instrucciones paso a paso sobre cómo usar una Raspberry Pi y el comando de código abierto gratuito avrdude para programar bit-bang-un DIMP 2 o DA PIMP 2. Supongo que está familiarizado con su Raspberry Pi y LINUX. línea de comando. No es necesario que esté familiarizado con la programación del chip AVR, pero ayuda si algo sale mal porque puede leer la salida de avrdude y tener una idea de qué hacer.

Este procedimiento debería tomar alrededor de 1 hora la primera vez y de 5 a 10 minutos cada vez después.

Necesitará:

1) Una Raspberry Pi con pines GPIO y fuente de alimentación. Estoy usando una Raspberry Pi Zero W con pines GPIO soldados. El sistema operativo debe ser Raspberry Pi OS (anteriormente Raspbian). Estoy usando Raspbian Lite (Stretch), que es algo antiguo. Estos comandos aún deberían funcionar en la última versión del sistema operativo Raspberry Pi.

En el futuro, me referiré a la Raspberry Pi como "RPi".

2) Cables de puente de hembra a hembra. Obtenga uno de cada uno de estos colores: rojo, negro, azul, amarillo, verde, morado. Estoy usando marrón en lugar de morado.

3) Un DIMP 2 o DA PIMP 2 con el encabezado ICSP opcional de 10 pines soldado. Estoy usando un DIMP 2 aquí, pero las instrucciones son las mismas para el DA PIMP 2.

4) Acceso a Internet para el RPi para que pueda instalar el comando de código abierto gratuito avrdude.

5) Una copia del archivo flash.hex para su DIMP 2 o DA PIMP 2. Puede crear el archivo.hex usted mismo a partir del código fuente sin procesar, pero no le mostraré cómo hacerlo aquí.

6) Alguna forma de iniciar sesión en el RPi: use una conexión de red o acceso directo a la consola. Necesita poder ejecutar comandos en él.

Paso 1: Retire el cable de alimentación de CA y retire la batería de 9 V

Primero, verifique si el cable de alimentación de CA está conectado al DIMP 2 o DA PIMP 2 y si está conectado a la red de CA. Si es así, PELIGRO: PELIGRO DE DESCARGA LETAL. Use guantes de goma y luego apague el interruptor principal en el DIMP 2 o DA PIMP 2. Luego, desenchufe el cable de alimentación de CA de la red de CA y desconecte el cable de alimentación de CA del DIMP 2 o DA PIMP 2. Puede tomar Quítese los guantes de goma una vez que retire el cable de alimentación de CA.

Luego, retire la batería de 9V. El RPi proporcionará energía al DIMP 2 a través de los cables rojo (Vcc) y negro (GND). Apague el interruptor deslizante del DIMP 2 o DA PIMP 2 por si acaso.

Paso 2: conecte los cables de puente

Conecte los cables de puente
Conecte los cables de puente
Conecte los cables de puente
Conecte los cables de puente
Conecte los cables de puente
Conecte los cables de puente
Conecte los cables de puente
Conecte los cables de puente

Con el RPi apagado, comience a conectar los cables de puente. En el futuro, los pines GPIO están en la Raspberry Pi y los pines ICSP están en el DIMP 2 (encabezado J3) o DA PIMP 2 (encabezado J1).

Consulte el diagrama que improvisé y las fotos si está perdido.

La parte RPi del diagrama es de pinout.xyz.

La parte ATMEGA48V-10PU del diagrama tiene copyright 2016 de Atmel Corp.

Estoy reclamando un uso justo de estos dibujos debido a las adiciones significativas y transformadoras.

El negro va del pin 6 de GPIO al pin 10 del ICSP. Esto es GND (tierra)

El amarillo va del pin 12 de GPIO al pin 9 de ICSP. Esto es MISO.

El verde va del pin 16 de GPIO al pin 1 de ICSP. Este es MOSI.

El azul va del pin 18 de GPIO al pin 7 de ICSP. Esto es SCK o SCLK (SClock)

El púrpura (marrón en mis fotos) va del pin 32 de GPIO al pin 5 del ICSP. Esto es RESET.

El rojo va del pin 4 de GPIO al pin 2 de ICSP. Este es Vcc (alimentación de 5 V)

Paso 3: Encienda el RPi

Ahora, adelante, enciende el RPi. La parte del voltímetro de DIMP 2 o DA PIMP 2 también debería encenderse, pero no lo sabrá al mirar la pantalla. En caso de duda, mida el voltaje con la sonda roja en el pin 20 del ATMEGA48V-10PU y la sonda negra en el pin 4, 6 u 8 del encabezado ICSP. Debería ser de alrededor de 5 V CC.

Paso 4: Instale Avrdude

Mis instrucciones solo mostrarán comandos de línea de comandos. Si tiene una GUI en ejecución, querrá abrir una Terminal para ejecutar estos comandos de línea de comandos.

Inicie sesión como el usuario pi predeterminado. La contraseña predeterminada es frambuesa.

Instale el comando avrdude escribiendo lo siguiente en el símbolo del sistema de la terminal:

sudo apt-get install avrdude

Paso 5: Edite el archivo de configuración de Avrdude

Edite el archivo de configuración avrdude escribiendo:

sudo nano /etc/avrdude.conf

Agregue estas líneas al medio del archivo donde están las otras definiciones del programador. Lo que hice fue copiar la sección del programador justo encima de ella para id = "linuxgpio", luego pegarla justo debajo (en la línea 1274) y luego editar la nueva sección.

programador

id = "pi_1"; desc = "Use la interfaz sysfs de Linux para bitbang líneas GPIO"; type = "linuxgpio"; reiniciar = 12; sck = 24; mosi = 23; miso = 18;;

Luego guarde el archivo presionando: Ctrl-O

Y luego salga del editor nano presionando: Ctrl-X

Paso 6: Descargue o copie el archivo Flash.hex en / home / pi

Copie el archivo flash.hex al RPi. Supongo que sabes cómo hacer esto. SUGERENCIA: Utilice el comando wget, curl, git o scp para bajar el archivo de la web al RPi.

El archivo.hex de DIMP 2 está aquí, junto con el código fuente:

github.com/dchang0/dimp2

Una versión personalizada del archivo.hex de DA PIMP 2 está aquí. ¡No he probado esto!

github.com/jcwren/DaPimp2

Si la versión anterior del archivo.hex de DA PIMP 2 no funciona, el código fuente original de DA PIMP 2 de Mikey Sklar está aquí. Tendrá que compilarlo usted mismo en un archivo.hex funcional. No cubro eso en estas instrucciones porque será un tutorial largo (pero no difícil). Programé con éxito varias unidades DA PIMP 2 en funcionamiento usando este código fuente:

drive.google.com/open?id=0Bx5Als-UeiZbSUdH…

O puede ir a la página principal de DA PIMP 2 aquí y hacer clic en el enlace al código fuente.

mikeysklar.blogspot.com/p/da-pimp-battery-…

Coloque el archivo.hex en esta ruta y el nombre de archivo en el RPi …

Para el DIMP 2:

/home/pi/dimp2.hex

Para DA PIMP 2:

/home/pi/da_pimp2.hex

Paso 7: Verifique que Avrdude pueda hablar con el ATMEGA48V-10PU

Ejecute el comando avrdude para asegurarse de que pueda hablar con el chip ATMEGA48V-10PU en el DIMP 2 o DA PIMP 2.

cd / home / pi

sudo avrdude -c pi_1 -p m48 -v

Obtendrá aproximadamente una página de salida. Mira el final. Si obtiene una respuesta como esta, puede continuar.

avrdude: dispositivo AVR inicializado y listo para aceptar instrucciones

Lectura | ############################################### | 100% 0,00 s

Si no es así, algo anda mal y deberías resolverlo. Lo más probable es que sea un cableado incorrecto, pero otra queja común que he visto es que el chip ATMEGA48V-10PU es falso. Parece que muchos de los que se venden en Amazon o eBay son falsificaciones. Los vendidos por Mouser o Digikey y otros distribuidores autorizados son genuinos.

Paso 8: Actualice el archivo.hex en ATMEGA48V-10PU

Ejecute este comando para hacer la programación del chip …

Para el DIMP 2:

cd / home / pi

sudo avrdude -c pi_1 -p m48 -U flash: w: dimp2.hex

Para DA PIMP 2:

cd / home / pi

sudo avrdude -c pi_1 -p m48 -U flash: w: da_pimp2.hex

Obtendrá aproximadamente una página de salida. Busque estas líneas:

avrdude: escritura flash (1528 bytes):

Escritura | ############################################### | 100% 0,79 s

avrdude: verificando…

avrdude: 1528 bytes de flash verificado avrdude: safemode: Fusibles correctos (E: FF, H: DF, L: 62)

Si llegó tan lejos, debería ver la pantalla LED mostrando ceros para el voltaje. Si ve los ceros, ¡ya está! Si no es así, salte al siguiente paso.

Si ve los ceros, apague elegantemente su RPi con este comando:

sudo shutdown -h ahora

Cuando la luz de encendido del RPi se apague (el DIMP 2 o DA PIMP 2 todavía estarán encendidos), puede desconectar la fuente de alimentación del RPi. Luego, desconecte los cables de puente entre el RPi y el DIMP 2 o DA PIMP 2.

Paso 9: Solución de problemas simple si falla el flash

Si no ve ceros en la pantalla de su DIMP 2 o DA PIMP 2, entonces es hora de solucionar el problema.

Nuevamente, primero revise su cableado.

Luego, verifique los estados de los fusibles mostrados por avrdude. Es posible que su chip venga con los fusibles configurados en valores diferentes a los predeterminados de fábrica. Es posible que sea necesario restablecer los fusibles del chip, lo que requiere un dispositivo de hardware totalmente diferente. Este es un problema con muchos de los chips ATMEGA48V-10PU falsos que se venden en eBay: son chips viejos extraídos de hardware desechado, los fusibles se han colocado y el vendedor no se molestó en restablecer los fusibles.

A veces, el chip ni siquiera es un ATMEGA48V-10PU. Podría ser un chip diferente reetiquetado. Por lo general, puede reconocer estas falsificaciones observando cuidadosamente las marcas en la parte superior e inferior del chip. Es más prudente obtener su ATMEGA48V-10PU a través de un proveedor confiable como Mouser o Digikey.

Recomendado: