OV5640 IIC地址疑惑?1 [问题点数:20分]

Bbs1
本版专家分:0
结帖率 0%
Bbs7
本版专家分:19517
Blank
优秀版主 2014年11月论坛优秀版主
2014年11月论坛优秀版主
Blank
红花 2014年11月 硬件/嵌入开发大版内专家分月排行榜第一
2014年6月 硬件/嵌入开发大版内专家分月排行榜第一
Blank
黄花 2014年12月 硬件/嵌入开发大版内专家分月排行榜第二
2014年8月 硬件/嵌入开发大版内专家分月排行榜第二
2010年7月 硬件/嵌入开发大版内专家分月排行榜第二
Blank
蓝花 2014年7月 硬件/嵌入开发大版内专家分月排行榜第三
2013年1月 硬件/嵌入开发大版内专家分月排行榜第三
2012年10月 硬件/嵌入开发大版内专家分月排行榜第三
2010年6月 硬件/嵌入开发大版内专家分月排行榜第三
Bbs6
本版专家分:6831
Bbs6
本版专家分:6831
Bbs1
本版专家分:0
Bbs6
本版专家分:6831
Bbs2
本版专家分:124
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs1
本版专家分:15
Bbs1
本版专家分:0
-01-摄像头DVP输入IP核设计【OV5640】
在之前设计的OV5640输入接口逻辑上完善了一下代码,暂时出一版IP来用。DVP Timing首先看看OV5640的DVP信号时序: 先不考虑每个信号的具体时序,大致看一看他的波形,可以发现,这是一个很标准的时序。VSYNC是场同步信号,在图像数据发送之前会有一个高电平脉冲;HREF是数据有效信号,高电平时时代表D[9:0]的数据信号有效,可以理解为DE或者Data_valid;HSYNC是行同步
STM407ZET6+OV5640调试心得
最近一个项目用了STMF407ZET6 +OV5640,调试了好几天做些总结; STMF407ZET6 开发板用的是正点原子的开发板,OV5640摄像头用的是秉火摄像头; 这其中有一个大坑,开发板的DCMI接口跟摄像头的接口不一样,要重新用杜邦线进行连接; 本人是在正点原子的“”15,ATK-OV5640摄像头模块“”源码上进行修改的。
OV5640寄存器设置
可以选择设置qsxga: 2592*1936,qxga: 2048*1536,UXGA: 1600*1200,1080P : 1920*1080,SXGA: 1280*960,//XGA: 1024*768
gc2145_bpi_a64_android验证完成_改全部的ov5640为gc2145_20170524_1113没有外层目录.7z
在全志A64平台点亮GC2145 2017/5/25 14:39 小技巧,直接在全志A64的SDK中搜索<em>ov5640</em>(默认是几乎通的),全部替换为gc2145即可。 1、 R:\wyb\gc2145_bpi_a64_android\android\device\softwinner\bpi-m64-lcd\configs\camera.cfg ;------------------------------------------------------------------------------- ; 用于camera的配置 ; ; 采用格式: ; key = key_value ; 注意: 每个key需要顶格写; ; key_value紧跟着key后面的等号后面, 位于同一行中; ; key_value限制大小为256字节以内; ; ;------------------------------------------------------------------------------- ;------------------------------------------------------------------------------- ; exif information of "make" and "model" ;------------------------------------------------------------------------------- key_camera_exif_make = MAKE_A64 key_camera_exif_model = MODEL_A64 ;------------------------------------------------------------------------------- ; 1 for single camera, 2 for double camera ;------------------------------------------------------------------------------- number_of_camera = 1 ;------------------------------------------------------------------------------- ; CAMERA_FACING_BACK ; <em>ov5640</em> gc2145 ;------------------------------------------------------------------------------- camera_id = 0 ;------------------------------------------------------------------------------- ; 1 for CAMERA_FACING_FRONT ; 0 for CAMERA_FACING_BACK ;------------------------------------------------------------------------------- camera_facing = 0 ;------------------------------------------------------------------------------- ; 1 for camera without isp(using built-in isp of Axx) ; 0 for camera with isp ;------------------------------------------------------------------------------- use_builtin_isp = 0 ;------------------------------------------------------------------------------- ; camera orientation (0, 90, 180, 270) ;------------------------------------------------------------------------------- camera_orientation = 180 ;------------------------------------------------------------------------------- ; driver device name ;------------------------------------------------------------------------------- camera_device = /dev/video0 ;------------------------------------------------------------------------------- ; device id ; for two camera devices with one CSI ;------------------------------------------------------------------------------- device_id = 0 used_preview_size = 1 key_support_preview_size = 640x480 key_default_preview_size = 640x480 used_picture_size = 1 key_support_picture_size = 1600x1200, 1280x720, 800x600, 640x480 ;key_support_picture_size = 1600x1200, 640x480 key_default_picture_size = 640x480 used_flash_mode = 0 key_support_flash_mode = on,off,auto key_default_flash_mode = on used_color_effect = 1 key_support_color_effect = none,mono,negative,sepia,aqua key_default_color_effect = none used_frame_rate = 1 key_support_frame_rate = 30 key_default_frame_rate = 30 used_focus_mode = 1 key_support_focus_mode = auto,infinity,macro,fixed,continuous-video,continuous-picture key_default_focus_mode = auto used_scene_mode = 0 key_support_scene_mode = auto,portrait,landscape,night,night-portrait,theatre,beach,snow,sunset,steadyphoto,fireworks,sports,party,candlelight,barcode key_default_scene_mode = auto used_white_balance = 1 key_support_white_balance = auto,incandescent,fluorescent,warm-fluorescent,daylight,cloudy-daylight key_default_white_balance = auto used_exposure_compensation = 1 key_max_exposure_compensation = 3 key_min_exposure_compensation = -3 key_step_exposure_compensation = 1 key_default_exposure_compensation = 0 key_horizonal_view_angle = 48.6 key_vertical_view_angle = 37.0 used_zoom = 1 key_zoom_supported = true key_smooth_zoom_supported = false key_zoom_ratios = 100,120,150,200,230,250,300 key_max_zoom = 30 key_default_zoom = 0 2、 R:\wyb\gc2145_bpi_a64_android\android\device\softwinner\bpi-m64-lcd\init.sun50iw1p1.rc # csi module insmod /system/vendor/modules/videobuf2-core.ko insmod /system/vendor/modules/videobuf2-memops.ko insmod /system/vendor/modules/videobuf2-dma-contig.ko insmod /system/vendor/modules/vfe_io.ko insmod /system/vendor/modules/actuator.ko insmod /system/vendor/modules/dw9714_act.ko #insmod /system/vendor/modules/<em>ov5640</em>.ko insmod /system/vendor/modules/gc2145.ko insmod /system/vendor/modules/vfe_v4l2.ko 3、(可选操作:) R:\wyb\gc2145_bpi_a64_android\android\device\softwinner\bpi-m64-lcd\ueventd.sun50iw1p1.rc /dev/video0 0770 media media #/dev/video1 0770 media media 4、 R:\wyb\gc2145_bpi_a64_android\lichee\linux-3.10\arch\arm64\boot\dts\sun50iw1p1.dtsi csi0:vfe@0 { device_type= "csi0"; compatible = "allwinner,sunxi-vfe"; interrupts = ;/*SUNXI_IRQ_CSI0 (SUNXI_GIC_START + 84 ) = 116*/ pinctrl-names = "default","sleep"; pinctrl-0 = ; pinctrl-1 = ; cci_sel = ; csi_sel = ; mipi_sel = ; isp_sel = ; csi0_sensor_list = ; csi0_mck = ; /*PE1 .mul_sel = 1, .pull = 0, .drv_level = 1, .data = 0*/ status = "okay"; csi0_dev0:dev@0{ csi0_dev0_mname = "<em>ov5640</em>"; 修改为: csi0_dev0_mname = "gc2145"; csi0_dev0_twi_addr = ; csi0_dev0_pos = "rear"; csi0_dev0_isp_used = ; csi0_dev0_fmt = ; csi0_dev0_stby_mode = ; csi0_dev0_vflip = ; csi0_dev0_hflip = ; csi0_dev0_iovdd = "iovdd-csi"; csi0_dev0_iovdd_vol = ; csi0_dev0_avdd = "avdd-csi"; csi0_dev0_avdd_vol = ; csi0_dev0_dvdd = "dvdd-csi-18"; csi0_dev0_dvdd_vol = ; csi0_dev0_afvdd = ""; csi0_dev0_afvdd_vol = <>; csi0_dev0_power_en = <>; csi0_dev0_reset = ; /*PE14 .mul_sel = 1, .pull = 0, .drv_level = 1, .data = 0*/ csi0_dev0_pwdn = ; /*PE15 .mul_sel = 1, .pull = 0, .drv_level = 1, .data = 0*/ csi0_dev0_flash_used = ; csi0_dev0_flash_type = ; csi0_dev0_flash_en = <>; csi0_dev0_flash_mode = <>; csi0_dev0_flvdd = "vdd-csi-led"; csi0_dev0_flvdd_vol = ; csi0_dev0_af_pwdn = <>; csi0_dev0_act_used = ; csi0_dev0_act_name = "ad5820_act"; csi0_dev0_act_slave = ; status = "okay"; }; csi0_dev1:dev@1{ csi0_dev1_mname = ""; csi0_dev1_twi_addr = ; csi0_dev1_pos = "rear"; csi0_dev1_isp_used = ; csi0_dev1_fmt = ; csi0_dev1_stby_mode = ; csi0_dev1_vflip = ; csi0_dev1_hflip = ; csi0_dev1_iovdd = "iovdd-csi"; csi0_dev1_iovdd_vol = ; csi0_dev1_avdd = "avdd-csi"; csi0_dev1_avdd_vol = ; csi0_dev1_dvdd = "dvdd-csi-18"; csi0_dev1_dvdd_vol = ; csi0_dev1_afvdd = ""; csi0_dev1_afvdd_vol = <>; csi0_dev1_power_en = <>; csi0_dev1_reset = <>; csi0_dev1_pwdn = <>; csi0_dev1_flash_used = ; csi0_dev1_flash_type = ; csi0_dev1_flash_en = <>; csi0_dev1_flash_mode = <>; csi0_dev1_flvdd = "vdd-csi-led"; csi0_dev1_flvdd_vol = ; csi0_dev1_af_pwdn = <>; csi0_dev1_act_used = ; csi0_dev1_act_name = "ad5820_act"; csi0_dev1_act_slave = ; status = "disabled"; }; }; 5、 R:\wyb\gc2145_bpi_a64_android\lichee\linux-3.10\drivers\media\platform\sunxi-vfe\device\Makefile obj-m += <em>ov5640</em>.o obj-m += ov2640.o #obj-m += ov7736.o #obj-m += s5k4ec.o #obj-m += s5k4ec_mipi.o #obj-m += gc2035.o #obj-m += gt2005.o #obj-m += gc0307.o obj-m += gc0308.o #obj-m += gc0328.o #obj-m += gc0328c.o obj-m += gc2145.o #obj-m += gc0329.o #obj-m += gc0311.o #obj-m += hi253.o #obj-m += sp2518.o #obj-m += sp2519.o #obj-m += sp0718.o #obj-m += sp0838.o #obj-m += ov16825.o #obj-m += ov5650.o #obj-m += ov5647.o #obj-m += ov5647_mipi.o #obj-m += t8et5.o #obj-m += s5k4e1.o #obj-m += s5k4e1_mipi.o #obj-m += sp2518.o #obj-m += sp0718.o #obj-m += gc5004.o #obj-m += gc5004_mipi.o #obj-m += ov5648.o #obj-m += ar0330.o #obj-m += ov5648.o #obj-m += sp5408.o #obj-m += ov12830.o #obj-m += ov8825.o #obj-m += ov8850.o #obj-m += gc2155.o #obj-m += ov8858.o #obj-m += ov13850.o #obj-m += imx214.o #obj-m += ov8858_4lane.o #obj-m += sp5409.o #obj-m += s5k5e2yx.o #obj-m += ov2710_mipi.o #obj-m += ov2686.o 6、 R:\wyb\gc2145_bpi_a64_android\lichee\linux-3.10\drivers\media\platform\sunxi-vfe\utility\sensor_info.c struct sensor_item sensor_list_t[] = { // name i2c_addr sensor type sensor size sensor max pclk { "ov2640" , 0x60, SENSOR_YUV , PIXEL_NUM_2M , CORE_CLK_RATE_FOR_2M}, { "<em>ov5640</em>" , 0x78, SENSOR_YUV , PIXEL_NUM_5M , CORE_CLK_RATE_FOR_5M}, { "ov5647" , 0x6c, SENSOR_RAW , PIXEL_NUM_5M , CORE_CLK_RATE_FOR_5M}, { "ov5647_mipi" , 0x6c, SENSOR_RAW , PIXEL_NUM_5M , CORE_CLK_RATE_FOR_5M}, { "ov5650" , 0x50, SENSOR_RAW , PIXEL_NUM_5M , CORE_CLK_RATE_FOR_5M}, { "ov5648" , 0x6c, SENSOR_RAW , PIXEL_NUM_5M , CORE_CLK_RATE_FOR_5M}, { "ov8825" , 0x6c, SENSOR_RAW , PIXEL_NUM_8M , CORE_CLK_RATE_FOR_8M}, { "ov8850" , 0x20, SENSOR_RAW , PIXEL_NUM_8M , CORE_CLK_RATE_FOR_8M}, { "ov12830" , 0x6c, SENSOR_RAW , PIXEL_NUM_12M , CORE_CLK_RATE_FOR_16M}, { "ov16825" , 0x6c, SENSOR_RAW , PIXEL_NUM_16M , CORE_CLK_RATE_FOR_16M}, { "gc0329" , 0x62, SENSOR_YUV , PIXEL_NUM_0_3M , CORE_CLK_RATE_FOR_2M}, { "gc0309" , 0x42, SENSOR_YUV , PIXEL_NUM_0_3M , CORE_CLK_RATE_FOR_2M}, { "gc0307" , 0x42, SENSOR_YUV , PIXEL_NUM_0_3M , CORE_CLK_RATE_FOR_2M}, { "gc0308" , 0x42, SENSOR_YUV , PIXEL_NUM_0_3M , CORE_CLK_RATE_FOR_2M}, { "gc2035" , 0x78, SENSOR_YUV , PIXEL_NUM_2M , CORE_CLK_RATE_FOR_2M}, { "gt2005" , 0x78, SENSOR_YUV , PIXEL_NUM_2M , CORE_CLK_RATE_FOR_2M}, { "gc2015" , 0x60, SENSOR_YUV , PIXEL_NUM_2M , CORE_CLK_RATE_FOR_2M}, { "gc2235" , 0x78, SENSOR_RAW , PIXEL_NUM_2M , CORE_CLK_RATE_FOR_2M}, { "sp0838" , 0x30, SENSOR_YUV , PIXEL_NUM_0_3M , CORE_CLK_RATE_FOR_2M}, { "sp0718" , 0x6c, SENSOR_YUV , PIXEL_NUM_0_3M , CORE_CLK_RATE_FOR_2M}, { "sp2518" , 0x6c, SENSOR_YUV , PIXEL_NUM_2M , CORE_CLK_RATE_FOR_2M}, { "hi253" , 0x40, SENSOR_YUV , PIXEL_NUM_2M , CORE_CLK_RATE_FOR_2M}, { "hi257" , 0x40, SENSOR_YUV , PIXEL_NUM_2M , CORE_CLK_RATE_FOR_2M}, { "s5k4ec" , 0x5a, SENSOR_YUV , PIXEL_NUM_5M , CORE_CLK_RATE_FOR_5M}, { "s5k4ec_mipi" , 0x5a, SENSOR_YUV , PIXEL_NUM_5M , CORE_CLK_RATE_FOR_5M}, { "s5k4e1" , 0x20, SENSOR_RAW , PIXEL_NUM_5M , CORE_CLK_RATE_FOR_5M}, { "s5k4e1_mipi" , 0x20, SENSOR_RAW , PIXEL_NUM_5M , CORE_CLK_RATE_FOR_5M}, { "t4k05" , 0x6c, SENSOR_RAW , PIXEL_NUM_8M , CORE_CLK_RATE_FOR_8M}, { "t8et5" , 0x78, SENSOR_RAW , PIXEL_NUM_5M , CORE_CLK_RATE_FOR_5M}, { "ar0330" , 0x20, SENSOR_RAW , PIXEL_NUM_3M , CORE_CLK_RATE_FOR_3M}, { "bf3a03" , 0xDC, SENSOR_YUV , PIXEL_NUM_0_3M , CORE_CLK_RATE_FOR_2M}, { "gc0311" , 0x66, SENSOR_YUV , PIXEL_NUM_0_3M , CORE_CLK_RATE_FOR_2M}, { "gc0311" , 0x66, SENSOR_YUV , PIXEL_NUM_0_3M , CORE_CLK_RATE_FOR_2M}, { "gc5004" , 0x6c, SENSOR_RAW , PIXEL_NUM_5M , CORE_CLK_RATE_FOR_5M}, { "gc5004_mipi" , 0x6c, SENSOR_RAW , PIXEL_NUM_5M , CORE_CLK_RATE_FOR_5M}, { "nt99252" , 0x6c, SENSOR_YUV , PIXEL_NUM_2M , CORE_CLK_RATE_FOR_2M}, { "ov7736" , 0x42, SENSOR_YUV , PIXEL_NUM_0_3M , CORE_CLK_RATE_FOR_2M}, { "gc2145" , 0x78, SENSOR_YUV , PIXEL_NUM_2M , CORE_CLK_RATE_FOR_2M}, { "gc2155" , 0x78, SENSOR_YUV , PIXEL_NUM_2M , CORE_CLK_RATE_FOR_2M}, { "gc0328c" , 0x42, SENSOR_YUV , PIXEL_NUM_0_3M , CORE_CLK_RATE_FOR_2M}, { "gc0328" , 0x42, SENSOR_YUV , PIXEL_NUM_0_3M , CORE_CLK_RATE_FOR_2M}, }; 7、 R:\wyb\gc2145_bpi_a64_android\lichee\linux-3.10\drivers\media\platform\sunxi-vfe\config.c struct ccm_config ccm0_def_cfg[] = { { .ccm = "<em>ov5640</em>", 修改为: .ccm = "gc2145", .twi_id = 1, .i2c_addr = 0x78, .is_isp_used = 0, .is_bayer_raw = 0, .vflip = 0, .hflip = 0, .iovdd_str = "", .avdd_str = "", .dvdd_str = "", .afvdd_str = "", .flvdd_str = "", .power = { .stby_mode = 1, .iovdd_vol =2800000, /* voltage of sensor module for interface */ .avdd_vol =2800000, /* voltage of sensor module for analog */ .dvdd_vol =1500000, /* voltage of sensor module for core */ .afvdd_vol =2800000, /* voltage of sensor module for vcm sink */ .flvdd_vol = 3300000,/* voltage of sensor module for flash led */ }, .gpio = { [MCLK_PIN] = {.gpio = GPIOE(1)/*129*/, .mul_sel = 1, .pull = 0, .drv_level = 1, .data = 0,}, [RESET] = {GPIOE(14)/*142*/, 1, 0, 1, 0,}, [PWDN] = {GPIOE(15)/*143*/, 1, 0, 1, 0,}, [POWER_EN] = {GPIO_INDEX_INVALID, 0, 0, 0, 0,}, [FLASH_EN] = {GPIO_INDEX_INVALID, 0, 0, 0, 0,}, [FLASH_MODE] = {GPIO_INDEX_INVALID, 0, 0, 0, 0,}, [AF_PWDN] = {GPIO_INDEX_INVALID, 0, 0, 0, 0,}, }, .flash_used = 0, .flash_type = 0, .act_used = 0, .act_name = "ad5820_act", .act_slave = 0x18, }, }; R:\wyb\gc2145_bpi_a64_android\lichee\tools\pack\chips\sun50iw1p1\configs\bpi-m64-lcd\sys_config.fex ;-------------------------------------------------------------------------------- ;csi (COMS Sensor Interface) configuration ;csi(x)_dev(x)_used: 0:disable 1:enable ;csi(x)_dev(x)_isp_used 0:not use isp 1:use isp ;csi(x)_dev(x)_fmt: 0:yuv 1:bayer raw rgb ;csi(x)_dev(x)_stby_mode: 0:not shut down power at standby 1:shut down power at standby ;csi(x)_dev(x)_vflip: flip in vertical direction 0:disable 1:enable ;csi(x)_dev(x)_hflip: flip in horizontal direction 0:disable 1:enable ;csi(x)_dev(x)_iovdd: camera module io power handle string, pmu power supply ;csi(x)_dev(x)_iovdd_vol: camera module io power voltage, pmu power supply ;csi(x)_dev(x)_avdd: camera module analog power handle string, pmu power supply ;csi(x)_dev(x)_avdd_vol: camera module analog power voltage, pmu power supply ;csi(x)_dev(x)_dvdd: camera module core power handle string, pmu power supply ;csi(x)_dev(x)_dvdd_vol: camera module core power voltage, pmu power supply ;csi(x)_dev(x)_afvdd: camera module vcm power handle string, pmu power supply ;csi(x)_dev(x)_afvdd_vol: camera module vcm power voltage, pmu power supply ;fill voltage in uV, e.g. iovdd = 2.8V, csix_iovdd_vol = 2800000 ;fill handle string as below: ;axp22_eldo3 ;axp22_dldo4 ;axp22_eldo2 ;fill handle string "" when not using any pmu power supply ;-------------------------------------------------------------------------------- [csi0] csi0_used = 1 csi0_sensor_list = 1 修改为: csi0_sensor_list = 0 csi0_pck = port:PE00 csi0_mck = port:PE01 修改为: csi0_mck = port:PE01 csi0_hsync = port:PE02 csi0_vsync = port:PE03 csi0_d0 = port:PE04 csi0_d1 = port:PE05 csi0_d2 = port:PE06 csi0_d3 = port:PE07 csi0_d4 = port:PE08 csi0_d5 = port:PE09 csi0_d6 = port:PE10 csi0_d7 = port:PE11 csi0_sck = port:PE12 csi0_sda = port:PE13 [csi0/csi0_dev0] csi0_dev0_used = 1 csi0_dev0_mname = "<em>ov5640</em>" 修改为: csi0_dev0_mname = "gc2145" csi0_dev0_twi_addr = 0x78 csi0_dev0_pos = "rear" csi0_dev0_isp_used = 1 csi0_dev0_fmt = 0 csi0_dev0_stby_mode = 0 csi0_dev0_vflip = 1 csi0_dev0_hflip = 1 csi0_dev0_iovdd = "avdd-csi" csi0_dev0_iovdd_vol = 2800000 csi0_dev0_avdd = "avdd-csi" csi0_dev0_avdd_vol = 2800000 csi0_dev0_dvdd = "dvdd-csi-18" csi0_dev0_dvdd_vol = 1500000 csi0_dev0_afvdd = "avdd-csi" csi0_dev0_afvdd_vol = 2800000 csi0_dev0_power_en = csi0_dev0_reset = port:PE16 csi0_dev0_pwdn = port:PE17 csi0_dev0_flash_used = 0 csi0_dev0_flash_type = 2 csi0_dev0_flash_en = csi0_dev0_flash_mode = csi0_dev0_flvdd = "" csi0_dev0_flvdd_vol = csi0_dev0_af_pwdn = csi0_dev0_act_used = 1 csi0_dev0_act_name = "dw9714_act" csi0_dev0_act_slave = 0x18
IIC的地址
7位寻址在7位寻址过程中,从机<em>地址</em>在启动信号后的第一个字节开始传输,该字节的前7位为从机<em>地址</em>,第8位为读写位,其中0表示写,1表示读。图1:7位寻址。I2C总线规范规定,标准模式I2C,从机<em>地址</em>为7位长,其次是读/写位。任何I2C设备都必须遵循这个标准,USB2XXX传输的从机<em>地址</em>即为这7bit<em>地址</em>,不包含读写位,读写位会根据不同的函数自动添加进去。保留<em>地址</em>I2C规范保留了两组和8个<em>地址</em>,1111...
【记录】IIC
概要IIC(IIC,inter-Integrated circuit),两线式串行总线,用于MCU和外设间的通信。 IIC只需两根线:数据线SDA和时钟线SCL。以半双工方式实现MCU和外设之间数据传输,速度可达400kbps。多主机I2C总线结构注意SDA和SCL两根总线需要上拉,使总线处于空闲状态。IIC协议空闲状态协议规定,SDA和SCL同时为高电平时,总线处于空闲状态。上拉电阻保证电平处于
FPGA配置OV5640摄像头及RGB图像数据采集
  本文设计思想采用明德扬至简设计法。在做摄像头数据采集处理之前,需要配置OV5640传感器内部寄存器使其按要求正常工作,详细内容请参见《OV5640自动对焦照相模组应用指南》。首先要关注OV5640的上电时序:      主控制器控制RESET PWDN两个信号按上电时序要求变化,之后允许ov_config模块配置内部寄存器。这里始终将PWDN拉低。实验中将摄像头分辨率设置为720p,即1...
