Application Encoder sur baremetal Zybo
Introduction
Ce projet a pour but de contrôler un encodeur rotatif Digilent PmodENC sur la carte Zybo Z7-20 en utilisant un projet baremetal en C avec Vitis. L'encodeur rotatif est un composant qui permet de mesurer la rotation d'un axe. Il est composé de deux signaux A et B qui sont en quadrature. L'encodeur est connecté au port JE de la carte Zybo Z7-20.
Ce projet est disponible sur GitHub.
Génération du Matériel avec Vivado
L'objectif est de générer un fichier XSA. Vous pouvez vous référer au Tutoriel Pmod-IPs Digilent pour plus d'informations.
Étapes
-
Créer un projet Vivado avec la carte Zybo Z7-20.
-
Créer un block design et y ajouter les éléments suivants :
- Zynq
- PmodENC_v1_0 connecté au port JE
-
Connecter automatiquement les composants puis valider le design.
-
Générer le bitstream.
-
Exporter le matériel avec le bitstream inclus.
Application Baremetal avec Vitis
Depuis Vivado, sélectionner Tools -> Launch Vitis IDE
.
Étapes
- Ouvrir un workspace.
- Créer un composant plateforme :
- Nom : platform_enc
- Sélectionner le fichier XSA précédemment généré
- Créer un composant application :
- Nom : app_enc
- Plateforme : platform_enc (créé précédemment)
Importer les fichiers nécessaires
- Copier
PmodENC.c
etPmodENC.h
disponibles depuisplatform_enc/Source/hw/sdt/drivers/PmodENC_V1_0/src
dansapp_enc/Sources/src
. - Copier
main.c
disponible depuisplatform_enc/Source/hw/sdt/drivers/PmodENC_V1_0/examples
dansapp_enc/Sources/src
.
Configuration du GPIO
Ajouter la ligne suivante dans le fichier main.c
:
#define XPAR_PMODENC_0_AXI_LITE_GPIO_BASEADDR 0x40000000
Configuration du projet
Il est nécessaire de configurer le projet pour qu'il puisse être exécuté sur la carte Zybo Z7-20. Modifier Board Initialization
à FSBL
dans le fichier launch.json
.
Compilation et connexion
- Compiler l'application (plateforme incluse).
- Connecter le module ENC à la partie supérieure du port JE.
- Brancher le câble USB à l'ordinateur.
- Connecter vous au terminal série. 115200 bauds.
- Lancer l'application.