本章节将介绍V853开发板上各模块的基础使用方法。
V853开发板集成了LED、WiFi、蓝牙、以太网、音频、屏幕、USB、TF卡等模块。本章节将对这些模块进行简单的操作介绍,方便开发者快速上手了解开发板。
*注:
- 本文中
root@TinaLinux:~#
开头的命令是在开发板上通过 ADB、串口 在 Tina Linux 系统内运行的。C:\System>
是在电脑命令提示符(CMD)
中运行的,=>
开头的命令是在 U-Boot 内运行的。在输入命令时候不需要输入上面提到的命令头。 - 本文中部分命令提供了运行命令后的打印输出,方便运行参考。
调试
串口调试
V853 开发板有独立的两个调试串口可供选择,分别是 UART0 与 UART3,对应芯片的 UART0 PH9
PH10
,UART3 PH1
PH2
。
按照默认的 SDK 配置,UART0 提供 Arm 核的调试输出,UART3 提供 E907 RV 核的调试输出。
提供的FT232 USB转串口线定义为:黑色-GND,绿色-RX,白色-TX,红色为电源
硬件连接完成后,使用串口终端访问,波特率 115200
。例如这里使用的 PuTTY
ADB 调试
在电脑上安装 ADB,打开 CMD 使用 adb shell
进入终端。
(1) 在 全志开发者社区-资料下载 专区 下载 ADB 工具 ADB(tab自动补全版)
(2)下载后解压放到本地磁盘下(例如D盘的adb文件夹里)
(3) 右键 ”此电脑“,属性,找到高级系统设置,点击环境变量,xxx用户的环境变量,Path,新增一个环境变量。
(4) 打开命令提示符,输入 adb shell
C:\System> adb shell
* daemon not running. starting it now on port 5037 *
* daemon started successfully *_____ _ __ _
|_ _||_| ___ _ _ | | |_| ___ _ _ _ _| | _ | || | | |__ | || || | ||_'_|| | | || | || _ | |_____||_||_|_||___||_,_||_| |_||_|_||_|_| Tina is Based on OpenWrt!----------------------------------------------Tina Linux (5.0)----------------------------------------------
root@TinaLinux:/#
ADB 也可以作为文件传输使用,例如:
C:\System> adb push badapple.mp4 /mnt/UDISK # 将 badapple.mp4 上传到开发板 /mnt/UDISK 目录内
C:\System> adb pull /mnt/UDISK/badapple.mp4 # 将 /mnt/UDISK/badapple.mp4 下拉到当前目录内
开机与重启
开机
目前开发板为上电即开机的模式,仅需要插入 12V DC 电源适配器或使用USB Type C线连接电源即可。
请注意,如果 Type C 连接电脑的 USB 口可能会因为电脑的 USB 输出电流较低导致设备反复启动。这时需要插入 12V DC 电源适配器作为辅助供电。
同时 USB 也可以通过图中位于 USB 口左侧的连接器进行连接(米白色),方便装配使用。
开发板右下角的白色连接器为电池接口,可以连接受支持的锂电池使用。
上电开机完毕后会有如下打印。
BusyBox v1.33.2 (2022-05-31 06:54:45 UTC) built-in shell (ash)------run profile file-----_____ _ __ _
|_ _||_| ___ _ _ | | |_| ___ _ _ _ _| | _ | || | | |__ | || || | ||_'_|| | | || | || _ | |_____||_||_|_||___||_,_||_| |_||_|_||_|_| Tina is Based on OpenWrt!----------------------------------------------Tina Linux (5.0)----------------------------------------------
swu_param: ####
swu_software: ####
swu_mode: ####
no swupdate_cmd to run, wait for next swupdate
root@TinaLinux:/#
重启
重启有两种方式,第一种通过按压 RESET
按键重置 CPU 达到重启的功能,另外一种通过 linux 命令行实现。
按键重启
在开发板左下角部分找到 RESET 按键,按压即可重启。
命令行重启
在开发板终端 Linux 命令行中输入 reboot
即可重启
root@TinaLinux:/# reboot
在开发板终端 U-Boot 命令行中输入 reset
即可重启
=> reset
进入烧录模式
有多种方式可以让开发板进入烧录模式。
按键进入烧录模式
在开发板左下角找到按键 RESET
UBOOT
(1)按住 UBOOT
按键
(2)轻点 RESET
按键,开发板重置
(3)等待电脑连接成功,松开 UBOOT
按键
命令行烧录模式
在 Linux 命令行中输入 reboot efex
即可重启进入烧录模式
root@TinaLinux:/# reboot efex
在 U-Boot 命令行中输入 efex
即可重启进入烧录模式
=> efex
GPIO 点灯测试
开发板有一颗 LED 灯供用户操作,接在 PH11
上。换算该 IO 的数字标号为:7 * 32 + 11 = 235,或者查看 IO 复用情况表,其中(MUX UNCLAIMED)
表示这个 GPIO 目前没有被使用:
root@TinaLinux:/# cat /sys/kernel/debug/pinctrl/pio/pinmux-pins
它会输出以下内容
...上略
pin 231 (PH7): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 232 (PH8): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 233 (PH9): uart0 (GPIO UNCLAIMED) function uart0 group PH9
pin 234 (PH10): uart0 (GPIO UNCLAIMED) function uart0 group PH10
pin 235 (PH11): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 236 (PH12): (MUX UNCLAIMED) pio:236
pin 237 (PH13): 2020000.wiegand pio:237 function wiegand group PH13
pin 238 (PH14): 2020000.wiegand pio:238 function wiegand group PH14
pin 239 (PH15): (MUX UNCLAIMED) pio:239
...下略
我们先导出该 GPIO:
echo 235 > /sys/class/gpio/export
cd /sys/class/gpio/gpio235
然后再将该 IO 置为输出状态,即可操作其电平:
echo out > direction
echo 1 > value #LED点亮
echo 0 > value #LED熄灭
Wi-Fi
V853 开发板使用的是 XR829 Wi-Fi & BT 模块,使用 40M 外部晶振,其Wi-Fi部分通过SDIO总线与 V853 通讯,设备位于 SDC1
接口上。
Wi-Fi 测试与连接网络
Wi-Fi 扫描网络与连接网络
Tina 提供了一套简易方便的 Wi-Fi 测试套件:wifi
。 使用 wifi
命令可以设置 Wi-Fi 的工作模式,扫描网络,连接网络等等。 它的使用方法可以通过运行 wifi -h
了解。 这里首先介绍如何使用 wifi
扫描网络:
(1)设置 Wi-Fi
为 STATION
模式
root@TinaLinux:/# wifi -o sta
(2)扫描当前网络环境的 Wi-Fi 站点
root@TinaLinux:/# wifi -s
(3)连接Wi-Fi(SSID:awol,密码 12345678)
root@TinaLinux:/# wifi -c awol 12345678
(4)连接网络后输入 ifconfig
即可查看当前 ip 地址
可以使用 ping
命令测试 网络连接
root@TinaLinux:/# ping www.baidu.com
它会输出以下内容
PING 202.108.22.5 (202.108.22.5): 56 data bytes
64 bytes from 202.108.22.5: seq=0 ttl=49 time=48.734 ms
64 bytes from 202.108.22.5: seq=1 ttl=49 time=48.624 ms
64 bytes from 202.108.22.5: seq=2 ttl=49 time=58.370 ms
64 bytes from 202.108.22.5: seq=3 ttl=49 time=69.119 ms
64 bytes from 202.108.22.5: seq=4 ttl=49 time=49.635 ms
(5)关闭Wi-Fi
root@TinaLinux:/# wifi -f
Wi-Fi 建立热点
(1)创建热点 (SSID:v853,密码 12345678)
root@TinaLinux:/# wifi -o ap v853 12345678
(2)然后就可以扫描到 Wi-Fi 了,输入密码 12345678 进行连接
蓝牙
V853 开发板使用的是 XR829 Wi-Fi & BT 模块,使用 40M 外部晶振,其 蓝牙 部分通过 UART 总线与 V853 通讯,设备位于 UART2
接口上。
蓝牙测试
命令:
bt_test
蓝牙sink
将v853开发板作为蓝牙小音箱,通过蓝牙在开发板上播放音频
root@TinaLinux:/# bt_test -i -p a2dp-sink
音频功能
V853 开发板板载了两路麦克风输入,一路音频输入,一个扬声器输出。(注意,左侧 UART0 旁的 3.5mm 耳机接口是 GPS 使用的 UART 接口,不是耳机接口)
录音
查看录音设备
可以使用 arecord -l
命令查看开发板提供的录音设备。
root@TinaLinux:/# arecord -l
它会输出以下内容
**** List of CAPTURE Hardware Devices ****
card 0: audiocodec [audiocodec], device 0: soc@03000000:codec_plat-sunxi-snd-codec sunxi-snd-codec-0 []Subdevices: 1/1Subdevice #0: subdevice #0
card 1: snddaudio0 [snddaudio0], device 0: 2032000.daudio0_plat-snd-soc-dummy-dai snd-soc-dummy-dai-0 []Subdevices: 1/1Subdevice #0: subdevice #0
麦克风录音
V853 开发板板载了两个麦克风,位于 LINE-IN接口附近。
在录音之前,首先需要打开音频通路,配置内部 MIC1,MIC2 录制双通道音频。
选择 MIC1 输入
root@TinaLinux:/# amixer -D hw:audiocodec cset name='MIC1 Input Select' 0
它会输出以下内容
numid=23,iface=MIXER,name='MIC1 Input Select'; type=ENUMERATED,access=rw------,values=1,items=2; Item #0 'differ'; Item #1 'single': values=0
选择 MIC2 输入
root@TinaLinux:/# amixer -D hw:audiocodec cset name='MIC2 Input Select' 0
它会输出以下内容
numid=23,iface=MIXER,name='MIC2 Input Select'; type=ENUMERATED,access=rw------,values=1,items=2; Item #0 'differ'; Item #1 'single': values=0
开启 MIC1
root@TinaLinux:/# amixer -D hw:audiocodec cset name='MIC1 Switch' 1
它会输出以下内容
numid=17,iface=MIXER,name='MIC1 Switch'; type=BOOLEAN,access=rw------,values=1: values=on
开启 MIC2
root@TinaLinux:/# amixer -D hw:audiocodec cset name='MIC2 Switch' 1
它会输出以下内容
numid=17,iface=MIXER,name='MIC2 Switch'; type=BOOLEAN,access=rw------,values=1: values=on
设置 MIC1 音量
root@TinaLinux:/# amixer -D hw:audiocodec cset name='MIC1 gain volume' 30
它会输出以下内容
numid=12,iface=MIXER,name='MIC1 gain volume'; type=INTEGER,access=rw---R--,values=1,min=0,max=31,step=0: values=19| dBscale-min=0.00dB,step=1.00dB,mute=0
设置 MIC2 音量
root@TinaLinux:/# amixer -D hw:audiocodec cset name='MIC2 gain volume' 30
它会输出以下内容
numid=12,iface=MIXER,name='MIC2 gain volume'; type=INTEGER,access=rw---R--,values=1,min=0,max=31,step=0: values=19| dBscale-min=0.00dB,step=1.00dB,mute=0
使用 arecord -D hw:audiocodec -f S16_LE -t wav -c2 -r 16000 -d 3 t.wav
命令,使用板载的两个麦克风进行录音。
root@TinaLinux:/# arecord -D hw:audiocodec -f S16_LE -t wav -c2 -r 16000 -d 3 t.wav
它会输出以下内容
Recording WAVE 't.wav' : Signed 16 bit Little Endian, Rate 16000 Hz, Stereo
播放
查看播放设备
使用 aplay -l
查看播放设备
root@TinaLinux:/# aplay -l
它会输出以下内容
**** List of PLAYBACK Hardware Devices ****
card 0: audiocodec [audiocodec], device 0: soc@03000000:codec_plat-sunxi-snd-codec sunxi-snd-codec-0 []Subdevices: 1/1Subdevice #0: subdevice #0
card 1: snddaudio0 [snddaudio0], device 0: 2032000.daudio0_plat-snd-soc-dummy-dai snd-soc-dummy-dai-0 []Subdevices: 1/1Subdevice #0: subdevice #0
扬声器播放音频
在播放之前,首先需要打开音频通路,配置扬声器播放音频。
开启 LINEOUT 输出功能
root@TinaLinux:/# amixer -D hw:audiocodec cset name='LINEOUT Output Select' 1
它会输出以下内容
numid=22,iface=MIXER,name='LINEOUT Output Select'; type=ENUMERATED,access=rw------,values=1,items=2; Item #0 'single'; Item #1 'differ': values=1
开启 LINEOUT 通路
root@TinaLinux:/# amixer -D hw:audiocodec cset name='LINEOUT Switch' 1
它会输出以下内容
numid=20,iface=MIXER,name='LINEOUT Switch'; type=BOOLEAN,access=rw------,values=1: values=on
设置输出音量
root@TinaLinux:/# amixer -D hw:audiocodec cset name='LINEOUT volume' 25
它会输出以下内容
numid=16,iface=MIXER,name='LINEOUT volume'; type=INTEGER,access=rw---R--,values=1,min=0,max=31,step=0: values=25| dBrange-rangemin=0,,rangemax=1| dBscale-min=0.00dB,step=0.00dB,mute=1rangemin=2,,rangemax=31| dBscale-min=-43.50dB,step=1.50dB,mute=1
使用 aplay
通过外接扬声器播放刚才录制的音频。
aplay -D hw:audiocodec t.wav
它会输出以下内容
Playing WAVE 't.wav' : Signed 16 bit Little Endian, Rate 16000 Hz, Stereo
修改音量
使用 alsamixer
提供的图形化界面调整音量。
root@TinaLinux:/# alasmixer
有线网络
V853 开发板板载百兆以太网络,使用 IP101GR 以太网收发器。
测试网络
插入网线,使用 ifconfig eth0 up
打开网络设备,udhcp -i eth0
动态活动IP地址。之后可以使用 ping
命令测试网络连接。
root@TinaLinux:/# ifconfig eth0 up
root@TinaLinux:/# udhcp -i eth0
运行 ping
测试
root@TinaLinux:/# ping www.baidu.com
它会输出以下内容
PING 202.108.22.5 (202.108.22.5): 56 data bytes
64 bytes from 202.108.22.5: seq=0 ttl=49 time=48.734 ms
64 bytes from 202.108.22.5: seq=1 ttl=49 time=48.624 ms
64 bytes from 202.108.22.5: seq=2 ttl=49 time=58.370 ms
64 bytes from 202.108.22.5: seq=3 ttl=49 time=69.119 ms
64 bytes from 202.108.22.5: seq=4 ttl=49 time=49.635 ms
LCD 显示
V853 开发板配套 7寸 LCD屏幕,配有相对应的电容式触摸屏幕。
屏幕基本测试
当前固件在开机时会显示 Tina 小企鹅的开机 LOGO。
花屏测试
cat /dev/urandom > /dev/fb0
彩色条纹测试
通过 echo
到 /sys/class/disp/disp/attr/colorbar
进行测试,0 到 7 是不同的彩色条纹效果哦
echo 0 > /sys/class/disp/disp/attr/colorbar
UI 测试
LVGL 测试
LVGL(轻量级和通用图形库)是一个免费和开源的图形库,它提供了创建嵌入式GUI所需的一切,具有易于使用的图形元素,美丽的视觉效果和低内存占用。 这里运行 lv_examples 1
进行测试。
root@TinaLinux:/# lv_examples 1
同时固件也提供了多种测试效果,
运行 lv_examples 0 是 lv_demo_widgets
运行 lv_examples 1 是 lv_demo_music
运行 lv_examples 2 是 lv_demo_benchmark
运行 lv_examples 3 是 lv_demo_keypad_encoder
运行 lv_examples 4 是 lv_demo_stress
DirectFB 测试
DirectFB是一个轻量级的硬件图形加速、输入设备处理特性和抽象的图形库,它集成了在Linux Framebuffer驱动之上的多层显示的功能。
root@TinaLinux:/# df_andi
同时固件也提供了多种测试效果可供选择。
df_andi df_drivertest2 df_matrix df_texture
df_flip df_neo df_window df_dok
df_knuckles df_porter df_drivertest
LCD 触摸
LCD 触摸测试
LCD 触摸时会向 V853 发送数据,可以通过 cat
命令获取这些数据。
root@TinaLinux:~# cat /dev/input/event0
运行后触摸屏幕在终端命令行会输出乱码。即为获得的触摸信号。
摄像头
V853 开发板默认提供双1080p摄像头方案,型号是GC2063。
实时显示
摄像头图像显示到屏幕上
使用 sample_virvi2vo
捕获摄像头图像并显示。
root@TinaLinux:~# sample_virvi2vo /usr/sample_virvi2vo.conf
USB
USB OTG 切换模式
切换到 Device 模式
root@TinaLinux:~# cat /sys/devices/platform/soc/usbc0/usb_device
切换到 Host 模式
root@TinaLinux:~# cat /sys/devices/platform/soc/usbc0/usb_host
USB U盘测试
V853 的 Type C USB 连接器支持 OTG,可以连接 U盘、鼠标键盘 等物品。在接入 USB TYPE A 设备的时候需要一个 USB TYPE C 转 TYPE A 转接头。
先把USB切换到 HOST 模式
root@TinaLinux:~# cat /sys/devices/platform/soc/usbc0/usb_host
插入 U 盘,自动挂载 /mnt/exUDISK
目录
TF Card
插入 TF 卡,TF卡将自动挂载到 /mnt/sdcard
目录下