Difference between revisions of "Mv mipi i2c.sh user guide"
Line 123: | Line 123: | ||
<code>./mv_mipi_i2c.sh -w -f imgacq -p1 [0/1]</code> | <code>./mv_mipi_i2c.sh -w -f imgacq -p1 [0/1]</code> | ||
+ | Start/Stop acquisition | ||
− | . | + | There is no image output after the camera is powered on, which means it is in the '''standby state'''. |
− | . | + | After writing 1 to this register, it enters the '''running state''' and starts outputting images or waiting for the trigger signal. |
− | 0 | + | Writing 0 will stop the output image and enter the standby state. |
− | + | ===== trgmode ===== | |
+ | <code>./mv_mipi_i2c.sh -w -f trgmode -p1 [0,2]</code> | ||
− | 2 | + | <code>./mv_mipi_i2c.sh -r -f trgmode</code> |
+ | {| class="wikitable" | ||
+ | !value | ||
+ | !description | ||
+ | |- | ||
+ | |0 | ||
+ | |Video streaming mode | ||
+ | |- | ||
+ | |1 | ||
+ | |Normal trigger mode. | ||
+ | |- | ||
+ | |2 | ||
+ | |High-speed continuous trigger mode. | ||
+ | |} | ||
+ | See product manual for details. | ||
− | + | ===== trgsrc ===== | |
+ | <code>./mv_mipi_i2c.sh -w -f trgsrc -p1 [0,1]</code> | ||
− | ./mv_mipi_i2c.sh - | + | <code>./mv_mipi_i2c.sh -r -f trgsrc</code> |
+ | {| class="wikitable" | ||
+ | !value | ||
+ | !description | ||
+ | |- | ||
+ | |0 | ||
+ | |Software trigger | ||
+ | |- | ||
+ | |1 | ||
+ | |Hardware trigger | ||
+ | |} | ||
− | ./mv_mipi_i2c.sh - | + | ===== trgnum ===== |
+ | <code>./mv_mipi_i2c.sh -w -f trgnum -p1 [1,255]</code> | ||
− | + | <code>./mv_mipi_i2c.sh -r -f trgnum</code> | |
− | + | The number of image frames output by one trigger signal in trigger mode. | |
− | + | ===== trginterval ===== | |
+ | <code>./mv_mipi_i2c.sh -w -f trginterval -p1 [us]</code> | ||
− | + | <code>./mv_mipi_i2c.sh -r -f trginterval</code> | |
− | + | Trigger interval in normal trigger mode, in microseconds. Range:[0.0xFFFFFF]. | |
− | ./mv_mipi_i2c.sh -w -f | + | ===== trgone ===== |
+ | <code>./mv_mipi_i2c.sh -w -f trgone</code> | ||
− | . | + | Software trigger command.One execution will perform a soft trigger. |
− | ./mv_mipi_i2c.sh - | + | ===== trgcount ===== |
+ | <code>./mv_mipi_i2c.sh -r -f trgcount</code> | ||
− | . | + | Trigger count statistics. |
− | . | + | Get the total number of triggers and the number of trigger loss. |
− | ./mv_mipi_i2c.sh - | + | <code>./mv_mipi_i2c.sh -w -f trgcountclr</code> |
− | + | Clear trigger count. | |
− | + | ==== IO Control ==== | |
+ | <br /> | ||
− | + | ==== Image Features ==== | |
− | ./mv_mipi_i2c.sh -r -f | + | ===== maxwh ===== |
+ | <code>./mv_mipi_i2c.sh -r -f maxwh</code> | ||
− | . | + | Get the maximum supported resolution of the sensor. |
− | ./mv_mipi_i2c.sh -r -f | + | ===== maxfps ===== |
+ | <code>./mv_mipi_i2c.sh -r -f maxfps</code> | ||
− | < | + | The maximum frame rate supported in the current mode. |
+ | |||
+ | Depending on the configured ROI, the maximum frame rate will be different. This parameter supports decimals. | ||
+ | |||
+ | ===== fps ===== | ||
+ | <code>./mv_mipi_i2c.sh -w -f fps -p1 [framerate]</code> | ||
+ | |||
+ | <code>./mv_mipi_i2c.sh -r -f fps</code> | ||
+ | |||
+ | Configure the actual frame rate of the camera in the current mode. | ||
+ | |||
+ | Range:(0,maxfps]. | ||
+ | |||
+ | In video streaming mode, this parameter determines the actual frame rate. | ||
+ | |||
+ | ===== roi ===== | ||
+ | <code>./mv_mipi_i2c.sh -w -f roi -p1 [x] -p2 [y] -p3 [width] -p4 [height]</code> | ||
+ | |||
+ | <code>./mv_mipi_i2c.sh -r -f roi</code> | ||
+ | |||
+ | ROI(region of interest) is the sensor output area, and the default is full screen output. | ||
+ | |||
+ | Parameter requirements: | ||
+ | |||
+ | [x] [y] [height] must be 4-aligned; | ||
+ | |||
+ | [width] must be 8-aligned; | ||
+ | |||
+ | The minimum ROI resolution will be different for different sensors. | ||
+ | |||
+ | For example, IMX178 minimum resolution is: 376*320. | ||
+ | |||
+ | The camera will make necessary adjustments to the user parameters to meet the parameter requirements. | ||
+ | |||
+ | So it is highly recommended that you read out the actual ROI parameters after writing them. | ||
+ | |||
+ | ===== imgdir ===== | ||
+ | <code>./mv_mipi_i2c.sh -w -f imgdir -p1 [0,3]</code> | ||
+ | |||
+ | <code>./mv_mipi_i2c.sh -r -f imgdir</code> | ||
+ | {| class="wikitable" | ||
+ | !value | ||
+ | !description | ||
+ | |- | ||
+ | |0 | ||
+ | |normal | ||
+ | |- | ||
+ | |1 | ||
+ | |mirror | ||
+ | |- | ||
+ | |2 | ||
+ | |flip | ||
+ | |- | ||
+ | |3 | ||
+ | |flip&mirror | ||
+ | |} | ||
+ | The image is first flipped/mirrored and then ROI cropped. For details, please refer to the manual. | ||
+ | |||
+ | ===== pixelformat ===== | ||
+ | <code>./mv_mipi_i2c.sh -w -f pixelformat -p1 [0,2]</code> | ||
+ | |||
+ | <code>./mv_mipi_i2c.sh -r -f pixelformat</code> | ||
+ | {| class="wikitable" | ||
+ | !value | ||
+ | !description | ||
+ | |- | ||
+ | |0 | ||
+ | |Mono8 | ||
+ | |- | ||
+ | |1 | ||
+ | |Mono10 | ||
+ | |- | ||
+ | |2 | ||
+ | |Mono12 | ||
+ | |- | ||
+ | |4 | ||
+ | |UYVY | ||
+ | |} | ||
+ | Note that for the MV-MIPI-IMX178, the AD bits of the sensor is always 12 bits, and the logic unit performs data rounding to achieve a different pixel format. | ||
+ | |||
+ | ===== blacklevel ===== | ||
+ | <code>./mv_mipi_i2c.sh -w -f blacklevel -p1 [blacklevel]</code> | ||
+ | |||
+ | <code>./mv_mipi_i2c.sh -r -f blacklevel</code> | ||
+ | |||
+ | This black level value will be set directly to the sensor. | ||
+ | |||
+ | ===== testimg ===== | ||
+ | <code>./mv_mipi_i2c.sh -w -f testimg -p1 [0,2]</code> | ||
− | + | <code>./mv_mipi_i2c.sh -r -f testimg</code> | |
− | < | + | {| class="wikitable" |
+ | !value | ||
+ | !description | ||
+ | |- | ||
+ | |0 | ||
+ | |Normal image | ||
+ | |- | ||
+ | |1 | ||
+ | |Test image 1 | ||
+ | |- | ||
+ | |2 | ||
+ | |Test image 2 | ||
+ | |} | ||
==== ISP ==== | ==== ISP ==== | ||
− | |||
− | |||
− | |||
<br /> | <br /> | ||
==== Special Functions ==== | ==== Special Functions ==== | ||
<br /> | <br /> |
Revision as of 10:03, 8 March 2022
mv_mipi_i2c.sh Shell scripts usage
1 Overview
The mv_mipi_i2c.sh script is a tool set for configuring MV MIPI series cameras through the I2C.
This script is essentially an access to registers. For registers, please refer to MV Series MIPI Camera Register Map.
2 Raspberry Pi Only, Set IO config
Running
./enable_i2c_vc.sh
./camera_i2c_config
first,it will config IO pin. Then you can run mv_mipi_i2c.sh.
3 mv_mipi_i2c.sh USAGE
./mv_mipi_i2c.sh
Usage: ./mv_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
-p3 [param3] param3 of each function
-p4 [param4] param4 of each function
-b [i2c bus num] i2c bus number
-d [i2c addr] i2c addr if not default 0x3b
Please open this srcipt and read the COMMENT on top for support functions and samples
4 i2c bus number on different board
Please refer to the following article to determine which -b parameter you need to use.
i2c bus number on different boards
5 Functions list
5.1 Note
The camera has two states, standby and running, after the start of image acquisition into the running state.
There are some registers that are write-protected in the running state, which will be marked with an asterisk. For example: trgsrc* .
There are some parameters that have strict range restrictions, and it's a good idea to try reading them when you're in doubt.
5.2 Basic Parameters
5.2.1 manufacturer
./mv_mipi_i2c.sh -r -f manufacturer
Get the manufacturer name, which is VEYE.
5.2.2 model
./mv_mipi_i2c.sh -r -f model
Get the product model, such as MV-MIPI-IMX178.
5.2.3 version
./mv_mipi_i2c.sh -r -f version
Get the Controller version number and Logical version number.
The system has two main control chips that serve the control and logic functions respectively.
5.2.4 timestamp
./mv_mipi_i2c.sh -r -f timestamp
Time after system startup in Milliseconds.
This value starts counting again if you call the reboot command, or if the camera reboots unexpectedly.
5.2.5 errcode
./mv_mipi_i2c.sh -r -f errcode
System error code, each bit represents an error type.
bit0: sensor error.
bit1: Logic module startup error.
bit2: Logic module communication error.
bit5: AA(AE&AG) regulation cannot reach the target brightness.
bit6: Authorization failure.
5.2.6 factoryparam
./mv_mipi_i2c.sh -w -f factoryparam
All parameters restored to factory default values.
5.2.7 paramsave
./mv_mipi_i2c.sh -w -f paramsave
Save all parameters to flash, and they will not be lost when power off.
5.2.8 reboot
./mv_mipi_i2c.sh -w -f reboot
Reboot the camera.
5.2.9 i2caddr
./mv_mipi_i2c.sh -w -f i2caddr -p1 [new]
./mv_mipi_i2c.sh -r -f i2caddr
This module support i2c address changed by software, i2c address range[0x3,0x77].
Will really take effect only after paramsave and reboot .
5.3 Image Acquisition
5.3.1 imgacq
./mv_mipi_i2c.sh -w -f imgacq -p1 [0/1]
Start/Stop acquisition
There is no image output after the camera is powered on, which means it is in the standby state.
After writing 1 to this register, it enters the running state and starts outputting images or waiting for the trigger signal.
Writing 0 will stop the output image and enter the standby state.
5.3.2 trgmode
./mv_mipi_i2c.sh -w -f trgmode -p1 [0,2]
./mv_mipi_i2c.sh -r -f trgmode
value | description |
---|---|
0 | Video streaming mode |
1 | Normal trigger mode. |
2 | High-speed continuous trigger mode. |
See product manual for details.
5.3.3 trgsrc
./mv_mipi_i2c.sh -w -f trgsrc -p1 [0,1]
./mv_mipi_i2c.sh -r -f trgsrc
value | description |
---|---|
0 | Software trigger |
1 | Hardware trigger |
5.3.4 trgnum
./mv_mipi_i2c.sh -w -f trgnum -p1 [1,255]
./mv_mipi_i2c.sh -r -f trgnum
The number of image frames output by one trigger signal in trigger mode.
5.3.5 trginterval
./mv_mipi_i2c.sh -w -f trginterval -p1 [us]
./mv_mipi_i2c.sh -r -f trginterval
Trigger interval in normal trigger mode, in microseconds. Range:[0.0xFFFFFF].
5.3.6 trgone
./mv_mipi_i2c.sh -w -f trgone
Software trigger command.One execution will perform a soft trigger.
5.3.7 trgcount
./mv_mipi_i2c.sh -r -f trgcount
Trigger count statistics.
Get the total number of triggers and the number of trigger loss.
./mv_mipi_i2c.sh -w -f trgcountclr
Clear trigger count.
5.4 IO Control
5.5 Image Features
5.5.1 maxwh
./mv_mipi_i2c.sh -r -f maxwh
Get the maximum supported resolution of the sensor.
5.5.2 maxfps
./mv_mipi_i2c.sh -r -f maxfps
The maximum frame rate supported in the current mode.
Depending on the configured ROI, the maximum frame rate will be different. This parameter supports decimals.
5.5.3 fps
./mv_mipi_i2c.sh -w -f fps -p1 [framerate]
./mv_mipi_i2c.sh -r -f fps
Configure the actual frame rate of the camera in the current mode.
Range:(0,maxfps].
In video streaming mode, this parameter determines the actual frame rate.
5.5.4 roi
./mv_mipi_i2c.sh -w -f roi -p1 [x] -p2 [y] -p3 [width] -p4 [height]
./mv_mipi_i2c.sh -r -f roi
ROI(region of interest) is the sensor output area, and the default is full screen output.
Parameter requirements:
[x] [y] [height] must be 4-aligned;
[width] must be 8-aligned;
The minimum ROI resolution will be different for different sensors.
For example, IMX178 minimum resolution is: 376*320.
The camera will make necessary adjustments to the user parameters to meet the parameter requirements.
So it is highly recommended that you read out the actual ROI parameters after writing them.
5.5.5 imgdir
./mv_mipi_i2c.sh -w -f imgdir -p1 [0,3]
./mv_mipi_i2c.sh -r -f imgdir
value | description |
---|---|
0 | normal |
1 | mirror |
2 | flip |
3 | flip&mirror |
The image is first flipped/mirrored and then ROI cropped. For details, please refer to the manual.
5.5.6 pixelformat
./mv_mipi_i2c.sh -w -f pixelformat -p1 [0,2]
./mv_mipi_i2c.sh -r -f pixelformat
value | description |
---|---|
0 | Mono8 |
1 | Mono10 |
2 | Mono12 |
4 | UYVY |
Note that for the MV-MIPI-IMX178, the AD bits of the sensor is always 12 bits, and the logic unit performs data rounding to achieve a different pixel format.
5.5.7 blacklevel
./mv_mipi_i2c.sh -w -f blacklevel -p1 [blacklevel]
./mv_mipi_i2c.sh -r -f blacklevel
This black level value will be set directly to the sensor.
5.5.8 testimg
./mv_mipi_i2c.sh -w -f testimg -p1 [0,2]
./mv_mipi_i2c.sh -r -f testimg
value | description |
---|---|
0 | Normal image |
1 | Test image 1 |
2 | Test image 2 |
5.6 ISP
5.7 Special Functions