模板: Pico-ETH-CH9121 for Pico use

来自Waveshare Wiki
跳转至: 导航搜索

Pico使用教程

硬件连接

您可以对照以下表格连线。

Pico连接引脚对应关系
ETH Pico/Pico2 功能
5V VSYS 电源输入
GND GND 电源地
RXD1 GP0 串行数据输入
TXD1 GP1 串行数据输出
RXD2 GP4 串行数据输入
TXD2 GP5 串行数据输出
CFG0 GP14 网络配置使能脚
RST1 GP17 复位

直连

Pico-ETH-CH9121-connect.jpg

  • 如需使用屏幕,请将Pico-ETH-CH9121上的CFG0短路帽拔掉。
  • 将RST1短路帽拔掉,上电会直接启动,无需下载程序。


基础介绍

MicroPython系列
【MicroPython】Pico的基础介绍与环境安装

【MicroPython】machine.Pin类函数详解
【MicroPython】machine.PWM类函数详解
【MicroPython】machine.ADC类函数详解
【MicroPython】machine.UART类函数详解
【MicroPython】machine.I2C类函数详解
【MicroPython】machine.SPI类函数详解

C/C++系列
【C/C++】 Windows教程1——环境搭建

【C/C++】 Windows教程2——创建工程

教程名3
列表3
教程名4
列表4
教程名5
列表5
教程名6
列表6
教程名7
列表7
教程名8
列表8

程序下载

打开树莓派终端,执行:
从我们官网下载。

sudo apt-get install p7zip-full
cd ~
sudo wget  https://www.waveshare.net/w/upload/a/a4/Pico_ETH_CH9121_CODE.7z
7z x Pico_ETH_CH9121_CODE.7z -o./Pico_ETH_CH9121_CODE
cd ~/Pico_ETH_CH9121_CODE
cd Pico/c/build/

例程使用

C部分

  • 以下教程为在树莓派上操作,但由于cmake的多平台、可移植的特点,在PC上也是能成功编译,但操作略有不同,需要您自行判断。

进行编译,请确保在c目录:

cd ~/Pico_ETH_CH9121_CODE/Pico/C/

Pico_ETH_CH9121_CODE/Pico/C/Serial Port Parameter Configuration:用来通过串口配置模式。
Pico_ETH_CH9121_CODE/Pico/C/RX_TX:用来进行信息收发,收到什么返回什么。
进入其中一个文件夹中创建并进入build目录,并添加SDK: 其中 ../../pico-sdk 是你的SDK的目录。 我们示例程序中是有build的,直接进入即可

cd build
export PICO_SDK_PATH=../../pico-sdk
(注意:务必写对你自己的SDK所在路径)

执行cmake自动生成Makefile文件

#Pico
cmake -DPICO_BOARD=pico -DPICO_PLATFORM=rp2040 ..
#Pico2
cmake -DPICO_BOARD=pico2 -DPICO_PLATFORM=rp2350 ..

执行make生成可执行文件,第一次编译时间比较久

make -j9

编译完成,会生成uf2文件。 按住Pico/Pico2板上的按键,将Pico/Pico2通过Micro USB线接到树莓派的USB接口,然后松开按键。接入之后,树莓派会自动识别到一个可移动盘,将build文件夹下的main.uf2 文件复制到识别的可移动盘中即可。

#Pico
cp main.uf2 /media/pi/RPI-RP2/
#Pico2
cp main.uf2 /media/pi/RP2350

Python部分

windows环境下的使用

  • 1.按住Pico/Pico2板上的BOOTSET按键,将Pico/Pico2通过Micro USB线接到电脑的USB接口,待电脑识别出一个可移动硬盘后,松开按键。
  • 2.将python目录中 .uf2 格式文件复制到识别的可移动盘中
  • 3.打开Thonny IDE(注意:要使用最新版本的Thonny,否则是没有Pico的支持包的,当前Windows下的最新版本为v3.3.3)
  • 4.点击工具->设置->解释器,如图所示选择Pico/Pico2及对应的端口

Pico-lcd-0.96-img-config.png
本例程提供了两个程序:
Serial Port Parameter Configuration.py:该程序用来通过串口配置模式。
RX_TX.py:这个用来进行信息收发,收到什么返回什么。

  • 5.文件->打开->RX_TX.py,点击运行即可,如下图所示:

注意:如果想自启动,请将RX_TX.py重命名为main.py后保存到Pico/Pico2里面。
Pico-lcd-0.96-img-run.png

树莓派环境下的使用

  • 1.刷固件的过程与Windows上一样,你可以选择在PC或者树莓派上将 .uf2 格式文件拷入Pico/Pico2中。
  • 2.在树莓派山打开Thonny IDE (点击树莓logo -> Programming -> Thonny Python IDE ),你可以在Help->About Thonny查看版本信息

以确保你的版本是有Pico支持包的,同样你可以点击Tools -> Options... -> Interpreter选择MicroPython(Raspberry Pi Pico 和ttyACM0端口
如图所示:
Pico-lcd-0.96-img-config2.png
如果你当前的Thonny版本没有Pico支持包,输入以下指令来更新Thonny IDE

sudo apt upgrade thonny
  • 3.点击File->Open...->python/RX_TX.py,运行脚本即可

注意:如果想自启动,请将RX_TX.py重命名为main.py后保存到Pico/Pico2里面。

代码简析

C部分

通过串口配置参数(根据你的需求进行修改即可):

  • 数据类型
#define UCHAR unsigned char
#define UBYTE uint8_t
#define UWORD uint16_t
#define UDOUBLE uint32_t
  • 模块初始化:
void CH9121_init(void);
  • 本程序只进行了简单的配置,如需配置其他功能可查阅串口控制命令,自行配置即可:
UCHAR CH9121_Mode           //模式选择
UCHAR CH9121_LOCAL_IP[4]    //本地IP
UCHAR CH9121_GATEWAY[4]     //网关
UCHAR CH9121_SUBNET_MASK[4] //子网掩码
UCHAR CH9121_TARGET_IP[4]   //目标IP
UWORD CH9121_PORT1          //本地端口
UWORD CH9121_TARGET_PORT    //目标端口
UDOUBLE CH9121_BAUD_RATE    //串口波特率
  • 根据串口控制命令合理利用下面函数可进行参数配置:
void CH9121_TX_4_bytes(UCHAR data, int command); //用于模式、是否随机端口、端口是否断开网络连接、是否清空串口数据、是否开启DHCP、是否开启串口2
void CH9121_TX_5_bytes(UWORD data, int command);//用于设置串口的端口号
void CH9121_TX_7_bytes(UCHAR data[], int command);//用于设置IP、子网掩码、网关
void CH9121_TX_BAUD(UDOUBLE data, int command);//用于设置串口的波特率
void CH9121_Eed(); //更新配置参数至 EEPROM、执行配置,复位 9121、离开配置模式

Python部分

用户只需修改Serial Port Parameter Configuration.py里面如下所示的值,就可以对模块进行串口参数配置:

MODE = 1  #0:TCP Server 1:TCP Client 2:UDP Server 3:UDP Client
GATEWAY = (169, 254, 88, 1)   # GATEWAY
TARGET_IP = (169, 254, 88, 17)# TARGET_IP
LOCAL_IP = (169,254,88,70)    # LOCAL_IP
SUBNET_MASK = (255,255,255,0) # SUBNET_MASK
LOCAL_PORT1 = 5000             # LOCAL_PORT1
LOCAL_PORT2 = 4000             # LOCAL_PORT2
TARGET_PORT = 3000            # TARGET_PORT
BAUD_RATE = 115200            # BAUD_RATE