OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [Documentation/] [usb/] [ov511.txt] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1275 phoenix
-------------------------------------------------------------------------------
2
Readme for Linux device driver for the OmniVision OV511 USB to camera bridge IC
3
-------------------------------------------------------------------------------
4
 
5
Author: Mark McClelland
6
Homepage: http://alpha.dyndns.org/ov511
7
 
8
INTRODUCTION:
9
 
10
This is a driver for the OV511, a USB-only chip used in many "webcam" devices.
11
Any camera using the OV511/OV511+ and the OV6620/OV7610/20/20AE should work.
12
Video capture devices that use the Philips SAA7111A decoder also work. It
13
supports streaming and capture of color or monochrome video via the Video4Linux
14
API. Most V4L apps are compatible with it. Most resolutions with a width and
15
height that are a multiple of 8 are supported.
16
 
17
If you need more information, please visit the OV511 homepage at the above URL.
18
 
19
WHAT YOU NEED:
20
 
21
- If you want to help with the development, get the chip's specification docs at
22
  http://www.ovt.com/omniusbp.html
23
 
24
- A Video4Linux compatible frame grabber program (I recommend vidcat and xawtv)
25
    vidcat is part of the w3cam package:  http://www.hdk-berlin.de/~rasca/w3cam/
26
    xawtv is available at:  http://www.in-berlin.de/User/kraxel/xawtv.html
27
 
28
HOW TO USE IT:
29
 
30
Note: These are simplified instructions. For complete instructions see:
31
        http://alpha.dyndns.org/ov511/install.html
32
 
33
You must have first compiled USB support, support for your specific USB host
34
controller (UHCI or OHCI), and Video4Linux support for your kernel (I recommend
35
making them modules.) Make sure "Enforce bandwidth allocation" is NOT enabled.
36
 
37
Next, (as root):
38
 
39
        modprobe usbcore
40
        modprobe usb-uhci    modprobe usb-ohci
41
        modprobe videodev
42
        modprobe ov511
43
 
44
If it is not already there (it usually is), create the video device:
45
 
46
        mknod /dev/video0 c 81 0
47
 
48
Optionally, symlink /dev/video to /dev/video0
49
 
50
You will have to set permissions on this device to allow you to read/write
51
from it:
52
 
53
        chmod 666 /dev/video
54
        chmod 666 /dev/video0 (if necessary)
55
 
56
Now you are ready to run a video app! Both vidcat and xawtv work well for me
57
at 640x480.
58
 
59
[Using vidcat:]
60
 
61
        vidcat -s 640x480 -p c > test.jpg
62
        xview test.jpg
63
 
64
[Using xawtv:]
65
 
66
From the main xawtv directory:
67
 
68
        make clean
69
        ./configure
70
        make
71
        make install
72
 
73
Now you should be able to run xawtv. Right click for the options dialog.
74
 
75
MODULE PARAMETERS:
76
 
77
  You can set these with:  insmod ov511 NAME=VALUE
78
  There is currently no way to set these on a per-camera basis.
79
 
80
  NAME: autobright
81
  TYPE: integer (Boolean)
82
  DEFAULT: 1
83
  DESC: Brightness is normally under automatic control and can't be set
84
        manually by the video app. Set to 0 for manual control.
85
 
86
  NAME: autogain
87
  TYPE: integer (Boolean)
88
  DEFAULT: 1
89
  DESC: Auto Gain Control enable. This feature is not yet implemented.
90
 
91
  NAME: autoexp
92
  TYPE: integer (Boolean)
93
  DEFAULT: 1
94
  DESC: Auto Exposure Control enable. This feature is not yet implemented.
95
 
96
  NAME: debug
97
  TYPE: integer (0-6)
98
  DEFAULT: 3
99
  DESC: Sets the threshold for printing debug messages. The higher the value,
100
        the more is printed. The levels are cumulative, and are as follows:
101
          0=no debug messages
102
          1=init/detection/unload and other significant messages
103
          2=some warning messages
104
          3=config/control function calls
105
          4=most function calls and data parsing messages
106
          5=highly repetitive mesgs
107
 
108
  NAME: fix_rgb_offset
109
  TYPE: integer (Boolean)
110
  DEFAULT: 0
111
  DESC: Some people have reported that the blue component of the image is one
112
        or so lines higher than the red component. This is only apparent in
113
        images with white objects on black backgrounds at 640x480. Setting this
114
        to 1 will realign the color planes correctly. NOTE: You will likely
115
        need a fast (500 MHz) CPU.
116
 
117
  NAME: snapshot
118
  TYPE: integer (Boolean)
119
  DEFAULT: 0
120
  DESC: Set to 1 to enable snapshot mode. read()/VIDIOCSYNC will block until
121
        the snapshot button is pressed. Note: enabling this mode disables
