Comment définir les broches SPI?

Je voudrais faire lire une carte HW-125 lecteur de SD par une carte ESP8285-M3 devKit
La carte HW-125 a 4 broches : CS, SCK, MOSI et MISO
La carte ESP a ces ports : D0, D2,D4,D5,D12,D13,D14,D15

D'habitude la communication se fait comme ceci :

  • Miso = D12
  • Mosi = D11
  • sck = D13
  • cs = 10
    et il suffit dans le sckech de ne citer que cs = 10 pour que cela fonctionne

Mais ici comment attribuer les bornes spécifiques du ESP ?

Je pense que ce module utilise un ESP8266 avec 1MB de flash. Ce lien peut t'aider pour le choix des pins

L'ESP8266 dispose de 2 bus SPI, appelés 'SPI' et 'HSPI'. Je pense que pour ces deux bus, les pins sont fixes sauf les CS. Avec le HSPI, il n'y a qu'un choix pour le CS, alors que le SPI en supporte 3.

Voir ici :
A Beginner's Guide to the ESP8266.

The ESP8266 has one SPI connection available to the user, referred to as HSPI. It uses GPIO14 as CLK, 12 as MISO, 13 as MOSI and 15 as Slave Select (SS). It can be used in both Slave and Master mode (in software).

Il faut que tu trouves la correspondance entre les GPIO et les pins de ta carte (les Dxx).

Ici : ESP8266 Pinout Reference - Last Minute Engineers
on voit cette image qui montre les deux SPI
image
et il est dit

It is possible to use SPI on any pins by ‘bitbanging’.

Le principe est expliqué ici, mais c'est bien plus lent que d'utiliser les SPI Hardware : il s'agit de recréer un bus SPI de manière purement logicielle (en utilisant les digitalWrite / digitalRead ou équivalent) ce qui permet de choisir les pins utilisées.

La bibliothèque SPI de l'ESP8266 est ici :

Elle a une méthode qui permet de spécifier les pins :
bool pins(int8_t sck, int8_t miso, int8_t mosi, int8_t ss);
Mais est-ce que ça permet de faire du bitbanging ? Je ne sais pas.

Non, cela n'a jamais été d'habitude.
C'est comme cela dans le cas particulier de l'atmega328p.

Chaque microcontrôleur est un cas particulier.

c'est quoi comme carte, ce genre de chose

En règle générale, une recherche google avec le nom de la carte ou du µC et le mot clé pinout te donne une image avec les différentes fonctionnalité de chaque broche.
Tu peux aussi faire une recherche de schéma, mais c'est plus fastidieux, enfin je trouve pour moi qui n'est pas spécialiste de l'electronique.

C'est parce que je n'ai pas trouvé le pin-out du ESP-M3 devKit que je vous ai posé la question sinon je ....

Terwal ... je voulais dire dans tous les sketchs exemples utilisant le ESP8266 que j'ai trouvé sur internet

...delete

Peut-on modifier le SPI.h pour y indiquer ces attributions ou bien comment mentionne-t-on cela dans un scketch?

Pas besoin de la modifier :

Du coup ta carte de développement, n'est pas celle que j'ai donné en lien ?

Ce n'est pas moi mais @lesept :face_with_hand_over_mouth:

C'est cette carte ?

Ou bien celle que montrait @terwal ?

Dans ce dernier cas, le pinout est ici :

ESP-M3 Compares with Wemos/NodeMCU
GPIO0 D3
GPIO1 Tx
GPIO2 (Tx1)(apparently connects to an onboard blue LED D4
GPIO3 Rx
GPIO4 (VSDA) D2
GPIO13 (Mosi) D7
GPIO14 (SCK) D5
GPIO16 D0
EN CH_PD
RST RST
Vcc Vcc
Gnd Gnd

Un wiki décrit la carte : seul le HSPI est accessible, donc :

  • SCK : pin D5 (GPIO 14)
  • MOSI : pin D7 (GPIO 13)
  • MISO et CS : au choix parmi les pins disponibles.

Tu les déclares avec l'instruction que j'ai indiquée plus haut, par exemple :
monSPI.pins(D5, D2, D7, D0); // SCK, MISO, MOSI, CS

C'est sans garantie, à tester... :smirk:

C'est la grande carte de la 1er photo
Je m'en va essayer .. merci

Dans ce cas, tu as les pins 12 à 15 disponibles pour le HSPI. Je pense qu'il faut conserver MOSI sur 13 et SCK sur 14, et tu peux choisir les autres comme tu veux. A tester.

erreur de compilation sur monSPI ..... pas déclaré .. on la déclare sous quelle forme?

Bien sûr, monSPI est le nom de l'instance du SPI que tu déclares. Ne la connaissant pas, j'ai mis un nom générique. Si tu ne déclares rien, ce sera probablement SPI

SPI.pins(D5, D2, D7, D0); // SCK, MISO, MOSI, CS

Super ça fonctionne sur la grande carte avec SPI.pins( 14, 12, 13, 15); // SCK, MISO, MOSI, CS

un grand merci!

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.