« PulseGenerator : Cahier des charges » : différence entre les versions

De Wiki_du_Réseau_des_Electroniciens_du_CNRS
Aller à la navigationAller à la recherche
mAucun résumé des modifications
mAucun résumé des modifications
 
(2 versions intermédiaires par un autre utilisateur non affichées)
Ligne 1 : Ligne 1 :
<maintab>[[Accueil]][[PulseGenerator_:_Presentation|Projet Pulse Generator]]</maintab><br>
<div>[[Accueil]] - [[PulseGenerator_:_Presentation|Projet Pulse Generator]]</div>
<subtab>[[PulseGenerator_:_Presentation|Présentation]][[PulseGenerator_:_Cahier_des_charges|Cahier des charges]][[PulseGenerator_:_Gestion_du_projet|Gestion du projet]][[PulseGenerator_:_Developpement_cote_PC|Côté PC]][[PulseGenerator_:_Developpement_cote_PIC|Côté PIC]][[PulseGenerator_:_Developpement_cote_CPLD|Côté CPLD]][[PulseGenerator_:_Membres|Membres]]</subtab>
<hr/>
 
<div>[[PulseGenerator_:_Presentation|Présentation]] - [[PulseGenerator_:_Cahier_des_charges|Cahier des charges]] - [[PulseGenerator_:_Gestion_du_projet|Gestion du projet]] - [[PulseGenerator_:_Developpement_cote_PC|Côté PC]] - [[PulseGenerator_:_Developpement_cote_PIC|Côté PIC]] - [[PulseGenerator_:_Developpement_cote_CPLD|Côté CPLD]] - [[PulseGenerator_:_Membres|Membres]]</div>
<hr/>


[[Image:Nuvola apps ksim.png|34px|link=|]] Page "'''[[PulseGenerator_:_IHM_face_avant|IHM Hardware]]'''", pour suivre et participer à la discussion sur les besoins et propositions autour du prototype v01.
[[Image:Nuvola apps ksim.png|34px|link=|]] Page "'''[[PulseGenerator_:_IHM_face_avant|IHM Hardware]]'''", pour suivre et participer à la discussion sur les besoins et propositions autour du prototype v01.
Ligne 34 : Ligne 35 :


<imagemap>
<imagemap>
Image:Architecture_Pulse_Generator.png|thumb|center|700px|
Image:Architecture_Pulse_Generator.png|center|700px|
poly 11 188 25 132 29 12 233 15 237 129 236 185  [[PulseGenerator_:_Developpement_cote_PC|Développement côté PC]]
poly 11 188 25 132 29 12 233 15 237 129 236 185  [[PulseGenerator_:_Developpement_cote_PC|Développement côté PC]]
poly 277 235 439 235 438 707 277 706 [[PulseGenerator_:_Developpement_cote_PIC|Développement côté PIC]]
poly 277 235 439 235 438 707 277 706 [[PulseGenerator_:_Developpement_cote_PIC|Développement côté PIC]]
Ligne 44 : Ligne 45 :




= [[Image:Monobook icon.svg|48px|link=]] Caractéristiques du Pulse Generator v1.00 =
= [[Image:Monobook icon.svg|48px|link=|]] Caractéristiques du Pulse Generator v1.00 =
*liaison SPI 8 bits, mode 0, entre la carte maître PIC32 et la carte esclave CPLD
*liaison SPI 8 bits, mode 0, entre la carte maître PIC32 et la carte esclave CPLD
*16 sorties numériques (1 seule sur la carte Coolrunner, en raison du faible nombre de bascules disponibles sur la carte CPLD)
*16 sorties numériques (1 seule sortie possible sur la carte CoolRunner, en raison du faible nombre de bascules disponibles sur cette carte CPLD)
*16 Trigger + possibilité de Trigger maître (+ la possibilité de pouvoir choisir indépendant n'importe quel Trigger pour chaque voie)
*8 ou 16 Trigger + possibilité de Trigger maître (+ la possibilité de pouvoir choisir indépendant n'importe quel Trigger pour chaque voie)
*largeur des impulsions variables individuellement
*largeur des impulsions variables individuellement
*possibilité de retarder le déclenchement de chaque impulsion soit en fonction d’un Trigger (soit en fonction d’une autre voie, si cela est possible en plus du choix du Trigger)
*possibilité de retarder le déclenchement de chaque impulsion soit en fonction d’un Trigger (soit en fonction d’une autre voie, si cela est possible en plus du choix du Trigger)
*interface de l’instrument (IHM) via un écran LCD 4x20, un pad 5 touches et un clavier 16 touches
*interface de l’instrument (IHM) via un écran LCD 4x20 et un clavier 16 touches (un pad 5 touches avait été proposé au début du projet, puis intégré sur le clavier 4x4)
*possibilité de contrôle par une interface PC (protocole [http://fr.wikipedia.org/wiki/Standard_Commands_for_Programmable_Instruments SCPI])
*possibilité de contrôle par une interface PC (protocole [http://fr.wikipedia.org/wiki/Standard_Commands_for_Programmable_Instruments SCPI])



Dernière version du 12 novembre 2018 à 00:03



Page "IHM Hardware", pour suivre et participer à la discussion sur les besoins et propositions autour du prototype v01.

Cahier des charges du générateur d'impulsion

Nous souhaitons mettre en place un système nous permettant d'apprendre à mettre en oeuvre différentes technologies. Ce système pourra être étendu par les personnes qui en auront besoin dans leurs laboratoires en se servant du travail de conception que nous faisons ici, dans un esprit de partage et de complémentarité.

Le but de l'équipement est de pouvoir générer un signal impulsionnel calibré à partir d'un déclenchement externe, un temps de retard (DELAY) pourra être également configuré pour par exemple avoir plusieurs sorties PULSE décalées dans le temps.


Voici un exemple de chronogramme pour une sortie impulsionnelle et les options Arming IN et Delay OUT (en vert) que nous avons proposé en option, soit 2 entrées pour le déclenchement et ses 2 sorties. Le proto n'aura certainement que l'entrée Trigger et la sortie Pulse (en bleu) sur ça face avant :

......................___________________
ARMING IN x _________/...................\______________________________________
............................._____
TRIGGER IN x _______________/.....\_____________________________________________
..............................________________________
DELAY OUT x _________________/........................\_________________________
.........................................................______________
PULSE OUT x ____________________________________________/..............\_______


Dessin de l'architecture du Pulse Generator. Si vous voulez être dirigé vers une page du wiki en relation direct avec une partie de l'architecture ci-dessous, vous êtes invité à cliquer sur celle-ci.

Développement côté PCDéveloppement côté PICDéveloppement côté CPLDProtocole SCPILiaison (PIC<->CPLD)IHM face avant


Caractéristiques du Pulse Generator v1.00

  • liaison SPI 8 bits, mode 0, entre la carte maître PIC32 et la carte esclave CPLD
  • 16 sorties numériques (1 seule sortie possible sur la carte CoolRunner, en raison du faible nombre de bascules disponibles sur cette carte CPLD)
  • 8 ou 16 Trigger + possibilité de Trigger maître (+ la possibilité de pouvoir choisir indépendant n'importe quel Trigger pour chaque voie)
  • largeur des impulsions variables individuellement
  • possibilité de retarder le déclenchement de chaque impulsion soit en fonction d’un Trigger (soit en fonction d’une autre voie, si cela est possible en plus du choix du Trigger)
  • interface de l’instrument (IHM) via un écran LCD 4x20 et un clavier 16 touches (un pad 5 touches avait été proposé au début du projet, puis intégré sur le clavier 4x4)
  • possibilité de contrôle par une interface PC (protocole SCPI)


Les commandes du protocole SCPI pour notre Pulse Generator

A compléter et à valider :

Commandes obligatoires

  • "*IDN?" → instruction qui demande à la carte PIC de renvoyer sa chaîne d'identification,
    Retour typique: la réponse du PIC au PC est alors "RdE,Pulse Generator,PG01,V.01.00"
    La chaîne d'identification contient des champs séparés par des virgules:
    • (en) Product information ("{string 1},{string 2},{string 3},{string 4}")
    • {string 1}: Manufacturer → "champ 1": nom du fabricant (Obligatoire), ici "RdE"
    • {string 2}: Model number → "champ 2": numéro du modèle (Obligatoire), ici "Pulse Generator" (ne doivent pas contenir le mot "MODEL")
    • {string 3}: Serial number → "champ 3": numéro de série / ASCII "0" si non disponible, soit "PG01" pour cette démo
    • {string 4}: Firmware revision number → "champ 4": code de la version / ASCII "0" si non disponible, ici "V.01.00" (format: "V.XX.XX")

hardware de la carte microcontrôleur et CPLD)

  • "*OPC?" → ?
  • "*RST" → demande de réinitialisation de la carte PIC (le firmware pourrait procéder à un Reset
  • "SYST:ERR:NEXT?" → ?
  • "*TST?" → ?

Commandes du Pulse Generator

  • "OUTPut:STATe" → contrôle de la sortie du générateur (sortie sur une LED)
    Paramètre: {ON|1|OFF|0}, OFF par défaut
  • "OUTPut:STATe?" → retourne l'état de la configuration du générateur
    Retour typique: 0 (OFF) ou 1 (ON)
  • "FUNCtion:PULSe:PERiod" → période d'une impulsion (multiple de 100 ms)
    exemple, configurez la période avec la valeur 500 ms: "FUNC:PULS:PER 500 ms"
    La période spécifiée doit être supérieure à la la largeur des impulsions.
    500 ms est la valeur par défaut lors d'un Reset de la carte
  • "FUNCtion:PULSe:PERiod?" → retourne la configuration de la période d'une impulsion
  • "FUNCtion:PULSe:WIDTh" → largeur des impulsions (multiple de 100 ms)
    exemple, configurez la largeur des impulsions avec la valeur 100 ms: "FUNC:PULS:WIDT 100 ms"
    100 ms est la valeur par défaut lors d'un Reset de la carte
  • "FUNCtion:PULSe:WIDTh?" → retourne la configuration de la largeur des impulsions
    Vous pouvez également rechercher le nombre minimal et maximal autorisé pour les paramètres de période "FUNCtion:PULSe:PERiod? MIN|MAX" et de largeur "FUNCtion:PULSe:WIDTh? MIN|MAX"

Commandes propre à l'IHM

  • "DISPlay {OFF|0|ON|1}" → permet d'activer le contrôle de l'écran LCD de l'IHM
  • "DISPlay:TEXT Display on LCD 4x20" → exemple d'affichage sur l’écran LCD du message "Display on LCD 4x20" depuis l'interface PC

Remarques

  • Caractères de fin de commande SCPI
    Une commande envoyée à la carte PIC doit obligatoirement se terminer par la séquence de caractères retour chariot '\r' (0x0D) suivi d'un caractère nouvelle ligne '\n' (0x0A).
  • La longueur maximale des trames SCPI ne peut pas excéder 72 caractères, notre démo n'accepte qu'une commande par trame.

Liens


Exemple de produits commerciaux utilisés en laboratoire

Liens vers les générateurs d’impulsion existant:

Attention, il peut exister une dérive temporelle lors d’utilisation trop longue pour certains appareils, comme sur le master 8. A vérifier donc si cela peut être une contrainte pour vos manip.