122
        /proc/video/ov511//button
123
 
124
  NAME: force_rgb       (Deprecated; may be removed in the future)
125
  TYPE: integer (Boolean)
126
  DEFAULT: 0
127
  DESC: Force image to be read in RGB instead of BGR. This option allow
128
        programs that expect RGB data (e.g. gqcam) to work with this driver. If
129
        your colors look VERY wrong, you may want to change this.
130
 
131
  NAME: cams
132
  TYPE: integer (1-4 for OV511, 1-31 for OV511+)
133
  DEFAULT: 1
134
  DESC: Number of cameras allowed to stream simultaneously on a single bus.
135
        Values higher than 1 reduce the data rate of each camera, allowing two
136
        or more to be used at once. If you have a complicated setup involving
137
        both OV511 and OV511+ cameras, trial-and-error may be necessary for
138
        finding the optimum setting.
139
 
140
  NAME: compress
141
  TYPE: integer (Boolean)
142
  DEFAULT: 0
143
  DESC: Set this to 1 to turn on the camera's compression engine. This can
144
        potentially increase the frame rate at the expense of quality, if you
145
        have a fast CPU. You must load the proper compression module for your
146
        camera before starting your application (ov511_decomp or ov518_decomp).
147
 
148
  NAME: testpat
149
  TYPE: integer (Boolean)
150
  DEFAULT: 0
151
  DESC: This configures the camera's sensor to transmit a colored test-pattern
152
        instead of an image. This does not work correctly yet.
153
 
154
  NAME: dumppix
155
  TYPE: integer (0-2)
156
  DEFAULT: 0
157
  DESC: Dumps raw pixel data and skips post-processing and format conversion.
158
        It is for debugging purposes only. Options are:
159
                0: Disable (default)
160
                1: Dump raw data from camera, excluding headers and trailers
161
                2: Dumps data exactly as received from camera
162
 
163
  NAME: led
164
  TYPE: integer (0-2)
165
  DEFAULT: 1 (Always on)
166
  DESC: Controls whether the LED (the little light) on the front of the camera
167
        is always off (0), always on (1), or only on when driver is open (2).
168
        This is not supported with the OV511, and might only work with certain
169
        cameras (ones that actually have the LED wired to the control pin, and
170
        not just hard-wired to be on all the time).
171
 
172
  NAME: dump_bridge
173
  TYPE: integer (Boolean)
174
  DEFAULT: 0
175
  DESC: Dumps the bridge (OV511[+] or OV518[+]) register values to the system
176
        log. Only useful for serious debugging/development purposes.
177
 
178
  NAME: dump_sensor
179
  TYPE: integer (Boolean)
180
  DEFAULT: 0
181
  DESC: Dumps the sensor register values to the system log. Only useful for
182
        serious debugging/development purposes.
183
 
184
  NAME: printph
185
  TYPE: integer (Boolean)
186
  DEFAULT: 0
187
  DESC: Setting this to 1 will dump the first 12 bytes of each isoc frame. This
188
        is only useful if you are trying to debug problems with the isoc data
189
        stream (i.e.: camera initializes, but vidcat hangs until Ctrl-C). Be
190
        warned that this dumps a large number of messages to your kernel log.
191
 
192
  NAME: phy, phuv, pvy, pvuv, qhy, qhuv, qvy, qvuv
193
  TYPE: integer (0-63 for phy and phuv, 0-255 for rest)
194
  DEFAULT: OV511 default values
195
  DESC: These are registers 70h - 77h of the OV511, which control the
196
        prediction ranges and quantization thresholds of the compressor, for
197
        the Y and UV channels in the horizontal and vertical directions. See
198
        the OV511 or OV511+ data sheet for more detailed descriptions. These
199
        normally do not need to be changed.
200
 
201
  NAME: lightfreq
202
  TYPE: integer (0, 50, or 60)
203
  DEFAULT: 0 (use sensor default)
204
  DESC: Sets the sensor to match your lighting frequency. This can reduce the
205
        appearance of "banding", i.e. horizontal lines or waves of light and
206
        dark that are often caused by artificial lighting. Valid values are:
207
 
208
                50 - For European and Asian 50 Hz power
209
                60 - For American 60 Hz power
210
 
211
  NAME: bandingfilter
212
  TYPE: integer (Boolean)
213
  DEFAULT: 0 (off)
214
  DESC: Enables the sensorīs banding filter exposure algorithm. This reduces
215
        or stabilizes the "banding" caused by some artificial light sources
216
        (especially fluorescent). You might have to set lightfreq correctly for
217
        this to work right. As an added bonus, this sometimes makes it
218
        possible to capture your monitorīs output.
219
 
220
  NAME: fastset
221
  TYPE: integer (Boolean)
222
  DEFAULT: 0 (off)
