RISC-V生态开发套件解析(三):LicheeRV 86开发板外设介绍

简介: 随着RISC-V生态的蓬勃发展,相关开源开发套件也开始逐渐丰富。为了帮助开发者快速了解、玩转新推出的RISC-V开发套件,OCC推出RISC-V生态开发套件解析系列内容,详细讲解生态开发套件的功能特点与上手教程。

编辑语:

随着RISC-V生态的蓬勃发展,相关开源开发套件也开始逐渐丰富。为了帮助开发者快速了解、玩转新推出的RISC-V开发套件,OCC推出RISC-V生态开发套件解析系列内容,详细讲解生态开发套件的功能特点与上手教程。


有关Sipeed LicheeRV 86开发板,我们已经介绍了其套件组成和3种接线方式,并讲解了如何进行TF系统烧录操作。作为一款模块化的开发套件,LicheeRV 86开发板拥有丰富的外设功能。本期内容我们将集中讲解该套件各外设功能的操作方法,旨在帮助广大开发者认识其特点,并实现更深层次的应用开发。


01 点灯

1.1 准备

  • LicheeRV 核心板
  • 数据线

(注:该教程不适用于86-panel,因为对应引脚连接了外设,86panel用户可以拆下核心板来操作实验)


1.2 点灯操作

核心板的螺丝固定焊盘旁有一颗LED,查看原理图:https://dl.sipeed.com/shareURL/LICHEE/D1/Lichee_RV/HDK/2_Schematic


可知该LED连接的是PC1,换算该IO的数字标号为:2*32+1=65,或者查看IO复用情况表:

cat /sys/kernel/debug/pinctrl/2000000.pinctrl/pinmux-pins
...
pin 64 (PC0): device 2008000.ledc function ledc group PC0
pin 65 (PC1): UNCLAIMED
pin 66 (PC2): UNCLAIMED
pin 67 (PC3): UNCLAIMED
pin 68 (PC4): UNCLAIMED
pin 69 (PC5): UNCLAIMED
pin 70 (PC6): UNCLAIMED
pin 71 (PC7): UNCLAIMED

我们先导出该GPIO:


echo 65 > /sys/class/gpio/export
cd /sys/class/gpio/export/gpio65


然后再将该IO置为输出状态,即可操作其电平:


echo out>direction
echo 1 > value  #LED点亮
echo 0 > value  #LED熄灭


至此我们就成功在RISC-V 64 D1上点灯啦~


你也可以对 串行RGB LED WS2812 进行花式点灯:


  cd /sys/class/leds/
  echo 255 > sunxi_led0r/brightness;echo 0 > sunxi_led0g/brightness;echo 0 > sunxi_led0b/brightness;
  echo 0 > sunxi_led0r/brightness;echo 255 > sunxi_led0g/brightness;echo 0 > sunxi_led0b/brightness;
  echo 0 > sunxi_led0r/brightness;echo 0 > sunxi_led0g/brightness;echo 255 > sunxi_led0b/brightness;


02 音频功能

2.1 准备

  • LicheeRV 86 Panel (含Tina/WAFT镜像)
  • 数据线


2.2 录放音操作

录音设备查看


root@MaixLinux:~# arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: audiocodec [audiocodec], device 0: SUNXI-CODEC 2030000.codec-0 []
  Subdevices: 1/1
  Subdevice 0: subdevice 0
card 1: snddmic [snddmic], device 0: 2031000.dmic-dmic-hifi dmic-hifi-0 []
  Subdevices: 1/1
  Subdevice 0: subdevice 0
card 2: sndhdmi [sndhdmi], device 0: 2034000.daudio-audiohdmi-dai 20340a4.hdmiaudio-0 []
  Subdevices: 1/1
  Subdevice 0: subdevice 0


播放设备查看


root@MaixLinux:~# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: audiocodec [audiocodec], device 0: SUNXI-CODEC 2030000.codec-0 []
  Subdevices: 1/1
  Subdevice 0: subdevice 0
card 2: sndhdmi [sndhdmi], device 0: 2034000.daudio-audiohdmi-dai 20340a4.hdmiaudio-0 []
  Subdevices: 1/1
  Subdevice 0: subdevice 0


录放音测试:


  arecord -D hw:1,0 -f S16_LE -t wav -d 3 t.wav 
  aplay -D hw:0,0 t.wav


另外可以使用alsamixer 进行音量调整

image.png


aplay只能播放wav或者pcm格式,如果想播放mp3等编码的音频,可以使用内置的ffmpeg进行相关播放操作:


ffmpeg -i /root/ybdl.mp3 -f alsa hw:0,0  


image.png


03 USB及网络

3.1 准备

  • LicheeRV 86 Panel (含Tina/WAFT镜像)
  • 数据线
  • C转A的转接头


3.2 USB功能

86 panel 使用type-C口引出了USB Host口,所以需要使用C转A的转接头来插常见的USB外设。

image.png


