# 接口

# System

# RTC

CM4 Nano板载RTC模块,该RTC模块挂载到了I2C0总线上,用来在没有网络的情况下,保持系统时间的稳定运行。在测试之前请确保在断电条件下,插入型号为CR1220的纽扣电池。如下图所示:

  • 设置系统时间
sudo date -s "2021-08-15 00:00"
  • 保存系统时间到RTC:
sudo hwclock -w
  • 读取RTC时间
sudo hwclock
  • 将硬件RTC时间同步到系统时间
sudo hwclock -s

# Micro SD Card

CM4 NANO板载一路SD卡接口,该接口仅具有拓展系统存储的作用,系统不能从SD卡启动,请注意,SD卡占用了40pin中的GPIO22-GPIO27,如果你希望将这些引脚用作其他功能,那么就不可以使用SD卡,否则会出现冲突。如果确实希望使用GPIO22-GPIO27,请不要安装SD卡以免出现问题。

关机后断开电源,将SD卡插入CM4 Nano底板的SD卡槽中,然后上电启动系统。即可在桌面看到拓展后SD卡的盘符,如下图:

# Boot

CM4 Nano上短接BOOT引脚和GND(J55),可以在上电时,阻止系统的正常启动,用来烧写系统,详细的使用过程请参考安装 (opens new window)。(请勿在其他场景下,将BOOT和GND短接,否则系统将不能正常启动)。

# Network

# Wireless

CM4模块可选配带有无线功能,包括:

  • 2.4 GHz, 5.0 GHz IEEE 802.11 b/g/n/ac wireless
  • Bluetooth 5.0, BLE

NOTE: 购买带无线功能的CM4模块可以参考订货编码。

# 选择内置或外置天线

CM4模块既支持板载的PCB天线,也支持外置天线,模块会在启动时,读取/boot/config.txt文件来选择天线的配置:

sudo nano /boot/config.txt

选择内置天线

 dtparam=ant1

选择外置天线

 dtparam=ant2

NOTE: 默认使用内置天线

# 打开无线功能

CM4 Nano上的无线网络功能默认关闭,执行下面的命令打开:

桌面版

在设置菜单中打开Raspberry Pi Configuration application , 选择Localisation 并按照提示填写。

Lite版

sudo raspi-config

# Ethernet

CM4 Nano板载一路千兆以太网接口。在测试之前请准备一根网线,和可以连接网络的路由器。连接好网线和其他的必要设备,上电后,系统会自动获取IP地址。

ping www.baidu.com -I eth0

# Display

# Raspberry Pi Touch Display

CM4 Nano 提供1路标准触摸屏DSI接口(J8),接入官方7寸触摸屏进行测试。测试前需准备一根DSI排线和官方触摸屏。在断电连接时,注意排线的插入方向,红色线是5V,黑色是GND,如下图所示:

  • 上电后即可在触摸屏上看到系统界面,如下图所示:

# HDMI

CM4 Nano板上的HDMI功能默认开启(J9),可直接插入HDMI线,连接显示器进行测试。

  • 通过修改config.txt文件,可调节HDMI的输出分辨率,重启后生效。
sudo vi /boot/config.txt

framebuffer_width=1280

framebuffer_height=720

# Video

# Camera

CM4 Nano 提供1路标准摄像头CSI接口(J7),可以接入树莓派官方摄像头进行拍照或者录像测试。测试前请准备一根CSI排线和一个官方摄像头。请在断电的情况下连接,在连接时请注意排线的插入方向,如下图所示:

系统上电后,打开终端,在终端中输入以下命令测试:

  • 系统默认关闭了摄像头接口,执行下面的操作打开摄像头
sudo raspi-config
  • 在弹出的菜单中,选择第五项,“Interfacing Options”,如下图所示
  • 在弹出的菜单中选择Camera,如下图所示:
  • 在弹出框中选择Yes,如下图所示:
  • 退出配置菜单并重启即可。

  • 开机进入系统后,打开终端,执行下面的命令进行拍照:

sudo raspistill -o 1.jpg
  • 执行下面的命令进行录像:
sudo raspivid -o  1.flv

# Connectivity

# USB 2.0

CM4 Nano具有一路USB 2.0接口,可以用于启动前系统的烧录(参考"安装 (opens new window)"),进入系统后还可以当作普通的USB口连接鼠标或者键盘使用。

# Buzzer