223
  DESC: Allows picture settings (brightness, contrast, color, and hue) to take
224
        effect immediately, even in the middle of a frame. This reduces the
225
        time to change settings, but can ruin frames during the change. Only
226
        affects OmniVision sensors.
227
 
228
  NAME: force_palette
229
  TYPE: integer (Boolean)
230
  DEFAULT: 0 (off)
231
  DESC: Forces the palette (color format) to a specific value. If an
232
        application requests a different palette, it will be rejected, thereby
233
        forcing it to try others until it succeeds. This is useful for forcing
234
        greyscale mode with a color camera, for example. Supported modes are:
235
 
236
                1   VIDEO_PALETTE_GREY      (Linear greyscale)
237
                3   VIDEO_PALETTE_RGB565    (565 16 bit RGB)
238
                4   VIDEO_PALETTE_RGB24     (24bit RGB)
239
                7   VIDEO_PALETTE_YUV422    (YUV422 capture)
240
                8   VIDEO_PALETTE_YUYV      (YUV422 capture; same as 7)
241
                10  VIDEO_PALETTE_YUV420    (YUV 4:2:0 Planar)
242
                13  VIDEO_PALETTE_YUV422P   (YUV 4:2:2 Planar)
243
                15  VIDEO_PALETTE_YUV420P   (YUV 4:2:0 Planar, same as 10)
244
 
245
  NAME: backlight
246
  TYPE: integer (Boolean)
247
  DEFAULT: 0 (off)
248
  DESC: Setting this flag changes the exposure algorithm for OmniVision sensors
249
        such that objects in the camera's view (i.e. your head) can be clearly
250
        seen when they are illuminated from behind. It reduces or eliminates
251
        the sensor's auto-exposure function, so it should only be used when
252
        needed. Additionally, it is only supported with the OV6620 and OV7620.
253
 
254
  NAME: unit_video
255
  TYPE: Up to 16 comma-separated integers
256
  DEFAULT: 0,0,0... (automatically assign the next available minor(s))
257
  DESC: You can specify up to 16 minor numbers to be assigned to ov511 devices.
258
        For example, "unit_video=1,3" will make the driver use /dev/video1 and
259
        /dev/video3 for the first two devices it detects. Additional devices
260
        will be assigned automatically starting at the first available device
261
        node (/dev/video0 in this case). Note that you cannot specify 0 as a
262
        minor number. This feature requires kernel version 2.4.5 or higher.
263
 
264
  NAME: remove_zeros
265
  TYPE: integer (Boolean)
266
  DEFAULT: 0 (do not skip any incoming data)
267
  DESC: Setting this to 1 will remove zero-padding from incoming data. This
268
        will compensate for the blocks of corruption that can appear when the
269
        camera cannot keep up with the speed of the USB bus (eg. at low frame
270
        resolutions). This feature is always enabled when compression is on.
271
 
272
  NAME: mirror
273
  TYPE: integer (Boolean)
274
  DEFAULT: 0 (off)
275
  DESC: Setting this to 1 will reverse ("mirror") the image horizontally. This
276
        might be necessary if your camera has a custom lens assembly. This has
277
        no effect with video capture devices.
278
 
279
  NAME: ov518_color
280
  TYPE: integer (Boolean)
281
  DEFAULT: 0 (off)
282
  DESC: Enable OV518 color support. This is off by default since it doesn't
283
        work most of the time. If you want to try it, you must also load
284
        ov518_decomp with the "nouv=0" parameter. If you get improper colors or
285
        diagonal lines through the image, restart your video app and try again.
286
        Repeat as necessary.
287
 
288
WORKING FEATURES:
289
 o Color streaming/capture at most widths and heights that are multiples of 8.
290
 o RGB24, RGB565, YUV420/YUV420P, YUV422/YUYV, and YUV422P color
291
 o Monochrome (use force_palette=1 to enable)
292
 o Setting/getting of saturation, contrast, brightness, and hue (only some of
293
   them work the OV7620 and OV7620AE)
294
 o /proc status reporting
295
 o SAA7111A video capture support at 320x240 and 640x480
296
 o Compression support
297
 o SMP compatibility
298
 
299
HOW TO CONTACT ME:
300
 
301
You can email me at mark@alpha.dyndns.org . Please prefix the subject line
302
with "OV511: " so that I am certain to notice your message.
303
 
304
CREDITS:
305
 
306
The code is based in no small part on the CPiA driver by Johannes Erdfelt,
307
Randy Dunlap, and others. Big thanks to them for their pioneering work on that
308
and the USB stack. Thanks to Bret Wallach for getting camera reg IO, ISOC, and
309
image capture working. Thanks to Orion Sky Lawlor, Kevin Moore, and Claudio
310
Matsuoka for their work as well.
311
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.