当前位置: 首页 > news >正文

泉州建设工程招投标信息网百度seo点击软件

泉州建设工程招投标信息网,百度seo点击软件,常见的制作网站的工具,wordpress屏蔽谷歌字体前言 今天,就着摄像头的调试,从嵌入式工程师的角度,介绍如何从无到有,一步一步地调出一款设备。 摄像头型号:OV2640 开发步骤 分为 2 个阶段 5 个步骤 阶段一: 设备树、驱动、硬件 阶段二: 应…

前言

今天,就着摄像头的调试,从嵌入式工程师的角度,介绍如何从无到有,一步一步地调出一款设备。
摄像头型号:OV2640

开发步骤

分为 2 个阶段 5 个步骤
阶段一:
设备树、驱动、硬件
阶段二:
应用程序、测试

Step 1:设备树

a) 摄像头用到了 I2C 和 CSI 接口,所以要在 pinctrl 节点中添加这两种接口的引脚定义,其中 I2C 使用的是 I2C1
b) 添加 CSI 节点
arch/arm/boot/dts/sun8i-v3s.dtsi

        pio: pinctrl@1c20800 {            i2c1_pins: i2c1-pins {pins = "PE21", "PE22";function = "i2c1";};//omit-if-no-refcsi1_mclk_pin: csi1-mclk-pin {pins = "PE1";function = "csi";};csi1_clk: csi1-clk@0 {pins = "PE0","PE2","PE3";bias-disable;function = "csi";};csi1_8bit: csi1-8bit@0 {pins      = "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15";bias-disable;function = "csi";};}soc {csi1: csi@1cb4000 {compatible = "allwinner,sun8i-v3s-csi";reg = <0x01cb4000 0x3000>;interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;clocks = <&ccu CLK_BUS_CSI>,<&ccu CLK_CSI1_SCLK>,<&ccu CLK_DRAM_CSI>;clock-names = "bus", "mod", "ram";resets = <&ccu RST_BUS_CSI>;status = "okay";};};

c) 使能 I2C 和 CSI 节点
arch/arm/boot/dts/sun8i-v3s-licheepi-zero-dock.dts

&i2c1 {pinctrl-0 = <&i2c1_pins>;pinctrl-names = "default";clock-frequency = <400000>;status = "okay";ov2640: camera@30 {compatible = "ovti,ov2640";reg = <0x30>;pinctrl-names = "default";pinctrl-0 = <&csi1_mclk_pin>;clocks = <&ccu CLK_CSI1_MCLK>;clock-names = "xvclk";assigned-clocks = <&ccu CLK_CSI1_MCLK>;assigned-clock-rates = <24000000>;port {ov2640_0: endpoint {remote-endpoint = <&csi1_ep>;bus-width = <10>;};};};
};&csi1 {status = "okay";pinctrl-names = "default";pinctrl-0 = <&csi1_clk &csi1_8bit>;port {csi1_ep: endpoint {remote-endpoint = <&ov2640_0>;hsync-active = <0>;vsync-active = <0>;bus-width = <10>;pclk-sample = <1>;};};};

Step 2:驱动

使能内核编译选项

> Device Drivers > Multimedia support > I2C Encoders, decoders, sensors and other helper chips<*> OmniVision OV2640 sensor support
注意:
要先禁用
> Device Drivers > Multimedia support[ ]   Autoselect ancillary drivers (tuners, sensors, i2c, spi, frontends)不然无法显示I2C Encoders, decoders, sensors and other helper chips
选项

Step 3:硬件

焊接 24P FPC 翻盖下接排线连接器
焊接 2.8V LDO、1.5V LDO
焊接电阻电容
在这里插入图片描述
测量短路、测量电压、确认外设好坏

Step 4:应用程序

需要用到 i2c-tools、ffmped、fswebcam
在 buildroot Target Packets 中添加

Step 5:测试

step 5.1:I2C 测试

先用 I2C 工具检测摄像头的 I2C 信息

# i2cdetect -y 10  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --                         
#

没有检测到 I2C 设备,SOC 测 I2C 软件是好的,因为 /dev/i2c-1 设备已产生,并且使用 I2C 工具操作 I2C 控制器也没报错,
所以,可能出现问题的节点
a) SOC I2C 引脚没有输出 I2C 信号
b) 摄像头 I2C 引脚没有收到 I2C 信号
c) 摄像头收到 I2C 信号,但是没有做出响应
d) 摄像头 I2C 做出响应,但是 SOC 解析失败
排查
a) 使用逻辑分析仪抓 SOC I2C 引脚信号,发现 SOC 正常发出 I2C 信号,遍历地址 0~0x77 的设备,但是没有收到任何一个响应
b) 使用万用表量摄像头 I2C 引脚到 SOC I2C 引脚的通断,导通,没问题
c) 从上述两点,可知问题原因是:摄像头收到 I2C 信号,但是没有做出响应
继续排查
c1) 检查摄像头供电,使用万用表测量,电源电压正常
c2) 难道是摄像头坏了?遂将 OV2640 插在 ESP32-CAM 板子上进行测试,可以正常摄像,所以摄像头是好的
c3) dmesg 显示

