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 Chronogrammes 6 Mode 0 Mode 1

7 Chronogrammes 7 Mode 2 Mode 3

8 Chronogramme dune transaction 8

9 9

10 10

11 11

12 Registre des modes du SPI 12

13 13

14 14

15 15

16 16

17 17

18 18

19 19

20 20

21 21

22 22

23 23

24 Exemple initialisation du SPI 24

25 Exemple initialisation du SPI 25

26 Configuration du SPI 26 1) Associer les broches au SPI: Exemple SPI #1: PIO_Configure(pinsSPI1, PIO_LISTSIZE(pinsSPI1));

27 Configuration du SPI 27 2) Configuration des registres SPI_CR et SPI_MR: 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);

28 Configuration du SPI 28 2) Configuration des registres SPI_CR et SPI_MR : 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 »

29 Configuration du SPI 29 2) Configuration du registre SPI_CSR3: 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);

30 Configuration du SPI 30 2) Configuration du registre SPI_CSR3 : 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); 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

31 Configuration du SPI 31 2b) Configuration du registre SPI_CSR2 : … SPI_ConfigureNPCS(AT91C_BASE_SPI1, 2, config); 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){ … } CAN

32 MAX5322 Convertisseur numérique analogique 32

33 Montage de laboratoire 33

34 MAX5322 – Schéma bloc 34

35 CNA MAX5322 – Conversion R-2R 35

36 36

37 37

38 38

39 Tensions en sortie 39

40 Configuration du CNA 40

41 Configuration broches MAX SetupDAC() Déclaration variables Board.h

42 Suite 42 Broche LDAC mise à 1 Broche CLR mise à 1 Broche UNI/BIP A mise à 0 Broche UNI/BIP B mise à 1 Broche SHDN mise à 1

43 Transactions du SPI avec le CNA 43 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

44 Transactions du SPI avec le CNA 44 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

45 MAX1270 Convertisseur analogique numérique 45

46 Montage de laboratoire 46

47 MAX1270 – Schéma de la puce 47

48 MAX1270 – Schéma bloc interne 48

49 CAN MAX

50 50

51 51

52 Étendues et polarités 52

53 Transaction avec le CAN 53

54 Transaction avec le CAN 54 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.

55 Transaction avec le CAN 55 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

56 Initialisation du CAN 56 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