Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parCaïn Auge Modifié depuis plus de 10 années
1
SPI - Serial Peripheral Interface Pour aller lire le CAN et écrire dans le CNA
2
Schéma bloc 2
3
3
4
4
5
5
6
6
7
7
8
Registre des modes du SPI 8
9
9
10
10
11
11
12
12
13
13
14
14
15
15
16
16
17
17
18
18
19
19
20
20
21
Exemple initialisation du SPI 21
22
Configuration du SPI 22 1) Associer les broches au SPI: Exemple SPI #1: PIO_Configure(pinsSPI1, PIO_LISTSIZE(pinsSPI1));
23
Configuration du SPI 23 2) Configuration du registre AAAA: Structure: config = (AT91C_SPI_DLYBCS & (0 << 24)) | (AT91C_SPI_PCS & (0xE << 16)) | (AT91C_SPI_LLB & (0 << 7)) | (AT91C_SPI_MODFDIS & (1 << 4)) | (AT91C_SPI_PCSDEC & (0 << 2)) | (AT91C_SPI_PS & (1 << 1)) | (AT91C_SPI_MSTR & (1 << 0)); SPI_Configure(AT91C_BASE_SPI1, AT91C_ID_SPI1, config);
24
Configuration du SPI 24 2) Configuration du registre AAAA: Structure: config = (AT91C_SPI_DLYBCS & (0 << 24)) | (AT91C_SPI_PCS & (0xE << 16)) | (AT91C_SPI_LLB & (0 << 7)) | (AT91C_SPI_MODFDIS & (1 << 4)) | (AT91C_SPI_PCSDEC & (0 << 2)) | (AT91C_SPI_PS & (1 << 1)) | (AT91C_SPI_MSTR & (1 << 0)); SPI_Configure(AT91C_BASE_SPI1, AT91C_ID_SPI1, config); Maitre ou esclave Sélection périphérique comm. Décodage périphérique Détection de fautes « Local loopback » « Chip select » périphérique Délais entre « chip select »
25
Configuration du SPI 25 2) Configuration du registre AAAA: Structure: config = (AT91C_SPI_DLYBCT & (0x01 << 24)) | (AT91C_SPI_DLYBS & (0x01 << 16)) | (AT91C_SPI_SCBR & (0x10 << 8)) | (AT91C_SPI_BITS & (AT91C_SPI_BITS_16)) | (AT91C_SPI_CSAAT & (0x0 << 3)) | (AT91C_SPI_NCPHA & (0x0 << 1)) | (AT91C_SPI_CPOL & (0x1 << 0)); SPI_ConfigureNPCS(AT91C_BASE_SPI1, 3, config); SPI_ConfigureNPCS(AT91C_BASE_SPI1, 2, config);
26
Configuration du SPI 26 2) Configuration du registre AAAA: Structure: config = (AT91C_SPI_DLYBCT & (0x01 << 24)) | (AT91C_SPI_DLYBS & (0x01 << 16)) | (AT91C_SPI_SCBR & (0x10 << 8)) | (AT91C_SPI_BITS & (AT91C_SPI_BITS_16)) | (AT91C_SPI_CSAAT & (0x0 << 3)) | (AT91C_SPI_NCPHA & (0x0 << 1)) | (AT91C_SPI_CPOL & (0x1 << 0)); SPI_ConfigureNPCS(AT91C_BASE_SPI1, 3, config); SPI_ConfigureNPCS(AT91C_BASE_SPI1, 2, config); Polarité de lhorloge du SPI Phase de lhorloge Chip select actif après trans. ? Taille du transfert (16 bits) Vitesse communication Délai avant SPCK Délai entre 2 transactions CNA CAN
27
Configuration du SPI 27 3) Activation du SPI: Directement (pour le SPI #1): SPI_Enable(AT91C_BASE_SPI1); Tout cela peut se regrouper dans une fonction que nous pouvons nommer: void initSPI(void){ … }
28
MAX5322 Convertisseur numérique analogique 28
29
Montage de laboratoire 29
30
MAX5322 – Schéma bloc 30
31
CNA MAX5322 – Conversion R-2R 31
32
32
33
33
34
34
35
Tensions en sortie 35
36
Configuration du CNA 36
37
Configuration broches MAX5322 37 SetupDAC() Déclaration variables Board.h
38
Suite 38 Broche LDAC mise à 1 Broche CLR mise à 1 Broche UNI/BIP A mise à 0 Broche UNI/BIP B mise à 1 Broche SHDN mise à 1
39
Transactions du SPI avec le CNA 39 Initialisation du CNA SPI_Write(AT91C_BASE_SPI1, 3, 0xE000); SPI_Read(AT91C_BASE_SPI1); Wait(1000); SPI_Write(AT91C_BASE_SPI1, 3, (0x4000 | 0x07FF)); SPI_Read(AT91C_BASE_SPI1); Activations des canaux du CNA Canal A – DAC_OUT 0 volt
40
Transactions du SPI avec le CNA 40 Initialisation du CNA SPI_Write(AT91C_BASE_SPI1, 3, 0xE000); SPI_Read(AT91C_BASE_SPI1); Wait(1000); SPI_Write(AT91C_BASE_SPI1, 3, (0x4000 | 0x07FF)); SPI_Read(AT91C_BASE_SPI1); SPI_Write(AT91C_BASE_SPI1, 3, (0x5000 | 0x0000)); SPI_Read(AT91C_BASE_SPI1); Activations des canaux du CNA Canal A – DAC_OUT 0 volt Canal B - VSHIFT 0 volt
41
MAX1270 Convertisseur analogique numérique 41
42
Montage de laboratoire 42
43
MAX1270 – Schéma de la puce 43
44
MAX1270 – Schéma bloc interne 44
45
CAN MAX1270 45
46
46
47
47
48
Étendues et polarités 48
49
Transaction avec le CAN 49
50
Transaction avec le CAN 50 Pour une lecture du CAN, il faut faire deux transactions. La première envoie le numéro du canal à lire; Exemple: 0x9100 START = 1 Canal choisi: 0x001 – Canal 1 RNG = 1 et BIP = 0: Sortie monopolaire; PD1 = 0 et PD0 = 0: Opération normale, horloge interne. Réponse du convertisseur: les 3 premiers bits du CAN.
51
Transaction avec le CAN 51 Pour une lecture du CAN, il faut faire deux transactions. La deuxième est pour permettre de recevoir le reste; Réponse du convertisseur: les 9 derniers bits du CAN. Canaux: Canal 0 : 0x8D00 -> Borne J6 Canal 1: 0x9100 -> Vshift Canal 2: 0xA100 -> Thermocouple Canal 3: 0xB100 -> Puce LM35
52
Initialisation du CAN 52 Faite lors de linitialisation du SPI #1. Associer les broches du SPI #1 pour le CAN
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.