默认内核支持外挂U盘的驱动,插上U盘后可以使用 fdisk -l 查看到新增的 /dev/sda 如果U盘没有被格式化,可以使用mkfs.vfat指令来格式化U盘,再使用mount指令挂载 默认Tina固件里的 /dev/mmcblk0p8 分区即可使用上述方式格式化后挂载,来提升可用空间.


默认也支持一些免驱的USB键鼠,如果你烧录的是debian镜像,可以直接使用USB键鼠进行界面操作。


如果需要支持其他USB功能,需要自行编译USB相关内核驱动。


3.3 有线网络

LicheeRV-86 Panel 支持百兆网络,使用套餐附送的网线尾线接上网线后,执行以下指令来连接有线网络


ifconfig eth0 up
udhcpc -ieth0


网线端子的连接方式为:

image.png


3.4 无线网络

LicheeRV 底板默认使用XR829或者RTL8723BS wifi模块,可以使用以下指令进行联网操作:先配置热点信息:


  vim /etc/wifi/wpa_supplicant.conf
  network={  
    ssid="Sipeed_2.4G"  
    psk="XXXX"  
  } 


配置完成后重启,ifconfig wlan0 up; udhcpc -iwlan0 即可连上对应的wifi。连上网络后,你就可以使用ssh远程登录板卡,或者使用scp来进行文件传输啦~


如果你烧录的是WAFT镜像,则开机默认会启动app_wifi.wasm应用,该应用内可以进行界面上的联网操作:

image.png


04 屏显触摸

4.1 准备

  • LicheeRV 86 Panel (含Tina/WAFT镜像)
  • 数据线
  • 自备MP4视频资源文件


4.2 屏幕显示

LicheeRV系列支持以下显示屏:


SPI屏    1.14寸屏(TODO)
RGB屏    4.3寸 480x272;5.0寸 800x480;
RGB+SPI屏  4.0寸 480x480(st7701s); 4.0寸 720x720(nv3052c)
MIPI屏    8.0寸 1280x720(ILI9881C)


Tina下可以通过以下指令测试屏幕显示:fbviewer xxx.jpg 如果需要调试屏幕驱动,可以使用以下指令查看屏幕驱动信息:


cat /sys/class/disp/disp/attr/sys
screen 0:
de_rate 300000000 hz, ref_fps:60
mgr0: 480x480 fmt[rgb] cs[0x204] range[full] eotf[0x4] bits[8bits] err[0] force_sync[0] unblank direct_show[false] iommu[1]
dmabuf: cache[0] cache max[0] umap skip[0] overflow[0]
  lcd output  backlight( 50)  fps:59.5  esd level(0)  freq(60)  pos(0)  reset(0)   480x 480
  err:0  skip:184  irq:230715  vsync:0  vsync_skip:0
   BUF    enable ch[1] lyr[0] z[16] prem[N] a[globl 255] fmt[  0] fb[ 480, 480; 480, 480; 480, 480] crop[   0,   0, 480, 480] frame[   0,   0, 480, 480] addr[ffe00000,       0,       0] flags[0x       0] trd[0,0]


屏幕彩条测试:echo 1 > /sys/class/disp/disp/attr/colorbar


4.3 屏幕触摸

如果你购买的是86面板套餐,可以使用 ts_test进行触摸测试 (注意触摸驱动有瑕疵,ts_test测试时松开后,光标会不动,但是终端仍会正常打印信息)

image.png


4.4 视频播放

最终我们可以尝试在LicheeRV上播放BadApple啦~ Tina镜像中内置了ffmpeg软件包,ffmpeg是强大的多媒体库,可以用于录屏或者播放 录屏指令:ffmpeg -f fbdev -framerate 10 -i /dev/fb0 record.avi 播放指令(分别是扬声器播放音频和hdmi播放音频):


ffmpeg -i /mnt/UDISK/badapple_640480_xvid.mp4 -pix_fmt bgra -f fbdev /dev/fb0 -f alsa hw:0,0  
ffmpeg -i /mnt/UDISK/badapple_640480_xvid.mp4 -pix_fmt bgra -f fbdev /dev/fb0 -f alsa hw:2,0


这里由于是CPU软解,所以测试最高分辨率约为720x540, 再高会变卡。


MP4资源可以从矽速下载站或者网盘中下载(详见镜像烧录章节的链接)

