1,查看当前板子硬件图
找到J11对应的原理图
通过硬件手册确定复用关系
查看相关寄存器功能描述
USB3.0-HOST 0x1030_0000
USB3.0-DRD 0x1032_0000
Offset Address: 0xC110
PERI_USB3_GCTL 2’b10 Device 2,确定编译配置文件以及menuconfig 的UVC配置项是否有开
按<手册UAC开发参考.pdf> 配置并编译好系统。
3,修改系统配置文件vi /etc/profile
export VID=“0x1234”export PID=“0x0001”export MANUFACTURER=“Xxxx”export PRODUCT=“Camera”export SERIALNUMBER=“12345678”export YUV=“360p”export MJPEG=“360p 720p 1080p”export H264=“360p 720p 1080p” 4,执行脚本ConfigUVC.sh
#!/bin/shset–ex ####################################################### set_resolution() fill resoluton# $1 formats# $2 base_path# $3 0 or 1: means need fill dwMaxVideoFrameBufferSize# $4 format name string#######################################################function set_resolution(){for i in $1do echo “$i”case $i in“360p”) mkdir $2/360p/ echo –e “333333”> $2/360p/dwFrameInterval echo “333333”> $2/360p/dwDefaultFrameInterval echo “29491200”> $2/360p/dwMaxBitRateif[ $3 –eq 1]; then echo “460800”> $2/360p/dwMaxVideoFrameBufferSize fi echo “29491200”> $2/360p/dwMinBitRate echo “360”> $2/360p/wHeight echo “640”> $2/360p/wWidth;;“720p”) mkdir $2/720p/ echo –e “333333”> $2/720p/dwFrameInterval echo “333333”> $2/720p/dwDefaultFrameInterval echo “29491200”> $2/720p/dwMaxBitRateif[ $3 –eq 1]; then echo “1843200”> $2/720p/dwMaxVideoFrameBufferSize fi echo “29491200”> $2/720p/dwMinBitRate echo “720”> $2/720p/wHeight echo “1280”> $2/720p/wWidth;;“1080p”) mkdir $2/1080p/ echo –e “333333”> $2/1080p/dwFrameInterval echo “333333”> $2/1080p/dwDefaultFrameInterval echo “29491200”> $2/1080p/dwMaxBitRateif[ $3 –eq 1]; then echo “4147200”> $2/1080p/dwMaxVideoFrameBufferSize fi echo “29491200”> $2/1080p/dwMinBitRate echo “1080”> $2/1080p/wHeight echo “1920”> $2/1080p/wWidth;;“2160p”) mkdir $2/2160p/ echo –e “333333”> $2/2160p/dwFrameInterval echo “333333”> $2/2160p/dwDefaultFrameInterval echo “29491200”> $2/2160p/dwMaxBitRateif[ $3 –eq 1]; then echo “16588800”> $2/2160p/dwMaxVideoFrameBufferSize fi echo “29491200”> $2/2160p/dwMinBitRate echo “2160”> $2/2160p/wHeight echo “3840”> $2/2160p/wWidth;;*) echo “$4 $i is invalid!”;; esac done}####################################################### set_format() fill format# no argument#######################################################function set_format(){#YUVif[–n “$YUYV”]; then echo “Add YUYV…” mkdir streaming/uncompressed/yuy2/ echo –en “\x59\x55\x59\x32\x00\x00\x10\x00\x80\x00\x00\xaa\x00\x38\x9b\x71”> streaming/uncompressed/yuy2/guidFormat echo 16> streaming/uncompressed/yuy2/bBitsPerPixel set_resolution “$YUYV” streaming/uncompressed/yuy2/1“YUYV” ln –s streaming/uncompressed/yuy2/ streaming/header/h/ echo –e “Added YUYV\n” fi#NV21if[–n “$NV21”]; then echo “Add NV21…” mkdir streaming/uncompressed/nv21/ echo –en “\x4E\x56\x32\x31\x00\x00\x10\x00\x80\x00\x00\xaa\x00\x38\x9b\x71”> streaming/uncompressed/nv21/guidFormat echo 12> streaming/uncompressed/nv21/bBitsPerPixel set_resolution “$NV21” streaming/uncompressed/nv21/1“NV21” ln –s streaming/uncompressed/nv21/ streaming/header/h/ echo –e “Added NV21\n” fi#NV12if[–n “$NV12”]; then echo “Add NV12…” mkdir streaming/uncompressed/nv12/ echo –en “\x4E\x56\x31\x32\x00\x00\x10\x00\x80\x00\x00\xaa\x00\x38\x9b\x71”> streaming/uncompressed/nv12/guidFormat echo 12> streaming/uncompressed/nv12/bBitsPerPixel set_resolution “$NV12” streaming/uncompressed/nv12/1“NV12” ln –s streaming/uncompressed/nv12/ streaming/header/h/ echo –e “Added NV12\n” fi#MJPEGif[–n “$MJPEG”]; then echo “Add MJPEG…” mkdir streaming/mjpeg/m/ set_resolution “$MJPEG” streaming/mjpeg/m/1“MJPEG” ln –s streaming/mjpeg/m/ streaming/header/h/ echo –e “Added MJPEG\n” fi#H264if[–n “$H264”]; then echo “Add H264…” mkdir streaming/framebased/h264/ echo –en “\x48\x32\x36\x34\x00\x00\x10\x00\x80\x00\x00\xaa\x00\x38\x9b\x71”> streaming/framebased/h264/guidFormat set_resolution “$H264” streaming/framebased/h264/0“H264” ln –s streaming/framebased/h264/ streaming/header/h/ echo –e “Added H264\n” fi#HEVC aka H265if[–n “$H265”]; then echo “Add HEVC(H265)…” mkdir streaming/framebased/h265/ echo –en “\x48\x32\x36\x35\x00\x00\x10\x00\x80\x00\x00\xaa\x00\x38\x9b\x71”> streaming/framebased/h265/guidFormat set_resolution “$H265” streaming/framebased/h265/0“HEVC(H265)” ln –s streaming/framebased/h265/ streaming/header/h/ echo –e “Added HEVC(H265)\n” fi}mount –t configfs none /sys/kernel/config/cd /sys/kernel/config/usb_gadget/mkdir cameracd cameraecho “0x01”> bDeviceProtocolecho “0x02”> bDeviceSubClassecho “0xEF”> bDeviceClassecho $VID > idVendorecho $PID > idProductmkdir strings/0x409echo $MANUFACTURER > strings/0x409/manufacturerecho $PRODUCT > strings/0x409/productecho $SERIALNUMBER > strings/0x409/serialnumbermkdir functions/uvc.usb0cd functions/uvc.usb0mkdir control/header/h/echo “0x0110”> control/header/h/bcdUVCecho “48000000”> control/header/h/dwClockFrequencyln –s control/header/h/ control/class/fs/ln –s control/header/h/ control/class/ss/cat <<EOF> control/terminal/camera/default/bmControls$CamControl1$CamControl2$CamControl3EOFcat <<EOF> control/processing/default/bmControls$ProcControl1$ProcControl2EOFmkdir streaming/header/h/set_formatln –s streaming/header/h/ streaming/class/fs/ln –s streaming/header/h/ streaming/class/hs/ln –s streaming/header/h/ streaming/class/ss/#-Create and setup configurationcd ../../mkdir functions/uac1.usb0mkdir configs/c.1/echo “0x01”> configs/c.1/MaxPowerecho “0xc0”> configs/c.1/bmAttributesmkdir configs/c.1/strings/0x409/echo “Config 1”> configs/c.1/strings/0x409/configurationln –s functions/uvc.usb0/ configs/c.1/ln –s functions/uac1.usb0/ configs/c.1/echo “$(ls /sys/class/udc)”> UDC<
创建/dev/video0文件节点
5,执行sample_uvc6,使用Win10自带软件或AMCap相机-点击切换
7,注意:
其它问题看:https://www.ebaina.com/ask/100000050095
EB-SS928,使用3段式耳机,用一般手机通过的四段耳机无法录到声音。
免责声明:文章内容来自互联网,本站不对其真实性负责,也不承担任何法律责任,如有侵权等情况,请与本站联系删除。
转载请注明出处:EB-SS928 UVC调试-uv-9000s怎么用 https://www.yhzz.com.cn/a/9022.html