4138|1

422

帖子

4

TA的资源

纯净的硅(初级)

楼主
 

【微雪RP2040双核开发板】MicroPython在RP2040上的指令集和使用 [复制链接]

MicroPython在RP2040上的指令集和使用

1、对应于thonny的MicroPython支持,是REPL模式,也就是大家非常熟悉的会话模式。在固件中,缺省设置是通过USB口交互。也可以自定义用UART交互,使用的UART参数为115200-9-1-N,引脚为0,1,4,5

  具体编译的方法也很简单,就是要把源代码目录下的ports/rp2/mpconfigport.h文件,其中 MICROPY_HW_ENABLE_UART_REPL 的数值从0改为1。编译成功后如上帖,进入boot模式复制到新增的驱动器后就自动更新了。

 

2、RP2040的microPython功能

RP2040使用的是标准库,可以从标准官网上找到,https://docs.micropython.org/en/latest/library/machine.html ,可用的标准库如下

  对应于基于machine 的主要是以下类,这些是基于microPython的通用类
◦ machine.Pin class.
◦ machine.Timer class.
◦ machine.ADC class.
◦ machine.I2C and machine.SoftI2C classes.
◦ machine.SPI and machine.SoftSPI classes.
◦ machine.WDT class.
◦ machine.PWM class.
◦ machine.UART class

对应于RP2040的转有的是PIO库
◦ PIO hardware access library ,PIO硬件访问
◦ PIO program assembler,PIO程序汇编,
◦ Raw flash read/write access,PIO直接访问Flash内存

因为RP2040是双核的,在MicroPython还可以通过thread来进行双核开发。所以,基于RP2040的micro Python编程还是比较强大的。

以下面简单的点灯代码为例,是如下实现的。

from machine import Pin
led = Pin(25, Pin.OUT)
led.value(1)
led.value(0)

把LED.value()的赋值放在loop循环中就可以实现最基础的电灯,使用machine.PWM(),就可以实现呼吸灯。

3、RP2040的外部设备访问

    RP2040的外部设备,如LCD,运动传感器等,都是通过SPI和I2C的访问实现的。在上一帖中,对于LCD的写入和控制,就是用SPI地址的读写实现的,按照LCD的控制流程,进行LCD寄存器额SPI写入。对于6轴姿态传感器是用I2C的访问实现的。

   在其他RP2040定制版本,如连接WIFI,BLE等无线连接的,其实是通过UART等模块,用AT指令进行读写,实现了无线连接,若RP2040-W,就是这样一款wifi无线RP2040.

4、从microPython的代码分析,其实是用最少的指令集实现对嵌入式MCU的控制。这个是RP2040的一个开放的开发策略,这些功能和代码,感觉和arduino似曾相识,如用DigitalWrite(),adc.Read()等,逻辑上非常相似。都是在底层的内核上再wrap了一层通用的解释型代码,实现开发的快速上手。而且整个开发环境简单明了,不需要很复杂的工具,就能安装驱动,构建开发环境。

基本逻辑是出厂配置一个可以用USB直接连接访问的bootloader,在boot模式的时候作为一个外置U-disk,提供拖拽的方式写入分别适用于microPython和C++的驱动,随后在编程的代码在这个驱动之上实现第二层的代码执行。

前面已经描述了如何安装microPython驱动支持,然后用thonny快速编程的过程。后面,还要用arduino演示如何用arduino的驱动实现对于arduino的支持。arduino的开发,也是对于c++的支持和应用。

 

 

 

 

 

 

此帖出自移动便携论坛

最新回复

使用的RP2040使用的是标准库,在标准官网上找到这个还是挺方便的   详情 回复 发表于 2023-1-8 09:01
点赞 关注
 
 

回复
举报

6609

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

使用的RP2040使用的是标准库,在标准官网上找到这个还是挺方便的

此帖出自移动便携论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表