MicroPython - это полная реализация языка программирования Python 3, который работает непосредственно на микроконтроллере, например, на таком как RP2040, который установлен на плату Raspberry Pi Pico.

Порт Pico MicroPython включает в себя модули для доступа к низкоуровневому аппаратному обеспечению, специфичному для чипа.

На странице документация по MicroPython на сайте Raspberry Pi есть ссылка для скачивания файла rp2-pico-xxx.uf2. Это свежая версия скомпилированного двоичного файла MicroPython для Raspberry Pi Pico.

Чтобы установить свежую версию MicroPython на Raspberry Pi Pico необходимо перед подключением Raspberry Pi Pico к компьютеру зажать кнопку BOOTSEL на плате Raspberry Pi Pico и в зажатом состоянии подключить плату в USB порт компьютера. После подачи питания на плату отпустите кнопку BOOTSEL. Операционная система на компьютере определит вашу плату как USB Flash диск. На этот диск перенесите файл rp2-pico-xxx.uf2. Плата Raspberry Pi Pico после этого перезагрузится и будет готова к работе с MicroPython.

>>> import sys

>>> sys.implementation
(name='micropython', version=(1, 19, 1), _machine='Raspberry Pi Pico with RP2040', _mpy=4102)

>>> 

 Лист. 1.

Рис. 1. 

Микроконтроллер RP2040 изготовлен по 40-нм техпроцессу из кремниевого кристалла размером 7x7 мм.

RP2040 содержит:

  • Два ядра ARM Cortex-M0+ с тактовой частотой 133 МГц (с возможностью разгона до более чем 400 МГц)
  • 264 КБ SRAM в шести независимых банках Нет внутренней флэш-памяти или памяти EEPROM (после сброса загрузчик загружает прошивку либо из внешней флэш-памяти, либо с шины USB во внутреннюю SRAM)
  • Контроллер шины QSPI, поддерживающий до 16 МБ внешней флэш-памяти.
  • Встроенный программируемый LDO для генерации напряжения ядра
  • 2 встроенных PLL для генерации тактовых импульсов USB и ядра
  • 30 контактов GPIO, из которых 4 можно использовать как аналоговые входы.

К периферийным устройствам относятся:

  • 2 UART
  • 2 SPI-контроллера
  • 2 контроллера I2C
  • 16 каналов ШИМ
  • Контроллер USB 1.1
  • 8 конечных автоматов PIO

Иир

>>> import machine

>>> machine.freq()
125000000

Bhg

>>> machine.freq(240000000)

>>> machine.freq()
240000000

Bbv

from machine import Pin, PWM
from utime import sleep

machine.freq(240000000)

pwm = PWM(Pin(25))
pwm.freq(200)

while True:
    for i in range(-250, 250, 2):
        pwm.duty_u16(i**2)
        sleep(0.01)

Лист. 4. main.py

Ссылки:

Примеры программ на MicroPython