Line 1: |
Line 1: |
| [[VEYE-MIPI-290/327 i2c/zh|查看中文]] | | [[VEYE-MIPI-290/327 i2c/zh|查看中文]] |
| + | |
| + | [[VEYE-MIPI-290/327 i2c/|<big><big><big><big>VEYE-MIPI-290/327 I2C.sh user guide</big></big></big></big>]] |
| + | |
| + | ===Overview=== |
| + | There are 4 files: camera_i2c_config、i2c_read、i2c_write、veye_mipi_i2c.sh |
| + | |
| + | ===RaspberryPi Only, Set IO config=== |
| + | Running |
| + | |
| + | <code>./enable_i2c_vc.sh</code> |
| + | |
| + | <code>./camera_i2c_config</code> |
| + | |
| + | first,it will config IO pin. |
| + | |
| + | Then you can run veye_mipi_i2c.sh. |
| + | ====camera_i2c_config USAGE==== |
| + | |
| + | *for standard RPI, just run |
| + | |
| + | <code>./camera_i2c_config</code> |
| + | |
| + | *for RPI Computer Module |
| + | |
| + | <code>./camera_i2c_config [cameranum]</code> |
| + | {| class="wikitable" |
| + | !cameranum |
| + | !description |
| + | |- |
| + | |0 |
| + | |CAM0 |
| + | |- |
| + | |1 |
| + | |CAM1 |
| + | |}<br /> |
| + | ===veye_mipi_i2c.sh USAGE=== |
| + | ./veye_mipi_i2c.sh |
| + | |
| + | Usage: ./veye_mipi_i2c.sh [-r/w] [-f] function name -p1 param1 -p2 param2 -b bus |
| + | |
| + | options: |
| + | |
| + | -r read |
| + | |
| + | -w write |
| + | |
| + | -f [function name] function name |
| + | |
| + | -p1 [param1] param1 of each function |
| + | |
| + | -p2 [param1] param2 of each function |
| + | |
| + | -b [i2c bus num] i2c bus number |
| + | |
| + | support functions: devid,hdver,wdrmode,videoformat,mirrormode,denoise,agc,lowlight,daynightmode,ircutdir,irtriggerhutter |
| + | |
| + | cameramode, nodf, capture, csienable,saturation,wdrbtargetbr,wdrtargetbr, brightness ,contrast , sharppen, aespeed,lsc,boardmodel,yuvseq,i2cauxenable,i2cwen |
| + | |
| + | Pi3B / Pi3B+ / 3A / 4B(1G/2G/4G),we use i2c0 |
| + | |
| + | Compute Module/ CM3,we use i2c1,please add '''-b 1''' option. |
| + | |
| + | =====devid===== |
| + | <code>./veye_mipi_i2c.sh -r -f devid</code> |
| + | {| class="wikitable" |
| + | !value |
| + | !description |
| + | |- |
| + | |0x06 |
| + | |VEYE-MIPI-290/327 |
| + | |} |
| + | =====hdver===== |
| + | <code>./veye_mipi_i2c.sh -r -f hdver</code> |
| + | {| class="wikitable" |
| + | !value |
| + | !description |
| + | |- |
| + | |0xXX |
| + | |Version |
| + | |} |
| + | =====wdrmode===== |
| + | <code>./veye_mipi_i2c.sh -r -f wdrmode |
| + | ./veye_mipi_i2c.sh -w -f wdrmode -p1 [value]</code> |
| + | {| class="wikitable" |
| + | !value |
| + | !description |
| + | |- |
| + | |0x00 |
| + | |Back Light Mode OFF |
| + | |- |
| + | |0x01 |
| + | |Back Light Mode ON, LOW |
| + | |- |
| + | |0x02 |
| + | |Back Light Mode ON, HIGH |
| + | |- |
| + | |0x03 |
| + | |DOL WDR Enable |
| + | |} |
| + | =====videoformat===== |
| + | <code>./veye_mipi_i2c.sh -r -f videoformat |
| + | ./veye_mipi_i2c.sh -w -f videoformat -p1 [value]</code> |
| + | '''WARNING:THIS FUNCTION MUST BE CALLED BEFORE ANY video applications''' |
| + | {| class="wikitable" |
| + | !value |
| + | !description |
| + | !frame rate |
| + | |- |
| + | |PAL |
| + | |PAL(50Hz) |
| + | |25fps |
| + | |- |
| + | |NTSC |
| + | |NTSC(60Hz) |
| + | |30fps |
| + | |} |
| + | =====mirrormode===== |
| + | <code>./veye_mipi_i2c.sh -r -f mirrormode |
| + | ./veye_mipi_i2c.sh -w -f mirrormode -p1 [value]</code> |
| + | {| class="wikitable" |
| + | !value |
| + | !description |
| + | |- |
| + | |0x00 |
| + | |Normal |
| + | |- |
| + | |0x01 |
| + | |Mirror |
| + | |- |
| + | |0x02 |
| + | |V-Flip |
| + | |- |
| + | |0x03 |
| + | |Mirror And V-Flip(180 Degree Rotate) |
| + | |} |
| + | =====denoise===== |
| + | <code>./veye_mipi_i2c.sh -r -f denoise |
| + | ./veye_mipi_i2c.sh -w -f denoise -p1 [value]</code> |
| + | {| class="wikitable" |
| + | !value |
| + | !description |
| + | |- |
| + | |0x00 |
| + | |NR 2D Mode = OFF; NR 3D Mode = OFF |
| + | |- |
| + | |0x01 |
| + | |NR 2D Mode = OFF; NR 3D Mode = LOW |
| + | |- |
| + | |0x02 |
| + | |NR 2D Mode = OFF; NR 3D Mode = MIDDLE |
| + | |- |
| + | |0x03 |
| + | |NR 2D Mode = OFF; NR 3D Mode = HIGH |
| + | |- |
| + | |0x04 |
| + | |NR 2D Mode = LOW; NR 3D Mode = OFF |
| + | |- |
| + | |0x05 |
| + | |NR 2D Mode = LOW; NR 3D Mode = LOW |
| + | |- |
| + | |0x06 |
| + | |NR 2D Mode = LOW; NR 3D Mode = MIDDLE |
| + | |- |
| + | |0x07 |
| + | |NR 2D Mode = LOW; NR 3D Mode = HIGH |
| + | |- |
| + | |0x08 |
| + | |NR 2D Mode =MIDDLE; NR 3D Mode = OFF |
| + | |- |
| + | |0x09 |
| + | |NR 2D Mode =MIDDLE; NR 3D Mode = LOW |
| + | |- |
| + | |0x0A |
| + | |NR 2D Mode = MIDDLE; NR 3D Mode = MIDDLE |
| + | |- |
| + | |0x0B |
| + | |NR 2D Mode = MIDDLE; NR 3D Mode = HIGH |
| + | |- |
| + | |0x0C |
| + | |NR 2D Mode =HIGH; NR 3D Mode = OFF |
| + | |- |
| + | |0x0D |
| + | |NR 2D Mode =HIGH; NR 3D Mode = LOW |
| + | |- |
| + | |0x0E |
| + | |NR 2D Mode = HIGH; NR 3D Mode = MIDDLE |
| + | |- |
| + | |0x0F |
| + | |NR 2D Mode = HIGH; NR 3D Mode = HIGH |
| + | |} |
| + | =====agc===== |
| + | <code>./veye_mipi_i2c.sh -r -f agc |
| + | ./veye_mipi_i2c.sh -w -f agc -p1 [value]</code> |
| + | agc indicated max gain of AE mode. |
| + | {| class="wikitable" |
| + | !value |
| + | !description |
| + | |- |
| + | |0x00~0x0F |
| + | |AGC intensity |
| + | |} |
| + | =====lowlight===== |
| + | <code>./veye_mipi_i2c.sh -r -f lowlight |
| + | ./veye_mipi_i2c.sh -w -f lowlight -p1 [value]</code> |
| + | In the case of low illuminance, the camera module can prolong the exposure time and reduce the frame rate by configuring this parameter to achieve a better effect of low illuminance. |
| + | |
| + | Note that it is not suitable for use in a sports scene. |
| + | {| class="wikitable" |
| + | !value |
| + | !description |
| + | |- |
| + | |0x01 |
| + | |1/2*(FRAME RATE) |
| + | |- |
| + | |0x03 |
| + | |1/4*(FRAME RATE) |
| + | |- |
| + | |0x05 |
| + | |1/6*(FRAME RATE) |
| + | |- |
| + | |0x07 |
| + | |1/8*(FRAME RATE) |
| + | |- |
| + | |0x09 |
| + | |1/10*(FRAME RATE) |
| + | |- |
| + | |0x0B |
| + | |1/15*(FRAME RATE) |
| + | |- |
| + | |0x0D |
| + | |1/20*(FRAME RATE) |
| + | |- |
| + | |0x0F |
| + | |1/25*(FRAME RATE) |
| + | |- |
| + | |0x11 |
| + | |1/30*(FRAME RATE) |
| + | |- |
| + | |0x00 |
| + | |Fixed frame rate (25/30) |
| + | |} |
| + | =====daynightmode===== |
| + | <code>./veye_mipi_i2c.sh -r -f daynightmode |
| + | ./veye_mipi_i2c.sh -w -f daynightmode -p1 [value]</code> |
| + | {| class="wikitable" |
| + | !value |
| + | !description |
| + | |- |
| + | |0xFF |
| + | |Color Mode |
| + | |- |
| + | |0xFE |
| + | |Black&White Mode |
| + | |- |
| + | |0xFC |
| + | |Trigger Mode |
| + | |} |
| + | IR-CUT (Infrared cut-off filter) is a mechanical shutter design. It is placed between the lens and the image sensor, and is controlled by a motor or an electromagnet. |
| + | |
| + | IR-CUT has two status: '''Block''' or '''Deliver''' the infrared. |
| + | |
| + | *Color Mode |
| + | |
| + | Image is Color Mode and IR_CUT status '''Block''' infrared. |
| + | |
| + | *Black&White Mode |
| + | |
| + | Image is Black&White Mode and IR_CUT status '''Deliver''' infrared. |
| + | |
| + | *Trigger Mode |
| + | |
| + | Trigger pin : [[VEYE-MIPI-290/327|J3 pin1]]. |
| + | |
| + | Trigger pin High(3.3~12V),Image is Black&White Mode and IR-CUT status '''Deliver''' infrared. |
| + | |
| + | Trigger pin Low(GND),Image is Color Mode and IR-CUT status '''Bolck''' infrared. |
| + | |
| + | =====mshutter===== |
| + | close AE, use manual shutter |
| + | |
| + | <code>./veye_mipi_i2c.sh -r -f mshutter</code> |
| + | |
| + | <code>./veye_mipi_i2c.sh -w -f mshutter -p1 [value]</code> |
| + | |
| + | value is exposure time(seconds) |
| + | |
| + | If value is greater than or equal to 0x4B, it will reduce framerate. |
| + | {| class="wikitable" |
| + | |+ |
| + | !value |
| + | !description |
| + | |- |
| + | | |
| + | |NTSC(PAL) |
| + | |- |
| + | |0x40 |
| + | |auto mode |
| + | |- |
| + | |0x41 |
| + | |1/30 (25) |
| + | |- |
| + | |0x42 |
| + | |1/60(50) |
| + | |- |
| + | |0x43 |
| + | |1/120(100) |
| + | |- |
| + | |0x44 |
| + | |1/240(200) |
| + | |- |
| + | |0x45 |
| + | |1/480(400) |
| + | |- |
| + | |0x46 |
| + | |1/1000 |
| + | |- |
| + | |0x47 |
| + | |1/2000 |
| + | |- |
| + | |0x48 |
| + | |1/5000 |
| + | |- |
| + | |0x49 |
| + | |1/10000 |
| + | |- |
| + | |0x4A |
| + | |1/50000 |
| + | |- |
| + | |0x4B |
| + | |1/30 (25) *2 |
| + | |- |
| + | |0x4C |
| + | |1/30 (25) *4 |
| + | |- |
| + | |0x4D |
| + | |1/30 (25) *6 |
| + | |- |
| + | |0x4E |
| + | |1/30 (25) *8 |
| + | |- |
| + | |0x4F |
| + | |1/30 (25) *10 |
| + | |- |
| + | |0x50 |
| + | |1/30 (25) *15 |
| + | |- |
| + | |0x51 |
| + | |1/30 (25) *20 |
| + | |- |
| + | |0x52 |
| + | |1/30 (25) *25 |
| + | |- |
| + | |0x53 |
| + | |1/30 (25) *30 |
| + | |} |
| + | |
| + | =====cameramode===== |
| + | Requirements:hdver >= 0x3 |
| + | |
| + | <code>./veye_mipi_i2c.sh -r -f cameramode</code> |
| + | |
| + | <code>./veye_mipi_i2c.sh -w -f cameramode -p1 [value]</code> |
| + | {| class="wikitable" |
| + | !value |
| + | !description |
| + | |- |
| + | |0x0 |
| + | |Stream mode |
| + | |- |
| + | |0x1 |
| + | |Capture mode |
| + | |}Stream mode: stream output |
| + | |
| + | Caputre mode: output the next frame each '''capture''' cmd. |
| + | =====nodf===== |
| + | Requirements:hdver >= 0x3, effective in Stream mode |
| + | |
| + | Number of dropped frames |
| + | |
| + | It is a method of framerate control, output one frame,discard '''nodf''' frames,output next frame, and so on. |
| + | |
| + | ''actual framerate = original framerate /(1+nodf)'' |
| + | |
| + | For example,if the original framerate is 30fps, set '''nodf''' to 2, then ''actual framerate'' is 10fps. |
| + | |
| + | <code>./veye_mipi_i2c.sh -r -f nodf</code> |
| + | |
| + | <code>./veye_mipi_i2c.sh -w -f nodf -p1 [value]</code> |
| + | |
| + | '''ntof''' range is [0-0xFF], default 0. |
| + | =====capture===== |
| + | Requirements:hdver >= 0x3, effective in Capture mode |
| + | |
| + | <code>./veye_mipi_i2c.sh -w -f capture</code> |
| + | |
| + | Output the next frame. This cmd does not interfere the sensor, it just output the next frame (the newest frame). |
| + | |
| + | So it is not trigger mode, there will be a delay[0,1/framerate] between the cmd and the frame exposure. |
| + | |
| + | It is applicable to those that do not require a high level of real-time performance. |
| + | =====csienable===== |
| + | Requirements:hdver >= 0x3 |
| + | |
| + | <code>./veye_mipi_i2c.sh -r -f csienable</code> |
| + | |
| + | <code>./veye_mipi_i2c.sh -w -f csienable -p1 [value]</code> |
| + | {| class="wikitable" |
| + | !value |
| + | !description |
| + | |- |
| + | |0x0 |
| + | |suspend csi output |
| + | |- |
| + | |0x1 |
| + | |enable csi output |
| + | |}default: 0x1 |
| + | |
| + | Note: This is not low power mode, the camera is still working. |
| + | =====brightness===== |
| + | <code>./veye_mipi_i2c.sh -r -f brightness</code> |
| + | |
| + | <code>./veye_mipi_i2c.sh -w -f brightness -p1 0x32</code> |
| + | |
| + | AE Target Brightness,rang: [0,0x64] |
| + | =====aespeed===== |
| + | <code>./veye_mipi_i2c.sh -r -f aespeed</code> |
| + | |
| + | <code>./veye_mipi_i2c.sh -w -f aespeed -p1 0x32 -p2 0x32</code> |
| + | |
| + | AE adjust speed,p1 is agc speed, p2 is shutter speed,Slow to Fast: [0,0x64] |
| + | =====contrast===== |
| + | <code>./veye_mipi_i2c.sh -r -f contrast</code> |
| + | |
| + | <code>./veye_mipi_i2c.sh -w -f contrast -p1 0x32</code> |
| + | |
| + | Contrast,range: [0,0xFF],default: 0x80. |
| + | |
| + | =====saturation===== |
| + | <code>./veye_mipi_i2c.sh -r -f saturation</code> |
| + | |
| + | <code>./veye_mipi_i2c.sh -w -f saturation -p1 0x32</code> |
| + | |
| + | Saturation, range: [0,0x64]. |
| + | |
| + | ===== sharppen ===== |
| + | <code>./veye_mipi_i2c.sh -r -f sharppen</code> |
| + | |
| + | <code>./veye_mipi_i2c.sh -w -f sharppen -p1 [val1] -p2 [value]</code> |
| + | {| class="wikitable" |
| + | !param1 value |
| + | !description |
| + | |- |
| + | |0x0 |
| + | | sharppen disable |
| + | |- |
| + | |0x1 |
| + | | sharppen enable |
| + | |}default: 0x1 |
| + | |
| + | param2: sharppen strength, range [0x0-0xA] |
| + | =====wdrtargetbr===== |
| + | <code>./veye_mipi_i2c.sh -r -f wdrtargetbr</code> |
| + | |
| + | <code>./veye_mipi_i2c.sh -w -f wdrtargetbr -p1 0x80</code> |
| + | |
| + | The overall AE target value in WDR mode. |
| + | |
| + | Takes effect in WDR mode. range: [0-0xFF], default : 0x80. |
| + | =====wdrbtargetbr===== |
| + | <code>./veye_mipi_i2c.sh -r -f wdrbtargetbr</code> |
| + | |
| + | <code>./veye_mipi_i2c.sh -w -f wdrbtargetbr -p1 0x80</code> |
| + | |
| + | The AE target value of the bright area in WDR mode. |
| + | |
| + | Takes effect in WDR mode. range: [0-0xFF], default : 0x80. |
| + | |
| + | ===== boardmodel ===== |
| + | <code>./veye_mipi_i2c.sh -r -f boardmodel</code> |
| + | |
| + | Requirment: hdver >=4. |
| + | |
| + | Read the board number of the board, which can be used to distinguish between VEYE-MIPI-327 and VEYE-MIPI-IMX327S. |
| + | |
| + | ===== i2cwen ===== |
| + | <code>./veye_mipi_i2c.sh -r -f i2cwen</code> |
| + | |
| + | <code>./veye_mipi_i2c.sh -w -f i2cwen -p1 [0/1]</code> |
| + | |
| + | Requirment: hdver >=4. |
| + | |
| + | Whether to enable the i2C write register function of the camera, enabled by default. It is used for register write protection in special cases. |
| + | |
| + | ===== i2cauxenable ===== |
| + | <code>./veye_mipi_i2c.sh -r -f i2cauxenable</code> |
| + | |
| + | <code>./veye_mipi_i2c.sh -w -f i2cauxenable -p1 [0/1]</code> |
| + | |
| + | Requirment: hdver >=4. |
| + | |
| + | Whether to enable auxiliary i2C. If enable auxiliary i2C, the primary i2C on the FFC cable cannot be used. Used for bus conflict resolution in special cases. |
| + | ===== awbgain ===== |
| + | <code>./veye_mipi_i2c.sh -r -f awbgain</code> |
| + | |
| + | Read the Rgain and Bgain of the current white balance status , parameter range [0,0xFF]. |
| + | =====wbmode===== |
| + | <code>./veye_mipi_i2c.sh -r -f wbmode</code> |
| + | |
| + | <code>./veye_mipi_i2c.sh -w -f wbmode -p1 [value]</code> |
| + | |
| + | White balance mode setting. |
| + | {| class="wikitable" |
| + | !value |
| + | !description |
| + | |- |
| + | |0x18 |
| + | |Auto white balance |
| + | |- |
| + | |0x1B |
| + | | Manual white balance |
| + | |} |
| + | ===== mwbgain===== |
| + | <code>./veye_mipi_i2c.sh -r -f mwbgain</code> |
| + | |
| + | <code>./veye_mipi_i2c.sh -w -f wbmode -p1 [rgain] -p2 [bgain]</code> |
| + | |
| + | Rgain and Bgain setting in manual white balance mode.arameter range [0,0xFF]. |