精华内容
下载资源
问答
  • TLDR:没什么特色,和普通单片机一看,还不如ESP32S2....支持VSC和Eclipse,CLion,推荐树莓派下开发,也支持其他平台下开发.开发语言:C/Python/ASM 支持平台:树莓派(推荐)/Windows/Ubuntu/Mac(难以配置)...

    TLDR:

    没什么特色,和普通单片机一看,还不如ESP32S2.

    目前开发资源还很有限,而且操作起来也比较麻烦.

    可以使用OpenOCD进行调试,也就是说,可以用标准JTAG工具魔改驱动后调试,比如老朋友Zadig.

    支持VSC和Eclipse,CLion,推荐树莓派下开发,也支持其他平台下开发.

    开发语言:C/Python/ASM 支持平台:树莓派(推荐)/Windows/Ubuntu/Mac(难以配置)

    Pico的基本硬件资源:

    2个SPI,2个I2C,2个UART,3个12位ADC,16个PWM,与传统单片机一样需要Remap/Alt.

    片上温度传感器/浮点加速/PIO状态机/内置震荡/双核133 MHz

    邮票孔模块/可能后续还会提供单独芯片出售(我自己的猜测)

    可以用1个Pico调试另一个Pico,估计和CMSIS-DAP差不多原理.

    官方支持MicroPython/C开发

    一开始肯定是要先部署环境,推荐要在树莓派系统中才能配置.(其实Ubuntu x64,Windows也可以,不过需要自己解决一些问题,或者后续我再写下.)

    git clone https://github.com/raspberrypi/pico-setup.git

    pico-setup/pico_setup.sh

    cff2f753e0416f128a29162e3e757d3a.png安装环境需要漫长的等待…

    然后还要根据喜好,安装C或者Python的SDK.

    git clone -b master https://github.com/raspberrypi/pico-sdk.git

    cd pico-sdk

    git submodule update --init

    cd ..

    git clone -b master https://github.com/raspberrypi/pico-examples.git

    代码目录:

    0052a6f9a3db0190159db84345860457.png正在编译整个example工程,这里显示的是blink程序的源码.

    编译成功后就得到UF2,拖到那个设备模拟出来的U盘里面,就可以更新固件了,如果本身有固件,还要按着BOOT按键才能进入下载固件的状态.

    f1cf4361d200cf8975e5383a121b4749.png

    为了降低开发门槛,还搞了一个GUI配置生成工程代码的工具,毕竟还要写CMake什么,很多人头疼不已.(其实我也头疼,因为我懒.)

    git clone https://github.com/raspberrypi/pico-project-generator.git

    cd pico-project-generator

    ./pico_project.py --gui

    大概是这样的.

    6bec1a7c78736d7578e15843aa43321a.pngGUI配置工具

    能很方便生成VSC工程,连中断函数都给出来了,然而没直接选中编译工具和调试配置,可能是初期的BUG吧.

    7625c863aeb8a1f7e9b75217732a943d.png代码生成效果

    现在尝试MicroPython方式开发.

    git clone -b pico --recurse-submodules https://github.com/raspberrypi/micropython.git

    cd micropython

    make -C mpy-cross

    cd ports/rp2

    make

    经过一轮骚操作,就能得到firmware.uf2/firmware.elf,当然是把firmware.uf2丢到显示的U盘里面.

    08e2d52b76ad879c61a878bd7cdf489c.png得到UF2文件.

    MicroPython应该不用教程了吧,很熟悉的配方了.

    a7b8e6a82c336fab183d6b731081b6df.png

    还有一个rp2模块,可以嵌入汇编代码,大家还是看官方参考:https://github.com/raspberrypi/pico-micropython-examples/tree/master/pio/pio_1hz.py#L1-L33 (😀,有多少人会写汇编?)

    其他模块的,暂时就不扯了,不然扯太远了,比如内置的ssd1306库?都可以在官方repo里找到文档和example,不过,值得注意的是,目前MicroPython不能支持保存代码,所以,掉电就太监了~

    展开全文
  • 树莓派Pico测评】- 开始写程序[复制链接]上次发了一个贴子,大家很活跃,这次再来一个怎么写程序,官网上关于这款开发板介绍很详细首先这款开发板是自研芯片,型号为RT2040双核 CM0+ 133Mhz外设不用多说了,该有的...

    【树莓派Pico测评】- 开始写程序

    [复制链接]

    2a0fb537e2975b3e6b702942b53e1d04.gif

    上次发了一个贴子,

    大家很活跃,这次再来一个

    怎么写程序,官网上关于这款开发板介绍很详细

    首先这款开发板是自研芯片,型号为RT2040

    双核 CM0+ 133Mhz

    外设不用多说了,该有的全部都有,IO有30个,不像其它芯片那样有PA,PB,PC等,

    IO只有编号,GP0,GP29

    另外还有一个主要特点是有可编程IO,这个就比较牛了,可以做类似于CPLD的事情,

    有9条指令,实际上就是一个微型CPU了

    有跳转,等待,输入,输出,发送,接收,移动,中断,设置

    16位指令编码,其中3位指令码,5位延时码,等

    它可以做什么?可以模拟常规接口,像SPI,I2C,UART,PWM完全没问题,更像时序较严格,快的 WS2812也完全没问题

    官方手册用了很大的篇幅来介绍PIO

    以后我专门发个贴子来玩玩它

    言归正转,说如何开始写程序?

    上次例子是往里边下载现成的UF2程序

    UF2和HEX差不多吧,关于它的介绍,这里有篇文章,

    我就不多说了 https://blog.csdn.net/kh766200466/article/details/103633649

    如何自己编译程序呢?

    首先这个芯片是Cortex M0+的,

    板上带有SWD调试接口

    我满怀激动的心情焊接了SWD接口,在KEIL里查找CPU,

    一查找开发板重启,再查找还是重启,反正找不到

    后来到官方论坛中查找了一下,发现这玩意双核的,好像不太一样,反正我手时的J-LINK V9是不行,

    不知道更新的J-LINK 是否可以,有更新的朋友可以试一下

    这个芯片寄存器手册官网上是有的,很详细,但我J-LINK用不了,所以就没继续测试下去

    官方的SDK是可以在LINUX或WINDOWS下编译的,

    但我在WINDOWS下尝试多次还是失败,

    GIT,PYTHON,VS2019,GCC全都好了,可CMAKE还是失败,

    只好放弃了

    官方重点推荐的还有另一种编程方式,即MicroPython编程

    这个也比较有意思

    先下载MicroPython低层固件

    按下板上按钮不松开,再插上USB上电,此时出现盘符,拖入固件

    ce3ba9a0bcbe538e684e81fcbb65ad52.gif

    2021-1-27 09:54 上传

    点击文件名下载附件

    然后就绪后设备管理器会出现一个串口,

    下载官方推荐的MicroPython IDE软件,名叫Thonny,

    链接 : https://github.com/thonny/thonny/releases/download/v3.3.3/thonny-3.3.3.exe

    下载后,安装 ,打开,配置解释器和串口,然后就可以玩耍了

    a26d678767e8b431ecd7a25f1936bdc5.gif

    企业微信截图_20210127095728.png (30.72 KB, 下载次数: 0)

    2021-1-27 09:59 上传

    以下代码来个LED闪烁灯,0.2秒开关一次,程序还是比较简单的

    import machine

    import utime

    led_onboard = machine.Pin(25, machine.Pin.OUT)

    while True:

    led_onboard.value(1)

    utime.sleep_ms(200)

    led_onboard.value(0)

    utime.sleep_ms(200)

    写好后直接点运行按钮即可下载到开发板里运行

    最后再来个极端测试,注释掉延时指令看一下

    import machine

    import utime

    led_onboard = machine.Pin(25, machine.Pin.OUT)

    while True:

    led_onboard.value(1)

    #utime.sleep_ms(200)

    led_onboard.value(0)

    #utime.sleep_ms(200)

    不测不知道,一测下一跳,输出脉冲竟然能跑到50.3731KHZ

    解释型的指令能跑这么快已经很不错了,

    也就是说 led_onboard.value(1) 这个指令时间是小于 20uS的

    解释性的比跑普通51还要快了,所以用MicroPython来跑控制完全没问题,

    关键是写程序方便啊

    来个PDF教程,

    正在审核,稍候补充

    展开全文
  • raspberry_pi_pico 玩我的树莓派pico
  • 这次拿来开刀的是WS2812,... https://github.com/raspberrypi/pico-examples/blob/master/pio/ws2812/ws2812.pio.program ws2812.side_set 1.define public T1 2.define public T2 5.define public T3 3.lang_opt p...

    这次拿来开刀的是WS2812,具体代码可见 => https://github.com/raspberrypi/pico-examples/blob/master/pio/ws2812/ws2812.pio

    .program ws2812

    .side_set 1

    .define public T1 2

    .define public T2 5

    .define public T3 3

    .lang_opt python sideset_init = pico.PIO.OUT_HIGH

    .lang_opt python out_init = pico.PIO.OUT_HIGH

    .lang_opt python out_shiftdir = 1

    .wrap_target

    bitloop:

    out x, 1 side 0 [T3 - 1] ; 先从移位寄存器取出1个bit到x,并且数据引脚为0,保持T3个周期.

    jmp !x do_zero side 1 [T1 - 1] ; 如果取出的这个bit是0,则跳转到设置0,跳转前保持1状态T1个周期.

    do_one:

    jmp bitloop side 1 [T2 - 1] ; 如果上面没跳转就会到这里设置1,保持高T2个周期.

    do_zero:

    nop side 0 [T2 - 1] ; 如果跳转了,就保持T2个周期的低.

    .wrap

    其中wrap_target到wrap包裹的部分,是整个函数的实体,假设PUSH进去的是0xAA(10101010b),其实际时序就会如下,记住命令本身也占一个周期:

    [T3T1T2]…. => [0001111111][0001100000]……..

    fc5a0f26580313973b90591637925260.png

    注意他实际上被捕获到是:

    (LLL)[HHHHHHHLLL][HHLLLLLLLL]….

    这样只要每周期是120ns,就可以满足时许的要求(似乎有些超出),发送0要求([200 ~ 500]ns + [650 ~ 950]ns),发送1要求([550 ~ 850]ns + [450 ~ 750]ns).

    (LLL)[840ns H + 360 ns L][240 ns H + 960 ns L]

    7d52373ab3333b4df9856bffb1d2266d.png

    由于一次传输32B,所以最后的8B就没有意义了,要连续传输必须用其他方法.

    d575dc7d2876df4f6fb5f24b7142c5df.png

    官方这个程序是简洁,但是不够完美,时许吻合度不够,而且一旦空闲就会复位,我决定重写一个我自己的版本,虽然没那么精简,就开始试试.

    我期望的目标还是120ns一个周期,但是0编码成[HHHLLLLLL],1编码成[HHHHHHLLLLL]

    .wrap_target

    bitloop:

    out x, 1 side 0 [3] ; Side-set still takes place when instruction stalls

    jmp !x do_zero side 1 [2] ; Branch on the bit we shifted out. Positive pulse

    do_one:

    nop side 1 [2] ; Continue driving high, for a long pulse

    jmp bitloop side 0 ; Padding zero

    do_zero:

    nop side 0 [1] ; Or drive low, for a short pulse

    .wrap

    测试结果:

    95a70d1d8d7999cdf330c5c37f252733.png

    程序中除了汇编部分,还有入口部分.

    static inline void ws2812_program_init(PIO pio, uint sm, uint offset, uint pin, float freq, bool rgbw) {

    pio_gpio_init(pio, pin);

    pio_sm_set_consecutive_pindirs(pio, sm, pin, 1, true);

    pio_sm_config c = ws2812_program_get_default_config(offset);

    sm_config_set_sideset_pins(&c, pin);

    sm_config_set_out_shift(&c, false, true, rgbw ? 32 : 24);

    sm_config_set_fifo_join(&c, PIO_FIFO_JOIN_TX);

    int cycles_per_bit = 11;

    float div = clock_get_hz(clk_sys) / (freq * cycles_per_bit);

    sm_config_set_clkdiv(&c, div);

    pio_sm_init(pio, sm, offset, &c);

    pio_sm_set_enabled(pio, sm, true);

    }

    就刚才我们硬编码了Timing,所以这里也要做相应修改,比如cycles_per_bit应该改成11,这样才能刚好满足,这里还演示了如何设置sideset引脚,在主程序中还用pio_sm_put_blocking写入移位寄存器.

    到此为止,就掌握了PIO的基本使用,总体来说,因为编程语言因素,还是有点吃力的,但是由于时间确定性和自由度,这一定会成为一个Magic外设.

    展开全文
  • 树莓派Pico小掌机工程.(附带电路图,基础源码) LCD使用ST7789,通过PCF8574扩展按键IO,s_task协程库模拟多线程 I2S部分未完成,可自行修改使用pwm方式播放简单音乐 使用Vscode+PlatformIO 基于Arduino库开发. 目前是...
  • Pico入门(一)准备开始点灯...1.网购一块树莓派pico开发板及套件(50Rmb) 2.一台电脑 3.一颗坚持不懈的心 开始 1.使用usb将树莓派pico与电脑连接 2.打开后来到树莓派pico的文件夹下面:有两个文件打开htm文件来到这里 ...

    Pico入门(一)

    准备

    1.网购一块树莓派pico开发板及套件(50Rmb)
    2.一台电脑

    请添加图片描述

    开始

    1.使用usb将树莓派pico与电脑连接
    2.打开后来到树莓派pico的文件夹下面:有两个文件打开htm文件来到这里
    https://www.raspberrypi.org/documentation/microcontrollers/micropython.html
    3.然后下载uf2文件,下载后拖入树莓派pico文件夹中
    4.此时伴随叮咚一声,会发现树莓派文件夹找不到了,别担心,这是正常现象.
    5.安装tonny
    6.安装完成后打开tonny,在右下角选择在pico上运行
    在这里插入图片描述
    7.运行如下代码

    from machine import Pin
    import time
    LED = Pin(25,Pin.OUT)
    if __name__ == '__main__':
        while True:
            LED.value(0)
            time.sleep(1)
            LED.value(1)
            time.sleep(1)
    
    

    点灯成功

    请添加图片描述

    展开全文
  • 树莓派pico入门学习笔记(一)

    千次阅读 2021-02-02 21:44:57
    树莓派pico入门学习笔记 选择自己熟悉的编程语言 树莓派pico提供C/C++和micropython两种编程语言开发环境,但是“人生苦短,我学Python”,要在最短的时间玩转树莓派pico,那当仁不让的是选择后者。 IDE的选择 ...
  • 产品简介Raspberry Pi Pico 是一款树莓派官方设计的低成本,高性能的微控制器开发板,具有灵活数字接口。硬件上,采用 Raspberry Pi 官方自主研发的 RP2040 微控制器芯片,搭载了ARM Cortex M0 + 双核处理器,高达 ...
  • 树莓派pico项目实战 音频测量 电赛延期,闲暇之余参加了硬禾学堂的“暑期一起练”项目,选择了树莓派pico这个平台。目前项目已经开源到了电子森林,连接如下: https://www.eetree.cn/project/detail/498 作品展示...
  • 文章目录树莓派pico使用MicroPython驱动oled屏显示中文和英文介绍硬件连接示例显示英文字符显示汉字 树莓派pico使用MicroPython驱动oled屏显示中文和英文 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请...
  • 树莓派Pico上手初体验,Hello world 双核MCU. 树莓派MCU极简开发流程,MCU能否承受住降维打击? 树莓派Raspberry Pico 开发环境建立,运行Hello world程序点灯,体验代码基础和开发流程. 树莓派Pico开发环境建立 树莓派...
  • 本博文根据树莓派基金会2021年1月21日公开的两部最新官方英文技术文献[1]、[2]以及博主最近使用树莓派Pico开发板的一些思考与应用实践整理。 一、树莓派Pico开发板硬件扩展接口解析 树莓派Pico开发板(以下简称Pico/...
  • 今天拿到了一块21年1月22日树莓派基金会最新发布的树莓派Pico迷你开发板(见图1)。本文将介绍Windows环境下树莓派Pico迷你开发板MicroPython REPL快速上手实践,并给出几个MicroPython程序示例。 图1 树莓派Pico迷你...
  • 本文介绍利用一块树莓派Pico开发板、一块面包板、两个按键、1个LED发光二极管和7跟导线等少量元器件实现树莓派Pico扩展按键接口的方法,并给出所对应按键接口的MicroPython编程示例。 一、树莓派Pico扩展按键接口的...
  • 针对树莓派系列最新的树莓派Pico迷你开发板扩展应用,介绍树莓派Pico PyCharm开发环境设置、树莓派Pico扩展接口使用以及MicroPython Pico扩展接口控制编程。 一、 安装PyCharm及MicroPython插件 1.安装PyCharm ...
  • 一、ADC读取会ADC引脚基本使用import machine #导入机器库import utime #导入时间库sensor_temp = machine.ADC(4) #选择设置ADC通道,板子有四路ADC,第四路连内部温度传感器conversion_factor = 3.3 / (65535) #ADC...
  • 树莓派PICO-oled避坑指导 一、前文 注意:本教程使用的编辑器为Thonny,语言为micropython 案例将使用096英寸128x64的iicoled屏,库为ssd1306py 二、从零开始配置环境(对于新手玩家) 1.配置树莓派PICO ...
  • 一、树莓派Pico直流步进电机接口技术 1.直流步进电机及其驱动电路原理介绍 2.Pico开发板扩展GPIO口与步进电机驱动接口 二、树莓派Pico电机运动控制MicroPython+pioasm编程实现 1.Pico步进电机运动控制MicroPython...
  • 目前全网最详细的树莓派 Pico入门指南!

    千次阅读 多人点赞 2021-03-02 00:46:50
    2021年1月底的时候,树莓派基金会发布了一个重磅消息,推出了进军微控制器领域的树莓派Pico。功能强劲,价格便宜的特性让Pico受到了全世界创客们的关注,这篇文章就来给大家介绍一下Pic...
  • 树莓派Pico有很多GPIO,全称是General-purpose input/output,通用型输入输出,也就是我们俗称的IO口,IO引脚…… 背面图 把树莓派Pico翻到背面,可以看到两边的焊盘上有很多标记有GP后面跟着一个数字的,就是一个...
  • 树莓派 PICO基础教程(基于MicroPython)

    千次阅读 多人点赞 2021-05-31 21:51:31
    文章目录1 树莓派 PICO 简介1.1 简介1.2 配置 [^2]1.3 引脚图1.4 尺寸2 安装2.1 烧录固件2.2 安装IDE(Thonny IDE)2.3 离线运行程序3 基础3.01 点亮板载LED灯3.02 板载LED闪烁3.03 LED流水灯3.04 按键实验3.05 外部...
  • Thonny IDE是Python编程爱好者广泛使用的一种集成开发环境(IDE: Integrated Development Environment),本文以树莓派家族中的最新款树莓派Pico(Raspberry Pi Pico)迷你开发板产品为例,介绍运用Thonny Python IDE...
  • 作为树莓派最新的产品,发布于2021年1月20日的树莓派Pico是基于树莓派那边自主研发的一款双核MCU RP2040,这一个MCU提供了超低功耗、极低的 I/O 延迟,讲白了就是一款类似STM32系列的产品。 所以它的水平我也是很...
  • 一、树莓派Pico开发板直流电机接口技术 H桥驱动电路的基本工作原理 2.典型H桥驱动电路分析 3.DRV8833双H桥电机驱动模块介绍 4.Pico开发板与直流电机接口 二、Pico开发板扩展口PWM电机调速控制MicroPython编程实现 1...
  • 浏览器中的串行替换 使用chrome的串行api进行树莓派pico的micropython repl
  • 二、树莓派Pico与ADXL345加速度传感器SPI总线接口 三、树莓派Pico与ADXL345加速度传感器MicroPython通信程序示例 一、SPI总线接口介绍 SPI(Serial Peripheral Interface)总线是Motorola公司推出的一种串行接口标准...
  • 树莓派Pico测评】- 开始编译程序2[复制链接]本帖最后由 fxyc87 于 2021-1-28 11:05 编辑上次发了一次贴子 链接讲如何编译程序,不过没成功,后来讲如何用MicroPython来玩后来不死心,再试,终于算是成功了以下分享...
  • 树莓派Pico开发板所使用的微控制器(MCU)型号是RP2040双核MCU,它提供了可编程IO(PIO, Programmed I/O)。 许多开发板都有针对特定通信方式设置好的GPIO引脚,如I2C、SPI、UART等,但是如果想增加此类引脚的数量,...
  • 树莓派Pico(Raspberry Pi Pico) Windows下开发环境——命令行下编译构建项目 从命令行构建 配置 SDK 路径 通过选择Windows > Visual Studio,从Windows菜单中打开一个开发人员命令提示符窗口 2019 >开发人员...
  • 树莓派Pico(Raspberry Pi Pico) Windows下开发环境——Visual Studio Code 下编译构建项目 从 Visual Studio Code 构建 添加 Cmake Tools 扩展,操作如下所示,安装完成后重启 Visual Studio Code 注意:启动时要从 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 823
精华内容 329
关键字:

树莓派pico