• [^] # Re: Robotique ?

    Posté par (site web personnel) . En réponse à la dépêche Sortie de la version 4.0 du "Projet Armadeus". Évalué à 4.

    Je crois qu'on s'est pas compris, je vais être moins synthétique dans ma réponse.
    Pour moi, la carte APFxx avec sa combinaison processeur ARM + FPGA peut très bien répondre à ton besoin (désolé je me permet de te tutoyer, c'est plus fort que moi ;-) ).

    Je m'explique:

    1. Les CAN (Convertisseurs Analogique/Numérique)

    En général, ces composants disposent d'interface de communication logique (I2C ou SPI). Pour gagner en temps de traitement, je suggère de brancher le lien SPI/I2C sur le FPGA et de créer les modules VHDL suivants:
    - un module qui va gérer le dialogue SPI/I2C (envoi/réception de trames), le plus simple étant aussi de voir ce qui existe sur OpenCores (www.opencores.org)
    - un module qui va gérer le dialogue avec le circuit CAN (lecture/écriture des registres du CAN)
    - un module qui va gérer la lecture en continu des résultats de conversion
    - un module qui va filtrer les mesures brutes pour les rendre exploitable du point de vu logiciel

    2. La commande moteur (PWM)

    Pour cela, il suffit de créer un petit module VHDL qui va gérer la sortie PWM sur un GPIO, et puis faire l'adaptation électronique derrière (MOS de puissance par exemple) et d'attaquer le moteur avec cela.

    3. Traitement logique

    Là c'est le processeur ARM qui va entrer en jeu, c'est lui qui va, faire tout le traitement informatique, pour cela, il a juste à récupérer les données du FPGA via un module VHDL et un peu de soft.
    Pour simplifier cela, il existe le projet POD (Peripherals On Demand) regarde ici pour plus de détails => http://www.armadeus.com/wiki/index.php?title=Using_FPGA

    En bref, le FPGA va s'occuper de lire/filtrer les mesures CAN en continue et il va également s'occuper de gérer la commande des moteurs. Il suffit de créer autant d'instance des modules CAN et PWM que nécessaire.
    Le processeur ARM va lui s'occuper de gérer les interaction à l'aide des différentes données récupérées par le FPGA.