Pulse Generator:IHM Face avant

De Wiki_du_Réseau_des_Electroniciens_du_CNRS
Aller à : navigation, rechercher
Accueil - Projet Pulse Generator

Présentation - Cahier des charges - Gestion du projet - Côté PC - Côté PIC - Côté CPLD - Membres

Suggestion d'IHM pour la face avant

Présentation "IHM LCD 4x20"

PG IHM LCD 4x20.jpg


Connexion de la carte chipKIT™ Pro MX7 (CEREBOT™ MX7cK)

Les tableaux suivants donne les correspondances entre les éléments de la face avant et les broches des connecteurs Pmod:

Actuellement sur la maquette de la formation PIC32 :

IHM Face avant PIC32 Signal Name Connecteur Pmod
SW1 AN2/C2IN-/CN4/RB2 JA-01
SW2 AN3/C2IN+/CN5/RB3 JA-02
SW3 AN4/C1IN-/CN6/RB4 JA-03
SW4 PGEC2/AN6/OCFA/RB6 JA-04
POT_ANALOG PGED2/AN7/RB7 JA-07
NC AN8/C1OUT/RB8 JA-08
NC AN9/C2OUT/RB9 JA-09
NC CVrefout/PMA13/AN10/RB10 JA-10
ou

Proposition pour le raccordement en maillage jusqu'à 12 boutons poussoir :

IHM Face avant PIC32 Signal Name Connecteur Pmod
Row_1 AN2/C2IN-/CN4/RB2 JA-01
Row_2 AN3/C2IN+/CN5/RB3 JA-02
Row_3 AN4/C1IN-/CN6/RB4 JA-03
Column_1 PGEC2/AN6/OCFA/RB6 JA-04
Column_2 PGED2/AN7/RB7 JA-07
Column_3 AN8/C1OUT/RB8 JA-08
Column_4 AN9/C2OUT/RB9 JA-09
NC CVrefout/PMA13/AN10/RB10 JA-10

Raccordement de l'afficheurs LCD alphanumérique 4x20 :

IHM Face avant PIC32 Signal Name Connecteur Pmod
LCD_PIN_BKL PMD0/RE0 JB-01
LCD_PIN_RW (NC) PMD1/RE1 JB-02
LCD_PIN_RS PMD2/RE2 JB-03
LCD_PIN_E PMD3/RE3 JB-04
LCD_PIN_DB4 PMD4/RE4 JB-07
LCD_PIN_DB5 PMD5/RE5 JB-08
LCD_PIN_DB6 PMD6/RE6 JB-09
LCD_PIN_DB7 PMD7/RE7 JB-10
+

Liaison SPI maître vers la carte CPLD :

Signaux SPI PIC32 Signal Name Connecteur Pmod
SS SS1/IC2/RD9 JD-01
MOSI SDO1/OC1/INT0/RD0 JD-02
MISO T5CK/SDI1/RC4 JD-03
SCLK SCK1/IC3/PMCS2/PMA15/RD10 JD-04
NC OC2/RD1 JD-07
NC OC3/RD2 JD-08
NC OC4/RD3 JD-09
NC ETXD2/IC5/PMD12/RD12 JD-10


Recensement des besoins de chacun pour la conception du proto

Nous pourrions utiliser un logiciel libre et Open source pour la réalisation des PCB. KiCad semble un bon candidat...

Hardware

  • 32 voies en sortie avec des délais différents
  • nombre de Trigger ? 32... ? Interface électronique pour Trigger permettant de convertir un signal TTL (0-5 V) vers l'entrée 3V3 du CPLD
  • BNC 50 Ohms sur panneau arrière
  • entrée "Alimentation Signal de sortie" sur face arrière, pour fixer depuis des collecteurs ouverts le niveau de tension des sorties des signaux Pulse
  • faire une carte fond de panier ou carte mère pour pouvoir raccorder plusieurs cartes CPLD avec la face arrière
  • souhait de ne pas avoir de jitter sur la durée des pulses
  • comptage du nombre de trigger avant la génération du pulse, exemple:
Chrono - Comptage Pulse.jpg
  • avoir les boutons suivant:
    • pavé de navigation 5 voies → RS Components: 126-846
    • boutons: Pause / Stop / Reset → ? proposer un modèle de face avant...
  • RTCC pour horodatage des événements
  • firmware USB Host sur la carte PIC32 → Sauvegarde et restauration de configuration utilisateur + fichier LOG sur clef USB (fiche USB type A en face avant)


Intégration mécanique

  • baie au format BXI
  • rack 19"


Fonctionnement depuis l'IHM de la face avant

  • un écran d’accueil (Splash screen) affiché pendent 5 sec, voici quelques propositions, pensez aux présentations pour les prochaines rencontres dans les réseaux :
 """"""""""""""""""""""
 ".:: AAP RdE 2013 ::."
 "Projet Collaboratif "
 "  _ Pulse Generator "
 "_/   Firmware v1.00 "
 """"""""""""""""""""""
  --------------------
 ".:: AAP RdE 2013 ::."
 " Projet Collaboratif"
 "  _ Pulse Generator "
 "_/ \_ Firmware v1.00"
  --------------------
  • Gestion des menus par une variable d'environnement "Current_Menu" pour rendre le fonctionnement du PIC fluide. Description des valeurs :
    00 = MAIN_MENU : menu principale, navigation mais pas de sélection en cours
    10 = ... : menu 1
    20 = ... : menu 2
    30 = ... : menu 3
    31 = ... : sous menu 3-1
    32 = ... : sous menu 3-2
    33 = ... : sous menu 3-3
    40 = ... : menu 4
    41 = ... : sous menu 4-1
    42 = ... : sous menu 4-2
    et un grand SWITCH CASE pour gérer tout ça dans la boucle while(1) du main
  • On peut imaginer d'avoir une navigation dans les menus qui soit intuitives (plutôt qu'un grand nombre de bouton), par exemple pour le niveau 1 "Pulse Setting", puis ('→' marquant la transition lors de la sélection par l'utilisateur) on choisi la voie à configurer, avant d'accéder en niveau 2 pour le paramétrage des timing...
 NIV1.L1 "--Menu: Principale--"
 NIV1.L2 "> Pulse Setting [--]" → ">Pulse Setting [32]<" → puis aller vers niveau 2 pour le paramétrage de la voie sélectionnée
 NIV1.L3 "  Delay Setting [--]" → ">Delay Setting [32]<" → puis configurer le temps de retard du pulse lors d'un Trigger
 NIV1.L4 "  Trig. Setting [--]" → ">Trig. Setting [32]<" → idem pour la configuration du Trigger