ov5640图像问题
我用<em>ov5640</em>摄像头,编好驱动后,成像非常差 如上图,图中会有一行一行的条纹,仔细检查过代码,时钟什么的测得都是没问题的,不知道如何定位,求大神指点!
OV5640摄像头驱动配置
号外号外,高分请教啦!!! 我在做调试<em>ov5640</em>摄像头驱动,android 平板,前置摄像头,实用的源码是 <em>ov5640</em>_mipi.c 。现在遇到个问题,在源码默认配置 的情况下,摄像头拍照和摄像预
宋老师IIC读写方法
/* E2读取函数,buf-数据接收指针,addr-E2中的起始<em>地址</em>,len-读取长度*/void E2Read(unsigned char *buf, unsigned char addr, unsigned char len){    do {                       //用寻址操作查询当前是否可以进行读写操作        I2CStart();        if (I...
NOIP2017小凯的疑惑(提高D1T1)
题面传送门小学奥数题&&结论题给大家一个不太严谨的证明:引用来自 用到一个引理:不定方程ax+by=c(a,b,c>0)ax+by=c(a,b,c\gt0)一定有一组解(x1,y1)(x_1,y_1)满足−a0x_1\gt0 先证引理 首先,显然x,yx,y中至少有一个非负(都是负数怎么等于cc) 然后假设有一组
主机如何确定IIC总线上的器件的地址
IIC总线上的器件都是只通过SCL和SDA这两条线连接到IIC总线上的吗?IIC上的每个器件都要一个<em>地址</em>寄存器来确定自己的<em>地址</em>吗?   IIC上的每个器件是否都要一个<em>地址</em>寄存器来确定自己的<em>地址</em>:很多器件都是通过硬件来确定<em>地址</em>的。   有的在出厂时<em>地址</em>就设置好了,用户不可以更改,有的确定了几位,剩下几位由硬件确定(比如有三位由用户确定,就留有3个控制<em>地址</em>的引脚),此类较多;还有的有<em>地址</em>寄存器。
IIC读写16位地址的寄存器
一般来说IIC器件的内部寄存器<em>地址</em>都是8位的,这样在进行读写操作时,发送完器件<em>地址</em>之后直接发送一个字节的寄存器<em>地址</em>,然后即可以进行读写。但是有的器件内部寄存器是按照16位<em>地址</em>编排的,例如一些EEPROM器件,由于存储的数据量较大就会需要较大的寻址空间,对于这种的器件的内部寄存器寻址就需要多个字节的<em>地址</em>,也就是在发送完器件<em>地址</em>之后需要发送多个寄存器<em>地址</em>字节,具体实现如下程序所示: u8 IIC_R
STM32F407+ov5640摄像头在TFTLCD实时显示图像
利用STM32F407和OV5640 摄像头采集图像,并且实时显示在TFTLCD上。
解决ov5640困扰好久的问题
  功夫不负有心人,今天偶然间把camera设置效果后有时会收不到帧的问题解决了。这个也算是比较怪的bug吧,如果不是运气好,不知道还要被折腾到什么时候。原来是0x5001这个寄存器有两个位是debug 位。如果设了这两个位的话,会导致camera不稳定,有时候出现收不到帧的情况。搞研发就是这样,一个小问题可能会让你搞到快崩溃。搞出来后你又会兴奋,有成就感。看来要学会平常心,淡定。  解决了这个难搞的问题,稍微可以放松下了。下个目标学会lcd。
Verilog实现IIC主机对从机的写操作(zybo z7板运行代码)
文章目录IIC通信协议模块框图及输入输出信号实现难点代码实现 IIC通信协议 IIC总线协议 模块框图及输入输出信号 框图表示 输入输出信号解释 输入: 时钟信号 复位信号 使能信号 从机<em>地址</em> 从机寄存器<em>地址</em> 需要写入的数据 输出: scl sda O_done_flag是主机(FPGA)发送一个字节完成标志位,发送完成后会产生一个高脉冲; 实现难点 有限状态机保证写时序操作状态的有序进行 ...
ov5640寄存器设置完整版
<em>ov5640</em>各个模式下的寄存器设置. 1.isp部分设置 2.每个模式下的调整
NOIP 2017 Day1 题1:小凯的疑惑 数学问题
打表计算的。现在有了数学解释 简化题意,就是当正整数a,b互质时,不能用a,b表示出的最大数是多少(把这句话放百度上搜下就有答案了)。  结论很简单:a∗b−a−b。这个结论看看给的2个样例就能推个大概了,然后写个循环的暴力程序算算,应该还是不难推出的(小学奥数都不会推结论还考啥提高组嘛)。  下面给出证明(摘自http://blog.sina.com.cn/s/blog_4a668
STM32 IIC的学习
IIC 1. IIC的定义及作用?与SPI,USART有何不同? STM32上有很多的通讯接口,主要用来连接MCU与IC(如下面将要介绍的EEPROM–AT24C02C),及IC与IC之间的通讯。因为对通讯的速度及功能要求不同,主要分为IIC,SPI,USART. 1).IIC (Inter-Integrated Circuit 意为IC之间总线):两线式串行总线,是由数据SD
【蓝桥杯单片机进阶强化-01】IIC总线接口技术基础
【1】IIC总线概述       IIC总线全称:Inter-Integrated Circuit,是由飞利浦公司开发出来的一种串行总线协议,它是一种多主机的总线,当发生主机竞争时,有总线仲裁机制。       IIC总线只有2根信号线,一根是数据线SDA,一根是时钟线SCL。SDA和SCL均为双向信号线,通过上拉电阻接正电源。当总线空闲时,两根线都是高电平。连接到总线上的任一器件,输出低...
dts文件分析---以ov5640为例,修改dts文件使ov5640使用第二个IPU
在ARMlinux中,每一个.dts文件都对应一个ARM的machine,这些文件都放在arch/arm/boot/dts文件夹中。同时,对于每一个SoC可能对应多个machine,这些dts文件中会包含许多共同的部分,所以就有了.dtsi文件。这个.dtsi文件类似C语言中的头文件,在其他的.dts文件中可以通过#include”xxxx.dtsi“ 来包含这些头文件。 因为我们的开
烂笔头—I2C中的从/子地址问题
使用I2C接口对E2PROM进行读写操作时,用到子<em>地址</em>这个概念。 子<em>地址</em>是指E2PROM存储空间的<em>地址</em>。在对E2PROM操作过程中要非常注意<em>地址</em>问题。在主发送模式下,子<em>地址</em>是紧接从<em>地址</em>方向标志位后发送的。在主接收模式下:子<em>地址</em>同样是在从<em>地址</em>方向标志位后发送的。不同的是:在主接收模式下,将子<em>地址</em>以主发送模式发送之后,才通过重启总线的方式转换到主接收模式。也就是说子<em>地址</em>总是在主发送模式下发送的。
IIC的疑惑
要用到IIC的东西了哦,是一个24C128的片子的读写,找了个程序,稍修改后倒是可以用但是还是有一点的<em>疑惑</em>不解!这个文件中的ReceiveAck()都是是何用?可以用它来判断应答信号吗?调试的时候它是正常执行过的,程序没有去判断ACK的应答信号的呀!正在思考中,希望可以悟出来哦!呵呵! /******************************************************
wen_ov5640_r16设置为vga分辨率20160720_1003.7z
R58点亮<em>ov5640</em>.txt 开发板:深圳市索智科技有限公司SC3817R开发板,全志R16(CPU:Quad-Core Cortex-A7 CPU) http://www.allwinnertech.com/clq/r/R16.html 全志官网R16的简介 android4.4.2/linux3.4.39 2016/7/18 16:38 1、配置<em>ov5640</em>在android层配置的分辨率为vga(预览/拍照/录像) 注意:系统自带的快拍APP就在这里查找分辨率参数发送到camera的HAL层。 这里得分辨率设置为:640x480 驱动里面搜索可以设置为:2592x1936, 2048x1536, 1600x1200, 1280x960, 1280x960, 1024x768, 1920x1080 ,1280x720, 800x600, 640x480 R:\wyb\wen_<em>ov5640</em>_r16\android\device\softwinner\astar-evb20\configs\camera.cfg ;------------------------------------------------------------------------------- ; 用于camera的配置 ; ; 采用格式: ; key = key_value ; 注意: 每个key需要顶格写; ; key_value紧跟着key后面的等号后面, 位于同一行中; ; key_value限制大小为256字节以内; ; ;------------------------------------------------------------------------------- ;------------------------------------------------------------------------------- ; exif information of "make" and "model" ;------------------------------------------------------------------------------- key_camera_exif_make = MAKE_A31S key_camera_exif_model = MODEL_A31ST ;------------------------------------------------------------------------------- ; 1 for single camera, 2 for double camera ;------------------------------------------------------------------------------- number_of_camera = 1 ;------------------------------------------------------------------------------- ; CAMERA_FACING_BACK ; gc0307 ov2640 ;------------------------------------------------------------------------------- camera_id = 0 ;------------------------------------------------------------------------------- ; 1 for CAMERA_FACING_FRONT ; 0 for CAMERA_FACING_BACK ;------------------------------------------------------------------------------- camera_facing = 0 ;------------------------------------------------------------------------------- ; 1 for camera without isp(using built-in isp of Axx) ; 0 for camera with isp ;------------------------------------------------------------------------------- use_builtin_isp = 0 ;------------------------------------------------------------------------------- ; camera orientation (0, 90, 180, 270) ;------------------------------------------------------------------------------- camera_orientation = 90 ;------------------------------------------------------------------------------- ; driver device name ;------------------------------------------------------------------------------- camera_device = /dev/video0 ;------------------------------------------------------------------------------- ; device id ; for two camera devices with one CSI ;------------------------------------------------------------------------------- device_id = 0 used_preview_size = 1 key_support_preview_size = 640x480 key_default_preview_size = 640x480 used_picture_size = 1 key_support_picture_size = 640x480 key_default_picture_size = 640x480 used_flash_mode = 0 key_support_flash_mode = on,off,auto key_default_flash_mode = on used_color_effect=0 key_support_color_effect = none,mono,negative,sepia,aqua key_default_color_effect = none used_frame_rate = 1 key_support_frame_rate = 10 key_default_frame_rate = 10 used_focus_mode = 0 key_support_focus_mode = auto,infinity,macro,fixed,continuous-video,continuous-picture key_default_focus_mode = auto used_scene_mode = 0 key_support_scene_mode = auto,portrait,landscape,night,night-portrait,theatre,beach,snow,sunset,steadyphoto,fireworks,sports,party,candlelight,barcode key_default_scene_mode = auto used_white_balance = 0 key_support_white_balance = auto,incandescent,fluorescent,warm-fluorescent,daylight,cloudy-daylight key_default_white_balance = auto used_exposure_compensation = 1 key_max_exposure_compensation = 3 key_min_exposure_compensation = -3 key_step_exposure_compensation = 1 key_default_exposure_compensation = 0 2、没有/dev/video1,只有/dev/video0 R:\wyb\wen_<em>ov5640</em>_r16\android\device\softwinner\astar-evb20\ueventd.sun8i.rc /dev/video0 0666 media media #/dev/video1 0666 media media 3、在init.rc(init.sun8i.rc)中加载<em>ov5640</em>.ko这个驱动模块。 R:\wyb\wen_<em>ov5640</em>_r16\android\device\softwinner\astar-evb20\init.sun8i.rc #csi module insmod /system/vendor/modules/videobuf-core.ko insmod /system/vendor/modules/videobuf-dma-contig.ko insmod /system/vendor/modules/cam_detect.ko #insmod /system/vendor/modules/actuator.ko #insmod /system/vendor/modules/ad5820_act.ko insmod /system/vendor/modules/cci.ko insmod /system/vendor/modules/vfe_os.ko insmod /system/vendor/modules/vfe_subdev.ko #insmod /system/vendor/modules/gc0307.ko #insmod /system/vendor/modules/ov2035.ko #insmod /system/vendor/modules/ov2640.ko insmod /system/vendor/modules/<em>ov5640</em>.ko insmod /system/vendor/modules/vfe_v4l2.ko 启动之后实际加载的摄像头的驱动模块: shell@astar-evb20:/ $ lsmod gt82x 9849 0 - Live 0x00000000 bma250 7848 0 - Live 0x00000000 sunxi_schw 12559 0 - Live 0x00000000 (O) rtl8150 9023 0 - Live 0x00000000 sunxi_keyboard 3021 0 - Live 0x00000000 sw_device 13916 0 - Live 0x00000000 vfe_v4l2 445444 1 - Live 0x00000000 <em>ov5640</em> 27129 0 - Live 0x00000000 vfe_subdev 4523 2 vfe_v4l2,<em>ov5640</em>, Live 0x00000000 vfe_os 3951 2 vfe_v4l2,vfe_subdev, Live 0x00000000 cci 21775 2 vfe_v4l2,<em>ov5640</em>, Live 0x00000000 videobuf_dma_contig 5567 1 vfe_v4l2, Live 0x00000000 videobuf_core 16520 2 vfe_v4l2,videobuf_dma_contig, Live 0x00000000 bcm_btlpm 7442 0 - Live 0x00000000 bcmdhd 629907 0 - Live 0x00000000 mali 209314 20 - Live 0x00000000 (O) lcd 41263 0 - Live 0x00000000 disp 992816 8 mali,lcd, Live 0x00000000 nand 282774 0 - Live 0x00000000 (O) shell@astar-evb20:/ $ 4、驱动程序:ov2640.c及其V4L2的适配层。 配置ov2640.c的编译选项,只需要修改device目录中的Makefile打开<em>ov5640</em>(默认打开)即可: R:\wyb\wen_<em>ov5640</em>_r16\lichee\linux-3.4\drivers\media\video\sunxi-vfe\device\<em>ov5640</em>.c R:\wyb\wen_<em>ov5640</em>_r16\lichee\linux-3.4\drivers\media\video\sunxi-vfe\device\Makefile obj-m += ov2640.o R:\wyb\wen_<em>ov5640</em>_r16\lichee\linux-3.4\drivers\media\video\sunxi-vfe\Kconfig R:\wyb\wen_<em>ov5640</em>_r16\lichee\linux-3.4\drivers\media\video\sunxi-vfe\Makefile 5、 R:\wyb\wen_<em>ov5640</em>_r16\lichee\tools\pack\chips\sun8iw5p1\configs\evb-20\sys_config.fex ;-------------------------------------------------------------------------------- ;vip (video input port) configuration ;vip_used: 0:disable 1:enable ;vip_mode: 0:sample one interface to one buffer 1:sample two interface to one buffer ;vip_dev_qty: The quantity of devices linked to capture bus ; ;vip_define_sensor_list: If you want use sensor detect function, please set vip_define_sensor_list = 1, and ; verify that file /system/etc/hawkview/sensor_list_cfg.ini is properly configured! ; ;vip_dev(x)_pos: sensor position, "rear" or "front", if vip_define_sensor_list = 1,vip_dev(x)_pos must be configured! ; ;vip_dev(x)_isp_used 0:not use isp 1:use isp ;vip_dev(x)_fmt: 0:yuv 1:bayer raw rgb ;vip_dev(x)_stby_mode: 0:not shut down power at standby 1:shut down power at standby ;vip_dev(x)_vflip: flip in vertical direction 0:disable 1:enable ;vip_dev(x)_hflip: flip in horizontal direction 0:disable 1:enable ;vip_dev(x)_iovdd: camera module io power handle string, pmu power supply ;vip_dev(x)_iovdd_vol: camera module io power voltage, pmu power supply ;vip_dev(x)_avdd: camera module analog power handle string, pmu power supply ;vip_dev(x)_avdd_vol: camera module analog power voltage, pmu power supply ;vip_dev(x)_dvdd: camera module core power handle string, pmu power supply ;vip_dev(x)_dvdd_vol: camera module core power voltage, pmu power supply ;vip_dev(x)_afvdd: camera module vcm power handle string, pmu power supply ;vip_dev(x)_afvdd_vol: camera module vcm power voltage, pmu power supply ;x indicates the index of the devices which are linked to the same capture bus ;fill voltage in uV, e.g. iovdd = 2.8V, vip_devx_iovdd_vol = 2800000 ;fill handle string as below: ;axp22_eldo3 ;axp22_dldo4 ;axp22_eldo2 ;fill handle string "" when not using any pmu power supply ;-------------------------------------------------------------------------------- [csi0] vip_used = 1 vip_mode = 0 vip_dev_qty = 1 vip_define_sensor_list = 0 vip_csi_pck = port:PE00 vip_csi_mck = port:PE01 vip_csi_hsync = port:PE02 vip_csi_vsync = port:PE03 vip_csi_d0 = port:PE04 vip_csi_d1 = port:PE05 vip_csi_d2 = port:PE06 vip_csi_d3 = port:PE07 vip_csi_d4 = port:PE08 vip_csi_d5 = port:PE09 vip_csi_d6 = port:PE10 vip_csi_d7 = port:PE11 vip_csi_sck = port:PE12 vip_csi_sda = port:PE13 vip_dev0_mname = "<em>ov5640</em>" vip_dev0_pos = "rear" vip_dev0_lane = 1 vip_dev0_twi_id = 2 vip_dev0_twi_addr = 0x78 vip_dev0_isp_used = 0 vip_dev0_fmt = 0 vip_dev0_stby_mode = 0 vip_dev0_vflip = 0 vip_dev0_hflip = 0 vip_dev0_iovdd = "axp22_dldo3" vip_dev0_iovdd_vol = 2800000 vip_dev0_avdd = "" vip_dev0_avdd_vol = 2800000 vip_dev0_dvdd = "" vip_dev0_dvdd_vol = 1800000 vip_dev0_afvdd = "" vip_dev0_afvdd_vol = 2800000 vip_dev0_power_en = vip_dev0_reset = port:PE14 vip_dev0_pwdn = port:PE15 vip_dev0_flash_en = vip_dev0_flash_mode = vip_dev0_af_pwdn = 6、开发板上摄像头的I2C挂载在TWI2上面了,逻辑是需要打开的(但是不打开也能够用,很奇怪!): ;---------------------------------------------------------------------------------- ;i2c configuration ; twi_used = twix enable ;---------------------------------------------------------------------------------- [twi0] twi_used = 1 twi_scl = port:PH02 twi_sda = port:PH03 [twi1] twi_used = 1 twi_scl = port:PH04 twi_sda = port:PH05 [twi2] twi_used = 0 twi_scl = port:PE12 twi_sda = port:PE13 直接配置摄像头的I2C了: vip_csi_sck = port:PE12 vip_csi_sda = port:PE13 不过奇怪的是,摄像头并没有向其它平台那样生成这个设备节点: /sys/class/i2c-adapter/i2c-2/2-0030 shell@octopus-f1:/ $ shell@octopus-f1:/ $ cd /sys/class/i2c-adapter/i2c-2/ shell@octopus-f1:/sys/class/i2c-adapter/i2c-2 $ shell@octopus-f1:/sys/class/i2c-adapter/i2c-2 $ ll drwxr-xr-x root root 1970-01-02 08:06 2-003b --w------- root root 4096 1970-01-02 08:06 delete_device lrwxrwxrwx root root 1970-01-02 08:06 device -> ../../twi.2 -r--r--r-- root root 4096 1970-01-02 08:06 name --w------- root root 4096 1970-01-02 08:06 new_device drwxr-xr-x root root 1970-01-02 08:06 power lrwxrwxrwx root root 1970-01-02 08:06 subsystem -> ../../../../bus/i2c -rw-r--r-- root root 4096 1970-01-02 08:06 uevent shell@octopus-f1:/sys/class/i2c-adapter/i2c-2 $ 可能是ov2640的驱动程序不完整,没有通过i2c_detect来注册2-003c这个节点。 直接在驱动程序中读取I2C,还是对的。device ID = 0x5640。 7、摄像头使用的是客户提供: 设置为VGA分辨率是: vsync=7.5hz href=15khz xclk=24mhz pclk=85mhz
为什么I2C从机地址要左移一位
对许多刚开始接触I2C的新手来说,最开始比较<em>疑惑</em>,当MCU做主机与一些I2C接口的从机(比如一些数字传感器,大多数仍为I2C接口)通信时,无论是用IO模拟I2C协议还是使用I2C模块,在发送从机<em>地址</em>时为什么都需要将从机手册的I2C<em>地址</em>左移一位发出去呢?当然这个问题是比较初级的了,高手直接略过,新手权且简单看一看作为学习资料吧。     首先以飞思卡尔Kinetis系列为例(咳咳,好多人估计都快吐
【转】FPGA配置OV5640摄像头及RGB图像数据采集
https://www.cnblogs.com/moluoqishi/p/9506706.html?tdsourcetag=s_pctim_aiomsg
IIC地址决定,8位地址,减去1位广播地址,是7位地址,2^7=128,但是地址0x00不用,那就是127个地址
i2c总线上最多可以挂多少个从器件 霸道QIfp45 | 浏览 2154 次 2014-01-16 14:46 2015-09-15 12:35 最佳答案 有IIC<em>地址</em>决定,8位<em>地址</em>,减去1位广播<em>地址</em>,是7位<em>地址</em>,2^7=128,但是<em>地址</em>0x00不用,那就是127个<em>地址</em>, 所以理论上可以挂127个从器件。 I2C(Inter-Inte
STM32硬件IIC与51模拟IIC通信
IIC介绍  IIC协议规定:SDA上传输的数据必须在SCL为高电平期间保持稳定,SDA上的数据只能在SCL为低电平期间变化。IIC期间在脉冲上升沿把数据放到SDA上,在脉冲下降沿从SAD上读取数据。这样的话,在SCL高电平期间,SDA上的数据是稳定的。在脉冲下降沿之后的保持时间以后,SDA上的数据可以变化,直到脉冲上升沿之前。  列出一些问题: STM32无法正确返回ACK信号的原因:   1、
IIC总线NOT burst模式
1.burst模式 个人理解: 连续读写寄存器,<em>地址</em>自动加一,例如CAT24C256-D 2.not bust模式 个人理解:连续写多个字节,<em>地址</em>不会自动加一        在LINUX中,可调用i2c_smbus_write_byte_data每次写一个寄存器,然后repeat start写下一个数据 或者按上图方式,将数据处理后一次性写
I2C从地址左移1位
I2C读写中,新人会比较困惑,为什么I2C从<em>地址</em>要左移1位? 这是i2c协议决定的,i2c<em>地址</em>实际为7位, AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0(读/写标志位),如下图 i2c模块pdf文档,表示的<em>地址</em>为(AD7~AD1), 因为i2c协议为左对齐,所以需要对i2c<em>地址</em>,左移1位。   但是,有些API里面,已经把<em>地址</em>左移1位了,这时候就不要再移动。编程...
在IIC中,24c02的读与写的地址介绍
从设备<em>地址</em> 首先,先看一下AT24C02的芯片资料,我们会发现AT24C02有三个<em>地址</em>A0,A1,A2。同时,我们会在资料的Device Address介绍发现I2C器件一共有七位<em>地址</em>码,还有一位是读/写(R/W)操作位,而在AT24C02的前四位已经固定为1010。R/W为1则为 读操作,为0则为写操作。R/W位我们要设置为0(写操作) 规则为:1010(A0)(A1)(A2)(R/...
IIC读写16位地址的寄存器(有的器件内部寄存器是按照16位地址编排)
一般来说IIC器件的内部寄存器<em>地址</em>都是8位的,这样在进行读写操作时,发送完器件<em>地址</em>之后直接发送一个字节的寄存器<em>地址</em>,然后即可以进行读写。但是有的器件内部寄存器是按照16位<em>地址</em>编排的,例如一些EEPROM器件,由于存储的数据量较大就会需要较大的寻址空间,对于这种的器件的内部寄存器寻址就需要多个字节的<em>地址</em>,也就是在发送完器件<em>地址</em>之后需要发送多个寄存器<em>地址</em>字节,具体实现如下程序所示:   u8 I...
STM32的IIC应用详解2
IIC简单介绍 小编能力有限,写的不对处还望诸位大侠指正哈!       平时所说的IIC通信指的是用单片机的两个I/O端口模拟出来的IIC,正真的IIC实际上是一块硬件电路,那是飞利浦公司的专利,要想用那就拿钱来买。有大牛既想用又不想花钱,就用两个端口模拟出了IIC通信协议,因为方便(51上的IIC改一下端口配置就可以在STM32F103上使用)所以被广泛使用。啰嗦了这么多,下面进入正题,嘿...
IIC介绍(四)之从机介绍
IIC之从机介绍(AT24cxx)
[数学]小凯的疑惑
题目描述 小凯手中有两种面值的金币,两种面值均为正整数且彼此互素。每种金币小凯都有 无数个。在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的。现在小 凯想知道在无法准确支付的物品中,最贵的价值是多少金币?注意:输入数据保证存在 小凯无法准确支付的商品。 输入格式: 输入数据仅一行,包含两个正整数 a 和 b,它们之间用一个空格隔开,表示小凯手 中金币的面值。 输出格式: 输出...
GPIO模拟IIC过程中对IIC的理解
给予K60 的LPLD库对使用GPIO对IIC进行模拟
IIC总线协议基础1
          文档类别 文档标识 IIC总线协议基础1 当前版本 V0.2 作    者 Louis 完成时间 2015-05-27   IIC总线协议基础1 IIC总线协...
树莓派与i2c设备的通信
最近搞树莓派,这里对学习过程中遇到的问题加以记录,感谢网上各位大神们的贡献: 首先,需要开启I2C,这里,我使用的是树莓派B+,开启方法比较简单,参考:http://www.embed-net.com/thread-140-1-1.html 开启后,安装一个用于测试i2c设备的工具,i2c tools, 安装命令: sudo apt-get install i2c-tools 将i
解决OV系列摄像头寄存器读数据无法收到的问题
最近工作中接了一款OV7725的sensor,由于平台已经接过很多的家的sensor也就没有太当回事。问题出现的很奇怪,再看了register map后基本确定了要尽心register  R/W测试的三个<em>地址</em>也就是0x00  gain增益寄存器   0xa  0xb 两个版本号的寄存器。运行程序之后在reg里没有发现的应该返回的数据 ,用逻辑分析仪看了下波形就是在read发出后sensor返回了d
DHT12温湿度传感器STM32驱动IIC
《DHT12温湿度传感器STM32驱动-IIC》 温湿度传感器采用AOSONG的DHT12温湿度传感器;该传感器兼容单总线和标准的IIC通信协议,在本文中将叙述IIC通信协议获取温湿度数据,通过STM32的普通GPIO模拟IIC协议驱动DHT12; 以下将从IIC协议到DHT12驱动逐步进行详细介绍,并附有<em>iic</em>.c、<em>iic</em>.h、dht12.c、dht12.h源代码 IIC协
【提高组NOIP2017】小凯的疑惑 通俗分析 咱们不数论
小凯的<em>疑惑</em>,不用数论证明a*b-(a+b)公式
STM32 硬件IIC 单地址连续读数据
接口描述如下: HAL_I2C_Mem_Read(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size, uint32_t Timeout); hi2c // I2C接口信息 DevAddress //读<em>地址</em> pData //数据指针 Size //欲读出字节数 Timeout //超时时间 适用只需要写入读<em>地址</em>然后就开始连续读的器件使用 启动信号 - 写器件<em>地址</em>(含读位) - ACK- 读取一个字节 - ACK -读取N个字节 - ACK......STOP信号 最后一位不放应答 直接STOP
CC3200——IIC从机地址计算
在SDK 的i2c_demo例程中,有两个IIC器件,温度传感器TMP006和三轴加速度传感器BMA222E,下面 以TMP006为例总结一下IIC从机<em>地址</em>的计算步骤: 1、根据TMP006数据手册找到其从机<em>地址</em>定义的地方,有些设备的从机<em>地址</em>是 固定的,有些则根据其引脚的电平决定,这样就可以在一根总线上挂载多个从机设备,TMP006就是这样。   2、根据CC3200开发板的硬件原理图,可以...
OV5640寄存器设置中文版
OV5640寄存器设置中文版,详细描述了寄存器的具体设置,并给出了例程
51单片机中iic
/*========================================================================== 名称:IIC协议 编写:aiken 修改:无 内容:函数是采用软件延时的方法产生SCL脉冲,固对高晶振频率要作一定的修改 (本例是1us机器周期,即晶振频率要小于12MHZ)=========================
OV5640官方数据手册,已去水印添加书签
OV5640官方数据手册,已破解权限,去水印,并添加书签
IIC 协议原理
IIC总线 7位I2C总线可以挂接127个不同<em>地址</em>的I2C设备,0号"设备"作为群呼<em>地址</em>.  第一个字节(为slave address)由7位<em>地址</em>和一位R/W读写位组成的,这字节是个器件<em>地址</em>。 常用IIC接口通用器件的器件<em>地址</em>是由种类型号,及寻址码组成的,共7位。 如格式如下:    D7 D6 D5 D4 D3 D2 D1 D0 1-器件类型由:D7-D4 共4位决定的。这是由半
DSP 的IIC控制
一般DSP上面都集成了I2C模块,这样在连接外部器件时可以很方便的控制外部的器件。I2C基本上都是用于外部控制的,因为是是串行总线。在我们的实验板上I2C总线连接到了两个从设备上面,一个是我们的eeprom,另一个是我们的音频芯片AIC23。通过I2C协议我们写入和读取eeprom数据,控制AIC23的声音一些属性! 简介一下I2C协议的规则: 一. 技术性能: 工作速率有100K和400K
OV5640学习笔记
OV5640简介,主控制器控制RESET PWDN两个信号按上电时序要求变化,之后允许ov_config模块配置内部寄存器。这里始终将PWDN拉低。实验中将摄像头分辨率设置为720p,即1280*720 ,帧率为30fps,图像输出格式是RGB565。此时摄像头输入时钟XCLK频率24MHz,输出像素时钟PCLK为84MHz。由于实验使用的是OV5640双目摄像头模组,且XCLK由外部24MHz晶振给出.
Arduino 快速 寻找设备的I2C地址
这篇有点累赘,因为之前在介绍LCD1602的时候,就已经提到寻找设备的I2C<em>地址</em> 不过,除了LCD1602还有很多设备都可以应用到这个功能。 凡I2C连接的都可以使用这样的代码,找到设备的I2C<em>地址</em> 效果 把模块按接线接好,上传这段代码后,打开端口监视器,就能找到在I2C上的设备<em>地址</em>,大家可以试试哦 (这里就不上图了) 接线 根据模块的I2C接线就可以了
OV5640摄像头使用说明书
OV5640是CMOS摄像模块,是先进、节能的高精度相机的内置式组件,它把实现优质VGA 影像的CMOS 影像传感器与高度集成的影像处理器、嵌入式电源和高质量的透镜组结合在一起,输出JPEG 图像或视频图像,提供了完整的影像解决方案。该产品支持8/10 位数字传输JPEG 图像和YCbCr 接口。其小巧的体积,让设计人员即使在最小的应用中仍可以增加摄像模块。由于具有高度集成的特点,新型的摄像模块不再需要配备任何外部器件,可以被简便地应用在移动电话和无线PDA 的设计中,从而大大缩短了手机和PDA 设计人员的产品面市周期。
OV5640应用笔记(MIPI接口)
OV5640自动对焦摄像头应用笔记(MIPI接口)
OV5640测试
MIPI测试 gst-launch-1.0 imxv4l2src device=/dev/video1 ! 'video/x-raw,format=(string)UYVY,width=640,height=480,framerate=(fraction)30/1'! imxv4l2sink gst-launch-1.0 imxv4l2src device=/dev/video1 ! 'vid...
调试ARM+OV5640+上位机遇到的问题总结
调试ARM+OV5640+上位机遇到的问题总结 1. 在Java Swing编写的上位机显示图像(实现类似视频播放的效果) 目标: 在Java Swing中实现一个能逐帧显示图片的控件。 实现方法: 写一个类继承JComponent,并且重写paint方法: private class PaintSurface extends JComponent { pri...
I2C器件的从设备地址的设置
刚开始接触单片机,很多不懂,今天看到一条语句: #define WriteDeviceAddress 0xa0      //写器件<em>地址</em> #define ReadDviceAddress 0xa1        //读器件<em>地址</em> 不明白这个0xa0与0xa1是怎么确定的,然后翻了一些资料以及上网搜索了相关问题。自己总结了关于从器件<em>地址</em>的确定的原理:      举个例子,如芯片
stm8s开发(八) IIC的使用:IIC主机通信!
前面讲过两个常用的串口,UART和SPI,这次这次讲解一下另一个常用的串口:IIC通信 科普I2C:一般有两根信号线,一根是双向的数据线SDA,另一根是时钟线SCL。所有接到I2C总线设备上的串行数据SDA都接到总线的SDA上,各设备的时钟线SCL接到总线的SCL上。
STM32F407+ov5640摄像头
STM32F407为cpu驱动<em>ov5640</em>实时监控
NOIP2017Day1T1-小凯的疑惑
1.小凯的<em>疑惑</em>  (math.cpp/c/pas)  【问题描述】  小凯手中有两种面值的金币,两种面值均为正整数且彼此互素。每种金币小凯都有无数个。在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的。现在小凯想知道在无法准确支付的物品中,最贵的价值是多少金币?注意:输入数据保证存在小凯无法准确支付的商品。  【输入格式】  输入文件名为math.in。  输入数据仅一行
linux下操做OV5640摄像头
包含源代码及编译好的文件。可直接执行。
记录一下IIC读和写的时序
           经常使用IIC接口,可谓是操作各类IC芯片的家常便饭.不过说实话硬件IIC,每家MCU都弄得不一样,好烦躁。IIC  读时序:      Read从图中可以看出; 这读的波形可相当漂亮:(1)起始信号: 绿点. SCL高电平的时候,SDA由高变低。这个是由主机产生。(2)Read: 0x73 最后一位是1 说明读, addr(7位) 填上第0位是 R(1)或者W(0) 标志位...
IIC读写AT24C02代码1——通过串口命令控制R/W
IIC读写AT24C02代码1——通过串口命令控制R/W,并显示到串口!   主函数 /*----------------------------------------------- IIC编程 1 编写:Louis 邮箱:kaly.liu@163.com 日期:2015.05.25 修改:通过串口命令,控制EEPROM的读写。并从串口提示。 晶振:11.059...
OV5640开机自动配置IP编写
许久不写I2C驱动,注意事项都忘了,现总结如下: 1、在数据变化的时候,一定要保证SCL是为低电平! 2、开始通信之前和开始通信之后,都要将总线和时钟放高 3、每个字节之后,要拉低总线一个周期,给器件应答时间 4、在传数据之前和传数据之后,要保持SDA总线干净! 放出最后截图,输入时钟和复位,输出为CMOS_clk_out,CMOS_DATA.
android读写iic设备
在android开发和移植过程中,有时需要对某设备进行读写,但系统可能并未提供相应的服务。我们就需要自己开发硬件访问服务来控制设备。下面的例子是读写最简单的i2c设备eeprom的流程, i2c的驱动编写有两种方式,一种是利用系统提供的i2c-dev.c来实现一个i2c适配器的设备文件,然后通过在应用层操作I2C适配器来控制I2C设备;另一种是为I2C从设备独立编写一个设备驱动,不需要i2c-de
OV5640全景模式预览倒180度,拍照正常的问题
此方法基本上适用于所有android平台上全景模式预览倒180度,拍照正常的问题。      首先说明的是,影响camera方向的有三个地方,分别是系统方向,内核camera方向和驱动镜像。全景模式预览只跟系统方向和驱动镜像有关,一般情况下我们不希望去更改系统方向,而是去修改驱动镜像的方向,来调整全景模式的预览方向。而全景模式的拍照方向跟全景模式的预览方向没有任何关系,全景拍照的方向跟普通的拍照
IIC介绍(三)之主机介绍
IIC之主机(简介STM32和S3C2440)
ov5640 搭配zedboard的调试问题
      现在在做目标检测的项目,用<em>ov5640</em> 和hdmi在zedboard上搭建视频通路。用的是米联的S03 ch06 AXIVDMA OV5640的工程,项目中板子为miz702,已经将管脚ddr等改为我所用的zedborad,能够生成bitstream,但是屏幕上只能出现大花屏,用逻辑分析仪检测了摄像头的信号,值都是0,用示波器测了xclk是25mhz,确实为我输入的信号,有哪位大神碰到...
再议IIC协议与设计【1】--通信是如何定义
概述 在讨论IIC的时候,无需一头扎进IIC协议中去分析文档,根据以下的步骤来分析,就能很明确地知道IIC的协议,以及如何设计IIC主机或者从机。 初识IIC 在实际的电路设计中,两个芯片(IC)需要互相通信,发生数据的交换。那么这两个芯片之间必须满足一些规则,这样,负责“听”的芯片就能“听懂”“说”的那个芯片“说了些什么”。与人类交流原理相通,“听者”首先需要知道“说者”是对哪个“
UART、IIC、SPI详解
UART 通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),也就是通常说的串口。一般主要有4条线,RX(数据接收)、TX(数据发送)、GND(地)、VCC(电源)。他是一种全双工通信(即可以在接收数据的同时发送数据)。还需要注意的一点是两个设备通过UART通信,那么A设备的RX应该与B设备的TX连接、A设备的TX与B设备的RX连接,这个...
模拟IIC
模拟IIC
基于STM32的ov5640摄像头驱动设计
基于STM32的<em>ov5640</em>摄像头驱动设计 用万用板 原理图 程序都有
I2C总线浅谈之(四)--STM8的IIC驱动文件示例
本示例提供STM8S103F核心板的IIC驱动文件源代码,亲测没有任何问题,博主使用来驱动AT24C256和电子罗盘MMC5883MA,IIC通信速率100kHz,可以调整时序延时时间。 直接贴源码: IIC.h #ifndef _IIC_H #define _IIC_H #include "iostm8s103F3.h" #include "type_def.h" #define II
IIC连续读写出错检查办法
单片机连续读写出错 现象:读取单个字节的时候是正确的,但连续读或连续写会出错 经过排查, 1、发现单片机连续读epprom时,没有回应ack 2、start –&amp;gt; send 器件<em>地址</em>写–&amp;gt; epprom存储<em>地址</em> –&amp;gt; 器件<em>地址</em>读 时,中间有步骤出错 #include &amp;lt;reg52.h&amp;gt; #include &quot;intrins.h&quot; #include &quot;type....
FIMC驱动实现V4L2框架与ov5640摄像头驱动——iTop4412平台
FIMC驱动框架与<em>ov5640</em>摄像头驱动——iTop4412平台 一、i2c设备与驱动注册 <em>ov5640</em>摄像头的i2c由设备和驱动两部分构成,设备注册和驱动注册。先说不同一般i2c设备注册部分,在平时我们添加i2c设备时,需要修改平台文件(.../iTop4412_Kernel_3.0/arch/arm/mach-exynos/mach-itop4412.c)在对应I2C总线的结构体下...
ITOP4412 OV5640摄像头模块
开发环境:ubuntu12.04   内核版本:itop4412_kernel_3.0 OV5640模块迅为有提供专用的硬件接口,只需将模块按方向正确插入即可,内核也有对应的驱动,相关配置见《iTOP-4412-驱动-配置200W摄像头驱动》。OV5640模块迅为也有提供专门的测试代码,使用的是C++实现,但是它为兼容更多的摄像头模块,有很多对该模块冗余的代码,造成代码的可读性和可用性不太理想。
linux ov5640驱动源码
linux <em>ov5640</em>驱动源码 driver
OV5640寄存器配置文件 45帧
OV5640寄存器配置文件,45fps,本人亲自调的,图像流畅
IIC总线协议---以存储芯片at24c64为例
IIC总线协议 前言:年前给老师做个红外抄表系统,,现在对当中用到的一些模块总结一下. 1.只有在总线空闲时才允许启动数据传送.2.在数据传送过程中,当时钟线为高电平时,数据线必须保持稳定状态,不允许有跳变.时钟线为高电平时,数据线的任何电平变化将被看做总线的起始或停止信号.3. 任何将数据传送到总线的器件作为发送器任何从总线接收数据的器件为接收器, 主器件和从器件都可以作
【题解】洛谷P3951[NOIP2017]小凯的疑惑 数学知识
题目链接 来了,传说中的 a∗b−a−ba*b-a-ba∗b−a−b problemproblemproblem……一道玄学的结论题(我也不会证) #include&amp;lt;cstdio&amp;gt; typedef unsigned long long ull; int main() { ull a,b; scanf(&quot;%llu%llu&quot;,&amp;amp;a,&amp;amp;b); printf(&quot;%l...
IIC总线解析
1. I2C总线协议解析1.1. 概述IIC开发于1982年,当时是为了给电视机内的CPU和外围芯片提供更简易的互连方式。电视机是最早的嵌入式系统之一,而最初的嵌入系统是使用内存映射(memory-mapped I/O)的方式来互连微控制器和外围设备的。要实现内存映射,设备必须并行连入微控制器的数据线和<em>地址</em>线,这种方式在连接多个外设时需大量线路和额外<em>地址</em>解码芯片,很不方便并且成本高。 为了节省微控
OV5640原理图和PCB
我自己设计的OV5640电路板,广角150度,兼容正点原子开发板。工作很稳定。
OV5640摄像头
https://www.cnblogs.com/firege/p/5806121.html
stm32f407+ov5640颜色识别与追踪
通过摄像头对图像的采集,对显示屏显示的实时画面进行颜色的识别与追踪,本程序中是对红色进识别与追踪,其他颜色的识别可以进行相应的改动即可
VCD租借系统下载
VCD租借系统&nbsp;&nbsp;access2000 + vba<br> 相关下载链接:[url=//download.csdn.net/download/chenxh/191?utm_source=bbsseo]//download.csdn.net/download/chenxh/191?utm_source=bbsseo[/url]
android界面跳转动画特效下载
android开发简单的页面跳转特效,整理过的源码。很简单,你懂的 相关下载链接:[url=//download.csdn.net/download/regme277/3475108?utm_source=bbsseo]//download.csdn.net/download/regme277/3475108?utm_source=bbsseo[/url]
QuickTest Automation Reference下载
QuickTest Professional Automation Object Model Reference shipped with QTP 1.0 (English Version) 相关下载链接:[url=//download.csdn.net/download/lelige/2033435?utm_source=bbsseo]//download.csdn.net/download/lelige/2033435?utm_source=bbsseo[/url]
文章热词 设计制作学习 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 学习java疑惑 java学习很疑惑
我们是很有底线的