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>]]
+
[[VEYE-MIPI-290/327 i2c/|<big><big><big><big>VEYE-MIPI-X I2C.sh user guide</big></big></big></big>]]
===Overview===
===Overview===
−
There are 4 files: camera_i2c_config、i2c_read、i2c_write、veye_mipi_i2c.sh。
+
There are 4 files: camera_i2c_config、i2c_read、i2c_write、veye_mipi_i2c.sh
+
===RaspberryPi Only, Set IO config===
Running
Running
Line 15:
Line 16:
Then you can run veye_mipi_i2c.sh.
Then you can run veye_mipi_i2c.sh.
−
===camera_i2c_config USAGE===
+
====camera_i2c_config USAGE====
−
*for standard RPI, just run
+
*for standard RPI (Legacy mode only), just run
<code>./camera_i2c_config</code>
<code>./camera_i2c_config</code>
Line 33:
Line 34:
|1
|1
|CAM1
|CAM1
−
|}<br />
+
|}
===veye_mipi_i2c.sh USAGE===
===veye_mipi_i2c.sh USAGE===
./veye_mipi_i2c.sh
./veye_mipi_i2c.sh
−
Usage: ./veye_mipi_i2c.sh [-r/w] [-f] function name -p1 param1 -p2 param2 -b bus
+
Usage: ./veye_mipi_i2c.sh [-r/w] [-f] function name -p1 param1 -p2 param2 -b bus -d i2caddr
options:
options:
Line 53:
Line 54:
-b [i2c bus num] i2c bus number
-b [i2c bus num] i2c bus number
−
support functions: devid,hdver,wdrmode,videoformat,mirrormode,denoise,agc,lowlight,daynightmode,ircutdir,irtrigger,mshutter
+
-d [i2c addr] i2c device address
+
=== i2c bus number on different board ===
+
Please refer to the following article to determine which -b parameter you need to use.
−
Pi3B / Pi3B+ / 3A / 4B(1G/2G/4G),we use i2c0
+
[[I2c bus number and video node|i2c bus number on different boards]]
−
Compute Module/ CM3,we use i2c1,please add '''-b 1''' option.
+
=== Functions list ===
=====devid=====
=====devid=====
Line 65:
Line 68:
!description
!description
|-
|-
−
|0x02
+
|0x06
−
|MIPI, 2Lane
+
|VEYE-MIPI-X series,IMX327 IMX462 IMX385
−
|-
−
|0x13
−
|LVDS,3Lane
|}
|}
=====hdver=====
=====hdver=====
Line 80:
Line 80:
|Version
|Version
|}
|}
+
The isp fireware release time will also be printed.
+
+
===== sensorid =====
+
<code>./veye_mipi_i2c.sh -r -f sensorid</code>
+
+
Print sensor type and board information.
+
=====wdrmode=====
=====wdrmode=====
<code>./veye_mipi_i2c.sh -r -f wdrmode
<code>./veye_mipi_i2c.sh -r -f wdrmode
Line 97:
Line 104:
|-
|-
|0x03
|0x03
−
|WDR Enable
+
|DOL WDR Enable
|}
|}
=====videoformat=====
=====videoformat=====
Line 106:
Line 113:
!value
!value
!description
!description
+
!frame rate
|-
|-
|PAL
|PAL
|PAL(50Hz)
|PAL(50Hz)
+
|25fps
|-
|-
|NTSC
|NTSC
|NTSC(60Hz)
|NTSC(60Hz)
+
|30fps
|}
|}
=====mirrormode=====
=====mirrormode=====
Line 190:
Line 200:
<code>./veye_mipi_i2c.sh -r -f agc
<code>./veye_mipi_i2c.sh -r -f agc
./veye_mipi_i2c.sh -w -f agc -p1 [value]</code>
./veye_mipi_i2c.sh -w -f agc -p1 [value]</code>
+
agc indicated max gain of AE mode.
+
+
Agc stands for auto gain control. It is a part of auto exposure, in different light intensity, will try to adjust the gain of sensor to achieve the same image brightness. 0xC by default.
{| class="wikitable"
{| class="wikitable"
!value
!value
Line 200:
Line 213:
<code>./veye_mipi_i2c.sh -r -f lowlight
<code>./veye_mipi_i2c.sh -r -f lowlight
./veye_mipi_i2c.sh -w -f lowlight -p1 [value]</code>
./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 the set value is the minimum frame rate value and the actual frame rate value is affected by the automatic exposure algorithm.
+
+
Note that it is not suitable for use in a sports scene.
{| class="wikitable"
{| class="wikitable"
!value
!value
−
!description
+
!minimum fps
|-
|-
|0x01
|0x01
Line 264:
Line 282:
*Trigger Mode
*Trigger Mode
−
Trigger pin : [[VEYE-MIPI-290/327|J3 pin1]].
+
Trigger pin : [[VEYE-MIPI-290/327|J3 pin1 of VEYE-MIPI-327]] or [[VEYE-MIPI-IMX327S Data Sheet|J2 pin1 of VEYE-MIPI-IMX327S]].
Trigger pin High(3.3~12V),Image is Black&White Mode and IR-CUT status '''Deliver''' infrared.
Trigger pin High(3.3~12V),Image is Black&White Mode and IR-CUT status '''Deliver''' infrared.
Line 270:
Line 288:
Trigger pin Low(GND),Image is Color Mode and IR-CUT status '''Bolck''' infrared.
Trigger pin Low(GND),Image is Color Mode and IR-CUT status '''Bolck''' infrared.
+
===== ircutdir =====
+
<code>./veye_mipi_i2c.sh -r -f ircutdir</code>
+
+
<code>./veye_mipi_i2c.sh -w -f ircutdir -p1 [value]</code>
+
+
IR_CUT pins control direction. value could be 0 or 1.
+
=====irtrigger=====
+
<code>./veye_mipi_i2c.sh -r -f irtrigger</code>
+
+
<code>./veye_mipi_i2c.sh -w -f irtrigger -p1 [value]</code>
+
+
Polarity setting of the day/night switching external trigger mode pin.
+
{| class="wikitable"
+
! value
+
!description
+
|-
+
|0x0
+
|default value,refer to datasheet of different boards.
+
|-
+
|0x1
+
|Reversed.
+
|}
=====mshutter=====
=====mshutter=====
−
close AE, use manual shutter
+
Automatic exposure, manual exposure mode selection and configuration.
<code>./veye_mipi_i2c.sh -r -f mshutter</code>
<code>./veye_mipi_i2c.sh -r -f mshutter</code>
Line 279:
Line 319:
value is exposure time(seconds)
value is exposure time(seconds)
−
If value is greater than or equal to 0x4B, it enters slow shutter mode.
+
If value is greater than or equal to 0x4B, it will reduce framerate.
{| class="wikitable"
{| class="wikitable"
|+
|+
Line 347:
Line 387:
|0x53
|0x53
|1/30 (25) *30
|1/30 (25) *30
−
|}<br />
+
|}
+
+
=====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]
+
=====wdrsharppen=====
+
<code>./veye_mipi_i2c.sh -r -f wdrsharppen</code>
+
+
<code>./veye_mipi_i2c.sh -w -f wdrsharppen -p1 [val1] -p2 [value]</code>
+
+
sharppeness setting on DOL WDR mode.
+
{| 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 mwbgain -p1 [rgain] -p2 [bgain]</code>
+
+
Rgain and Bgain setting in manual white balance mode.arameter range [0,0xFF].
+
=====yuvseq=====
+
<code>./veye_mipi_i2c.sh -w -f yuvseq -p1 YUYV</code>
+
+
<code>./veye_mipi_i2c.sh -w -f yuvseq -p1 UYVY</code>
+
+
<code>./veye_mipi_i2c.sh -r -f yuvseq</code>
+
+
Set yuv seq of camera.
+
+
Note: only supported on hdver >= 0x4
+
+
=== New function list ===
+
The following new features are only supported in camera's firmware versions with ''release time'' later than 2022-11-22.
+
+
===== paramsave =====
+
<code>./veye_mipi_i2c.sh -w -f paramsave</code>
+
+
Save isp-related parameters to flash.
+
+
===== new_expmode =====
+
<code>./veye_mipi_i2c.sh -r -f new_expmode</code>
+
+
<code>./veye_mipi_i2c.sh -w -f new_expmode -p1 [0/1]</code>
+
+
Whether the new version of manual exposure is enabled.
+
+
If the new version manual exposure is enabled, then:
+
+
# The original ''mshutter'' command is no longer in effect, ''new_mshutter'' takes effect.
+
# gain (agc) from automatic mode also changed to manual mode, ''new_mgain'' takes effect.
+
+
===== new_mshutter =====
+
<code>./veye_mipi_i2c.sh -r -f new_mshutter</code>
+
+
<code>./veye_mipi_i2c.sh -w -f new_mshutter -p1 1000</code>
+
+
New version of manual exposure time configuration, in us in the range [1,1000000].
+
+
Since the sensor can not support accurate exposure time of 1us, it is recommended to read it for confirmation after configuration.
+
+
===== new_mgain =====
+
<code>./veye_mipi_i2c.sh -r -f new_mgain</code>
+
+
<code>./veye_mipi_i2c.sh -w -f new_mgain -p1 2.1</code>
+
+
The new version manual gain, depending on the sensor, accurate to 0.1dB or 0.3dB.
+
+
===== auto_shutter_max =====
+
This feature is only supported in versions with ''release time'' later than 2022-12-09.
+
+
Configure the upper limit of auto exposure when '''mshutter''' is configured to auto.
+
+
<code>./veye_mipi_i2c.sh -r -f auto_shutter_max</code>
+
+
<code>./veye_mipi_i2c.sh -w -f auto_shutter_max -p1 1000</code>
+
+
in us in the range [1,1000000/fps].
+
+
Since the sensor can not support accurate exposure time of 1us, it is recommended to read it for confirmation after configuration.