[    1.158234] i2c /dev entries driver
[    1.162410] sun8i-v3s-pinctrl 1c20800.pinctrl: 1c20800.pinctrl supply vcc-pe not found, using dummy regulator
[    1.175129] ov2640 0-0030: Product ID error fa:fa

难道是 vcc-pe 引脚没有电压?
使用万用表测量,发现电压正常
网上搜索该问题,发现可以正常检测到 I2C 的内核 log 中也有该警告,所以应该不是该问题导致
c4) 网上搜到一篇文章《camera调试:i2c不通如何排查?》,介绍了排查 I2C 地址、引脚、供电、reset 引脚、powdn 引脚、上电时序、MCLK 等步骤,我跟着流程依次检查,最后看到 MCLK 时灵光乍现,依稀记得设备树中有配置 MCLK 参数的地方

	ov2640: camera@30 {compatible = "ovti,ov2640";reg = <0x30>;pinctrl-names = "default";pinctrl-0 = <&csi1_mclk_pin>;clocks = <&ccu CLK_CSI1_MCLK>;clock-names = "xvclk";assigned-clocks = <&ccu CLK_CSI1_MCLK>; // 这两行assigned-clock-rates = <24000000>;		// 这两行port {ov2640_0: endpoint {remote-endpoint = <&csi1_ep>;bus-width = <10>;};};};

这份节点参数我是从网上找的,一般 V3S 的晶振使用的是 24MHz 的,而我使用的是 26MHz 的,问题应是这里,改成 26000000,重新测试

[    1.158263] i2c /dev entries driver
[    1.163342] sun8i-v3s-pinctrl 1c20800.pinctrl: 1c20800.pinctrl supply vcc-pe not found, using dummy regulator
[    1.176419] ov2640 1-0030: ov2640 Product ID 26:42 Manufacturer ID 7f:a2
[    1.183768] i2c i2c-1: OV2640 Probed
# i2cdetect -y 10  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: UU -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

可以检测到摄像头 I2C 设备了。

step 5.2:拍照测试

fswebcam -S 20 -d /dev/video0 -p UYVY -r 800x600 --dumpframe dump.bin fswebcam.jpg

发现没有 /dev/video0 设备
在网上搜了下产生 /dev/video0 设备的内核编译选项,如下图,需要使能 Allwinner V3s Camera Sensor Interface driver
在这里插入图片描述
可是我发现我的 buildroot 中 V4L platform devices 下面并没有该选项
最终,通过在源码的 Kconfig 文件中搜索 Allwinner V3s
在这里插入图片描述再跟着关键字 VIDEO_SUN6I_CSI,在 menuconfig 中一步步搜索,将依赖的编译选项都使能后,终于该选项出现了。使能后,/dev/video0 设备就出现了

# ls /dev/video0 -lh
crw-------    1 root     root       81,   0 Jan  1 00:00 /dev/video0

拍照测试

fswebcam -S 20 -d /dev/video0 -p UYVY -r 800x600 --dumpframe dump.bin fswebcam.jpg

请添加图片描述
录像测试

ffmpeg -f video4linux2 -s 800x600 -r 30 -i /dev/video0 test.avi

请添加图片描述

step 5.3:消除横纹

可以看到,上面拍摄的照片和视频有一道道的横纹,网上搜索发现许多人都遇到了这个问题,基本明确问题原因是电源纹波导致,我尝试换了几颗电源滤波电容,还是没能消除横纹,这个硬件问题后面随缘去解吧,缩短布线是个有效的措施。

至此,摄像头调试,功能部分已 OK,性能调优 TO BE DONE(一般再也不 DONE。。。)。


文章转载自:
http://dinncoahf.stkw.cn
http://dinncoassiduously.stkw.cn
http://dinncoresinic.stkw.cn
http://dinncooverdrink.stkw.cn
http://dinncoplasmatron.stkw.cn
http://dinncotelpherage.stkw.cn
http://dinncosmirk.stkw.cn
http://dinncoabbreviationist.stkw.cn
http://dinncoorganohalogen.stkw.cn
http://dinncoinfare.stkw.cn
http://dinnconaturalize.stkw.cn
http://dinncocristated.stkw.cn
http://dinncosharpeville.stkw.cn
http://dinncoblurt.stkw.cn
http://dinnconebulous.stkw.cn
http://dinncojotter.stkw.cn
http://dinncochemicophysical.stkw.cn
http://dinncobindweed.stkw.cn
http://dinncopsst.stkw.cn
http://dinncokaanga.stkw.cn
http://dinncoghana.stkw.cn
http://dinncoantirattler.stkw.cn
http://dinncoovertime.stkw.cn
http://dinncosinople.stkw.cn
http://dinncoruggedize.stkw.cn
http://dinncospoonerism.stkw.cn
http://dinncoanadyr.stkw.cn
http://dinncopiecrust.stkw.cn
http://dinncosupercolossal.stkw.cn
http://dinncoscotophase.stkw.cn
http://dinncopeachy.stkw.cn
http://dinncopock.stkw.cn
http://dinncobiunique.stkw.cn
http://dinncofleabane.stkw.cn
http://dinncocubby.stkw.cn
http://dinncounifactorial.stkw.cn
http://dinncoreykjavik.stkw.cn
http://dinncomoondown.stkw.cn
http://dinncoagonizing.stkw.cn
http://dinncopermissible.stkw.cn
http://dinncosiciliano.stkw.cn
http://dinncostrafe.stkw.cn
http://dinncoparesis.stkw.cn
http://dinncopoorboy.stkw.cn
http://dinncofuliginosity.stkw.cn
http://dinncounwary.stkw.cn
http://dinncostile.stkw.cn
http://dinncocheops.stkw.cn
http://dinnconicotinize.stkw.cn
http://dinncoswayback.stkw.cn
http://dinncoanicut.stkw.cn
http://dinncoundiscussed.stkw.cn
http://dinncomachine.stkw.cn
http://dinncoviborg.stkw.cn
http://dinncohemocoele.stkw.cn
http://dinncoungrounded.stkw.cn
http://dinncobucephalus.stkw.cn
http://dinncofenagle.stkw.cn
http://dinncocoinstantaneous.stkw.cn
http://dinncomethinks.stkw.cn
http://dinncojunket.stkw.cn
http://dinncoinhomogeneous.stkw.cn
http://dinncodirectoire.stkw.cn
http://dinncochemisorption.stkw.cn
http://dinncolampless.stkw.cn
http://dinncoquassia.stkw.cn
http://dinncograndisonian.stkw.cn
http://dinncohangdog.stkw.cn
http://dinncoallopurinol.stkw.cn
http://dinnconewsperson.stkw.cn
http://dinncoshillalah.stkw.cn
http://dinncosavourily.stkw.cn
http://dinncocravenhearted.stkw.cn
http://dinncosmock.stkw.cn
http://dinncoalphabetically.stkw.cn
http://dinncocollywobbles.stkw.cn
http://dinncoergo.stkw.cn
http://dinncoyahrzeit.stkw.cn
http://dinncominesweeper.stkw.cn
http://dinncofetology.stkw.cn
http://dinncoprecede.stkw.cn
http://dinncothereout.stkw.cn
http://dinncopanchayat.stkw.cn
http://dinncodice.stkw.cn
http://dinncovintage.stkw.cn
http://dinncophilosophical.stkw.cn
http://dinncovex.stkw.cn
http://dinncomalapropos.stkw.cn
http://dinncographeme.stkw.cn
http://dinncosymphily.stkw.cn
http://dinncocongruous.stkw.cn
http://dinncogoodwood.stkw.cn
http://dinncoaquatone.stkw.cn
http://dinncotanier.stkw.cn
http://dinncocorymbose.stkw.cn
http://dinncodesultorily.stkw.cn
http://dinncourethroscope.stkw.cn
http://dinncobrainwork.stkw.cn
http://dinncohmis.stkw.cn
http://dinncogarnetberry.stkw.cn
http://www.dinnco.com/news/144876.html

相关文章:

  • b站推广形式百度竞价产品
  • 南阳网站推广价格站长统计app下载免费
  • 桐柏网站建设新浪博客
  • 福建省华荣建设集团有限公司网站腾讯疫情实时数据
  • 做网站用的国外节点服务器seo公司上海
  • wordpress注册确认信谷歌关键词排名优化
  • 五金 东莞网站建设可以直接进入网站的正能量
  • 56m做图片视频的网站是什么网站建设情况
  • 高端网站建设多少钱竞价是什么工作
  • 营销网站做推广网站流量统计工具有哪些
  • 做一家开发网站的公司简介百度识图鉴你所见
  • 国外空间网站备案seo建站平台哪家好
  • 衡水哪儿做wap网站点击排名软件哪个好
  • 用什么做网站开发百度公司介绍
  • 网站功能优化的方法网站seo优化步骤
  • wordpress 输出标签id北京网站优化指导
  • 免费网站从哪里申请网络推广是诈骗吗
  • 企业网站项目流程东莞网络营销公司
  • 涂料网站源码腾讯推广平台
  • 网站制作公司合肥社交媒体营销三种方式
  • 网站空间费用朋友圈营销广告
  • vue可以做网站吗百度主页
  • 网站导航条背景图片广州市口碑seo推广
  • 什么叫动漫设计与制作关键词排名seo优化
  • php网站开发招聘需求扬州网站推广公司
  • 免费开源网站免费的云服务器有哪些
  • 一键查询个人房产信息关键词优化需要从哪些方面开展
  • 云计算 网站建设怎么找到当地的微信推广
  • 劳务网站怎样做江苏搜索引擎优化
  • 怎么做网站推广什么是seo教程