Partager via


structure SPB_MULTI_SPI_TRANSFER (spb.h)

La structure SPB_MULTI_SPI_TRANSFER décrit une opération d’E/S SPI qui doit être exécutée à l’aide d’un mode de transfert multi-SPI tel que Double ou Quad SPI.

Syntaxe

typedef struct SPB_MULTI_SPI_TRANSFER {
  SPB_MULTI_SPI_TRANSFER_HEADER Header;
  ULONG                         TransferPhaseCount;
  SPB_TRANSFER_LIST_ENTRY       TransferPhases[1];
} SPB_MULTI_SPI_TRANSFER, *PSPB_MULTI_SPI_TRANSFER;

Membres

Header

Structure SPB_MULTI_SPI_TRANSFER_HEADER contenant les paramètres du transfert.

TransferPhaseCount

Nombre de phases de transfert présentes dans la structure de transfert. Pour une opération de lecture, cette valeur doit être définie sur 2 (représentant une phase de lecture, puis une phase d’écriture). Pour une opération d’écriture, cette valeur doit être définie sur 1 (représentant uniquement une phase d’écriture).

TransferPhases[1]

Tableau de structures SPB_TRANSFER_LIST_ENTRY , représentant les phases du transfert.

Remarques

Si cette structure est utilisée directement (plutôt que SPB_MULTI_SPI_WRITE_TRANSFER ou SPB_MULTI_SPI_READ_TRANSFER), elle doit être initialisée à l’aide de la fonction d’assistance SPB_MULTI_SPI_TRANSFER_INIT .

Cette structure (et l’en-tête associé) permet de spécifier les éléments suivants :

  • Modes de transfert SPI double ou quad.
  • Une ou deux phases de transfert : une phase d’écriture , suivie d’une phase de lecture facultative.
  • Nombre variable d’octets à transmettre au début de la phase d’écriture en mode SPI unique, avant de basculer vers le mode multi-SPI spécifié.
  • Lorsqu’une phase de lecture est fournie, un nombre variable de cycles d’attente entre les phases d’écriture et de lecture - cycles d’horloge où aucune donnée ne doit être transférée.

Les restrictions suivantes s’appliquent à cette structure :

  • La structure TransferPhases de la requête doit contenir exactement une ou deux entrées. La première entrée décrit une mémoire tampon qui contient des données à écrire sur l’appareil. La deuxième entrée, facultative, décrit une mémoire tampon utilisée pour contenir les données lues à partir de l’appareil.
  • La direction de ces TransferPhases doit être définie sur SpbTransferDirectionToDevice et SpbTransferDirectionFromDevice respectivement.
  • Chaque structure SPB_TRANSFER_LIST_ENTRY dans la liste de transferts doit spécifier une valeur DelayInUs de zéro.

Configuration requise

Condition requise Valeur
En-tête spb.h

Voir aussi