RASPBERRY PI PICO 树莓派PICO开发板双核高性能低功耗RP2040芯片

网友投稿 905 2022-05-28

01

RASPBERRY PICO

1.简介

RaspBerry Pi Pico是一款低价格、高性能的微控制器电路板,具有丰富灵活的数字接口,主要特点包括有:

RP2040 microcontroller chip designed by Raspberry Pi in the United Kingdom

Dual-core Arm Cortex M0+ processor, flexible clock running up to 133 MHz

264KB of SRAM, and 2MB of on-board Flash memory

Castellated module allows soldering direct to carrier boards

USB 1.1 with device and host support

Low-power sleep and dormant modes

Drag-and-drop programming using mass storage over USB

26 × multi-function GPIO pins

2 × SPI, 2 × I2C, 2 × UART, 3 × 12-bit ADC, 16 × controllable PWM channels

Accurate clock and timer on-chip

Temperature sensor

Accelerated floating-point libraries on-chip

8 × Programmable I/O (PIO) state machines for custom peripheral support

相关资料链接:

RP2040 DataSheet

Raspberry Pi Pico 数据手册

Pico Python SDK

2.实验电路板

今天刚刚从 RASPBERRY淘宝购买(¥:44.99)的 RP2040刚刚到货了。

两个购买的连接:

https://item.taobao.com/item.htm?spm=a1z09.2.0.0.7dfc2e8dr0gXNj&id=637379855715&_u=onvskcd1abb :¥:39.99

RASPBERRY 淘宝购买(¥44.99)

相关的资料可以在 RaspBerry PI PICO官方网站 寻找。

02

初步测试

1.焊接排针

焊接之后,使用USB电缆连接到电脑,会出现一个名字为:RPI-RP2磁盘号码。其中包括有:

2.初步使用PICO

根据 Getting started with MicroPython 中的的Drag and Drop MicroPython的操作步骤,将下载 Download UF2 File 的

pico_micropython_20210121.uf2

拷贝到RPI-RP2磁盘,对于PI PICO进行处世王MicroPython解释器。

RPII-RP2磁盘消失。不过计算器出现了一个初始化错误的USB设备:

3.供PICO 5V电源

根据PICO数据手册介绍,VSYS是供给电路板5V电源的引脚。按照下面连接方式在面包板上给PICO施加5V电源。

错误:在一开始的时候,给PICO出现正负极性相反。在限流DC+5V作用下,供电电流别限制在1A的幅值。

静态电路板工作电流: 16.5mA。

3V3 OUT(PIN36) : 3.258V

RUN(PIN30):3.3V

TX(PIN1) :0V

奇诡

RX(PIN2) : 0V

奇诡

注意:

既然已经初始化成立MicroPython工作的状态,为什么TX0,RX0初始化后的电压为0V?*

4.测试TX,RX

利用STM32的下载传宝连接PICO的 UART0的TX(PIN1),RX(PIN2)测试它对于外部发送的信号的相应。

在PICO上电过程中在TX没有测量到任何字符输出。

03

安装Board CDC 驱动

1.下载MicroPytho Firmware

从 MicroPython 网站下载 Firmware for Raspberry PI Pico 最新的UF2。根据前面的操作方式,按住BOOTSEL按键将RASPBERRY接入PC的USB(Mini-USB)。将下载的Firmware拷贝进入出现的新的U盘内。系统重新启动,出现新的设备。

但是在Win7下,CDC无法自动安装驱动。根据 树莓派 PI Pico 安装 MicroPython 后会出现 Board CDC 未知设备 的说法:

树莓派 PI Pico 安装 MicroPython 后会出现 Board CDC 未知设备的解决办法

https://files.cnblogs.com/files/czcbzc/Board_CDC_RP2_pico-serial.zip

然后在设备管理器中手动安装

自动安装不了

在https://files.cnblogs.com/files/czcbzc/Board_CDC_RP2_pico-serial.zip下载: Board CDC Driver

2.测试串口

使用STM32Bootload界面测量Pi Pico Serial Port。但是并没有接收到任何对应的反馈响应信息。

3.使用Python测试

使用Python直接对串口进行操作,可以得到对应的结果。

#!/usr/local/bin/python # -*- coding: gbk -*- #============================================================ # TEST1.PY -- by Dr. ZhuoQing 2021-02-24 # # Note: #============================================================ from head import * import serial from _ast import Or from serial.serialutil import SerialException #------------------------------------------------------------ sport = serial.Serial() sport.baudrate = 115200 sport.timeout = 0.05 try: sport.port = 'COM6' except: printf('Set sport port COM6 error. ') try: sport.open() except serial.serialutil.SerialException: printf('Open sport port COM6 error.') else: printf('Open sport port COM6 Ok.') #------------------------------------------------------------ sport.write(b"2**3\r\r\r") printf(sport.read(100).decode('utf-8')) #------------------------------------------------------------ # END OF FILE : TEST1.PY #============================================================

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

输出结果:

Open sport port COM6 Ok. 2**3 8 >>> >>> >>>

1

2

3

4

5

6

输入“help()”最终输出内容:

