La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

SPI - Serial Peripheral Interface Pour aller lire le CAN et écrire dans le CNA.

Présentations similaires


Présentation au sujet: "SPI - Serial Peripheral Interface Pour aller lire le CAN et écrire dans le CNA."— Transcription de la présentation:

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


Télécharger ppt "SPI - Serial Peripheral Interface Pour aller lire le CAN et écrire dans le CNA."

Présentations similaires


Annonces Google