Modifications

Sauter à la navigation Sauter à la recherche
8 781 octets ajoutés ,  16 novembre 2016 à 22:06
Ligne 26 : Ligne 26 :     
Les brancher sur une tension supérieure à 3.6V provoquera des dommages irréparables à la carte.
 
Les brancher sur une tension supérieure à 3.6V provoquera des dommages irréparables à la carte.
 +
 +
{{underline|'''En entrée'''}} : il est possible d'activer une résistance Pull/Up, Pull/Down ou de configurer une interruption. Voyez notre [[hack-wipy-button|tutoriel Bouton]] et [https://micropython.org/resources/docs/en/latest/wipy/library/machine.Pin.html class Pin] pour plus d'informations.
 +
 +
{{underline|'''En sortie'''}} : voyez notre [[hack-wipy-led|tutoriel LED]] pour plus d'informations.
 +
 +
Références:
 +
* [https://micropython.org/resources/docs/en/latest/wipy/library/machine.Pin.html class Pin – control I/O pins]<br />''Contient de nombreuses informations pertinente
    
=== Broches analogiques ===
 
=== Broches analogiques ===
Ligne 31 : Ligne 38 :     
Garder ces considérations à l'esprit lorsque vous réalisez vos branchements électroniques.
 
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 ([https://e2e.ti.com/support/wireless_connectivity/simplelink_wifi_cc31xx_cc32xx/f/968/p/418581/1490622 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 ==
 
== Broches d'alimentations ==
Ligne 56 : Ligne 68 :  
Les broches suivantes sont capable de produite un signal PWM.
 
Les broches suivantes sont capable de produite un signal PWM.
 
* '''GP24''' : PWM_1[5]
 
* '''GP24''' : PWM_1[5]
* '''GP25''' : PWM_3[9], '''également la LED heartbeat''' située sur la carte WiPy
+
* '''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]
 
* '''GP9'''  : PWM_6[3]
 
* '''GP10''' : PWM_7[3]
 
* '''GP10''' : PWM_7[3]
Ligne 64 : Ligne 76 :     
[[Fichier:Hack-wipy-pinout-pmw.jpg]]
 
[[Fichier:Hack-wipy-pinout-pmw.jpg]]
 +
 +
== Port séries/UART ==
 +
voir {{fname|machine.UART}} ([http://docs.micropython.org/en/latest/wipy/library/machine.UART.html voir ici]) exemple provenant de [http://docs.micropython.org/en/latest/wipy/wipy/quickref.html#uart-serial-bus 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)
 +
 +
<syntaxhighlight lang="python">
 +
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
 +
</syntaxhighlight>
 +
 +
Si vous disposez de {{pl|736|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:
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
| align="center" | Convertisseur FTDI<br />USB > Série
 +
| align="center" | Broche WiPy
 +
| align="center" | Fonction Broche WiPy
 +
|- style="font-size: 90%"
 +
| align="left" | FT_TxD
 +
| align="left" | GP2
 +
| align="left" | UART0_RX[3]
 +
|- style="font-size: 90%"
 +
| align="left" | FT_RxD
 +
| align="left" | GP1
 +
| align="left" | UART0_TX[3]
 +
|- style="font-size: 90%"
 +
| align="left" | FT_RTS
 +
| align="left" | GP6
 +
| align="left" | CTS[6]
 +
|- style="font-size: 90%"
 +
| align="left" | FT_CTS
 +
| align="left" | GP7
 +
| align="left" | RTS[7]
 +
|- style="font-size: 90%"
 +
| align="left" | GND
 +
| align="left" | GND
 +
| align="left" | masse commune
 +
|}<small>Vous noterez (entre crochet) le n° de fonction alternatif de la broche</small>
 +
 +
[[Fichier:wipy-pinout-FTDI-to-UART0.png]]
 +
 +
Si vous disposez d'un {{pl|77|FTDI Friend}}, vous pouvez le brancher comme indiqué ici (pensez à vous assurer que le FTDI Friend soit bien signal 3.3v).
 +
 +
Si vous utilisez {{pl|144|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:
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
| align="center" | Broche WiPy
 +
| align="center" | Fonction Broche WiPy
 +
|- style="font-size: 90%"
 +
| align="left" | GP4
 +
| align="left" | UART1_RX[6]
 +
|- style="font-size: 90%"
 +
| align="left" | GP3
 +
| align="left" | UART1_TX[6]
 +
|- style="font-size: 90%"
 +
| align="left" | GP6
 +
| align="left" | CTS[6]
 +
|- style="font-size: 90%"
 +
| align="left" | GP7
 +
| align="left" | RTS[7]
 +
|- style="font-size: 90%"
 +
| align="left" | GND
 +
| align="left" | masse commune
 +
|}<small>Vous noterez (entre crochet) le n° de fonction alternatif de la broche</small>
 +
 +
[[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
 +
{{ttuto-begin}}
 +
 +
{{ttuto
 +
  |label=Introduction à I2C
 +
  |descr=Qu'est ce que I2C, sa mise en oeuvre sur Arduino, code source, etc
 +
  |img=tlogo-I2C.jpg
 +
  |link=Arduino I2C Intro
 +
}}
 +
 +
{{ttuto-end}}
 +
 +
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)
 +
 +
<syntaxhighlight lang="python">
 +
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()
 +
</syntaxhighlight>
 +
 +
voir {{fname|machine.I2C}} exemple provenant de [http://docs.micropython.org/en/latest/wipy/wipy/quickref.html#i2c-bus micropython.org/wipy]
 +
 +
<syntaxhighlight lang="python">
 +
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')
 +
</syntaxhighlight>
 +
 +
== Bus SPI (todo) ==
 +
 +
TODO
 +
 +
voir {{fname|machine.SPI}} exemple provenant de [http://docs.micropython.org/en/latest/wipy/wipy/quickref.html#spi-bus micropython.org/wipy]
 +
 +
<syntaxhighlight lang="python">
 +
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
 +
</syntaxhighlight>
 +
 +
Si vous avez besoin d'exemple l'envoi {{underline|et réception}} de donnée sur le bus SPI, vous pouvez consulter le projet de [https://github.com/ropod7/pyboard_drive 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 {{pl|736|la carte d'extension WiPy}}, cette dernière dispose d'un connecteur microSD ([http://www.molex.com/molex/products/datasheet.jsp?part=active/1050270001_MEMORY_CARD_SOCKET.xml&channel=Products&Lang=en-US 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 {{fname|machine.SD}} exemple provenant de [https://micropython.org/resources/docs/en/latest/wipy/library/machine.SD.htmls micropython.org/wipy]
 +
 +
<syntaxhighlight lang="python">
 +
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
 +
</syntaxhighlight>
 +
 +
Si vous disposez de {{pl|736|la carte d'extension WiPy}}, voici comment la carte SD est raccordée:
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
| align="center" | Carte microSD
 +
| align="center" | Broche WiPy
 +
| align="center" | Fonction Broche WiPy
 +
|- style="font-size: 90%"
 +
| align="left" | DATA
 +
| align="left" | GP15
 +
| align="left" | SD0_DATA0[8]
 +
|- style="font-size: 90%"
 +
| align="left" | CLOCK
 +
| align="left" | GP10
 +
| align="left" | SD0_CLK[6]
 +
|- style="font-size: 90%"
 +
| align="left" | CMD
 +
| align="left" | GP11
 +
| align="left" | SD0_CMD[6]
 +
|}<small>Vous noterez (entre crochet) le n° de fonction alternatif de la broche</small>
 +
 +
[[Fichier:wipy-pinout-SD.png]]
    
== Broches Spéciales ==
 
== Broches Spéciales ==
* '''GP25''' :
+
=== LED HeartBeat ===
* '''GP28''' : cette broche permet également de contrôler le mode sans échec de votre WiPy en la plaçant sur la masse lors du démarrage de la carte WiPy.  
+
* '''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.<br />[[Hack-wipy-heartbeat|Voyez notre tutoriel]]
 +
 
 +
=== Safe Boot / Mode sans échec ===
 +
* '''GP28''' : Cette broche permet également de contrôler le mode sans échec de votre WiPy en la plaçant cette broche au niveau haut lors du démarrage de la carte WiPy.<br />[[Hack-wipy-generalite#Boot_Modes_et_Safe_boot|Nous avons décrit cette procédure plus en détail ici]]
    
{{WIPY-TRAILER}}
 
{{WIPY-TRAILER}}
29 917

modifications

Menu de navigation