IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Embarqué Discussion :

ESP8266 et bus SPI


Sujet :

Embarqué

  1. #1
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2008
    Messages : 289
    Points : 151
    Points
    151
    Par défaut ESP8266 et bus SPI
    Bonjour,
    j'ai besoin de lire les deux canaux d'un CAN MCP3002 connecté au bus SPI (hard) d'un ESP8266 AMICA avec MicroPython (que je maîtrise assez mal).
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    #cs MCP3002 sur D8 soit Pin15
    cs = Pin(15, Pin.OUT)
    cs.value(1)
     
    channel0 = 0x68      #accès canal0
    channel1 = 0x78      #accès canal1
    data = bytearray(2)
     
    hspi = SPI(1, baudrate=1500000, polarity=0, phase=0)
    #https://nodemcu.readthedocs.io/en/master/modules/spi/
    cs.value(0)
    hspi.write_readinto(channel0, bytearray[data])
    cs.value(1)
     
    print("data = " , data)

    A l'exécution, j'ai ce message d'erreur:
    exec(open('./main.py').read(),globals())
    Alerte type =
    TypeError: object isn't subscriptable
    Si je teste en ligne de commande, j'ai d'autres messages...
    J'ai pas mal lu autour de ce bus et il me semble avoir compris que les fonctions à utiliser , n'étaient pas toujours les mêmes suivant le modèle de l'ESP ??

    Si quelqu'un peut me mettre sur une piste,
    merci.

  2. #2
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 604
    Points : 56 721
    Points
    56 721
    Billets dans le blog
    40
    Par défaut
    Bonjour,

    Je n'ai pas regardé la doc. du MCP3002, mais dans l'idée la fonction write_readinto() réclame deux buffers de même taille, soit ici deux octets :

    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    write_buf = bytearray([0x68, 0x00]) # 0x68 = commande channel0
    read_buf = bytearray(2)
    ...
    cs.value(0)
    hspi.write_readinto(writebuf, readbuf)
    cs.value(1)

    Je me demande d'ailleurs si on ne pourrait pas faire avec un seul buffer :

    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    buffer = bytearray([0x68, 0x00]) # 0x68 = commande channel0
    ...
    cs.value(0)
    hspi.write_readinto(buffer, buffer)
    cs.value(1)

  3. #3
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2008
    Messages : 289
    Points : 151
    Points
    151
    Par défaut
    Bonjour et merci,
    c'était bien ça, il faut écrire un buffer de 2 octets. J'avais mal interprété la doc.
    Donc ça fonctionne bien.

    Merci...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Bus SPI / Mutex / RAII
    Par Bktero dans le forum Langage
    Réponses: 4
    Dernier message: 02/04/2018, 22h05
  2. bus SPI et Linux embarqué
    Par Pythonesque dans le forum Linux
    Réponses: 2
    Dernier message: 27/04/2012, 11h36
  3. communiquer sur bus SPI sur µC LPC2138 en C
    Par Efhache84 dans le forum C
    Réponses: 3
    Dernier message: 03/07/2009, 10h44
  4. Bus SPI + vitesse
    Par KHEOPS1982 dans le forum Automation
    Réponses: 0
    Dernier message: 16/02/2008, 09h47
  5. [16F628] Bus SPI
    Par jmf13 dans le forum Autres architectures
    Réponses: 1
    Dernier message: 17/09/2007, 14h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo