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

Présentations similaires


Présentation au sujet: "SPI - Serial Peripheral Interface"— Transcription de la présentation:

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

2 Schéma bloc

3

4

5

6 Chronogrammes Mode 0 Mode 1

7 Chronogrammes Mode 2 Mode 3

8 Chronogramme d’une transaction

9 Chronogramme d’une transaction

10

11

12 Registre des modes du SPI

13

14

15

16

17

18

19

20

21

22

23

24 Exemple initialisation du SPI

25 Exemple initialisation du SPI

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

27 Configuration du SPI 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 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); Délais entre « chip select » « Chip select » périphérique « Local loopback » Détection de fautes Décodage périphérique Sélection périphérique comm. Maitre ou esclave

29 Configuration du SPI 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 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); Délai entre 2 transactions Délai avant SPCK Vitesse communication Taille du transfert (16 bits) Chip select actif après trans. ? Phase de l’horloge Polarité de l’horloge du SPI CNA

31 Configuration du SPI 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

33 Montage de laboratoire

34 MAX5322 – Schéma bloc

35 CNA MAX5322 – Conversion R-2R

36

37

38

39 Tensions en sortie

40 Configuration du CNA

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

42 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

43 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)); Activations des canaux du CNA 0 volt Canal A – DAC_OUT

44 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_Write(AT91C_BASE_SPI1, 3, (0x5000 | 0x0000)); Activations des canaux du CNA 0 volt Canal A – DAC_OUT 0 volt Canal B - VSHIFT

45 MAX1270 Convertisseur analogique numérique

46 Montage de laboratoire

47 MAX1270 – Schéma de la puce

48 MAX1270 – Schéma bloc interne

49 CAN MAX1270

50

51

52 Étendues et polarités

53 Transaction avec le CAN

54 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.

55 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

56 Initialisation du CAN Faite lors de l’initialisation du SPI #1.
Associer les broches du SPI #1 pour le CAN


Télécharger ppt "SPI - Serial Peripheral Interface"

Présentations similaires


Annonces Google