help() Welcome to MicroPython! For online help please visit https://micropython.org/help/. For access to the hardware use the 'machine' module. RP2 specific commands are in the 'rp2' module. Quick overview of some objects: machine.Pin(pin) -- get a pin, eg machine.Pin(0) machine.Pin(pin, m, [p]) -- get a pin and configure it for IO mode m, pull mode p methods: init(..), value([v]), high(), low(), irq(handler) machine.ADC(pin) -- make an analog object from a pin methods: read_u16() machine.PWM(pin) -- make a PWM object from a pin methods: deinit(), freq([f]), duty_u16([d]), duty_ns([d]) machine.I2C(id) -- create an I2C object (id=0,1) methods: readfrom(addr, buf, stop=True), writeto(addr, buf, stop=True) readfrom_mem(addr, memaddr, arg), writeto_mem(addr, memaddr, arg) machine.SPI(id, baudrate=1000000) -- create an SPI object (id=0,1) methods: read(nbytes, write=0x00), write(buf), write_readinto(wr_buf, rd_buf) machine.Timer(freq, callback) -- create a software timer object eg: machine.Timer(freq=1, callback=lambda t:print(t)) Pins are numbered 0-29, and 26-29 have ADC capabilities Pin IO modes are: Pin.IN, Pin.OUT, Pin.ALT Pin pull modes are: Pin.PULL_UP, Pin.PULL_DOWN Useful control commands: CTRL-C -- interrupt a running program CTRL-D -- on a blank line, do a soft reset of the board CTRL-E -- on a blank line, enter paste mode For further help on a specific object, type help(obj) For a list of available modules, type help('modules') >>>

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

4.闪烁LED(PIN25)

sport.write(b"from machine import Pin\r") sport.write(b"led = Pin(25, Pin.OUT)\r") for i in range(100): sport.write(b"led.value(1)\r") time.sleep(.5) sport.write(b"led.value(0)\r") time.sleep(.5) printf(sport.read(10000).decode('utf-8'))

1

2

3

4

5

6

7

8

9

10

5.上载完整程序

上载一个执行程序,需要将前面运行的程序中断,然后输入程序,最后执行。

下面给出了对应的过程:

#!/usr/local/bin/python # -*- coding: gbk -*- #============================================================ # TEST1.PY -- by Dr. ZhuoQing 2021-02-24 # # Note: #============================================================ from head import * import serial from _ast import Or from serial.serialutil import SerialException #------------------------------------------------------------ sport = serial.Serial() sport.baudrate = 115200 sport.timeout = 0.05 try: sport.port = 'COM6' except: printf('Set sport port COM6 error. ') try: sport.open() except serial.serialutil.SerialException: printf('Open sport port COM6 error.') else: printf('Open sport port COM6 Ok.') #------------------------------------------------------------ sport.write(b'\x04') sport.write(b"from machine import Pin, Timer\r") sport.write(b"led = Pin(25, Pin.OUT)\r") sport.write(b"tim = Timer()\r") sport.write(b"def tick(timer):\r") sport.write(b"global led\r") sport.write(b"led.toggle()\r") sport.write(b"\r") sport.write(b"\r") sport.write(b"\r") sport.write(b"tim.init(freq=10, mode=Timer.PERIODIC, callback=tick)\r") printf(sport.read(10000).decode('utf-8')) #------------------------------------------------------------ # END OF FILE : TEST1.PY #============================================================

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

程序执行后的结果返回:

Open sport port COM6 Ok. MPY: soft reboot MicroPython v1.14 on 2021-02-24; Raspberry Pi Pico with RP2040 Type "help()" for more information. >>> from machine import Pin, Timer >>> led = Pin(25, Pin.OUT) >>> tim = Timer() >>> def tick(timer): ... global led ... led.toggle() ... ... ... >>> tim.init(freq=10, mode=Timer.PERIODIC, callback=tick) >>>

1

2

3

4

5

6

7

8

9

10

11

12

13

RASPBERRY PI PICO 树莓派PICO开发板双核高性能低功耗RP2040芯片

14

15

16

▌结论

对于刚刚到货的Raspberry PI Pico 电路板焊接相关外接的引脚,并通过Micro USB 线缆对于电路板初始化成对应的MicroPython状态。

通过实验发现遇到了两个问题:

1) USB对应的CDC出现了初始化错误:这部分通过 第3部分,下载对应的Board-CDC驱动解决了。

2)电路板初始化对应的串口输出电平是低电平,说明电路板实际上并没有工作在MicroPython的 REPL状态。这部分根据手册给出,说明内核需要重新进行编译之后才能够将REPL落实在对应的串口上。

此时,这两个电路板还无法进行相应的实验。

■ 相关文献链接:

RP2040 DataSheet

Raspberry Pi Pico 数据手册

Pico Python SDK

RASPBERRY淘宝购买

Getting started with MicroPython

Download UF2 File

Getting Started with Raspberry Pi Pico using MicroPython and C

Raspbery PI RP2040

Download Firmware.uf2

史上最全ASCII码对照表0-255(%d)

单片机 硬件开发

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【精选单品】用更专业的高校系统管理平台,实时管控教学进度,全面了解教学质量
下一篇:盘点那些进行“网络编程”必须要知道的基础知识!
相关文章