![Page 1: SPI - Serial Peripheral Interface Pour aller lire le CAN et écrire dans le CNA](https://reader035.vdocuments.site/reader035/viewer/2022062511/551d9db5497959293b8da442/html5/thumbnails/1.jpg)
SPI - Serial Peripheral Interface
Pour aller lire le CAN et écrire dans le CNA
![Page 2: SPI - Serial Peripheral Interface Pour aller lire le CAN et écrire dans le CNA](https://reader035.vdocuments.site/reader035/viewer/2022062511/551d9db5497959293b8da442/html5/thumbnails/2.jpg)
2
Schéma bloc
![Page 3: SPI - Serial Peripheral Interface Pour aller lire le CAN et écrire dans le CNA](https://reader035.vdocuments.site/reader035/viewer/2022062511/551d9db5497959293b8da442/html5/thumbnails/3.jpg)
3
![Page 4: SPI - Serial Peripheral Interface Pour aller lire le CAN et écrire dans le CNA](https://reader035.vdocuments.site/reader035/viewer/2022062511/551d9db5497959293b8da442/html5/thumbnails/4.jpg)
4
![Page 5: SPI - Serial Peripheral Interface Pour aller lire le CAN et écrire dans le CNA](https://reader035.vdocuments.site/reader035/viewer/2022062511/551d9db5497959293b8da442/html5/thumbnails/5.jpg)
5
![Page 6: SPI - Serial Peripheral Interface Pour aller lire le CAN et écrire dans le CNA](https://reader035.vdocuments.site/reader035/viewer/2022062511/551d9db5497959293b8da442/html5/thumbnails/6.jpg)
6
![Page 7: SPI - Serial Peripheral Interface Pour aller lire le CAN et écrire dans le CNA](https://reader035.vdocuments.site/reader035/viewer/2022062511/551d9db5497959293b8da442/html5/thumbnails/7.jpg)
7
![Page 8: SPI - Serial Peripheral Interface Pour aller lire le CAN et écrire dans le CNA](https://reader035.vdocuments.site/reader035/viewer/2022062511/551d9db5497959293b8da442/html5/thumbnails/8.jpg)
8
Registre des modes du SPI
![Page 9: SPI - Serial Peripheral Interface Pour aller lire le CAN et écrire dans le CNA](https://reader035.vdocuments.site/reader035/viewer/2022062511/551d9db5497959293b8da442/html5/thumbnails/9.jpg)
9
![Page 10: SPI - Serial Peripheral Interface Pour aller lire le CAN et écrire dans le CNA](https://reader035.vdocuments.site/reader035/viewer/2022062511/551d9db5497959293b8da442/html5/thumbnails/10.jpg)
10
![Page 11: SPI - Serial Peripheral Interface Pour aller lire le CAN et écrire dans le CNA](https://reader035.vdocuments.site/reader035/viewer/2022062511/551d9db5497959293b8da442/html5/thumbnails/11.jpg)
11
![Page 12: SPI - Serial Peripheral Interface Pour aller lire le CAN et écrire dans le CNA](https://reader035.vdocuments.site/reader035/viewer/2022062511/551d9db5497959293b8da442/html5/thumbnails/12.jpg)
12
![Page 13: SPI - Serial Peripheral Interface Pour aller lire le CAN et écrire dans le CNA](https://reader035.vdocuments.site/reader035/viewer/2022062511/551d9db5497959293b8da442/html5/thumbnails/13.jpg)
13
![Page 14: SPI - Serial Peripheral Interface Pour aller lire le CAN et écrire dans le CNA](https://reader035.vdocuments.site/reader035/viewer/2022062511/551d9db5497959293b8da442/html5/thumbnails/14.jpg)
14
![Page 15: SPI - Serial Peripheral Interface Pour aller lire le CAN et écrire dans le CNA](https://reader035.vdocuments.site/reader035/viewer/2022062511/551d9db5497959293b8da442/html5/thumbnails/15.jpg)
15
![Page 16: SPI - Serial Peripheral Interface Pour aller lire le CAN et écrire dans le CNA](https://reader035.vdocuments.site/reader035/viewer/2022062511/551d9db5497959293b8da442/html5/thumbnails/16.jpg)
16
![Page 17: SPI - Serial Peripheral Interface Pour aller lire le CAN et écrire dans le CNA](https://reader035.vdocuments.site/reader035/viewer/2022062511/551d9db5497959293b8da442/html5/thumbnails/17.jpg)
17
![Page 18: SPI - Serial Peripheral Interface Pour aller lire le CAN et écrire dans le CNA](https://reader035.vdocuments.site/reader035/viewer/2022062511/551d9db5497959293b8da442/html5/thumbnails/18.jpg)
18
![Page 19: SPI - Serial Peripheral Interface Pour aller lire le CAN et écrire dans le CNA](https://reader035.vdocuments.site/reader035/viewer/2022062511/551d9db5497959293b8da442/html5/thumbnails/19.jpg)
19
![Page 20: SPI - Serial Peripheral Interface Pour aller lire le CAN et écrire dans le CNA](https://reader035.vdocuments.site/reader035/viewer/2022062511/551d9db5497959293b8da442/html5/thumbnails/20.jpg)
20
![Page 21: SPI - Serial Peripheral Interface Pour aller lire le CAN et écrire dans le CNA](https://reader035.vdocuments.site/reader035/viewer/2022062511/551d9db5497959293b8da442/html5/thumbnails/21.jpg)
21
Exemple initialisation du SPI
![Page 22: SPI - Serial Peripheral Interface Pour aller lire le CAN et écrire dans le CNA](https://reader035.vdocuments.site/reader035/viewer/2022062511/551d9db5497959293b8da442/html5/thumbnails/22.jpg)
22
Configuration du SPI 1) Associer les broches au SPI:
Exemple SPI #1: PIO_Configure(pinsSPI1, PIO_LISTSIZE(pinsSPI1));
![Page 23: SPI - Serial Peripheral Interface Pour aller lire le CAN et écrire dans le CNA](https://reader035.vdocuments.site/reader035/viewer/2022062511/551d9db5497959293b8da442/html5/thumbnails/23.jpg)
23
Configuration du SPI 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);
![Page 24: SPI - Serial Peripheral Interface Pour aller lire le CAN et écrire dans le CNA](https://reader035.vdocuments.site/reader035/viewer/2022062511/551d9db5497959293b8da442/html5/thumbnails/24.jpg)
24
Configuration du SPI 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 »
![Page 25: SPI - Serial Peripheral Interface Pour aller lire le CAN et écrire dans le CNA](https://reader035.vdocuments.site/reader035/viewer/2022062511/551d9db5497959293b8da442/html5/thumbnails/25.jpg)
25
Configuration du SPI 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);
![Page 26: SPI - Serial Peripheral Interface Pour aller lire le CAN et écrire dans le CNA](https://reader035.vdocuments.site/reader035/viewer/2022062511/551d9db5497959293b8da442/html5/thumbnails/26.jpg)
26
Configuration du SPI 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 l’horloge du SPI
Phase de l’horloge
Chip select actif après trans. ?
Taille du transfert (16 bits)
Vitesse communication
Délai avant SPCK
Délai entre 2 transactions
CNA
CAN
![Page 27: SPI - Serial Peripheral Interface Pour aller lire le CAN et écrire dans le CNA](https://reader035.vdocuments.site/reader035/viewer/2022062511/551d9db5497959293b8da442/html5/thumbnails/27.jpg)
27
Configuration du SPI 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){ … }
![Page 28: SPI - Serial Peripheral Interface Pour aller lire le CAN et écrire dans le CNA](https://reader035.vdocuments.site/reader035/viewer/2022062511/551d9db5497959293b8da442/html5/thumbnails/28.jpg)
28
MAX5322Convertisseur numérique analogique
![Page 29: SPI - Serial Peripheral Interface Pour aller lire le CAN et écrire dans le CNA](https://reader035.vdocuments.site/reader035/viewer/2022062511/551d9db5497959293b8da442/html5/thumbnails/29.jpg)
29
Montage de laboratoire
![Page 30: SPI - Serial Peripheral Interface Pour aller lire le CAN et écrire dans le CNA](https://reader035.vdocuments.site/reader035/viewer/2022062511/551d9db5497959293b8da442/html5/thumbnails/30.jpg)
30
MAX5322 – Schéma bloc
![Page 31: SPI - Serial Peripheral Interface Pour aller lire le CAN et écrire dans le CNA](https://reader035.vdocuments.site/reader035/viewer/2022062511/551d9db5497959293b8da442/html5/thumbnails/31.jpg)
31
CNA MAX5322 – Conversion R-2R
![Page 32: SPI - Serial Peripheral Interface Pour aller lire le CAN et écrire dans le CNA](https://reader035.vdocuments.site/reader035/viewer/2022062511/551d9db5497959293b8da442/html5/thumbnails/32.jpg)
32
![Page 33: SPI - Serial Peripheral Interface Pour aller lire le CAN et écrire dans le CNA](https://reader035.vdocuments.site/reader035/viewer/2022062511/551d9db5497959293b8da442/html5/thumbnails/33.jpg)
33
![Page 34: SPI - Serial Peripheral Interface Pour aller lire le CAN et écrire dans le CNA](https://reader035.vdocuments.site/reader035/viewer/2022062511/551d9db5497959293b8da442/html5/thumbnails/34.jpg)
34
![Page 35: SPI - Serial Peripheral Interface Pour aller lire le CAN et écrire dans le CNA](https://reader035.vdocuments.site/reader035/viewer/2022062511/551d9db5497959293b8da442/html5/thumbnails/35.jpg)
35
Tensions en sortie
![Page 36: SPI - Serial Peripheral Interface Pour aller lire le CAN et écrire dans le CNA](https://reader035.vdocuments.site/reader035/viewer/2022062511/551d9db5497959293b8da442/html5/thumbnails/36.jpg)
36
Configuration du CNA
![Page 37: SPI - Serial Peripheral Interface Pour aller lire le CAN et écrire dans le CNA](https://reader035.vdocuments.site/reader035/viewer/2022062511/551d9db5497959293b8da442/html5/thumbnails/37.jpg)
37
Configuration broches MAX5322
SetupDAC()Décla
ratio
n
variables
Boar
d.h
![Page 38: SPI - Serial Peripheral Interface Pour aller lire le CAN et écrire dans le CNA](https://reader035.vdocuments.site/reader035/viewer/2022062511/551d9db5497959293b8da442/html5/thumbnails/38.jpg)
38
Suite
Broche LDAC mise à 1
Broche CLR mise à 1
Broche UNI/BIP A mise à 0
Broche UNI/BIP B mise à 1
Broche SHDN mise à 1
![Page 39: SPI - Serial Peripheral Interface Pour aller lire le CAN et écrire dans le CNA](https://reader035.vdocuments.site/reader035/viewer/2022062511/551d9db5497959293b8da442/html5/thumbnails/39.jpg)
39
Transactions du SPI avec le CNA 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
![Page 40: SPI - Serial Peripheral Interface Pour aller lire le CAN et écrire dans le CNA](https://reader035.vdocuments.site/reader035/viewer/2022062511/551d9db5497959293b8da442/html5/thumbnails/40.jpg)
40
Transactions du SPI avec le CNA 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
![Page 41: SPI - Serial Peripheral Interface Pour aller lire le CAN et écrire dans le CNA](https://reader035.vdocuments.site/reader035/viewer/2022062511/551d9db5497959293b8da442/html5/thumbnails/41.jpg)
41
MAX1270Convertisseur analogique numérique
![Page 42: SPI - Serial Peripheral Interface Pour aller lire le CAN et écrire dans le CNA](https://reader035.vdocuments.site/reader035/viewer/2022062511/551d9db5497959293b8da442/html5/thumbnails/42.jpg)
42
Montage de laboratoire
![Page 43: SPI - Serial Peripheral Interface Pour aller lire le CAN et écrire dans le CNA](https://reader035.vdocuments.site/reader035/viewer/2022062511/551d9db5497959293b8da442/html5/thumbnails/43.jpg)
43
MAX1270 – Schéma de la puce
![Page 44: SPI - Serial Peripheral Interface Pour aller lire le CAN et écrire dans le CNA](https://reader035.vdocuments.site/reader035/viewer/2022062511/551d9db5497959293b8da442/html5/thumbnails/44.jpg)
44
MAX1270 – Schéma bloc interne
![Page 45: SPI - Serial Peripheral Interface Pour aller lire le CAN et écrire dans le CNA](https://reader035.vdocuments.site/reader035/viewer/2022062511/551d9db5497959293b8da442/html5/thumbnails/45.jpg)
45
CAN MAX1270
![Page 46: SPI - Serial Peripheral Interface Pour aller lire le CAN et écrire dans le CNA](https://reader035.vdocuments.site/reader035/viewer/2022062511/551d9db5497959293b8da442/html5/thumbnails/46.jpg)
46
![Page 47: SPI - Serial Peripheral Interface Pour aller lire le CAN et écrire dans le CNA](https://reader035.vdocuments.site/reader035/viewer/2022062511/551d9db5497959293b8da442/html5/thumbnails/47.jpg)
47
![Page 48: SPI - Serial Peripheral Interface Pour aller lire le CAN et écrire dans le CNA](https://reader035.vdocuments.site/reader035/viewer/2022062511/551d9db5497959293b8da442/html5/thumbnails/48.jpg)
48
Étendues et polarités
![Page 49: SPI - Serial Peripheral Interface Pour aller lire le CAN et écrire dans le CNA](https://reader035.vdocuments.site/reader035/viewer/2022062511/551d9db5497959293b8da442/html5/thumbnails/49.jpg)
49
Transaction avec le CAN
![Page 50: SPI - Serial Peripheral Interface Pour aller lire le CAN et écrire dans le CNA](https://reader035.vdocuments.site/reader035/viewer/2022062511/551d9db5497959293b8da442/html5/thumbnails/50.jpg)
50
Transaction avec le CAN
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.
![Page 51: SPI - Serial Peripheral Interface Pour aller lire le CAN et écrire dans le CNA](https://reader035.vdocuments.site/reader035/viewer/2022062511/551d9db5497959293b8da442/html5/thumbnails/51.jpg)
51
Transaction avec le CAN
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
![Page 52: SPI - Serial Peripheral Interface Pour aller lire le CAN et écrire dans le CNA](https://reader035.vdocuments.site/reader035/viewer/2022062511/551d9db5497959293b8da442/html5/thumbnails/52.jpg)
52
Initialisation du CAN Faite lors de l’initialisation du SPI #1.
Associer les broches du SPI #1 pour le CAN