FlexSPI(4) de I.MX RT1170 : analyse manuelle HyperRAM et configuration détaillée des paramètres

Dans l'article précédent, j'ai analysé le manuel de NOR Flash et la configuration correspondante de FlexSPI. Dans cet article, je prendrai HyperRAM comme exemple pour voir quelles broches sont ajoutées à la conception matérielle et à la configuration logicielle de l'HyperRAM à huit fils. et les paramètres, puis prenez le modèle ISIS d' IS66WVH64M8DALL/BLLHyperRAM comme exemple pour voir comment configurer les paramètres de FlexSPI selon le manuel.

1 Schéma de principe d'HyperRAM

Ce qui suit est le diagramme schématique du Flash à huit fils dans l'EVKBoard officiel.Étant donné que la plupart des mémoires Hyper sont conditionnées en tant que matrice FBGA 24-Ball 5 x 5 , elles peuvent être remplacées directement. Comme le montre la figure ci-dessous, retirez R383 et R400, puis soudez R401 et R384 pour utiliser HyperRAM dans le même package.La connexion est très simple, c'est-à-dire, connectez PortA et PortB d'un FlexSPI, et il y a huit lignes de données.
insérez la description de l'image ici
Dans le Flash/HyperRAM à 8 lignes, il y aura une broche DQS supplémentaire, qui est utilisée pour l'échantillonnage à double front SCLK, et ne fonctionne que lorsque le périphérique de stockage envoie des données au microcontrôleur, et est utilisée pour informer le microcontrôleur que les données sur la ligne de données est prêt. Autres notes La broche CS et la broche RST sont recommandées pour être extraites par le matériel, mais on oublie que le pull-up matériel peut également être extrait par le logiciel.

2 Interprétation manuelle et configuration du code

Le code est très similaire à l'explication détaillée de l'analyse manuelle et de la configuration des paramètres de NOR Flash dans la section précédente . Pour certaines des mêmes parties, cet article ne les répétera pas. Découvrons les différents lieux :

2.1 Échantillonnage DQS

Tout d'abord, l'horloge d'échantillonnage du microcontrôleur sélectionne le signal DQS :

config.rxSampleClock = kFLEXSPI_ReadSampleClkExternalInputFromDqsPad;
...
FLEXSPI_Init(EXAMPLE_FLEXSPI, &config);

2.2 Configuration de flexspi_device_config_t

Étant donné que les paramètres des différentes HyperRAM sont définitivement différents, cette section prend IS66WVH64M8DALL/BLLun exemple pour voir comment configurer la structure du périphérique FlexSPI :

typedef struct _flexspi_device_config
{
    uint32_t flexspiRootClk;
    bool isSck2Enabled;
    uint32_t flashSize;
    flexspi_cs_interval_cycle_unit_t CSIntervalUnit;
    uint16_t CSInterval;
    uint8_t CSHoldTime;
    uint8_t CSSetupTime;
    uint8_t dataValidTime;
    uint8_t columnspace;
    bool enableWordAddress;
    uint8_t AWRSeqIndex;
    uint8_t AWRSeqNumber
    uint8_t ARDSe

Acho que você gosta

Origin blog.csdn.net/tilblackout/article/details/131526625
Recomendado
Clasificación