这个是一个基于FPGA的视频播放器,可以解码Motion JPEG的视频流,然后通过HDMI或者VGA进行显示。
特性
- 1280×720 [720p50 / ‘standard HD’] 25fps video (also supports 24fps)
- 44.1KHz stereo audio (I2S or SPDIF)
- 硬件加速的 JPEG 解码
- SD/MMC card interface (FAT16/32 support)
- MP3 回放 (SW codec)
- JPEG stills display
- 红外遥控
基本原理
为什么做这个?就是为了好玩! 这个项目是我的一些开源数字 IP(RISC-V CPU、音频+视频控制器)的一个有趣的测试用例,还汇集了我过去几年编写的各种软件项目(RTOS、FAT32 库)。
支持的硬件
- Digilent Arty A7 + PMOD I2S2 + PMOD MicroSD + PMOD VGA or PMOD2HDMI Breakout Cable + IR receiver。
系统框图
工程文件
FPGA工程由好几个子工程构成
CPU – RISC-V
Peripherals
UART -> AXI Debug Bridge
SD/MMC interface
JPEG decoder
Audio controller
DVI framebuffer
在固件端,这个工程用了这些技术栈
Custom RTOS
FAT32 Library
MP3 decoder
LVGL User Interface
上手指南
固件需通使用32位的RISC-V GCC编译:
# 1. Build firmware
cd firmware/app
make
# 2. Copy firmware/app/build.riscv.boot/boot.bin to a FAT32 SD card
FPGA 逻辑的bootROM会自动地从SD卡的根目录加载boot.bin
注意: SD卡必须格式化成FAT16或者FAT32,而不是EXFAT!
红外遥控
这个工程支持红外遥控器,目前支持NEC协议。
红外遥控码是设备相关的,但是可以在这个文件中进行更改。
为方便调试,UART 输出任何接收到的 IR 代码,因此将控件调整到新遥控器相对简单。
下载链接: