2007 CM4 LoRa 4G(LoRa及4G接口):修订间差异
(未显示2个用户的53个中间版本) | |||
第1行: | 第1行: | ||
== '''关键词''' == | == '''关键词''' == | ||
树莓派、Raspberry | 树莓派、Raspberry Pi、LoRa、CM4核心板、系统烧写、4G LTE、SSD、RPiOS | ||
== '''一、简介''' == | == '''一、简介''' == | ||
CM4_LoRa扩展板基于CM4核心板设计,扩展两路Mini | CM4_LoRa扩展板基于CM4核心板设计,扩展两路Mini PCIe接口用于连接LoRa模块(同时兼容4G模块);一路PCIe M-KEY接口,支持NVME SSD;一路RTC。其它为CM4标准资源,包括CSI1、DSI1、原生千兆、标准HDMI、启动用TF卡槽、40Pin扩展接口、3.3V和5V风扇插头,以及2路USB2.0-A(其中一路复用1.25mm 4pin接口,可用于内置4G设备连接)。可通过USB-C接口用于eMMC烧写。扩展板采用DC5.5接口,支持7-24V电压输入。 | ||
== '''二、硬件资源''' == | == '''二、硬件资源''' == | ||
1. 一路原生千兆网口; | 1. 一路原生千兆网口; | ||
2. 一路PCIe M- | 2. 一路PCIe M.2 M-KEY接口,支持NVME SSD,2242/2280尺寸,默认焊接2280固定柱; | ||
3. | 3. 两路USB2.0的MiniPCIE接口,支持LoRa模块,也支持4G LTE模块; | ||
4. 两路USB2. | 4. 两路USB2.0-A Host主机口,其中一路复用1.25mm 4Pin USB接口; | ||
5. | 5. 一路RTC,DS1307,1.5mm-2p接口; | ||
6. | 6. 一路标准HDMI口,支持4K分辨率的; | ||
7、一路4-lans CSI(22PIN,0.5mm,翻盖下接); | |||
8. | 8. 一路4-lans DSI(22PIN,0.5mm,翻盖下接); | ||
9. | 9. 两路Nano SIM卡座,与4G LTE配套使用; | ||
11. 预留SMA天线座; | |||
12. TF卡座,用于无eMMC的cm4核心板启动系统用; | |||
13. 一路USB-C口,用于emmc的烧写; | |||
14. 引出40PIN GPIO,和树莓派4B的引脚完全兼容; | |||
15. 电源:7-24V DC5.5-2.1宽电压输入; | |||
16. 尺寸:111*135mm,PCB板沉金工艺,无铅生产,PCB板材通过UL和ROHS认证,防火等级94V-0。 | |||
40pin引脚定义从左到右依次为: | 40pin引脚定义从左到右依次为: | ||
第76行: | 第83行: | ||
== '''三、系统烧写及设置''' == | == '''三、系统烧写及设置''' == | ||
本文档采用树莓派OS进行测试。 | 本文档采用树莓派OS进行测试。 | ||
第84行: | 第89行: | ||
https://www.raspberrypi.com/software/operating-systems/#raspberry-pi-os-64-bit | https://www.raspberrypi.com/software/operating-systems/#raspberry-pi-os-64-bit | ||
=== 3. | === 3.1 TF卡烧写 === | ||
如果核心板没有eMMC,则系统可从TF卡启动或NVME SSD启动。此处介绍从TF卡启动系统。 | |||
==== 3. | ==== 3.1.1 使用树莓派镜像烧录器烧写 ==== | ||
首先在Windows端安装树莓派镜像烧录器,下载地址:https://www.raspberrypi.com/software/ | 首先在Windows端安装树莓派镜像烧录器,下载地址:https://www.raspberrypi.com/software/ | ||
第112行: | 第117行: | ||
以上介绍的是烧写树莓派OS,烧写Ubuntu系统或者OpenWrt系统也是用类似的操作,只是在“请选择需要写入的操作系统”时,需要选择Use Custom,然后选择预先下载的镜像即可。 | 以上介绍的是烧写树莓派OS,烧写Ubuntu系统或者OpenWrt系统也是用类似的操作,只是在“请选择需要写入的操作系统”时,需要选择Use Custom,然后选择预先下载的镜像即可。 | ||
==== 3. | ==== 3.1.2 使用balenaEtcher烧写 ==== | ||
首先在Windows端安装balenaEtcher,下载地址:https://etcher.balena.io/#download-etcher | 首先在Windows端安装balenaEtcher,下载地址:https://etcher.balena.io/#download-etcher | ||
第125行: | 第130行: | ||
http://www.mcuzone.com/wiki/0005_MPS2242_2280/0005_MPS2242_2280_05.jpg | http://www.mcuzone.com/wiki/0005_MPS2242_2280/0005_MPS2242_2280_05.jpg | ||
烧写完成后,将TF卡从读卡器中取下,塞进扩展板的TF卡卡槽,上电后即可进入系统。 | |||
=== 3.2 SSD硬盘启动 === | |||
核心板无eMMC,板载原生PCIe的 NVMe SSD,可实现从硬盘启动系统(核心板带eMMC的,不支持从硬盘启动系统)。 | |||
硬盘烧写系统的方法和TF卡烧写一样。 | |||
2020年5月以后的树莓派CM4固件均已支持从SSD启动系统,如果需要查看固件版本,请在树莓派终端中执行: | |||
<code>vcgencmd bootloader_version</code> | |||
http://www.mcuzone.com/wiki/2007_CM4_LoRa_4G/2007_CM4_LoRa_4G_59.jpg | |||
如果固件日期在2020年5月之前,请按[[0003 MPS2280D(双SSD扩展板)#3.1.3 更新树莓派固件和内核|此步骤]]进行升级。 | |||
将SSD插入一个M.2(PCIe NVMe协议)转USB读卡器,将其接到PC上,使用与在TF卡上烧写镜像同样的方法烧写系统镜像到SSD,然后将SSD取下,插回扩展板,取下原本用来启动系统的TF卡并上电启动系统即可。 | |||
如果需要自定义启动顺序,请打开树莓派OS的终端,输入<code>sudo rpi-eeprom-config --edit</code>,找到BOOT_ORDER一行: | |||
http://www.mcuzone.com/wiki/2007_CM4_LoRa_4G/2007_CM4_LoRa_4G_60.jpg | |||
按照下列启动顺序的说明进行修改: | |||
http://www.mcuzone.com/wiki/0002_MPS2280iPoE/MPS2280iPoE_24.png | |||
即图示的BOOT_ORDER=0xf25641表示启动顺序为SD(TF)卡、USB-MSD、NVMe(SSD)、BCM-USB-MSD、网卡,大家可以按照自己的需求设置启动顺序。 | |||
然后保存退出并重启。 | |||
=== 3.3 | '''''注意1:树莓派CM4只支持NVME SSD,不支持SATA SSD和NGFF SSD;''''' | ||
'''''注意2:优先级最高的启动设备,数字排在最后面,即越靠后的数字,优先级越高。''''' | |||
'''''注意3:这个文件编辑后保存在CM4核心板的EEPRom中,因此如果不更换CM4核心板,只是更换系统的话,是不需要再次编辑的。''''' | |||
=== 3.3 eMMC烧写 === | |||
如果核心板具有板载eMMC,则系统将会忽略TF卡,而从eMMC启动。 | 如果核心板具有板载eMMC,则系统将会忽略TF卡,而从eMMC启动。 | ||
第135行: | 第172行: | ||
http://www.mcuzone.com/down/Software.asp?ID=10000623 | http://www.mcuzone.com/down/Software.asp?ID=10000623 | ||
安装后使用跳线帽短接扩展板BOOT脚(在CM4核心板下面,即使用跳线帽将两个针脚连接起来)。 | |||
使用'''''USB Type A-C数据线'''''将扩展板上的USB OTG接口(即扩展板的两个USB-A口之间的USB Type-C口)连接至电脑。 | 使用'''''USB Type A-C数据线'''''将扩展板上的USB OTG接口(即扩展板的两个USB-A口之间的USB Type-C口)连接至电脑。 | ||
第141行: | 第178行: | ||
连接上电脑之后,打开计算机的设备管理器,查看是否有新的USB设备出现。在下图中的是名称为“BCM2711 Boot”的USB设备: | 连接上电脑之后,打开计算机的设备管理器,查看是否有新的USB设备出现。在下图中的是名称为“BCM2711 Boot”的USB设备: | ||
http://www.mcuzone.com/wiki/ | http://www.mcuzone.com/wiki/2007_CM4_LoRa_4G/2007_CM4_LoRa_4G_63.jpg | ||
PC的开始菜单的所有程序下,Raspberry Pi下面有个rpiboot: | PC的开始菜单的所有程序下,Raspberry Pi下面有个rpiboot: | ||
第159行: | 第196行: | ||
打开balenaEtcher软件,第一项点击“从文件烧录”,选择你要烧录到eMMC的文件,第二项选择上面的那个bootfs分区,然后点击“现在烧录”,就开始烧录文件了: | 打开balenaEtcher软件,第一项点击“从文件烧录”,选择你要烧录到eMMC的文件,第二项选择上面的那个bootfs分区,然后点击“现在烧录”,就开始烧录文件了: | ||
http://www.mcuzone.com/wiki/ | http://www.mcuzone.com/wiki/2007_CM4_LoRa_4G/2007_CM4_LoRa_4G_61.jpg | ||
http://www.mcuzone.com/wiki/ | http://www.mcuzone.com/wiki/2007_CM4_LoRa_4G/2007_CM4_LoRa_4G_62.jpg | ||
等烧写完成后,将之前插上的跳线帽拔下来,然后重新给系统上电,待系统启动即可。 | 等烧写完成后,将之前插上的跳线帽拔下来,然后重新给系统上电,待系统启动即可。 | ||
== ''' | == '''四、树莓派OS的操作''' == | ||
=== 4.1 原生千兆网口测试 === | === 4.1 原生千兆网口测试 === | ||
第196行: | 第233行: | ||
'''''注意:原生千兆网络测速受网络环境和测试方法影响,速度请以实际为准,本测试仅供参考。''''' | '''''注意:原生千兆网络测速受网络环境和测试方法影响,速度请以实际为准,本测试仅供参考。''''' | ||
=== 4.2 | === 4.2 NVME SSD测试 === | ||
前面3.2章节我们提到了SSD做系统启动用,这里SSD测试作为数据存储用。 | |||
请先将SSD安装好后再上电(接口在扩展板背后)。 | |||
在树莓派OS中对SSD分区进行授权: | 在树莓派OS中对SSD分区进行授权: | ||
第235行: | 第274行: | ||
保存后重启系统,即可使用树莓派官方7寸触摸屏。 | 保存后重启系统,即可使用树莓派官方7寸触摸屏。 | ||
'''''注意:这条语句实际上开启了第二块显示屏,即双屏显示,无论第二块屏的硬件是否安装,在某些软件如全屏截图(PrtScn)中都会显示双屏,如果不需要使用这块屏,建议在config.txt中把这条语句去掉。''''' | |||
=== 4.4 CSI测试 === | === 4.4 CSI测试 === | ||
第276行: | 第317行: | ||
两处红框表示USB2.0hub已正常识别,并且U盘工作在480M下,因此USB2.0工作模式也正常。 | 两处红框表示USB2.0hub已正常识别,并且U盘工作在480M下,因此USB2.0工作模式也正常。 | ||
=== 4.6 RTC(DS1307) | === 4.6 RTC(DS1307)测试 === | ||
'''''注意:RTC芯片需要外接电池(电池接口在CM4核心板下面,BOOT脚右边,1.5mm-2p接口)才能保持数据不会丢失。''''' | |||
先将I2C打开: | |||
左上角树莓派标志—Preferences—Raspberry Pi Configuration—Interfaces 如图所示: | |||
http://www.mcuzone.com/wiki/3003_21700_5V5A_PD/3003_21700_5V5A_PD_07.jpg | http://www.mcuzone.com/wiki/3003_21700_5V5A_PD/3003_21700_5V5A_PD_07.jpg | ||
第307行: | 第348行: | ||
http://www.mcuzone.com/wiki/2007_CM4_LoRa_4G/2007_CM4_LoRa_4G_18.jpg | http://www.mcuzone.com/wiki/2007_CM4_LoRa_4G/2007_CM4_LoRa_4G_18.jpg | ||
=== 4.7 | === 4.7 LoRa测试 === | ||
我们选择的LoRa型号为 E22 400T30E,使用LoRa时,需要M0和M1用短路帽短路。 | |||
==== 4.7.1 | ==== 4.7.1 两个模块透传模式 ==== | ||
本文通过配置两路模块为透传模式进行演示。 | |||
将两路LoRa模块安装好(分别插入4G_A接口和4G_B接口),在默认情况下,模块处于休眠模式,将各自模块前的M0、M1通过短路帽分别短接即可激活模块并设置为传输模式,设置完毕后上电启动系统。 | |||
输入<code>ls /dev</code>,查看两路串口设备,分别是ttyUSB0和ttyUSB1: | 输入<code>ls /dev</code>,查看两路串口设备,分别是ttyUSB0和ttyUSB1: | ||
第318行: | 第360行: | ||
http://www.mcuzone.com/wiki/2007_CM4_LoRa_4G/2007_CM4_LoRa_4G_19.jpg | http://www.mcuzone.com/wiki/2007_CM4_LoRa_4G/2007_CM4_LoRa_4G_19.jpg | ||
安装命令行串口软件minicom: | |||
<code>sudo apt install minicom</code> | <code>sudo apt install minicom</code> | ||
或者图形化串口软件CuteCom: | |||
<code>sudo apt install cutecom</code> | |||
建议使用CuteCom,图形化界面便于操作。下面以CuteCom为例。 | |||
打开两个CuteCom窗口,分别连接ttyUSB0和ttyUSB1,在一个窗口中输入信息,则另一个窗口就输出所输入的信息: | |||
http://www.mcuzone.com/wiki/2007_CM4_LoRa_4G/2007_CM4_LoRa_4G_54.jpg | |||
==== 4.7.2 两个模块通过RS232传输 ==== | |||
'''''注意:LoRa模块能否实现与扩展板的RS232、RS485接口数据传输,依赖于LoRa模块本身是否具备该功能,本扩展板的RS232、RS485接口适配于E22 400T30E LoRa模块。''''' | |||
将RS232_A、RS232_B各自通过USB转RS232模块分别连接到PC,然后在这两个接口之间进行数据收发,结果如下: | |||
http://www.mcuzone.com/wiki/2007_CM4_LoRa_4G/2007_CM4_LoRa_4G_50.jpg | |||
说明两个本身相互独立的RS232接口,现在通过两个LoRa模块建立了传输通道,相互之间可以传输数据。 | |||
==== 4.7.3 两个模块通过RS485传输 ==== | |||
将RS485_A、RS485_B各自通过USB转RS485模块分别连接到PC,然后在这两个接口之间进行数据收发,结果如下: | |||
http://www.mcuzone.com/wiki/2007_CM4_LoRa_4G/2007_CM4_LoRa_4G_51.jpg | |||
说明两个本身相互独立的RS485接口,现在通过两个LoRa模块建立了传输通道,相互之间可以传输数据。 | |||
==== 4.7.4 单个模块传输 ==== | |||
若要LoRa模块与RS232、RS485接口进行电平转换,则需搭配USB转RS232、RS485模块将LoRa模块与PC进行连接。下方的RS232_A、RS485_A接口对应右侧的4G_A接口(ttyUSB1)。 | |||
将RS232_A与PC端通过USB转RS232模块连接,然后通过串口工具分别在树莓派端和PC端互相收发数据: | |||
树莓派端/PC端: | |||
http://www.mcuzone.com/wiki/2007_CM4_LoRa_4G/2007_CM4_LoRa_4G_55.jpg | |||
将RS485_A与PC端通过USB转RS485模块连接,然后通过串口工具分别在树莓派端和PC端互相收发数据: | |||
树莓派端/PC端: | |||
http://www.mcuzone.com/wiki/2007_CM4_LoRa_4G/2007_CM4_LoRa_4G_56.jpg | |||
上方的RS232_B、RS485_B接口对应左侧的4G_B接口(ttyUSB0)。 | |||
将RS232_B与PC端通过USB转RS232模块连接,然后通过串口工具分别在树莓派端和PC端互相收发数据: | |||
树莓派端/PC端: | |||
http://www.mcuzone.com/wiki/2007_CM4_LoRa_4G/2007_CM4_LoRa_4G_57.jpg | |||
将RS485_B与PC端通过USB转RS485模块连接,然后通过串口工具分别在树莓派端和PC端互相收发数据: | |||
树莓派端/PC端: | |||
http://www.mcuzone.com/wiki/2007_CM4_LoRa_4G/2007_CM4_LoRa_4G_58.jpg | |||
=== 4.8 测试4G模块(免驱) === | |||
==== 4.8.1 单4G测试 ==== | |||
本扩展板兼容4G模块,本节将测试高通4G LTE模块。 | |||
'''''注意:本扩展板不支持SIM卡热插拔。''''' | |||
将4G模块插入4G_A接口或4G_B接口(如果M0、M1跳线已短接,请取下跳线帽),然后在模块插槽下方的SIM卡槽插入SIM卡,启动系统,在树莓派终端中执行<code>lsusb</code>,红框处即为4G模块: | |||
http://www.mcuzone.com/wiki/2007_CM4_LoRa_4G/2007_CM4_LoRa_4G_29.jpg | |||
本模块的ID为05c6 90b6,记录下这个ID值。 | |||
执行<code>ifconfig -a</code>,查看4G模块的网络状态,可见已经正确获得了IP: | |||
http://www.mcuzone.com/wiki/2007_CM4_LoRa_4G/2007_CM4_LoRa_4G_30.jpg | |||
获得IP后ping外网地址: | |||
http://www.mcuzone.com/wiki/2007_CM4_LoRa_4G/2007_CM4_LoRa_4G_31.jpg | |||
==== 4.8.2 使用AT命令 ==== | |||
使用下列命令打开ttyUSB串口,其中echo后面的值就是之前记录的ID值: | |||
<code>sudo modprobe option</code> | |||
<code>sudo sh -c 'echo 05c6 90b6 > /sys/bus/usb-serial/drivers/option1/new_id'</code> | |||
http://www.mcuzone.com/wiki/2007_CM4_LoRa_4G/2007_CM4_LoRa_4G_36.jpg | |||
执行上述两条命令之后执行: | |||
<code>ls /dev</code> | |||
此时应该能看到dev设备下有ttyUSB0-3两个设备: | |||
http://www.mcuzone.com/wiki/2007_CM4_LoRa_4G/2007_CM4_LoRa_4G_35.jpg | |||
通过minicom打开AT命令串口: | |||
<code>sudo minicom -D /dev/ttyUSB0</code> | <code>sudo minicom -D /dev/ttyUSB0</code> | ||
(注意:使用哪个串口,应以在进入此串口后,可输入运行AT命令,显示不乱码,不乱跳结果为准) | |||
下面以minicom为例,如果需要查看回显,请键入命令:<code>ate1</code>,然后回车,继续键入其它命令,回车可以看到结果。 | |||
http://www.mcuzone.com/wiki/2007_CM4_LoRa_4G/2007_CM4_LoRa_4G_34.jpg | |||
如果需要将4G模块的IP改为直接获取公网IP,请执行: | |||
<code>AT+GTIPPASS=1</code> | |||
常用AT命令: | |||
1. 检查SIM卡是否识别到: | |||
<code>at+cpin?</code> | |||
返回ready表示卡已识别,返回error要检查硬件 | |||
2. 检查天线信号质量: | |||
<code>at+csq</code> | |||
返回值在26-31表示信号OK,信号满格31;返回值在20-25表示信号勉勉强强;返回值在20以下表示信号比较糟糕或者天线没接 | |||
3. 检查注网情况: | |||
<code>at+cops?</code> | |||
正常应该返回运营商代码和7,7代表4G。 | |||
注意,以上命令只有<code>at+csq</code>不要加问号,另外两条命令需要加问号。 | |||
4. 查看4G模块的IMEI码: | |||
<code>at+cgsn</code> | |||
5. 重启4G模块(有时候如果重插SIM卡,热插拔不一定管用,可以用这个reset命令来复位模块): | |||
<code>at+reset</code> | |||
6. 关闭射频: | |||
<code>at+cfun=0</code> | |||
开启射频: | |||
<code>at+cfun=1</code> | |||
上述两条命令成对使用,可以在不重启4G模组的情况下让模组重新注网。 | |||
==== 4.8.3 双4G测试 ==== | |||
这里使用高通4G LTE和ZTE CAT4 4G。 | |||
若同时插入两个4G模块,识别情况如下: | |||
http://www.mcuzone.com/wiki/2007_CM4_LoRa_4G/2007_CM4_LoRa_4G_32.jpg | |||
第一个模块为ZTE CAT4,第二个模块为高通4G LTE。 | |||
执行<code>ifconfig -a</code>,查看4G模块的网络状态,可见已经正确获得了IP,其中eth1为ZTE CAT4,usb0为高通4G LTE: | |||
http://www.mcuzone.com/wiki/2007_CM4_LoRa_4G/2007_CM4_LoRa_4G_52.jpg | |||
分别测试通过这两个4G模块ping外网地址: | |||
<code>ping www.mcuzone.com -I eth1</code> | |||
<code>ping www.mcuzone.com -I usb0</code> | |||
http://www.mcuzone.com/wiki/2007_CM4_LoRa_4G/2007_CM4_LoRa_4G_53.jpg | |||
若要在双4G下使用AT命令,请参照上一节,使用对应模块的ID值打开相应的串口进行操作。 | |||
=== 4.9 应用(远程控制) === | |||
本节介绍如何使用远程控制软件,远程控制成功后能控制LoRa模块。 | |||
扩展板接4G和LoRa模块,并确保4G模块能够正常联网。 | |||
==== 4.9.1 Raspberry Pi Connect的远程控制 ==== | |||
Raspberry Pi Connect是树莓派官方出品的远程控制软件,同时支持远程桌面和远程SSH,详情请参阅下列链接: | |||
[[0024 M4GUSB(树莓派5的USB4G)#八、4G应用1(远程连接树莓派)|使用Raspberry Pi Connect远程控制树莓派OS]] | |||
==== 4.9.2 VNC软件的远程控制 ==== | |||
在VNC官网下载对应的Windows版本,下载地址:https://manage.realvnc.com/en/download | |||
选择Windows版本: | |||
http://www.mcuzone.com/wiki/2007_CM4_LoRa_4G/2007_CM4_LoRa_4G_37.jpg | |||
下载完毕后安装VNC软件,一路默认即可: | |||
http://www.mcuzone.com/wiki/2007_CM4_LoRa_4G/2007_CM4_LoRa_4G_38.jpg | |||
安装完毕后注册新用户(新注册的免费用户可以试用半个月,如果有账号请直接登录): | |||
http://www.mcuzone.com/wiki/2007_CM4_LoRa_4G/2007_CM4_LoRa_4G_39.jpg | |||
填写相关信息后进行注册: | |||
http://www.mcuzone.com/wiki/2007_CM4_LoRa_4G/2007_CM4_LoRa_4G_40.jpg | |||
注册成功后,在弹出的窗口中记录下这个VNC Password,然后点击“Lanuch”: | |||
http://www.mcuzone.com/wiki/2007_CM4_LoRa_4G/2007_CM4_LoRa_4G_41.jpg | |||
这样就进入了VNC的主界面了: | |||
http://www.mcuzone.com/wiki/2007_CM4_LoRa_4G/2007_CM4_LoRa_4G_42.jpg | |||
启动树莓派系统,进入树莓派OS桌面,点击左上角树莓派标志—Preferences—Raspberry Pi Configuration—Interfaces | |||
将VNC打开,如图所示: | |||
http://www.mcuzone.com/wiki/2007_CM4_LoRa_4G/2007_CM4_LoRa_4G_43.jpg | |||
在PC端的VNC窗口中,点击菜单“Files - New connection...”: | |||
http://www.mcuzone.com/wiki/2007_CM4_LoRa_4G/2007_CM4_LoRa_4G_44.jpg | |||
输入树莓派OS的IP,自定义一个Name,然后点击“OK”: | |||
http://www.mcuzone.com/wiki/2007_CM4_LoRa_4G/2007_CM4_LoRa_4G_45.jpg | |||
回到VNC窗口,点击刚才建立的新连接: | |||
http://www.mcuzone.com/wiki/2007_CM4_LoRa_4G/2007_CM4_LoRa_4G_46.jpg | |||
点击“Continue” | |||
http://www.mcuzone.com/wiki/2007_CM4_LoRa_4G/2007_CM4_LoRa_4G_47.jpg | |||
输入树莓派OS的用户名和密码: | |||
http://www.mcuzone.com/wiki/2007_CM4_LoRa_4G/2007_CM4_LoRa_4G_48.jpg | |||
这样,我们就进入了树莓派OS的桌面,可以在此远程控制树莓派OS: | |||
http://www.mcuzone.com/wiki/2007_CM4_LoRa_4G/2007_CM4_LoRa_4G_49.jpg | |||
{{联系我们_图标}} |
2024年11月25日 (一) 23:34的最新版本
关键词
树莓派、Raspberry Pi、LoRa、CM4核心板、系统烧写、4G LTE、SSD、RPiOS
一、简介
CM4_LoRa扩展板基于CM4核心板设计,扩展两路Mini PCIe接口用于连接LoRa模块(同时兼容4G模块);一路PCIe M-KEY接口,支持NVME SSD;一路RTC。其它为CM4标准资源,包括CSI1、DSI1、原生千兆、标准HDMI、启动用TF卡槽、40Pin扩展接口、3.3V和5V风扇插头,以及2路USB2.0-A(其中一路复用1.25mm 4pin接口,可用于内置4G设备连接)。可通过USB-C接口用于eMMC烧写。扩展板采用DC5.5接口,支持7-24V电压输入。
二、硬件资源
1. 一路原生千兆网口;
2. 一路PCIe M.2 M-KEY接口,支持NVME SSD,2242/2280尺寸,默认焊接2280固定柱;
3. 两路USB2.0的MiniPCIE接口,支持LoRa模块,也支持4G LTE模块;
4. 两路USB2.0-A Host主机口,其中一路复用1.25mm 4Pin USB接口;
5. 一路RTC,DS1307,1.5mm-2p接口;
6. 一路标准HDMI口,支持4K分辨率的;
7、一路4-lans CSI(22PIN,0.5mm,翻盖下接);
8. 一路4-lans DSI(22PIN,0.5mm,翻盖下接);
9. 两路Nano SIM卡座,与4G LTE配套使用;
11. 预留SMA天线座;
12. TF卡座,用于无eMMC的cm4核心板启动系统用;
13. 一路USB-C口,用于emmc的烧写;
14. 引出40PIN GPIO,和树莓派4B的引脚完全兼容;
15. 电源:7-24V DC5.5-2.1宽电压输入;
16. 尺寸:111*135mm,PCB板沉金工艺,无铅生产,PCB板材通过UL和ROHS认证,防火等级94V-0。
40pin引脚定义从左到右依次为:
5V | 5V | GND | G14 | G15 | G18 | GND | G23 | G24 | GND | G25 | G08 | G07 | IDSC | GND | G12 | GND | G16 | G20 | G21 |
3V3 | G02 | G03 | G04 | GND | G17 | G27 | G22 | 3V3 | G10 | G09 | G11 | GND | IDSD | G05 | G06 | G13 | G19 | G26 | GND |
三、系统烧写及设置
本文档采用树莓派OS进行测试。
树莓派OS的版本为2024-10-22-raspios-bookworm-arm64.img.xz,树莓派OS下载地址:
https://www.raspberrypi.com/software/operating-systems/#raspberry-pi-os-64-bit
3.1 TF卡烧写
如果核心板没有eMMC,则系统可从TF卡启动或NVME SSD启动。此处介绍从TF卡启动系统。
3.1.1 使用树莓派镜像烧录器烧写
首先在Windows端安装树莓派镜像烧录器,下载地址:https://www.raspberrypi.com/software/
安装完毕后将TF卡插入读卡器,读卡器插入PC的USB口,然后打开软件:
Raspberry Pi Device:选择Raspberry Pi 4;
请选择需要写入的操作系统:选择Raspberry Pi OS(64-bit),为从树莓派官网下载系统镜像烧写(需联网);选择Use Custom,则需要自行选择硬盘上已经下载的系统镜像(无需联网);
储存卡:选择所需烧入的TF卡(即插在PC的USB接口的卡);
选择完毕后按“NEXT”,建议点击“编辑设置”,将一些参数预设置进烧写软件,之后在系统启动时就不必再次设置,便于使用。
需要使用预设置的按“是”,不需要使用预设置的按“不”,进入下一页,点击“是”,就开始烧写及验证完整性,烧写完毕后按提示取下卡即可。
以上介绍的是烧写树莓派OS,烧写Ubuntu系统或者OpenWrt系统也是用类似的操作,只是在“请选择需要写入的操作系统”时,需要选择Use Custom,然后选择预先下载的镜像即可。
3.1.2 使用balenaEtcher烧写
首先在Windows端安装balenaEtcher,下载地址:https://etcher.balena.io/#download-etcher
将TF卡插入读卡器,读卡器插入PC的USB口,然后打开软件:
从文件烧录:选择预先下载的树莓派OS或者Ubuntu系统镜像;
选择目标磁盘:选择所需烧入的TF卡(即插在PC的USB接口的卡);
然后点击“现在烧录!”,就开始烧录了,等待烧录完毕即可。
烧写完成后,将TF卡从读卡器中取下,塞进扩展板的TF卡卡槽,上电后即可进入系统。
3.2 SSD硬盘启动
核心板无eMMC,板载原生PCIe的 NVMe SSD,可实现从硬盘启动系统(核心板带eMMC的,不支持从硬盘启动系统)。
硬盘烧写系统的方法和TF卡烧写一样。
2020年5月以后的树莓派CM4固件均已支持从SSD启动系统,如果需要查看固件版本,请在树莓派终端中执行:
vcgencmd bootloader_version
如果固件日期在2020年5月之前,请按此步骤进行升级。
将SSD插入一个M.2(PCIe NVMe协议)转USB读卡器,将其接到PC上,使用与在TF卡上烧写镜像同样的方法烧写系统镜像到SSD,然后将SSD取下,插回扩展板,取下原本用来启动系统的TF卡并上电启动系统即可。
如果需要自定义启动顺序,请打开树莓派OS的终端,输入sudo rpi-eeprom-config --edit
,找到BOOT_ORDER一行:
按照下列启动顺序的说明进行修改:
即图示的BOOT_ORDER=0xf25641表示启动顺序为SD(TF)卡、USB-MSD、NVMe(SSD)、BCM-USB-MSD、网卡,大家可以按照自己的需求设置启动顺序。
然后保存退出并重启。
注意1:树莓派CM4只支持NVME SSD,不支持SATA SSD和NGFF SSD;
注意2:优先级最高的启动设备,数字排在最后面,即越靠后的数字,优先级越高。
注意3:这个文件编辑后保存在CM4核心板的EEPRom中,因此如果不更换CM4核心板,只是更换系统的话,是不需要再次编辑的。
3.3 eMMC烧写
如果核心板具有板载eMMC,则系统将会忽略TF卡,而从eMMC启动。
要烧写系统到eMMC,首先需要在PC上安装驱动包,下载地址:
http://www.mcuzone.com/down/Software.asp?ID=10000623
安装后使用跳线帽短接扩展板BOOT脚(在CM4核心板下面,即使用跳线帽将两个针脚连接起来)。
使用USB Type A-C数据线将扩展板上的USB OTG接口(即扩展板的两个USB-A口之间的USB Type-C口)连接至电脑。
连接上电脑之后,打开计算机的设备管理器,查看是否有新的USB设备出现。在下图中的是名称为“BCM2711 Boot”的USB设备:
PC的开始菜单的所有程序下,Raspberry Pi下面有个rpiboot:
打开这个软件,计算机会将eMMC或者TF卡格式化并分区:
稍等片刻,在资源管理器中会出现一个分区(本例中的分区名为bootfs,具体名称视实际情况而不同):
接下来我们就可以使用balenaEtcher软件对这个分区进行烧写了。
打开balenaEtcher软件,第一项点击“从文件烧录”,选择你要烧录到eMMC的文件,第二项选择上面的那个bootfs分区,然后点击“现在烧录”,就开始烧录文件了:
等烧写完成后,将之前插上的跳线帽拔下来,然后重新给系统上电,待系统启动即可。
四、树莓派OS的操作
4.1 原生千兆网口测试
我们将网线插入原生千兆网口,系统会自动获取IP,打开终端,运行ifconfig -a
,查看ip地址:
可见获取的ip地址为192.168.8.101。
为了操作方便,建议使用PC端的SSH软件连接系统并进行终端操作,我们使用与树莓派的无线网卡的IP地址在同一网段内的PC,通过MobaXterm进行连接:
连接后,大部分操作都可以通过PC端的MobaXterm进行,使得整套硬件系统可以脱离显示器运作。以下测试操作将通过MobaXterm在PC端进行演示。
安装测速软件iperf3:
sudo apt install iperf3
然后我们使用iperf3进行测试:
原生千兆以太网测速结果,client模式为943Mbps左右
server模式为949Mbps左右:
注意:原生千兆网络测速受网络环境和测试方法影响,速度请以实际为准,本测试仅供参考。
4.2 NVME SSD测试
前面3.2章节我们提到了SSD做系统启动用,这里SSD测试作为数据存储用。
请先将SSD安装好后再上电(接口在扩展板背后)。
在树莓派OS中对SSD分区进行授权:
在终端中输入ls /dev,即可看到硬盘加载:
安装硬盘测速软件hdparm:
sudo apt install hdparm
运行命令,可多次运行,测试多次硬盘速度:
sudo hdparm -t /dev/nvme0n1p1
可见SSD硬盘的接口速度约为350MB/s左右。
注意:测试速度受网络状况、硬盘质量、硬盘上的文件存储情况等多种因素影响,以上测试结果仅供参考,不作为实际产品的最终参数。
4.3 DSI测试
首先使用22Pin 0.5mm间距转15Pin 1mm间距的转接板和相应的FPC排线,将树莓派官方的7寸触摸屏与扩展板上的DSI接口相连接,然后用一根Micro-USB线给触摸屏供电,注意,树莓派触摸屏不用Micro线独立供电的话是无法使用的,切勿忘记。
连接好后,给扩展板上电。等待系统运行后打开终端,运行下列命令:
sudo nano /boot/firmware/config.txt
在文件末尾加入下列语句:
dtoverlay=vc4-kms-dsi-7inch
保存后重启系统,即可使用树莓派官方7寸触摸屏。
注意:这条语句实际上开启了第二块显示屏,即双屏显示,无论第二块屏的硬件是否安装,在某些软件如全屏截图(PrtScn)中都会显示双屏,如果不需要使用这块屏,建议在config.txt中把这条语句去掉。
4.4 CSI测试
首先将摄像头连接到扩展板的CSI1接口(本文档使用OV5647摄像头),连接好后,给板子上电。等待系统运行后打开终端,运行下列命令:
sudo nano /boot/firmware/config.txt
在文件末尾加入下列语句:
dtoverlay=ov5647,cam1
在实际使用中根据自己的型号进行添加,保存后重启系统,即可使用OV5647摄像头。
重启后在终端中输入:
ls /dev
即可看到video0设备(插一个摄像头显示video0,如果有两路CSI,并插两个摄像头显示video0、video1,和插在哪一路CSI无关)。
在终端中输入libcamera-hello --camera 0
即可打开对应的摄像头浏览(camera 0对应dev中的video0)。
如果需要拍照,则输入:
libcamera-jpeg -o test.jpg
照片保存在/home/mcuzone
目录下(即用户主目录),照片效果如下:
4.5 USB2.0测试
扩展板上电启动后我们将U盘插入USB2.0接口,输入lsusb
查看USB2.0hub是否正常识别,随后输入lsusb -t
查看USB2.0工作模式是否正常:
两处红框表示USB2.0hub已正常识别,并且U盘工作在480M下,因此USB2.0工作模式也正常。
4.6 RTC(DS1307)测试
注意:RTC芯片需要外接电池(电池接口在CM4核心板下面,BOOT脚右边,1.5mm-2p接口)才能保持数据不会丢失。
先将I2C打开:
左上角树莓派标志—Preferences—Raspberry Pi Configuration—Interfaces 如图所示:
然后编辑config.txt:
sudo nano /boot/firmware/config.txt
在文件末尾加入下列语句:
dtoverlay=i2c-rtc,ds1307
保存后退出,重启系统,在树莓派终端中输入ls /dev
,即可看到RTC设备:
将系统时间写入DS1307的命令是sudo hwclock -w
;
将系统时间从DS1307读出的命令是sudo hwclock -r
。
如下图所示:
4.7 LoRa测试
我们选择的LoRa型号为 E22 400T30E,使用LoRa时,需要M0和M1用短路帽短路。
4.7.1 两个模块透传模式
本文通过配置两路模块为透传模式进行演示。
将两路LoRa模块安装好(分别插入4G_A接口和4G_B接口),在默认情况下,模块处于休眠模式,将各自模块前的M0、M1通过短路帽分别短接即可激活模块并设置为传输模式,设置完毕后上电启动系统。
输入ls /dev
,查看两路串口设备,分别是ttyUSB0和ttyUSB1:
安装命令行串口软件minicom:
sudo apt install minicom
或者图形化串口软件CuteCom:
sudo apt install cutecom
建议使用CuteCom,图形化界面便于操作。下面以CuteCom为例。
打开两个CuteCom窗口,分别连接ttyUSB0和ttyUSB1,在一个窗口中输入信息,则另一个窗口就输出所输入的信息:
4.7.2 两个模块通过RS232传输
注意:LoRa模块能否实现与扩展板的RS232、RS485接口数据传输,依赖于LoRa模块本身是否具备该功能,本扩展板的RS232、RS485接口适配于E22 400T30E LoRa模块。
将RS232_A、RS232_B各自通过USB转RS232模块分别连接到PC,然后在这两个接口之间进行数据收发,结果如下:
说明两个本身相互独立的RS232接口,现在通过两个LoRa模块建立了传输通道,相互之间可以传输数据。
4.7.3 两个模块通过RS485传输
将RS485_A、RS485_B各自通过USB转RS485模块分别连接到PC,然后在这两个接口之间进行数据收发,结果如下:
说明两个本身相互独立的RS485接口,现在通过两个LoRa模块建立了传输通道,相互之间可以传输数据。
4.7.4 单个模块传输
若要LoRa模块与RS232、RS485接口进行电平转换,则需搭配USB转RS232、RS485模块将LoRa模块与PC进行连接。下方的RS232_A、RS485_A接口对应右侧的4G_A接口(ttyUSB1)。
将RS232_A与PC端通过USB转RS232模块连接,然后通过串口工具分别在树莓派端和PC端互相收发数据:
树莓派端/PC端:
将RS485_A与PC端通过USB转RS485模块连接,然后通过串口工具分别在树莓派端和PC端互相收发数据:
树莓派端/PC端:
上方的RS232_B、RS485_B接口对应左侧的4G_B接口(ttyUSB0)。
将RS232_B与PC端通过USB转RS232模块连接,然后通过串口工具分别在树莓派端和PC端互相收发数据:
树莓派端/PC端:
将RS485_B与PC端通过USB转RS485模块连接,然后通过串口工具分别在树莓派端和PC端互相收发数据:
树莓派端/PC端:
4.8 测试4G模块(免驱)
4.8.1 单4G测试
本扩展板兼容4G模块,本节将测试高通4G LTE模块。
注意:本扩展板不支持SIM卡热插拔。
将4G模块插入4G_A接口或4G_B接口(如果M0、M1跳线已短接,请取下跳线帽),然后在模块插槽下方的SIM卡槽插入SIM卡,启动系统,在树莓派终端中执行lsusb
,红框处即为4G模块:
本模块的ID为05c6 90b6,记录下这个ID值。
执行ifconfig -a
,查看4G模块的网络状态,可见已经正确获得了IP:
获得IP后ping外网地址:
4.8.2 使用AT命令
使用下列命令打开ttyUSB串口,其中echo后面的值就是之前记录的ID值:
sudo modprobe option
sudo sh -c 'echo 05c6 90b6 > /sys/bus/usb-serial/drivers/option1/new_id'
执行上述两条命令之后执行:
ls /dev
此时应该能看到dev设备下有ttyUSB0-3两个设备:
通过minicom打开AT命令串口:
sudo minicom -D /dev/ttyUSB0
(注意:使用哪个串口,应以在进入此串口后,可输入运行AT命令,显示不乱码,不乱跳结果为准)
下面以minicom为例,如果需要查看回显,请键入命令:ate1
,然后回车,继续键入其它命令,回车可以看到结果。
如果需要将4G模块的IP改为直接获取公网IP,请执行:
AT+GTIPPASS=1
常用AT命令:
1. 检查SIM卡是否识别到:
at+cpin?
返回ready表示卡已识别,返回error要检查硬件
2. 检查天线信号质量:
at+csq
返回值在26-31表示信号OK,信号满格31;返回值在20-25表示信号勉勉强强;返回值在20以下表示信号比较糟糕或者天线没接
3. 检查注网情况:
at+cops?
正常应该返回运营商代码和7,7代表4G。
注意,以上命令只有at+csq
不要加问号,另外两条命令需要加问号。
4. 查看4G模块的IMEI码:
at+cgsn
5. 重启4G模块(有时候如果重插SIM卡,热插拔不一定管用,可以用这个reset命令来复位模块):
at+reset
6. 关闭射频:
at+cfun=0
开启射频:
at+cfun=1
上述两条命令成对使用,可以在不重启4G模组的情况下让模组重新注网。
4.8.3 双4G测试
这里使用高通4G LTE和ZTE CAT4 4G。
若同时插入两个4G模块,识别情况如下:
第一个模块为ZTE CAT4,第二个模块为高通4G LTE。
执行ifconfig -a
,查看4G模块的网络状态,可见已经正确获得了IP,其中eth1为ZTE CAT4,usb0为高通4G LTE:
分别测试通过这两个4G模块ping外网地址:
ping www.mcuzone.com -I eth1
ping www.mcuzone.com -I usb0
若要在双4G下使用AT命令,请参照上一节,使用对应模块的ID值打开相应的串口进行操作。
4.9 应用(远程控制)
本节介绍如何使用远程控制软件,远程控制成功后能控制LoRa模块。
扩展板接4G和LoRa模块,并确保4G模块能够正常联网。
4.9.1 Raspberry Pi Connect的远程控制
Raspberry Pi Connect是树莓派官方出品的远程控制软件,同时支持远程桌面和远程SSH,详情请参阅下列链接:
使用Raspberry Pi Connect远程控制树莓派OS
4.9.2 VNC软件的远程控制
在VNC官网下载对应的Windows版本,下载地址:https://manage.realvnc.com/en/download
选择Windows版本:
下载完毕后安装VNC软件,一路默认即可:
安装完毕后注册新用户(新注册的免费用户可以试用半个月,如果有账号请直接登录):
填写相关信息后进行注册:
注册成功后,在弹出的窗口中记录下这个VNC Password,然后点击“Lanuch”:
这样就进入了VNC的主界面了:
启动树莓派系统,进入树莓派OS桌面,点击左上角树莓派标志—Preferences—Raspberry Pi Configuration—Interfaces
将VNC打开,如图所示:
在PC端的VNC窗口中,点击菜单“Files - New connection...”:
输入树莓派OS的IP,自定义一个Name,然后点击“OK”:
回到VNC窗口,点击刚才建立的新连接:
点击“Continue”
输入树莓派OS的用户名和密码:
这样,我们就进入了树莓派OS的桌面,可以在此远程控制树莓派OS:
联系我们
电话:13957118045
如本页面有任何疏漏、错误或者侵权,请通过上述途径联系我们,谢谢!
Copyright 2004-2024 野芯科技