Bibliothèque Micropython pour interagir avec les puces flash WinBond W25Q
La dernière documentation est disponible sur Micropython Winbond ReadTheDocs
Python3 doit être installé sur votre système. Vérifiez la version Python actuelle avec la commande suivante
python --version
python3 --version Selon la commande Python 3.xy (avec xy comme certains nombres) est renvoyé, utilisez cette commande pour continuer.
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtPour l'interaction avec le système de fichiers de l'appareil, le shell micropopython distant peut être utilisé.
Testez l'outil en affichant sa description d'informations sur l'homme / l'aide.
rshell --helpConnectez le périphérique Micropython à un réseau (si possible)
import network
station = network . WLAN ( network . STA_IF )
station . active ( True )
station . connect ( 'SSID' , 'PASSWORD' )
station . isconnected ()Installez la dernière version du package de cette lib sur le dispositif Micropython
import mip
mip . install ( "github:brainelectronics/micropython-winbond" ) Pour les versions Micropython en dessous du 1.19.1, utilisez le package upip au lieu de mip
import upip
upip . install ( 'micropython-winbond' )Installez une version spécifique et fixe de cette lib sur le dispositif Micropython
import mip
# install a verions of a specific branch
mip . install ( "github:brainelectronics/micropython-winbond" , version = "feature/add-docs-and-detailed-examples" )
# install a tag version
mip . install ( "github:brainelectronics/micropython-winbond" , version = "0.4.0" ) Pour les versions MicropyThon en dessous du 1.19.1, utilisez le package upip au lieu de mip . Avec upip , la dernière version disponible sera installée.
import upip
upip . install ( 'micropython-winbond' )Installez une version de candidat de version spécifique téléchargée pour tester l'index de package Python sur chaque PR sur le périphérique Micropython. Si aucune version spécifique n'est définie, la dernière version stable sera utilisée.
import mip
mip . install ( "github:brainelectronics/micropython-winbond" , version = "0.4.0-rc2.dev4" ) Pour les versions MicropyThon en dessous du 1.19.1, utilisez le package upip au lieu de mip . Avec upip , la dernière version disponible sera installée.
import upip
# overwrite index_urls to only take artifacts from test.pypi.org
upip . index_urls = [ 'https://test.pypi.org/pypi' ]
upip . install ( 'micropython-winbond' )Voir également Braintelectronics Test PYPI Server dans Docker pour un serveur PYPI de test fonctionnant sur Docker.
Copiez le module sur la carte Micropython et importez-les comme indiqué ci-dessous à l'aide du shell Micropython à distance
Ouvrez le shell distant avec la commande suivante. Utilisez en outre -b 115200 au cas où aucun CP210X n'est utilisé mais un CH34X.
rshell -p /dev/tty.SLAB_USBtoUART --editor nano Effectuez la commande suivante à l'intérieur du rshell pour copier tous les fichiers et dossiers sur l'appareil
mkdir /pyboard/lib
mkdir /pyboard/lib/winbond
cp winbond/ * /pyboard/lib/winbond
cp main.py /pyboard/lib/winbond
cp boot.py /pyboard/lib/winbond from machine import SPI , Pin
import os
from winbond import W25QFlash
# the used SPI and CS pin is setup specific, change accordingly
# check the boot.py file of this repo for further boards
flash = W25QFlash ( spi = SPI ( 2 ), cs = Pin ( 5 ), baud = 2000000 , software_reset = True )
flash_mount_point = '/external'
try :
os . mount ( flash , flash_mount_point )
except Exception as e :
if e . errno == 19 :
# [Errno 19] ENODEV aka "No such device"
# create the filesystem, this takes some seconds (approx. 10 sec)
print ( 'Creating filesystem for external flash ...' )
print ( 'This might take up to 10 seconds' )
os . VfsFat . mkfs ( flash )
else :
# takes some seconds/minutes (approx. 40 sec for 128MBit/16MB)
print ( 'Formatting external flash ...' )
print ( 'This might take up to 60 seconds' )
# !!! only required on the very first start (will remove everything)
flash . format ()
# create the filesystem, this takes some seconds (approx. 10 sec)
print ( 'Creating filesystem for external flash ...' )
print ( 'This might take up to 10 seconds' )
# !!! only required on first setup and after formatting
os . VfsFat . mkfs ( flash )
print ( 'Filesystem for external flash created' )
# finally mount the external flash
os . mount ( flash , flash_mount_point )Félicitations et grand merci à Crizeo du Forum Micropython et à son article pour utiliser Winbond Flash Chips