接上文【EASY EAI Nano-TB(RV1126B)开发板试用】开箱测评
https://pan.baidu.com/s/15pnbJXPN5TrfV2KfsKaZyQ?pwd=1234
打开下载目录

关于完整的硬件设计资料,可以通过百度网盘下载:
https://pan.baidu.com/s/1AULjgz6NcI2j7OC_tujqtw?pwd=1234(提取码:1234 )。

命令行功能测试
我准备在Ubuntu主板命令行启动后网络SSH 下用shell脚本进行控制部分硬件测试。从IO控制-灯闪开始。
EASY EAI Nano-TB可以基于MobaXterm的ssh远程桌面登录调试。首先使用网线把EASY EAI Nano-TB的千兆以太网接口与连着路由LAN口的交换机或者路由器的LAN口连接,如下图所示。

网络SSH 下链接Ubuntu主板必须知道Ubuntu主板网络地址。所以第一次它串口连接()通过ip addr查看eth0网卡和wlan0从路由器动态分配回来的IP地址。
串口被Windows正确识别后,通过设备管理器会查询到具体的串口号(如COM12),如下所示。

- 配置左侧的“serial”,波特率是1 .5Mbps,启动就能看到EASY EAI Orin-Nano从上电开始的所有日志信息了,如下图所示。如下图所示。


完全启动后可以输入ip addr命令查看网卡从路由器动态分配回来的IP地址,如下所示。

inet 192.168.1.8/24
经过查询可知被分配出来的IP地址分别为:
【eth0】--IP地址:inet 192.168.1.8,子网掩码(24):255.255.255.0-
可使用ssh登录。
- 配置“Session”,选择“SSH”,输入IP地址,最后点击“Open”即可,如下图所示。

- 首次连接,ssh客户端会根据ssh主机IP地址等信息生成一个ssh-key,以绑定标记ssh主机和它所对应的IP地址。若ssh主机的IP地址有变更,又或者别的ssh主机用了曾被记录下来的IP地址,导致ssh主机与IP地址不匹配,则会出现连不上的情况。此时需要用户手动清理掉客户端(putty)关于ssh主机与IP地址的绑定。具体的清理方式请用户自行根据所用的ssh客户端查阅,此处不展开叙述。

- 点击“Accept”后,则会提示输入登录信息,如下图所示。

EASY EAI Nano用户名:nano
EASY EAI Nano密码为:123456
登录后:

EASY EAI Nano-TB是带有基本系统 Ubuntu 22.04.5 LTS (GNU/Linux 6.1.118 aarch64)
快速上手NANO:
-
程序运行:https://www.easy-eai.com/document_details/3/136
-
开机启动:https://www.easy-eai.com/document_details/3/104
-
外设体验:https://www.easy-eai.com/document_details/3/188
-
固件更新:https://www.easy-eai.com/document_details/3/27
-
开源社区:https://developer.easy-eai.com/
-
交流Q群:810456486
开发板为用户预留了3个GPIO引脚以便测试和使用,见图1所示。

图1 预留的GPIO资源
注意:虽然GPIO可以热插拔,但在没给底板加装外壳保护的情况下,很容易触碰到底板上的器件,甚至板卡附近有金属零件很容易造成板卡短路。因此也建议在插拔外设时,最好确保电源已经完全切断。
GPIO的输入/输出电压为3.3V,注意电平匹配,否则会损坏芯片引脚或接入设备。
gpiod库:需要使用上表的【Chip对象名】和【Line偏移量】。
sysfs访问方式:需要使用上表的【GPIO系统节点路径】。对应的demo主要采用了gpiod方式控制GPIO。gpiod库通过操作chip对象以及line对象,来达到控制GPIO引脚输出电平,或者读取GPIO引脚电平的目的。
这3个GPIO引脚的位置见图2所示,在通常情况下,对于同一个引脚其往往会使用2个名字,一个是引脚名称,另一个则是ChipD对象名称。其间的变换关系见图4所示。

