Enhanced Queued Analog-to-Digital Converter eQADC Lecture d’un niveau de tension sur un potentiomètre de la carte CPU
Analog to Digital Conversion Sub-system Two eQADC modules; eQADC_A eQADC_B Each eQADC block includes: Two independent on-chip ADCs: ADC0 and ADC1 8, 10, and 12 bits AD Resolution Parallel interface to EQADC: CFIFOs and RFIFOs: Command FIFO 6 CFIFO(0 to 5) with 4 entries Each CQueue entry is a 32-bit Command Message Result FIFO RQueue entry is a 16-bit data.
eQADC_A
Schéma potentiomètre sur la carte CPU Donc ADC0 concerné
Registres internes d’un eQADC Les registres internes des convertisseurs ne peuvent pas être accessibles directement par le CPU ou DMA Il faut placer les valeurs dans une CFIFOn avec les informations pour lancer l’exécution La configuration de l’ADC (0 ou 1) et les commandes qui lui sont destinées sont concernées Le registre eQADCx_CFPRn est utilisé pour charger la CFIFOn De même les résultats de conversion transitent par les RFIFOn
Command flow
Configuration Word for the CFIFO Push Register EQADC CFIFO Push Registers (EQADC_CFPR) write only Exemple de header; EOQ = 1 un seul mot de 32 bits à mettre dans la CFIFO Pause = 0 pas d’attente après le transfert REP = 0 pas de répétition (pas de boucle) Reserved = 00 EB = 0 La commande est destinée à un buffer interne BN = 0 message pour le buffer 0, pour l’ADC0 R/W = 0 commande d’écriture
Configuration Header for the CFIFO
Configuration Informations pour l’ADC destinataire
Command: Configuration ADC ADC_register high and low ADC0_CR) ADC0 and ADC1 have the same address but see the header in EQADC_CFPR
Command: Configuration ADC
configuration
Configuration: ADC address ADC_Control_REG_ADDRESS
Envoi d’une commande Channel number: AN 16 0x10
cmd
CommandFIFO Control Register eQADC_CFCRx CFEEE0 for CFIFO0 only (8 entries possibility) STRME0 for CFIFO0 only If MODEx = Single Scan, SSEx =1 enables Single Scan FISR[SSSx] = 1 eQADC_FISR eQADC FIFO and Interrupt Status Register AMODE0 Advanced Trigger Operation Mode for CFIFO0 only Offset 0x0050 EQADC_CFCR0-1—EQADC CFIFO Control Register 0 and 1 32bits R/W reset 0x0000_0000
CommandFIFO Control Register
eQADC FIFO and Interrupt Status Register eQADC_FISR Offset Address: 0x0070, 0x0074, 0x0078, 0x007C, 0x0080, 0x0084 Offset 0x0070 EQADC_FISR0 EQADC FIFO and Interrupt Status Register 0 32bits R/W reset 0x0200_000
Status FISR
Procédure Mettre un mot de confuiguration ou de commande dans la FIFO (CFPRn) Lancer le transfert (CFCRn) Attendre la fin de l’exécution (EOFQ de FISR)
Résultat RFPR Lire le résultat quand info disponible (RFDF de FISRn =1)