Introducción.
Con los pasos descriptos en esta entrada, prepararemos una raspberry pi 3, para que funcione como interfaz jtag. Con ello podremos reproducir archivos SVF, los cuales nos permitirán, entre otros usos, la programación, de CPLD's.
Todos los pasos detallados fueron realizados desde un Host (mi PC) con distro Debian 9.
Preparación de Raspberry.
Descargaremos la imagen de Raspbian sin escritorio, ya que no será necesario, desde el siguiente enlace:
https://www.raspberrypi.org/downloads/raspbian/
A la fecha de esta entrada descargaremos Raspbian Buster Lite.
Luego descargaremos balenaEtcher para grabar la imagen en una tarjeta SD (Utilicé una de 4GB).
https://www.balena.io/etcher/
Balena Etcher es muy simple de usar y no necesita mayores explicaciones, que las que el propio programa da.
Insertamos la SD en nuestra raspberry, y dejamos que realice el proceso de inicialización. (Recordar conectar un monitor, un cable de red y un teclado para el primer arranque).
Nos logueamos con:
user: pi
password: raspberry
Una vez inicada la sesión creamos el archivo "ssh" sin contenido en el directorio "/boot" (sudo nano ssh), luego reiniciamos y ya deberíamos tener acceso remoto por SSH.
Para activar el wi-fi, desde nuestra sesión SSH hacemos:
pi@raspberrypi:~ $ sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
Nos colocamos al final del archivo e insertamos:
network={
ssid="My Wifi"
psk="MyPass"
}
ssid="My Wifi"
psk="MyPass"
}
Posteriormente podremos asignar una IP estática (recomendado para este uso) a la conexión Wi-Fi.
Para ello editamos el archivo:
pi@raspberrypi:~ $ sudo nano /etc/dhcpcd.conf
y al final del archivo insertamos:
interface wlan0
static ip_address=10.0.0.240/24
static ip_address=10.0.0.240/24
static routers=10.0.0.1
static domain_name_servers=10.0.0.1 8.8.8.8
static domain_name_servers=10.0.0.1 8.8.8.8
Por supuesto cada quien asignará las IP acorde a su configuración.
Finalmente, siempre es bueno realizar:
pi@raspberrypi:~ $ sudo apt update
pi@raspberrypi:~ $ sudo apt upgrade
UrJtag
Primero instalamos los siguientes paquetes:
pi@raspberrypi:~ $ sudo apt install git
pi@raspberrypi:~ $ sudo apt install autoconf
pi@raspberrypi:~ $ sudo apt install autopoint
pi@raspberrypi:~ $ sudo apt install libtool
pi@raspberrypi:~ $ sudo apt install libusb-1.0
pi@raspberrypi:~ $ sudo apt install libreadline-dev
pi@raspberrypi:~ $ sudo apt install python-dev
Descargamos con:
pi@raspberrypi:~ $ wget https://ufpr.dl.sourceforge.net/project/urjtag/urjtag/2018.09/urjtag-2018.09.tar.xz
Descomprimimos:
pi@raspberrypi:~ $ tar -xf urjtag-2018.09.tar.xz
Ingresamos:
pi@raspberrypi:~ $ cd urjtag-2018.09
Editamos el fichero cmd_bfin.c:
pi@raspberrypi:~/urjtag-2018.09 $ nano src/cmd/cmd_bfin.c
Insertamos al inicio del fichero:
#define _SYS_UCONTEXT_H
Guardamos y salimos.
Luego hacemos:
pi@raspberrypi:~/urjtag-2018.09 $ ./configure
pi@raspberrypi:~/urjtag-2018.09 $ make
(Esperamos un tiempo, no mucho mas que el que toma preparse un café)
pi@raspberrypi:~/urjtag-2018.09 $ sudo make install
Finalmente lanzamos con:
pi@raspberrypi:~ $ sudo jtag
jtag> cable gpio tdi=13 tdo=19 tck=26 tms=6
Los GPIO corresponden a los siguientes pines de la raspberry
GPIO13 = PIN 33
GPIO19 = PIN 35
GPIO26 = PIN 37
GPIO6 = PIN 31
GND = PIN 39
Conectamos nuestra placa target, la mía es una placa para testeo que fabriqué en torno a una CPLD Altera EPM570, obtenida de equipos dañados.
Hacemos:
jtag> detect
Y en mi caso me devuelve:
Que según el datasheet el valor devuelto es el correcto:
No obstante para poder grabar la CPLD, urjtag necesita del archivo BSDL correspondiente. Para la CPLD de mi prototipo lo descargué del siguiente enlace:
https://www.intel.com/content/www/us/en/programmable/support/support-resources/download/board-layout-test/bsdl/max2.html
Lo colocamos en alguna carpeta con una ruta simple:
pi@raspberrypi:~/bsd $
Nuevamente dentro de jtag:
jtag> cable gpio tdi=13 tdo=19 tck=26 tms=6
jtag> bsdl path /home/pi/bsd
jtag> detect
Tenemos respuesta.
T'T.
No hay comentarios.:
Publicar un comentario