CM4 NANO板载一个蜂鸣器,由GPIO6引脚的高低电平控制,进入系统后,在终端中输入以下命令测试

sudo echo 6 > /sys/class/gpio/export

sudo echo out > /sys/class/gpio/gpio6/direction
  • 打开蜂鸣器
sudo echo 1 > /sys/class/gpio/gpio6/value
  • 关闭蜂鸣器
sudo echo 0 > /sys/class/gpio/gpio6/value

# USB 3.0

CM4 Nano 板载3路USB 3.0接口,两路为USB typeA Host,一路为USB typeC host,可接入U盘进行测试,其中USB typeC host的测试需要另外准备一个USB转接头,如下图所示:

将待测试的U盘插入任意一个USB 3.0口中,如下图所示:

  • 查看usb设备情况,其中Driver=usb-storage是插入的U盘:
 lsusb -t

/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M

|__ Port 2: Dev 2, If 0, Class=Mass Storage, Driver=usb-storage, 5000M

/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M

|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M

  • 使用hdparm软件测试U盘的速度
sudo hdparm -t /dev/sda

/dev/sda:

SG_IO: bad/missing sense data, sb[]: 70 00 05 00 00 00 00 14 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Timing buffered disk reads: 380 MB in 3.01 seconds = 126.37 MB/sec

# Bluetooth

cm4模组可选板载一个Bluetooth 5.0 BLE模块,用于连接蓝牙设备。

  • 进入bluetootch shell
sudo bluetoothctl
  • 使能Bluetooth
power on 
  • 扫描设备
 scan on

Discovery started

[CHG] Controller B8:27:EB:85:04:8B Discovering: yes

[NEW] Device 4A:39:CF:30:B3:11 4A-39-CF-30-B3-11

  • 查找开启的蓝牙设备名称,这里测试开启的蓝牙设备名称是test
 devices

Device 6A:7F:60:69:8B:79 6A-7F-60-69-8B-79

Device 67:64:5A:A3:2C:A2 67-64-5A-A3-2C-A2

Device 56:6A:59:B0:1C:D1 Lefun

Device 34:12:F9:91:FF:68 test

  • 配对test设备
pair 34:12:F9:91:FF:68

Attempting to pair with 34:12:F9:91:FF:68

[CHG] Device 34:12:F9:91:FF:68 ServicesResolved: yes

[CHG] Device 34:12:F9:91:FF:68 Paired: yes

Pairing successful

  • 连接蓝牙
trust 34:12:F9:91:FF:68

[CHG] Device 34:12:F9:91:FF:68 Trusted: yes

Changing 34:12:F9:91:FF:68 trust succeeded

# Expansion

# 40pin

CM4 Nano 向外拓展了标准的40pin引脚,兼容市面上的拓展模块。包含17个GPIO, 外加下列外设(亦可当作GPIO使用):UART、I²C、带两个选择的SPI总线,+3.3 V、+5 V、地线。每个GPIO引脚均可被定义为输入或者输出引脚,或者定义为其他功能。

# 电压

板上有两个 5V 引脚和两个 3V3 引脚,以及一些不可配置的接地引脚 (0V)。其余引脚均为通用 3V3 引脚,输出可以设置为 3V3,输入可兼容 3V3。

# 输出

GPIO引脚可以指定配置高电平(3V3)或低电平(0V)。

# 输入

指定为输入引脚的 GPIO 引脚可以读取为高 (3V3) 或低 (0V)。引脚 GPIO2 和 GPIO3 具有固定的上拉电阻,但对于其他引脚,可以在软件中进行配置。

# 复用

GPIO引脚可以复用为多种功能:

  • PWM(pulse-width modulation)

    • 对于软件PWM,所有的引脚均可实现。

    • 对于硬件PWM,指定的引脚为:GPIO12,GPIO13,GPIO18,GPIO19.

  • SPI

    • SPI0: MOSI (GPIO10); MISO (GPIO9); SCLK (GPIO11); CE0 (GPIO8), CE1 (GPIO7)
    • SPI1: MOSI (GPIO20); MISO (GPIO19); SCLK (GPIO21); CE0 (GPIO18); CE1 (GPIO17); CE2 (GPIO16)
  • I2C

    • Data: (GPIO2); Clock (GPIO3)
    • EEPROM Data: (GPIO0); EEPROM Clock (GPIO1)
  • Serial

    • TX (GPIO14); RX (GPIO15)