Hack-wipy-pinout

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche


MCHobby investit du temps et de l'argent dans la réalisation de traduction et/ou documentation. C'est un travail long et fastidieux réalisé dans l'esprit Open-Source... donc gratuit et librement accessible.
SI vous aimez nos traductions et documentations ALORS aidez nous à en produire plus en achetant vos produits chez MCHobby.

Préambule

Dans cette section, nous allons collecter et recouper les informations concernant le brochage du WiPy (et leurs caractéristiques) de façon à en rendre la consultation aussi agréable que possible.

Vous pouvez vous permettre d'éluder cette page pour le moment et y revenir plus tard lorsque vous aurez besoin des informations qu'elle contient.

Fonction alternative, une notion importante

Dans ce document, vous allez remarquer qu'une broche peut être utilisée de différentes façons.

Par exemple, la broche GP10 peut également être utilisé comme broche PWM (sous le nom PWM_7).

Hack-wipy-pinout-alternate-function.jpg

PWM_7 est la fonction alternative de la broche GP10, cette fonction alternative est activée à l'aide d'une valeur entière nommée "alternate function", valeur qui est située entre crochets dans le diagramme des broches (la valeur 3 dans cet exemple).

SI vous voulez uniquement utiliser les broches en entrée/sortie ALORS c'est l'"alternate function" 0 qu'il faut utiliser.

Brochage du WiPy

Hack-wipy-pinout.png

Tension/courant max

Broches digitales

Les broches GPIO du WiPy ne sont PAS TOLERANTE à 5V.

Les brancher sur une tension supérieure à 3.6V provoquera des dommages irréparables à la carte.

En entrée : il est possible d'activer une résistance Pull/Up, Pull/Down ou de configurer une interruption. Voyez notre tutoriel Bouton et class Pin pour plus d'informations.

En sortie : voyez notre tutoriel LED pour plus d'informations.

Références:

Broches analogiques

Les broches ADC configurée en mode analogique ne peuvent pas résister à une tension supérieure à 1.8V.

Garder ces considérations à l'esprit lorsque vous réalisez vos branchements électroniques.

Courant Max

Le CC3200 est capable d'offrir 6mA sur un GPIO (source).

6mA n'est pas un maximum absolu, il est visiblement possible d'obtenir un peu plus de 6mA sur un GPIO mais cela fera chuter la tension du GPIO.

Broches d'alimentations

