Différences entre versions de « PulseGenerator : Cahier des charges »

De Wiki_du_Réseau_des_Electroniciens_du_CNRS
Sauter à la navigation Sauter à la recherche
m
m
Ligne 58 : Ligne 58 :
  
 
* <font color=#CE7B00>"*IDN?"</font> → instruction qui demande à la carte PIC de renvoyer sa chaîne d'identification,
 
* <font color=#CE7B00>"*IDN?"</font> → instruction qui demande à la carte PIC de renvoyer sa chaîne d'identification,
*: Retour typique: la réponse du PIC est alors "RdE - Groupe PIC,001,001,000"
+
*: 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:
 
*: La chaîne d'identification contient des champs séparés par des virgules:
** champ 1: nom du fabricant (Obligatoire), ici "RdE - Groupe PIC"
+
** (en) Product information ("{string 1},{string 2},{string 3},{string 4}")
** champ 2: numéro du modèle (Obligatoire), ici "001
+
** {string 1}: Manufacturer → "champ 1": nom du fabricant (Obligatoire), ici "RdE"
** champ 3: numéro de série / ASCII "0" si non disponible, soit "001" pour cette démo
+
** {string 2}: Model number → "champ 2": numéro du modèle (Obligatoire), ici "Pulse Generator(ne doivent pas contenir le mot "MODEL")
** champ 4: code de la version / ASCII "0" si non disponible, ici "000"
+
** {string 3}: Serial number → "champ 3": numéro de série / ASCII "0" si non disponible, soit "PG01" pour cette démo
* <font color=#CE7B00>"*RST"</font> → demande de réinitialisation de la carte PIC, le firmware procède à un Reset hardware de la carte microcontrôleur et CPLD
+
** {string 4}: Firmware revision number → "champ 4": code de la [http://fr.wikipedia.org/wiki/Version_d'un_logiciel version] / ASCII "0" si non disponible, ici "V.01.00" (format: "V.XX.XX")
 +
* <font color=#CE7B00>"*RST"</font> → demande de réinitialisation de la carte PIC (le firmware pourrait procéder à un Reset hardware de la carte microcontrôleur et CPLD)
 
* <font color=#CE7B00>"OUTPut:STATe"</font> → contrôle de la sortie du générateur (sortie sur une LED)
 
* <font color=#CE7B00>"OUTPut:STATe"</font> → contrôle de la sortie du générateur (sortie sur une LED)
 
*: Paramètre: {ON|1|OFF|0}, OFF par défaut
 
*: Paramètre: {ON|1|OFF|0}, OFF par défaut
Ligne 86 : Ligne 87 :
 
=== [[Image:Nuvola_apps_kdict.png|38px|link=]] Liens ===
 
=== [[Image:Nuvola_apps_kdict.png|38px|link=]] Liens ===
 
* [http://fr.wikipedia.org/wiki/Standard_Commands_for_Programmable_Instruments SCPI, Standard Commands for Programmable Instrumentation]
 
* [http://fr.wikipedia.org/wiki/Standard_Commands_for_Programmable_Instruments SCPI, Standard Commands for Programmable Instrumentation]
 +
* [http://sdphca.ucsd.edu/Lab_Equip_Manuals/SCPI-99.pdf SCPI Syntax & Style]
 
* [http://www.radio-electronics.com/info/t_and_m/scpi-standard-commands-for-programmable-instrumentation/basics-tutorial.php Générateur de signaux "Agilent Série 33500"]
 
* [http://www.radio-electronics.com/info/t_and_m/scpi-standard-commands-for-programmable-instrumentation/basics-tutorial.php Générateur de signaux "Agilent Série 33500"]
 
* [http://cp.literature.agilent.com/litweb/pdf/33500-90912.pdf voir "Présentation du langage SCPI" page 151 et voir "Commandes courantes IEEE-488" page 236]
 
* [http://cp.literature.agilent.com/litweb/pdf/33500-90912.pdf voir "Présentation du langage SCPI" page 151 et voir "Commandes courantes IEEE-488" page 236]
 
* [http://ivifoundation.org/scpi/default.aspx SCPI Consortium]
 
* [http://ivifoundation.org/scpi/default.aspx SCPI Consortium]
 +
* [http://na.tm.agilent.com/pna/help/latest/Programming/GP-IB_Command_Finder/Common_Commands.htm Agilent GPIB IEEE 488.2 Common Commands]
 +
* [http://ena.tm.agilent.com/e5061b/manuals/webhelp/eng/programming/command_reference/ieee/ Agilent programming command reference ieee]
 +
* [http://www.itech.sh/null/IT-DOC/IT6800-SCPI-EN.pdf Programmable Power DC Supply: SCPI-Communication protocol]
  
  

Version du 3 juin 2014 à 11:28

<maintab>AccueilProjet Pulse Generator</maintab>
<subtab>PrésentationCahier des chargesGestion du projetCôté PCCôté PICCôté CPLDMembres</subtab>


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

Nuvola filesystems folder.png 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 avantArchitecture Pulse Generator.png


Monobook icon.svg 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 sur la carte Coolrunner, en raison du faible nombre de bascules disponibles sur la carte CPLD)
  • 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, un pad 5 touches et un clavier 16 touches
  • possibilité de contrôle par une interface PC (protocole SCPI)


Monobook icon.svg Les commandes du protocole SCPI pour notre Pulse Generator

A compléter et à valider :

  • "*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")
  • "*RST" → demande de réinitialisation de la carte PIC (le firmware pourrait procéder à un Reset hardware de la carte microcontrôleur et CPLD)
  • "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"
  • Caractères de fin de commande SCPI
    Une commande envoyée à la carte PIC doit se terminer par le caractère nouvelle ligne '\n' (0x0A), la séquence de caractères retour chariot '\r' (0x0D) suivi d'un caractère nouvelle ligne '\n' (0x0A), sont aussi accepté.
  • La longueur maximale des trames SCPI ne peut pas excéder 72 caractères, notre démo n'accepte qu'une commande par trame.


Nuvola apps kdict.png Liens


Monobook icon.svg 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.