本专栏相关文章
Raspberry-Pi-PICO系列--第二篇 开发环境搭建-Mac系统_coder.mark的博客-CSDN博客https://blog.csdn.net/tianizimark/article/details/122709686Raspberry-Pi-PICO系列--第三篇 开发环境搭建-Ubuntu系统_coder.mark的博客-CSDN博客https://blog.csdn.net/tianizimark/article/details/122713031Raspberry-Pi-PICO系列--第四篇 开发环境搭建-Windows系统_coder.mark的博客-CSDN博客https://blog.csdn.net/tianizimark/article/details/123012504Raspberry-Pi-PICO系列--第四篇 开发环境搭建-Windows系统 + Visual Studio Code开发_coder.mark的博客-CSDN博客https://blog.csdn.net/tianizimark/article/details/123060724
Raspberry-Pi-PICO系列--第五篇 开发环境搭建-Windows系统(基于RT-Studio开发)_coder.mark的博客-CSDN博客https://blog.csdn.net/tianizimark/article/details/123057037Raspberry-Pi-PICO系列--第六篇 点亮第一个LED_coder.mark的博客-CSDN博客https://blog.csdn.net/tianizimark/article/details/122728081Raspberry-Pi-PICO系列--第七篇 创建自己的工程_coder.mark的博客-CSDN博客https://blog.csdn.net/tianizimark/article/details/123014765Raspberry-Pi-PICO系列--第八篇 高级篇使用SWD接口下载和调试(第一章)_coder.mark的博客-CSDN博客_swd下载接口https://blog.csdn.net/tianizimark/article/details/123015115Raspberry-Pi-PICO系列--第八篇 高级篇使用SWD接口下载和调试(第二章)_coder.mark的博客-CSDN博客_swd下载口https://blog.csdn.net/tianizimark/article/details/123020396
如果觉得博客写得不错,对你有帮助,可以打赏哦
一、前言
最近在某宝上淘了一块Raspberry-Pi-PICO开发板,样子就是下图左侧的那个mini板子。
这个开发板最吸引我的地方就是它居然还是一个双核芯片,但是无论从性价比还是从功能性上来看还是不如ESP32。
虽说如此如果在一些不需要WiFi或者蓝牙的场景中,这款芯片还是有一定的优势的,并且功能上也不差。
二、介绍
开发板的具体样子如下图所示,其中板载W25Q16JV 2MB的Flash用于存储代码,BOOTSEL按钮用于下载代码
从官方可以找到很多资料,总体上来讲还是对开发者很友好的,下面简单介绍一下。
特征
- 低功耗、高性能
- 双核 M0+处理器内核,最高时钟133MHz
- 264KB SRAM(6 Bank)、2MB的板载Flash内存,最大可以支持16MB,并且具有16KB的Cache
- 支持USB 1.1 主机/设备模式(直接通过板载USB UF2模式下载)
- 支持SWD调试和下载
- 26个多功能GPIO(即可复用为外设IO,并且其中有4个IO可用作ADC输入引脚)
- 2个SPI、2个I2C、2个UART、3个12bit的ADC、16个可控的PWM通道
- 内置温度传感器
- 加速的ROM内的浮点库
- 8个可编程IO(PIO)
- 4个ADC通道,最大采样率0.5MSa/s,12bit精度,可从外部引入参考电压
- 6个专用IO用于SPI Flash以支持XIP
其中最有意思的是PIO功能,这个有点像FPGA的功能,开发者用此功能来自行实现IO时序逻辑来支持类似SD卡、I2S、VGA等外设。
下载方式可以直接使用USB UF2模式,这样就可以不需要单独购买调试器。
芯片引脚
芯片架构
从上图中我们可以看到有Proc0和Proc1两个完全对称的处理核心,并且具有DMA控制器、USB控制器、PIO0/PIO1、XIP/Cache。
我们在自己开发应用程序时,是烧写到外部Flash中,然后芯片启动时,其内部的ROM中的bootloader通过XIP/Cache加载程序执行。
总线结构
从上图我们可以很清楚的看到内部各个核心与外设以及SRAM如何互连的。
其中需要注意的是DMA只有一个读端口,一个写端口; AHB总线与APB总线通过APB桥进行互连;内部的SRAM通过6个块连接到AHB总线上,这样的设计可以CPU访问某一个块的同时DMA可以访问其他块。
三、开发
这块开发板支持C/C++ SDK开发,也可以用python开发,官网做了很好的文档帮助开发者从头开始上手。
官方的仓库
更有意思的是,上海睿赛德公司RTThread也对此芯片做了rtos的适配,网上也有FreeRTOS的移植,可玩性很高。这样我们又可以低成本的学习RTOS的开发(比STM32F103香多了)。
除了这个最基本开发板,官网上还提供的音频开发板的电路图,有I2S、VGA、SD卡的功能。(很希望会PCB的同学做一个分享一下)
对于刚接触单片机编程的同学,特别值得从此块开发板开启单片机学习之旅。
后面我会介绍如何在Mac OS、Ubuntu、Windows上搭建开发环境(官方的开发环境是用Raspberry Pi开发板)