Difference between revisions of "BPI-PicoW-S3 开发板"
(→外设GPIO管脚分配) |
(→硬件规格) |
||
(10 intermediate revisions by 2 users not shown) | |||
Line 16: | Line 16: | ||
* ESP32-S3,Xtensa® 32 bit LX7 | * ESP32-S3,Xtensa® 32 bit LX7 | ||
− | * | + | * 片内封装PSRAM 2MB, 片外FLASH 8MB |
* Ultra-low power 10uA | * Ultra-low power 10uA | ||
* 2.4G WIFI ,Bluetooth 5 ,Bluetooth mesh | * 2.4G WIFI ,Bluetooth 5 ,Bluetooth mesh | ||
Line 23: | Line 23: | ||
* 1 * 全彩色LED | * 1 * 全彩色LED | ||
− | == BPI-PicoW-S3 与 | + | == 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 | ||
− | ! | + | ! Raspberry Pi PicoW |
! BPI-Leaf-S3 | ! BPI-Leaf-S3 | ||
! ESP32-S3-DevKitC-1 | ! ESP32-S3-DevKitC-1 | ||
Line 133: | Line 133: | ||
|- | |- | ||
| 片上 SRAM | | 片上 SRAM | ||
− | | | + | | 512 KB |
|- | |- | ||
− | | | + | | 外置 FLASH |
| 8MB | | 8MB | ||
|- | |- | ||
− | | | + | | 片内封装 PSRAM |
| 2MB | | 2MB | ||
|- | |- | ||
Line 428: | Line 428: | ||
[[File:CircuitPython_Repo_header_logo.jpg | 800px]] | [[File:CircuitPython_Repo_header_logo.jpg | 800px]] | ||
− | + | CircuitPython是MicroPython的一个教育友好型的开源衍生产品,由Adafruit Industries支持与开发。 | |
− | + | 在易用性上,它在MicroPython的基础上更进一步。 | |
+ | |||
+ | 使用CircuitPython固件的开发板连接PC时,PC将会立即得到一个USB存储磁盘,将python脚本文件复制进此磁盘即可让程序在此开发板上运行。 | ||
+ | |||
+ | 这就做到了让用户开箱即用,因为绝大多数现代个人操作系统和家用PC都是支持USB存储磁盘的。 | ||
+ | |||
+ | 当然为了能使用REPL,至少还是需要安装一个串口通信软件,或是支持这个功能的文本编辑器,例如Mu编辑器。 | ||
+ | |||
+ | CircuitPython 社区提供极其丰富的外设驱动库,API文档,教程。即使没有编程基础,没有硬件基础,从零开始也可快速上手。 | ||
+ | |||
+ | CircuitPython不支持定时器,硬件中断等一些特定用于微控制器的库,也不支持多线程的_thread 库,仅提供编写并发代码的 asyncio 库。 | ||
+ | |||
+ | 在CircuitPython所支持的微控制器和其Blinka所支持的单板计算机(SBCs)中,代码具有很好的可移植性,这得益于它在统一API上的努力。 | ||
* [https://codewith.mu/ Mu编辑器官方下载页面] | * [https://codewith.mu/ Mu编辑器官方下载页面] | ||
* [[ 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 | ||
'''参考资源''': | '''参考资源''': | ||
Line 481: | Line 501: | ||
[[File:Mircopython.png | 800px]] | [[File:Mircopython.png | 800px]] | ||
− | + | 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的理解。 | ||
* '''[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 496: | 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运行环境] |
Latest revision as of 02:00, 3 April 2023
Contents
介绍
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 2MB, 片外FLASH 8MB
- 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 规格表 | |
---|---|
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-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是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 是乐鑫官方推出的物联网开发框架,支持 Windows、Linux 和 macOS 操作系统。
建议开发者通过集成开发环境 (IDE) 安装 ESP-IDF:
- GitHub: ESP-IDF Eclipse 插件安装与使用指南
- ESP-IDF VSCode 插件 | GitHub: 安装与使用指南 | bilibili:ESP-IDF VSCode 插件快速操作指南
或者根据操作系统选择对应的手动安装流程:
API:
为了使你的BPI-Leaf-S3开发板可以通过USB-CDC刷写FLASH,需要设置开发板为固件下载模式。
有两种操作方法:
1.通过USB连接到电脑,按住BOOT键,再按一下RESET键并松开,最后松开BOOT键。
2.在断开供电的条件下按住BOOT键,再通过USB连接到电脑,最后松开BOOT键。
需要在设备管理器中确认接口,固件下载模式与普通模式下的接口序号可能是不一样的。
MicroPython
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 是一个开源嵌入式软硬件开发平台,用来供用户制作可交互式的嵌入式项目。
Arduino 集成开发环境(IDE)是此平台的软件核心,使用C/C++编程语言开发项目。
Arduino 最大的特性就是提供统一的API来开发所有它所支持的微控制器,具有非常良好的代码可移植性和可复用性。
此外它简化了搭建开发环境的过程,所有它所支持的微控制器的开发环境都可一键安装配置。
它还提供简单的一键式机制来编译和上传程序到微控制器中运行。
Arduino IDE中还集成了很多例程,辅有大量的注释,能帮助用户快速上手。
Arduino 社区中积累的大量的优秀开源项目可供参考与学习,还有相当多的芯片制造商提供的驱动库与API。
资料与资源
样品购买
- 比派科技官方速卖通店:https://www.aliexpress.com/item/1005004775634442.html
- SinoVoip 官方速卖通店 : https://www.aliexpress.com/item/1005004775859077.html
- 官方淘宝店: https://item.taobao.com/item.htm?spm=a2126o.success.0.0.25b04831CHV1Nc&id=684134360199
- OEM&OEM 定制服务: [email protected]