Difference between revisions of "BPI-PicoW-S3 开发板"

From Banana Pi Wiki
Jump to: navigation, search
(CircuitPython)
(硬件规格)
(13 intermediate revisions by 2 users not shown)
Line 23: Line 23:
 
* 1 * 全彩色LED
 
* 1 * 全彩色LED
  
== BPI-PicoW-S3 与 Rraspberry Pi PicoW、BPI-Leaf-S3、ESP32-S3-DevKitC-1 开发板对比 ==
+
== BPI-PicoW-S3 与 Raspberry Pi PicoW、BPI-Leaf-S3、ESP32-S3-DevKitC-1 开发板对比 ==
  
 
{| class="wikitable"  
 
{| class="wikitable"  
Line 29: Line 29:
 
! 开发板
 
! 开发板
 
! BPI-PicoW-S3
 
! BPI-PicoW-S3
! Rraspberry Pi PicoW
+
! Raspberry Pi PicoW
 
! BPI-Leaf-S3
 
! BPI-Leaf-S3
 
! ESP32-S3-DevKitC-1
 
! ESP32-S3-DevKitC-1
Line 133: Line 133:
 
|-
 
|-
 
| 片上 SRAM
 
| 片上 SRAM
| 320 KB
+
| 512 KB
 
|-
 
|-
| 板载 FLASH ROM
+
| 外置FLASH
 +
| 8MB
 +
|-
 +
| 封装内PSRAM
 
| 2MB
 
| 2MB
|-
 
| 片上外设PSRAM
 
| 8MB
 
 
|-
 
|-
 
| WIFI
 
| WIFI
Line 226: Line 226:
 
|-
 
|-
 
| 可控全彩色LED
 
| 可控全彩色LED
 +
| 1
 +
|-
 +
| 可控单色LED
 
| 1
 
| 1
 
|}
 
|}
Line 412: Line 415:
 
| colspan="2" | 任意GPIO
 
| colspan="2" | 任意GPIO
 
|-
 
|-
| 彩色LED
+
| 全彩色LED
 
| colspan="2" | GPIO 48
 
| colspan="2" | GPIO 48
 +
|-
 +
| 单色LED
 +
| colspan="2" | GPIO 46
 
|}
 
|}
  
Line 422: Line 428:
 
[[File:CircuitPython_Repo_header_logo.jpg | 800px]]
 
[[File:CircuitPython_Repo_header_logo.jpg | 800px]]
  
CircuitPython是旨在简化在单片机开发板上进行编程的实验和学习的一种编程语言。
+
CircuitPython是MicroPython的一个教育友好型的开源衍生产品,由Adafruit Industries支持与开发。
 +
 
 +
在易用性上,它在MicroPython的基础上更进一步。
 +
 
 +
使用CircuitPython固件的开发板连接PC时,PC将会立即得到一个USB存储磁盘,将python脚本文件复制进此磁盘即可让程序在此开发板上运行。
 +
 
 +
这就做到了让用户开箱即用,因为绝大多数现代个人操作系统和家用PC都是支持USB存储磁盘的。
 +
 
 +
当然为了能使用REPL,至少还是需要安装一个串口通信软件,或是支持这个功能的文本编辑器,例如Mu编辑器。
 +
 
 +
CircuitPython 社区提供极其丰富的外设驱动库,API文档,教程。即使没有编程基础,没有硬件基础,从零开始也可快速上手。
 +
 
 +
CircuitPython不支持定时器,硬件中断等一些特定用于微控制器的库,也不支持多线程的_thread 库,仅提供编写并发代码的 asyncio 库。
  
