Biblioteca de Micrypthon para interactuar con Winbond W25Q Flash Chips
La última documentación está disponible en Micopython Winbond Readthedocs
Python3 debe instalarse en su sistema. Verifique la versión actual de Python con el siguiente comando
python --version
python3 --version Dependiendo del comando Python 3.xy (con XY como algunos números) se devuelve, use ese comando para proceder.
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtPara la interacción con el sistema de archivos del dispositivo, se puede usar la carcasa remota de Micopython.
Pruebe la herramienta mostrando su descripción de información de hombre/ayuda.
rshell --helpConecte el dispositivo Micrypthon a una red (si es posible)
import network
station = network . WLAN ( network . STA_IF )
station . active ( True )
station . connect ( 'SSID' , 'PASSWORD' )
station . isconnected ()Instale la última versión de paquete de esta lib en el dispositivo Micrypthon
import mip
mip . install ( "github:brainelectronics/micropython-winbond" ) Para versiones de Micripthon por debajo de 1.19.1, use el paquete upip en lugar de mip
import upip
upip . install ( 'micropython-winbond' )Instale una versión de paquete específica y fija de esta lib en el dispositivo Micopython
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" ) Para versiones de Micrypthon por debajo de 1.19.1, use el paquete upip en lugar de mip . Con upip siempre se instalará la última versión disponible.
import upip
upip . install ( 'micropython-winbond' )Instale una versión candidata de lanzamiento específica cargada para probar el índice de paquetes de Python en cada PR en el dispositivo Micopython. Si no se establece una versión específica, se utilizará la última versión estable.
import mip
mip . install ( "github:brainelectronics/micropython-winbond" , version = "0.4.0-rc2.dev4" ) Para versiones de Micrypthon por debajo de 1.19.1, use el paquete upip en lugar de mip . Con upip siempre se instalará la última versión disponible.
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' )Consulte también BrainElectronics Test Pypi Server en Docker para un servidor PYPI de prueba que se ejecuta en Docker.
Copie el módulo a la placa de Micrypthon e importe como se muestra a continuación utilizando la carcasa remota de Micopython
Abra el shell remoto con el siguiente comando. Además, use -b 115200 en caso de que no se use CP210X sino un CH34X.
rshell -p /dev/tty.SLAB_USBtoUART --editor nano Realice el siguiente comando dentro del rshell para copiar todos los archivos y carpetas en el dispositivo
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 )Felicitaciones y muchas gracias a Crizeo del foro de Micropython y su publicación para usar Winbond Flash Chips