相关文章
|
24天前
|
小程序 前端开发 关系型数据库
uniapp跨平台框架,陪玩系统并发性能测试,小程序源码搭建开发解析
多功能一体游戏陪练、语音陪玩系统的开发涉及前期准备、技术选型、系统设计与开发及测试优化。首先,通过目标用户分析和竞品分析明确功能需求,如注册登录、预约匹配、实时语音等。技术选型上,前端采用Uni-app支持多端开发,后端选用PHP框架确保稳定性能,数据库使用MySQL保证数据一致性。系统设计阶段注重UI/UX设计和前后端开发,集成WebSocket实现语音聊天。最后,通过功能、性能和用户体验测试,确保系统的稳定性和用户满意度。
|
1月前
|
人工智能 监控 数据可视化
提升开发效率:看板方法的全面解析
随着软件开发复杂度提升,并行开发模式下面临资源分配不均、信息传递延迟及缺乏全局视图等瓶颈问题。看板工具通过任务状态实时可视化、流量效率监控和任务依赖管理,帮助团队直观展示和解决这些瓶颈。未来,结合AI预测和自动化优化,看板工具将更高效地支持并行开发,成为驱动协作与创新的核心支柱。
|
1月前
|
JSON 供应链 搜索推荐
淘宝APP分类API接口:开发、运用与收益全解析
淘宝APP作为国内领先的购物平台,拥有丰富的商品资源和庞大的用户群体。分类API接口是实现商品分类管理、查询及个性化推荐的关键工具。通过开发和使用该接口,商家可以构建分类树、进行商品查询与搜索、提供个性化推荐,从而提高销售额、增加商品曝光、提升用户体验并降低运营成本。此外,它还能帮助拓展业务范围,满足用户的多样化需求,推动电商业务的发展和创新。
65 5
|
2月前
|
安全 前端开发 Android开发
探索移动应用与系统:从开发到操作系统的深度解析
在数字化时代的浪潮中,移动应用和操作系统成为了我们日常生活的重要组成部分。本文将深入探讨移动应用的开发流程、关键技术和最佳实践,同时分析移动操作系统的核心功能、架构和安全性。通过实际案例和代码示例,我们将揭示如何构建高效、安全且用户友好的移动应用,并理解不同操作系统之间的差异及其对应用开发的影响。无论你是开发者还是对移动技术感兴趣的读者,这篇文章都将为你提供宝贵的见解和知识。
|
2月前
|
Java 调度 Android开发
安卓与iOS开发中的线程管理差异解析
在移动应用开发的广阔天地中,安卓和iOS两大平台各自拥有独特的魅力。如同东西方文化的差异,它们在处理多线程任务时也展现出不同的哲学。本文将带你穿梭于这两个平台之间,比较它们在线程管理上的核心理念、实现方式及性能考量,助你成为跨平台的编程高手。
|
3月前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
130 2
|
4月前
|
缓存 Java 程序员
Map - LinkedHashSet&Map源码解析
Map - LinkedHashSet&Map源码解析
100 1
|
2月前
|
设计模式 存储 安全
【23种设计模式·全精解析 | 创建型模式篇】5种创建型模式的结构概述、实现、优缺点、扩展、使用场景、源码解析
创建型模式的主要关注点是“怎样创建对象?”,它的主要特点是"将对象的创建与使用分离”。这样可以降低系统的耦合度,使用者不需要关注对象的创建细节。创建型模式分为5种:单例模式、工厂方法模式抽象工厂式、原型模式、建造者模式。
【23种设计模式·全精解析 | 创建型模式篇】5种创建型模式的结构概述、实现、优缺点、扩展、使用场景、源码解析
|
2月前
|
存储 设计模式 算法
【23种设计模式·全精解析 | 行为型模式篇】11种行为型模式的结构概述、案例实现、优缺点、扩展对比、使用场景、源码解析
行为型模式用于描述程序在运行时复杂的流程控制,即描述多个类或对象之间怎样相互协作共同完成单个对象都无法单独完成的任务,它涉及算法与对象间职责的分配。行为型模式分为类行为模式和对象行为模式,前者采用继承机制来在类间分派行为,后者采用组合或聚合在对象间分配行为。由于组合关系或聚合关系比继承关系耦合度低,满足“合成复用原则”,所以对象行为模式比类行为模式具有更大的灵活性。 行为型模式分为: • 模板方法模式 • 策略模式 • 命令模式 • 职责链模式 • 状态模式 • 观察者模式 • 中介者模式 • 迭代器模式 • 访问者模式 • 备忘录模式 • 解释器模式
【23种设计模式·全精解析 | 行为型模式篇】11种行为型模式的结构概述、案例实现、优缺点、扩展对比、使用场景、源码解析
|
2月前
|
设计模式 存储 安全
【23种设计模式·全精解析 | 创建型模式篇】5种创建型模式的结构概述、实现、优缺点、扩展、使用场景、源码解析
结构型模式描述如何将类或对象按某种布局组成更大的结构。它分为类结构型模式和对象结构型模式,前者采用继承机制来组织接口和类,后者釆用组合或聚合来组合对象。由于组合关系或聚合关系比继承关系耦合度低,满足“合成复用原则”,所以对象结构型模式比类结构型模式具有更大的灵活性。 结构型模式分为以下 7 种: • 代理模式 • 适配器模式 • 装饰者模式 • 桥接模式 • 外观模式 • 组合模式 • 享元模式
【23种设计模式·全精解析 | 创建型模式篇】5种创建型模式的结构概述、实现、优缺点、扩展、使用场景、源码解析

热门文章

最新文章

推荐镜像

更多