配合Mu编辑器进行CircuitPython编程是最低难度的上手方法,安装软件,连接设备即可开始使用。
+
在CircuitPython所支持的微控制器和其Blinka所支持的单板计算机(SBCs)中,代码具有很好的可移植性,这得益于它在统一API上的努力。
  
 
* [https://codewith.mu/ Mu编辑器官方下载页面]
 
* [https://codewith.mu/ Mu编辑器官方下载页面]
Line 430: Line 448:
 
* [[ code_circuitpython_with_mu_ch | 快速上手: 在Mu编辑器中进行CircuitPython编程 ]]
 
* [[ code_circuitpython_with_mu_ch | 快速上手: 在Mu编辑器中进行CircuitPython编程 ]]
  
参考资源:
+
'''已得到adafruit/circuitpython GitHub存储库支持'''
 +
 
 +
https://github.com/adafruit/circuitpython/pull/7031
 +
 
 +
'''已得到adafruit/tinyuf2 GitHub存储库支持'''
 +
 
 +
https://github.com/adafruit/tinyuf2/pull/250
 +
 
 +
'''参考资源''':
  
 
* [https://learn.adafruit.com/welcome-to-circuitpython Adafruit:CircuitPython入门教程]
 
* [https://learn.adafruit.com/welcome-to-circuitpython Adafruit:CircuitPython入门教程]
Line 475: Line 501:
 
[[File:Mircopython.png | 800px]]
 
[[File:Mircopython.png | 800px]]
  
MicroPython实现了大部分Python 3 特性和语法,易学易上手,验证程序效果无需编译直接下载进芯片运行。
+
MicroPython是Python 3编程语言的精益高效实现,包括 Python 标准库的一小部分,并且经过优化,可在微控制器和有限的硬件资源中运行。
 +
 
 +
由 Damien P. George 于 2013年 众筹开源。
 +
 
 +
它与使用C程序开发微控制器最明显的差异性,就是验证代码时无需漫长的编译。
 +
 
 +
使用串口通信软件,通过REPL(read-eval-print-loop)输入命令来控制微控制器,和Python的REPL一样。
 +
 
 +
也可使用一些工具将 python 脚本文件上传到微控制器内运行。
 +
 
 +
它对Python 3 的实现,包括了支持多线程的 _thread 库,编写并发代码的 asyncio 库。
 +
 
 +
它尽可能与普通Python兼容,允许您轻松地将代码从桌面端移植到微控制器。
 +
 
 +
同时它还具备一些特定用于微控制器的库,以便充分利用微控制器芯片内的硬件功能,例如定时器,硬件中断,WiFi等,这取决于具体的硬件。
 +
 
 +
在具备上述特性的同时,它的硬件开销很少,最低只需 256k 的代码空间和 16k 的 RAM 即可运行。
 +
 
 +
如果你了解Python,很大程度上你就已经了解MicroPython了。
  
无论是否有编程基础,MicroPython的上手难度绝对远低于其他编程语言,其代码易读性高,且开源社区有多年积累的丰富资源,就如同Python一样拥有极强的生命力与应用价值。
+
在另一方面,你深入地学习MicroPython,也能提升你对Python的理解。
  
 
* '''[https://github.com/BPI-STEAM/BPI-Leaf-S3-Doc/tree/main/Example/MicroPython-zh#1%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B GitHub: MicroPython快速上手]'''
 
* '''[https://github.com/BPI-STEAM/BPI-Leaf-S3-Doc/tree/main/Example/MicroPython-zh#1%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B GitHub: MicroPython快速上手]'''
Line 490: Line 534:
  
 
Arduino 是一个开源嵌入式软硬件开发平台,用来供用户制作可交互式的嵌入式项目。
 
Arduino 是一个开源嵌入式软硬件开发平台,用来供用户制作可交互式的嵌入式项目。
 +
 +
Arduino 集成开发环境(IDE)是此平台的软件核心,使用C/C++编程语言开发项目。
 +
 +
Arduino 最大的特性就是提供统一的API来开发所有它所支持的微控制器,具有非常良好的代码可移植性和可复用性。
 +
 +
此外它简化了搭建开发环境的过程,所有它所支持的微控制器的开发环境都可一键安装配置。
 +
 +
它还提供简单的一键式机制来编译和上传程序到微控制器中运行。
 +
 +
Arduino IDE中还集成了很多例程,辅有大量的注释,能帮助用户快速上手。
 +
 +
Arduino 社区中积累的大量的优秀开源项目可供参考与学习,还有相当多的芯片制造商提供的驱动库与API。
  
 
* [https://www.arduino.cc/en/software Arduino IDE 下载地址] | [https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html#installing 安装并配置Arduino-ESP32运行环境]
 
* [https://www.arduino.cc/en/software Arduino IDE 下载地址] | [https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html#installing 安装并配置Arduino-ESP32运行环境]
Line 500: Line 556:
 
=样品购买=
 
=样品购买=
  
* 比派科技官方速卖通店:https://www.aliexpress.com/item/1005004775634442.html?spm=5261.ProductManageOnline.0.0.15744edfAyCaNk
+
* 比派科技官方速卖通店:https://www.aliexpress.com/item/1005004775634442.html
* SinoVoip 官方速卖通店 : https://pt.aliexpress.com/item/1005004775859077.html?spm=5261.ProductManageOnline.0.0.785f4edfxIkaFg&gatewayAdapt=glo2bra
+
* SinoVoip 官方速卖通店 : https://www.aliexpress.com/item/1005004775859077.html
 
* 官方淘宝店: https://item.taobao.com/item.htm?spm=a2126o.success.0.0.25b04831CHV1Nc&id=684134360199
 
* 官方淘宝店: https://item.taobao.com/item.htm?spm=a2126o.success.0.0.25b04831CHV1Nc&id=684134360199
 
* OEM&OEM 定制服务: [email protected]
 
* OEM&OEM 定制服务: [email protected]

Revision as of 18:01, 21 March 2023


介绍

BPI-PicoW-S3 banner.png

BPI-Bit with ESP32
BPI-AI Kendryte K210 RISC-V
BPI-UNO32 with ESP32 design

Banana Pi BPI-PicoW-S3 是一系列低功耗微控制器,专为物联网开发和Maker DIY设计的开发板。与 Raspberry Pi Pico 板尺寸相同,支持 2.4 GHz Wi-Fi 和 Bluetooth® LE 双模无线通信, 外设兼容低功耗硬件设计,深度睡眠模式下功耗仅为10uA。编程方面,PicoW-S3支持ESP-IDF、Arduino、micropython、CircuitPython 等多种方式

关键特性

  • ESP32-S3,Xtensa® 32 bit LX7
  • 片外 PSRAM , FLASH
  • Ultra-low power 10uA
  • 2.4G WIFI ,Bluetooth 5 ,Bluetooth mesh
  • GPIO , ADC , TOUCH , PWM , I2C , SPI , RMT , I2S , UART , LCD,CAMERA ,USB , JTAG
  • 1 * microUSB
  • 1 * 全彩色LED

BPI-PicoW-S3 与 Raspberry Pi PicoW、BPI-Leaf-S3、ESP32-S3-DevKitC-1 开发板对比

开发板 BPI-PicoW-S3 Raspberry Pi PicoW BPI-Leaf-S3 ESP32-S3-DevKitC-1
引出GPIO 27 27 36 36
3.3v管脚 1 1 2 2
5v管脚 2 2 1 1
GND管脚 8 8 4 4
全彩LED灯 1 on GPIO48 1 on GPIO48 1 on GPIO48
芯片直连USB MicroUSB接口x1 MicroUSB接口x1 Type-C USB接口x1 MicroUSB接口x1
UART TTL转USB CP2102-MicroUSB接口x1
外接电池连接座 3.7v锂电池供电接口
电池充电 500mA充电
I²C 4pin连接座 1

Espressif ESP32-S3

ESP32-S3 是一款集成 2.4 GHz Wi-Fi 和 Bluetooth 5 (LE) 的 MCU 芯片,支持远距离模式 (Long Range)。ESP32-S3 搭载 Xtensa® 32 位 LX7 双核处理器,主频高达 240 MHz,内置 512 KB SRAM (TCM),具有 45 个可编程 GPIO 管脚和丰富的通信接口。ESP32-S3 支持更大容量的高速 Octal SPI flash 和片外 RAM,支持用户配置数据缓存与指令缓存。

以下是ESP32-S3芯片重要功能的描述。

  • 支持Wi-Fi + Bluetooth 5 (LE) 无线连接: ESP32-S3 集成 2.4 GHz Wi-Fi (802.11 b/g/n),支持 40 MHz 带宽;其低功耗蓝牙子系统支持 Bluetooth 5 (LE) 和 Bluetooth Mesh,可通过 Coded PHY 与广播扩展实现远距离通信。它还支持 2 Mbps PHY,用于提高传输速度和数据吞吐量。ESP32-S3 的 Wi-Fi 和 Bluetooth LE 射频性能优越,在高温下也能稳定工作。
  • 支持 AI 加速: ESP32-S3 MCU 增加了用于加速神经网络计算和信号处理等工作的向量指令 (vector instructions)。AI 开发者们通过 ESP-DSP 和 ESP-NN 库使用这些向量指令,可以实现高性能的图像识别、语音唤醒和识别等应用。
  • 丰富的 IO 接口: ESP32-S3 拥有 45 个可编程 GPIO 以及 SPI、I2S、I2C、PWM、RMT、ADC、UART、SD/MMC 主机控制器和 TWAITM 控制器等常用外设接口。其中的 14 个 GPIO 可被配置为 HMI 交互的电容触摸输入端。此外,ESP32-S3 搭载了超低功耗协处理器 (ULP),支持多种低功耗模式,广泛适用于各类低功耗应用场景。
  • 完善的安全机制: ESP32-S3 为物联网设备提供了完善的安全机制和保护措施,防止各类恶意攻击和威胁。它支持基于 AES-XTS 算法的 flash 加密、基于 RSA 算法的安全启动、数字签名和 HMAC。ESP32-S3 还新增了一个“世界控制器 (World Controller)”模块,提供了两个互不干扰的执行环境,实现可信执行环境或权限分离机制。

硬件

硬件接口示意图

BPI-PicoW-S3-V0.4-IO.png

硬件规格

BPI-PicoW-S3 规格表
SoC主控芯片 ESP32-S3,Xtensa® 32 位 LX7 双核处理器
主频 240MHz MAX
工作温度 -40℃~+85℃
片上 ROM 384 KB
片上 SRAM 512 KB
外置FLASH 8MB
封装内PSRAM 2MB
WIFI IEEE 802.11 b/g/n ,2.4Ghz频带,150Mbps
蓝牙 Bluetooth 5 ,Bluetooth mesh
GPIO BPI-PicoW-S3已引出27个可用GPIO
ADC 2 × 12 位 SAR ADC,支持 18 个模拟通道输入
TOUCH 电容式触摸传感器 14
SPI 4
I2C 2,支持主机或从机模式
I2S 2,串行立体声数据的输入输出
LCD 1,支持 8 位 ~16 位并行 RGB、I8080、MOTO6800 接口
CAMERA 1,支持 8 位 ~16 位 DVP 图像传感器接口
UART 3 ,支持异步通信(RS232 和RS485)和 IrDA
PWM 8 路独立通道,14位精度
MCPWM 2
USB 1 × 全速USB 2.0 OTG,MicroUSB母口
USB Serial/JTAG 控制器 1,USB 全速标准,CDC-ACM ,JTAG
温度传感器 1,测量范围为–20 °C 到 110 °C,用于监测芯片内部温度
SD/MMC 1 × SDIO主机接口,具有2个卡槽,支持SD卡3.0和3.01,SDIO 3.0,CE-ATA 1.1,MMC 4.41,eMMC 4.5和4.51
TWAI® 控制器 1 ,兼容 ISO11898-1(CAN 规范 2.0)
通用 DMA 控制器 5 个接收通道和 5 个发送通道
RMT 4 通道发射,4通道接收,共享 384 x 32-bit 的 RAM
脉冲计数器 4个脉冲计数控制器(单元),每个单元有2个独立的通道
定时器 4 × 54 位通用定时器,16 位时钟预分频器,1 × 52 位系统定时器,3 × 看门狗定时器
外部晶振 40Mhz
RTC 和低功耗管理 电源管理单元 (PMU)+ 超低功耗协处理器 (ULP)
低功耗电流 10uA
工作电压 3.3V
输入电压 3.3V~5.5V
最大放电电流 [email protected] DC/DC
可控全彩色LED 1
可控单色LED 1

硬件尺寸

BPI-Pico-S3-board-dimension.png

BPI-PicoW-S3 尺寸表
管脚间距 2.54mm
安装孔间距 11.4mm/ 47mm
安装孔尺寸 内径2.1mm/外径3.4mm
主板尺寸 21 × 51.88(mm)/0.83 x 2.04(inches)

管脚间距兼容万能板(洞洞板、点阵板),面包板,便于调试应用。

外设GPIO管脚分配

BPI-PicoW-S3 外设GPIO管脚分配
外设接口 信号 管脚
ADC ADC1_CH0~9 GPIO 1~10
ADC2_CH0~9 GPIO 11~20
触摸传感器 TOUCH1~14 GPIO 1~14
JTAG MTCK GPIO 39
MTDO GPIO 40
MTDI GPIO 41
MTMS GPIO 42
UART 默认分配管脚,可重定义为任意GPIO
U0RXD_in GPIO 44
U0CTS_in GPIO 16
U0DSR_in 任意GPIO
U0TXD_out GPIO43
U0RTS_out GPIO 15
U0DTR_out 任意GPIO
U1RXD_in GPIO 18
U1CTS_in GPIO 20
U1DSR_in 任意GPIO
U1TXD_out GPIO 17
U1RTS_out GPIO 19
U1DTR_out 任意GPIO
U2 任意GPIO
I2C 任意GPIO
PWM 任意GPIO
I2S 任意GPIO
LCD 任意GPIO
CAMERA 任意GPIO
RMT 任意GPIO
SPI0/1 已用于FLASH与PSRAM
SPI2/3 任意GPIO
脉冲计数器 任意GPIO
USB OTG D- GPIO 19(内部 PHY)
D+ GPIO 20(内部 PHY)
VP GPIO 42(外部 PHY)
VM GPIO 41(外部 PHY)
RCV GPIO21(外部 PHY)
OEN GPIO 40(外部 PHY)
VPO GPIO 39(外部 PHY)
VMO GPIO38(外部 PHY)
USB Serial/JTAG D- GPIO 19(内部 PHY)
D+ GPIO 20(内部 PHY)
VP GPIO 42(外部 PHY)
VM GPIO 41(外部 PHY)
OEN GPIO 40(外部 PHY)
VPO GPIO 39(外部 PHY)
VMO GPIO38(外部 PHY)
SD/MMC 任意GPIO
MCPWM 任意GPIO
TWAI 任意GPIO
全彩色LED GPIO 48
单色LED GPIO 46

软件

CircuitPython

CircuitPython Repo header logo.jpg

CircuitPython是MicroPython的一个教育友好型的开源衍生产品,由Adafruit Industries支持与开发。

在易用性上,它在MicroPython的基础上更进一步。

使用CircuitPython固件的开发板连接PC时,PC将会立即得到一个USB存储磁盘,将python脚本文件复制进此磁盘即可让程序在此开发板上运行。

这就做到了让用户开箱即用,因为绝大多数现代个人操作系统和家用PC都是支持USB存储磁盘的。

当然为了能使用REPL,至少还是需要安装一个串口通信软件,或是支持这个功能的文本编辑器,例如Mu编辑器。

CircuitPython 社区提供极其丰富的外设驱动库,API文档,教程。即使没有编程基础,没有硬件基础,从零开始也可快速上手。

CircuitPython不支持定时器,硬件中断等一些特定用于微控制器的库,也不支持多线程的_thread 库,仅提供编写并发代码的 asyncio 库。

在CircuitPython所支持的微控制器和其Blinka所支持的单板计算机(SBCs)中,代码具有很好的可移植性,这得益于它在统一API上的努力。

已得到adafruit/circuitpython GitHub存储库支持

https://github.com/adafruit/circuitpython/pull/7031

已得到adafruit/tinyuf2 GitHub存储库支持

https://github.com/adafruit/tinyuf2/pull/250

参考资源:

ESP-IDF

Esp-idf-logo.png

ESP-IDF 是乐鑫官方推出的物联网开发框架,支持 Windows、Linux 和 macOS 操作系统。

建议开发者通过集成开发环境 (IDE) 安装 ESP-IDF:

或者根据操作系统选择对应的手动安装流程:

API:

为了使你的BPI-Leaf-S3开发板可以通过USB-CDC刷写FLASH,需要设置开发板为固件下载模式。

有两种操作方法:

1.通过USB连接到电脑,按住BOOT键,再按一下RESET键并松开,最后松开BOOT键。

2.在断开供电的条件下按住BOOT键,再通过USB连接到电脑,最后松开BOOT键。

需要在设备管理器中确认接口,固件下载模式与普通模式下的接口序号可能是不一样的。

MicroPython

Mircopython.png

MicroPython是Python 3编程语言的精益高效实现,包括 Python 标准库的一小部分,并且经过优化,可在微控制器和有限的硬件资源中运行。

由 Damien P. George 于 2013年 众筹开源。

它与使用C程序开发微控制器最明显的差异性,就是验证代码时无需漫长的编译。

使用串口通信软件,通过REPL(read-eval-print-loop)输入命令来控制微控制器,和Python的REPL一样。

也可使用一些工具将 python 脚本文件上传到微控制器内运行。

它对Python 3 的实现,包括了支持多线程的 _thread 库,编写并发代码的 asyncio 库。

它尽可能与普通Python兼容,允许您轻松地将代码从桌面端移植到微控制器。

同时它还具备一些特定用于微控制器的库,以便充分利用微控制器芯片内的硬件功能,例如定时器,硬件中断,WiFi等,这取决于具体的硬件。

在具备上述特性的同时,它的硬件开销很少,最低只需 256k 的代码空间和 16k 的 RAM 即可运行。

如果你了解Python,很大程度上你就已经了解MicroPython了。

在另一方面,你深入地学习MicroPython,也能提升你对Python的理解。

Arduino

Arduino logo 1200x350.png

Arduino 是一个开源嵌入式软硬件开发平台,用来供用户制作可交互式的嵌入式项目。

Arduino 集成开发环境(IDE)是此平台的软件核心,使用C/C++编程语言开发项目。

Arduino 最大的特性就是提供统一的API来开发所有它所支持的微控制器,具有非常良好的代码可移植性和可复用性。

此外它简化了搭建开发环境的过程,所有它所支持的微控制器的开发环境都可一键安装配置。

它还提供简单的一键式机制来编译和上传程序到微控制器中运行。

Arduino IDE中还集成了很多例程,辅有大量的注释,能帮助用户快速上手。

Arduino 社区中积累的大量的优秀开源项目可供参考与学习,还有相当多的芯片制造商提供的驱动库与API。

资料与资源

样品购买