图2 引脚位置

图3 双命名

图4 变换关系
由上可知所提供的3个GPIO引脚,其名称的对于关系如下:
GPIO5_C0----gpio176
GPIO5_C1----gpio177
GPIO5_C2----gpio178
为使用GPIO资源,必须掌握引脚资源的导出、配置及使用。
引脚的导出申请:某一引脚在使用前,需要手动向gpio管理器申请导出该引脚资源。
echo 176 > /sys/class/gpio/export ## gpio_request 申请导出相应的gpio
设置该引脚的工作模式:输入或者输出。
echo in > /sys/class/gpio/gpio176/direction ## gpio_direction_output 设置相应gpio为输入方向
## 或者
echo out > /sys/class/gpio/gpio176/direction ## gpio_direction_output 设置相应gpio为输出方向
根据引脚的工作模式,做相应的控制:写入电平或读取电平。
cat /sys/class/gpio/gpio176/value ## gpio_get_value 获取gpio当前状态值
## 或者
echo 0 > /sys/class/gpio/gpio176/value ## gpio_set_value 设置输出低电平
echo 1 > /sys/class/gpio/gpio176/value ## gpio_set_value 设置输出高电平
引脚的释放申请:引脚使用完毕后,需要手动向gpio管理器申请释放该引脚资源。
echo 176 > /sys/class/gpio/unexport ## gpio_free 释放申请的gpio
导出与删除引脚资源的指令为export和unexport,其使用方法见图5所示。

图5 导出及删除引脚资源
为便于掌握GPIO的使用,将这3个GPIO引脚连接到* 红绿灯板 :一个简单的外部设备,包含红、绿、黄三个LED灯上,以控制其色彩的变换效果。
红绿灯板

-
红绿灯板 3V3 接EASY EAI Nano-TB(RV1126B)开发板 P1 的 1 EASY EAI Nano-TB(RV1126B)开发板 功能3V3
红绿灯板 GND 接EASY EAI Nano-TB(RV1126B)开发板 P1的 6 EASY EAI Nano-TB(RV1126B)开发板 功能 GND
红绿灯板 LEDr 红 接EASY EAI Nano-TB(RV1126B)开发板 P1 的 13 EASY EAI Nano-TB(RV1126B)开发板 功能 GPIO5_C0
红绿灯板 LEDg 绿 接EASY EAI Nano-TB(RV1126B)开发板 P1 的 15 EASY EAI Nano-TB(RV1126B)开发板 功能 GPIO5_C1
红绿灯板 LEDy 接EASY EAI Nano-TB(RV1126B)开发板 P1 的 37 EASY EAI Nano-TB(RV1126B)开发板 功能 GPIO5_C2
GPIO5_C0----gpio176 ----红绿灯板 LEDr 红
GPIO5_C1----gpio177 ----红绿灯板 LEDg 绿
GPIO5_C2----gpio178 ----红绿灯板 LEDy 黄
进行IO控制灯闪其实不需要上显示和这么大的系统
实时性也不十分好。:/home/nano/目录下建立led.sh内容如下
#!/bin/sh
echo 176 > /sys/class/gpio/export ## gpio_request 申请导出相应的gpio
echo out > /sys/class/gpio/gpio176/direction ## gpio_direction_output 设置相应gpio为输出方向
while true; do
echo 0 > /sys/class/gpio/gpio176/value ## gpio_set_value 设置输出低电平
sleep 0.5
echo 1 > /sys/class/gpio/gpio176/value ## gpio_set_value 设置输出高电平
sleep 0.5
done
加x权限:/home/nano/ # chmod u+x
执行shell脚本
/home/nano# sh ./led.sh
LEDr 红灯正常闪 ****
部分机器状态
ps
PID TTY TIME CMD
674 pts/0 00:00:00 bash
1842 pts/0 00:00:00 ps
达到预期。