Le WiPy peut être alimenté à l'aide d'une source de tension externe (ou à l'aide de pile).

  • GND : la masse commune
  • VIN : Alimentation externe entre 3.6V et5.5V.
  • 3v3: Sortie du régulateur 3.3V de votre WiPy (max 250mA max). Utilisé pour convertir la tension VIN en 3.3v pour faire fonctionner votre WiPy.
    • Il est possible d'alimenter le WiPy directement via la broche 3V3: La tension d'alimentation doit être très exactement à 3V3, sans bruit..
      Dans ce cas, l'alimentation doit être capable d'offrir un courant d'au moins 300mA
      .

Entrées Analogiques

GP2, GP3, GP4 et GP5 peuvent être reconfigurés en entrée analogique.

Comme déjà précisé, les broches ADC configurées en mode analogique ne peuvent pas résister à une tension supérieure à 1.8V.. Lorsque ces broches sont utilisées en mode digital alors la tension max est de 3.6V.

Les broches GP2, GP3, GP4 et GP5 sont branchés sur le convertisseur ADC0, c'est en sélectionnant un canal (channel en anglais) que vous faite une lecture analogique sur une broche plutôt qu'une autre.

Broches PWM

Certaines broches sont capable de fournir un signal PWM en sortie.

Attention: que la production d'un signal PWM en micropython nécessite la sélection d'un timer et d'un channel (un canal) particulier.

Les broches suivantes sont capable de produite un signal PWM.

  • GP24 : PWM_1[5]
  • GP25 : PWM_3[9], également la LED heartbeat de la carte WiPy. Cette broche n'est pas accessible sur les connecteur mais cette information pourrait être utile.
  • GP9 : PWM_6[3]
  • GP10 : PWM_7[3]
  • GP11 : PWM_8[3]

Revoici le tableau de correspondance entre les broches PWM, timer et channel.

Hack-wipy-pinout-pmw.jpg

Port séries/UART

voir machine.UART (voir ici) exemple provenant de micropython.org/wipy.

Sur le WiPy, vous avez l'opportunité de créer un port série avec deux broches (RX/TX) ou avec 4 broches (RX/TX donnée, CTS/RTS contrôle de flux)

from machine import UART
# Ouverture du port série 0 à 9600 bauds
# SANS controle de Flux
uart = UART(0, baudrate=9600)
# Ouverture du port série 0 à 115200 bauds 
# AVEC contrôle de flux CTS/RTS comme sur la carte d'extension
# uart = UART(0, baudrate=115200, pins=('GP1', 'GP2', 'GP7', 'GP6')) # broches (TX, RX, RTS, CTS)
uart.write('hello')
uart.read(5) # Lecture de 5 bytes/octets

Si vous disposez de la carte d'extension WiPy, l'UART0 de votre WiPy est branché sur le convertisseur USB-Série (FTDI) de la carte d'extension -avec contrôle de flux- comme suit:

Convertisseur FTDI
USB > Série
Broche WiPy Fonction Broche WiPy
FT_TxD GP2 UART0_RX[3]
FT_RxD GP1 UART0_TX[3]
FT_RTS GP6 CTS[6]
FT_CTS GP7 RTS[7]
GND GND masse commune

Vous noterez (entre crochet) le n° de fonction alternatif de la broche

Wipy-pinout-FTDI-to-UART0.png

Si vous disposez d'un FTDI Friend, vous pouvez le brancher comme indiqué ici (pensez à vous assurer que le FTDI Friend soit bien signal 3.3v).

Si vous utilisez un câble console, vous aurez besoin de créer le port série SANS contrôle de flux.

Les broches de l'UART1 sont les suivantes:

Broche WiPy Fonction Broche WiPy
GP4 UART1_RX[6]
GP3 UART1_TX[6]
GP6 CTS[6]
GP7 RTS[7]
GND masse commune

Vous noterez (entre crochet) le n° de fonction alternatif de la broche

Fichier:Wipy-pinout-FTDI-to-UART1.png

Bus I2C (todo)

Si vous n'avez encore aucune connaissance concernant le bus I2C, nous pouvons vous proposer le tutoriel Arduino suivant qui explique, dessin à l'appui, le fonctionnement d'un bus I2C

Introduction à I2C

Tlogo-I2C.jpg

Qu'est ce que I2C, sa mise en oeuvre sur Arduino, code source, etc

 

Lors de nos tribulations, nous voulions utiliser un mcp9808 sur un WiPy. Nous voulions utiliser les broches GP24 & GP23 (respectivement sda & scl) pour le bus I2C.

Voici le code utilisé, avec une réponse du senseur lors du scan() (sur son adresse par défaut 0x24)

from machine import I2C
# Configurer le bus I2C 0 à très faible vitesse sur sda,scl = GP24,GP23.
i2c = I2C(0, baudrate=20000, pins=('GP24','GP23'))
# Scan du bus I2C
i2c.scan()

voir machine.I2C exemple provenant de micropython.org/wipy

from machine import I2C
# Configurer le bus I2C 0 à 1 Mhz.
# Le WiPy est le maître du bus
i2c = I2C(0, I2C.MASTER, baudrate=100000)

# Retourne une liste des adresses des esclaves
i2c.scan()

i2c.writeto(0x42, 'hello') # envoi 5 bytes/octets à l'esclave sur l'adresse 0x42
i2c.readfrom(0x42, 5) # Recevoir 5 bytes/octets depuis l'esclave

# Lire 2 bytes/octets depuis l'esclave 0x42, adresse mémoire 0x10 de l'esclave
i2c.readfrom_mem(0x42, 0x10, 2)  
# Ecrire 2 bytes/octets sur l'esclave à l'adresse 0x42, adresse mémoire 0x10 de l'esclave
i2c.writeto_mem(0x42, 0x10, 'xy')

Bus SPI (todo)

TODO

voir machine.SPI exemple provenant de micropython.org/wipy

from machine import SPI

# configurer le bus SPI 0 en maître (master) et à la vitesse de 2MHz
spi = SPI(0, SPI.MASTER, baudrate=200000, polarity=0, phase=0)
spi.write('hello')
spi.read(5) # réception de 5 bytes/octets sur le bus
rbuf = bytearray(5)
spi.write_readinto('hello', rbuf) # envoyer et recevoir 5 bytes/octets

Si vous avez besoin d'exemple l'envoi et réception de donnée sur le bus SPI, vous pouvez consulter le projet de pyboard_drive (GitHub de Roman Podgaiski) et plus particulièrement le pilote concernant ILI9341 permettant de prendre le contrôle d'un écran TFT. La bibliothèque est certes écrite pour une carte MicroPython PyBoard mais c'est du MicroPython. Roman a été amené à faire des lectures dans la RAM de l'écran via le bus SPI. Ce projet est donc une excellente source d'information.

Port SD

Votre WiPy est capable d'utiliser une carte SD. Si vous disposez de la carte d'extension WiPy, cette dernière dispose d'un connecteur microSD (Molex 105027). Le FirmWare de votre WiPy sait comment piloter une carte SD.

Une carte SD peut s'interfacer à l'aide de 3 signaux:

  • DATA: Ligne de donnée,
  • CLOCK: Signal d'horloge - pour cadencer l'envoi des bits sur la ligne data
  • COMMAND: Ligne data/command - un signal qui indique à la carte SD si l'on envoi une commande de gestion ou des données sur la ligne DATA

voir machine.SD exemple provenant de micropython.org/wipy

from machine import SD
import os

# Indiquer les broches dont les fonctions alternatives (''alternate function'')
# supportent respectivement clk cmd et dat0  
sd = machine.SD(pins=('GP10', 'GP11', 'GP15'))

# Monter la carte SD
os.mount(sd, '/sd')

# Effectuer les opérations sur les fichiers

Si vous disposez de la carte d'extension WiPy, voici comment la carte SD est raccordée:

Carte microSD Broche WiPy Fonction Broche WiPy
DATA GP15 SD0_DATA0[8]
CLOCK GP10 SD0_CLK[6]
CMD GP11 SD0_CMD[6]

Vous noterez (entre crochet) le n° de fonction alternatif de la broche

Wipy-pinout-SD.png

Broches Spéciales

LED HeartBeat

  • GP25 : Cette broche est branchée sur la LED heartbeat du WiPy. Cette broche n'est pas accessible sur le WiPy mais vous pouvez néanmoins en prendre le contrôle.
    Voyez notre tutoriel

Safe Boot / Mode sans échec


Tutoriel WiPy tutorials and examples & general information about WiPy sous copyright de Damien George et contributeurs en ce qui concerne MicroPython et/ou PyCom en ce qui concerne les informations relatives a WiPy et LoPy.

Tutoriel traduit par Meurisse D. pour MCHobby.be

Traduit avec l'autorisation de micropython.org - Translated with the authorisation of micropython.org également avec l'accord de Daniel Compara (créateur de WiPy).

Toute référence, mention ou extrait de cette traduction doit être explicitement accompagné du texte suivant : «  Traduction par MCHobby (www.MCHobby.be) - Vente de kit et composants » avec un lien vers la source (donc cette page) et ce quelque soit le média utilisé.

L'utilisation commercial de la traduction (texte) et/ou réalisation, même partielle, pourrait être soumis à redevance. Dans tous les cas de figures, vous devez également obtenir l'accord du(des) détenteur initial des droits. Celui de MC Hobby s'arrêtant au travail de traduction proprement dit.