[Analogique] Lire une memoire flash SPI externe
Répondre à la discussion
Affichage des résultats 1 à 14 sur 14

Lire une memoire flash SPI externe



  1. #1
    144

    Lire une memoire flash SPI externe


    ------

    Bonjour,

    Je suis débutante en electronique.
    Je souhaite lire une mémoire flash SPI windbound SOIC8 avec un ESP32c3 super mini.

    Normalement mes branchements sont corrects (voir photo).

    L'alimentation est bien de 3.3v sur WP, Hold, et VCC.

    Cependant avec mon code actuel en C je n'obtient que des FF ou 00 quand j'essaue de lire l'identifiant de la puce.
    Je flash mon esp32c3 avec esp-idf (idf.py).

    Je me demande si il ne me faut pas une pull up sur MISO ?

    Je vous remercie d'avance de vos réponse.

    Très bonne journée !

    -----
    Images attachées Images attachées

  2. #2
    jiherve

    Re : Lire une memoire flash SPI externe

    bonsoir,
    une bonne habitude à prendre avec tous les µC : pull up (CS) ou pull down(CK) MOSI,MISO au choix partout pour palier les niveaux flottants à la mise sous tension.
    Ceci dit au vu des spaghettis il y a fort a parier que les signaux soient cradingues , donc câbler proprement en n'oubliant pas de découpler l'alimentation de la mémoire.
    ref de la mémoire svp!
    JR
    l'électronique c'est pas du vaudou!

  3. #3
    Murayama

    Re : Lire une memoire flash SPI externe

    Bonjour!

    À propos du câblage, je m'interroge sur l'utilité d'avoir des fils vu que vous pourriez tout mettre
    sur la plaque d'essais et tout câbler ce qui manque avec de simples "straps", ce qui réduirait la
    longueur des connexions. Vous pouvez probablement mettre l'ESP32 et la mémoire sur la plaque.
    Maintenant, à propos de la lecture: est-ce que c'est une routine faite maison, ou bien quelque
    chose d'existant?
    -> Si c'est existant, êtes-vous bien sûre que la routine existante est compatible avec la flash
    que vous utilisez?
    -> Si c'est du roulé main, est-ce que vous avez écrit correspond bien aux specs?
    Est-ce que c'est le bon opcode pour lire l'identificateur (vérifiez dans les specs)
    Est-ce que vous avez bien vérifié que le chip est sélectionné?
    NB: Dans certains cas, il faut clocker un byte à vide avant de s'occuper du transfert des données.

    Pascal

  4. #4
    144

    Re : Lire une memoire flash SPI externe

    Bonjour,
    Tout d'abord merci pour vos réponse.

    La ref exacte est Windbound 25Q64JVS format SOIC8.

    Ok j'ai une resistance pull up de 8.2kohm mais cependant je ne vois pas exactement comment faire le branchement.

    Comment ca decoupler l'alimentatiom de la mémoire ?

    Sinon oui j'ai fait le code maison en mappant bien les bons ports ensemble.
    Mon code ressemble à ca :
    Code:
    _______________________________________
    #include "freertos/FreeRTOS.h"
    #include "freertos/task.h"
    #include "driver/spi_master.h"
    #include "esp_log.h"
    
    #define PIN_MISO 5
    #define PIN_MOSI 6
    #define PIN_CLK  4
    #define PIN_CS   7
    
    void app_main(void)
    {
        spi_bus_config_t buscfg = {
            .miso_io_num = PIN_MISO,
            .mosi_io_num = PIN_MOSI,
            .sclk_io_num = PIN_CLK,
            .quadwp_io_num = -1,
            .quadhd_io_num = -1
        };
    
        spi_device_interface_config_t devcfg = {
            .clock_speed_hz = 500000, // 500 kHz (ultra safe)
            .mode = 0,
            .spics_io_num = PIN_CS,
            .queue_size = 1,
        };
    
        spi_device_handle_t spi;
        ESP_ERROR_CHECK(spi_bus_initialize(SPI2_HOST, &buscfg, SPI_DMA_CH_AUTO));
        ESP_ERROR_CHECK(spi_bus_add_device(SPI2_HOST, &devcfg, &spi));
    
        while (1) {
            uint8_t tx[4] = {0x9F, 0x00, 0x00, 0x00};
            uint8_t rx[4] = {0};
    
            spi_transaction_t t = {
                .length = 8 * 4,
                .tx_buffer = tx,
                .rx_buffer = rx,
            };
    
            if (spi_device_transmit(spi, &t) == ESP_OK) {
                ESP_LOGI("SPI", "Winbond ID: %02X %02X %02X",
                         rx[1], rx[2], rx[3]);
            } else {
                ESP_LOGE("SPI", "Erreur SPI");
            }
    
            vTaskDelay(pdMS_TO_TICKS(2000));
        }
    }
    ___________________________

    Je vous remercie d'avance

  5. A voir en vidéo sur Futura
  6. #5
    144

    Re : Lire une memoire flash SPI externe

    Bonjour Pascal,

    Je ne peux pas tout mettre sur ma breadboard car l'arrete de pins soudées n'est pas droite (oups).

    Je ne sais pas si la routine est compatible avec ma chip.

    Oui j'ai verifié et ecris plus haut mon code.
    Normalement le CS est bien selectionné.
    Le probleme c'est que je suis à l'aveugle quand je veux tester les pins qui ne sont pas en 3.3. Vu qu'il ne suffit pas de tester au multimetre, il me faudrait un analyseur logique je suppose ?

    Merci et bonne journée

  7. #6
    144

    Re : Lire une memoire flash SPI externe

    Bonjour,

    Excusez moi j'ai répondu en haut je savais pas qu'on pouvais répondre ici.

    Lorsque j'essaie de lire l'identifiant avec le code ci dessus j'obtient des 00 systématiquement.

    Merci et bonne journée !

  8. #7
    Seb.26

    Re : Lire une memoire flash SPI externe

    Tu ne définis pas ".max_transfer_sz" dans spi_bus_config_t ?
    ... c'est quoi la valeur par défaut ?
    << In a world without walls and fences, who needs Windows and Gates ? >>

  9. #8
    jiherve

    Re : Lire une memoire flash SPI externe

    Bonjour,
    juste pour etre sur que cela n'a pas été oublié :
    After power-up, /CS must transition from high to low before a new instruction will be accepted.
    en clair il faut envoyer un pulse sur CSn
    Il n'y a pas de mystère pour debugger il faut un oscilloscope :
    Vérifier que le µC fait bien ce qu'il est censé faire
    vérifier la réponse de la mémoire.
    JR
    l'électronique c'est pas du vaudou!

  10. #9
    doudou911

    Re : Lire une memoire flash SPI externe

    Bonjour,

    pour faire des tests pour environ 10 € cela marche pas mal .
    https://www.youtube.com/watch?v=Sxkm0U0PsQ4

  11. #10
    144

    Re : Lire une memoire flash SPI externe

    Bonjour,

    Merci.

    Normalement apres je tranfert 4bytes.

  12. #11
    144

    Re : Lire une memoire flash SPI externe

    Bonjour,

    Ah je n'avais pas vu.
    Ca veut dire que directement je le passe a 0 CS c'est ca ?

  13. #12
    jiherve

    Re : Lire une memoire flash SPI externe

    bonjour,
    il faut envoyer un pulse à 0 (1µS par exemple)sur le CSn après la mise sous tension ensuite on peut commencer à causer à la mémoire qui doit être initialisée il y a quelques commandes à envoyer avant de pouvoir lire.
    Il faut se plonger dans la data sheet, çà aussi c'est une bonne habitude à prendre : lire les DS avant de pisser du code.
    JR
    l'électronique c'est pas du vaudou!

  14. #13
    umfred

    Re : Lire une memoire flash SPI externe

    Pour voir, rajoute dans ton code, l'affichage de rx[0] (même si normalement il devrait contenir 0x00)

  15. #14
    umfred

    Re : Lire une memoire flash SPI externe

    Citation Envoyé par jiherve Voir le message
    Bonjour,
    juste pour etre sur que cela n'a pas été oublié :
    en clair il faut envoyer un pulse sur CSn
    Il n'y a pas de mystère pour debugger il faut un oscilloscope :
    Vérifier que le µC fait bien ce qu'il est censé faire
    vérifier la réponse de la mémoire.
    JR
    Dans les faits, il faut juste le passer à 1 pour être sûr qu'il soit à l'état haut avant le dialogue (qui va passer ls CS à 0, donc on aura notre transition), pas besoin de pulse (la datasheet indique qu'il devrait suivre le Vcc, et conseille une pullup sur cette pin)

Discussions similaires

  1. fin de flash : quelles alternatives pour lire des animations flash en 2021 ?
    Par mach3 dans le forum Logiciel - Software - Open Source
    Réponses: 9
    Dernier message: 26/11/2020, 13h14
  2. [Programmation] utilisation flash externe SST26VF064
    Par davidif dans le forum Électronique
    Réponses: 200
    Dernier message: 11/12/2018, 17h59
  3. Questions compatibilité mémoire flash externe
    Par invite98ee8eab dans le forum Matériel - Hardware
    Réponses: 1
    Dernier message: 27/08/2015, 17h07
  4. Emuler une liaison SPI memoire Flash externe avec un PIC
    Par invite179ef891 dans le forum Électronique
    Réponses: 16
    Dernier message: 19/07/2013, 22h19
  5. pour lire Macromedia Flash Player
    Par inviteb6d0d3c6 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 17/06/2006, 15h48
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...