[sane-devel] LiDE 90
guillaume.gastebois at free.fr
guillaume.gastebois at free.fr
Thu Aug 21 07:17:26 UTC 2008
Hello,
Thank you for answer Pierre.
Some questions again !
>Hi Guillaume,
>Guillaume Gastebois schrieb:
>> Hello,
>>
>> I'm back with my LiDE 90 !
>>
>> I see in my windows logs the following sequence for gpios (reg 0x6C) :
>> 02
>> 12
>> 0e
>> 1a
>> 0a
>> 0e/3e (3e for half ccd log) (seems to be scanning moment)
>> 0e
>> 0a
>> 0e/3e (3e for half ccd log)
>> 02
>>
Did you see some GPIO sequences necessary like with your lide 35 scanner ?
>> With tests I identifies GPIO11 as home switch (with 1 scanner doesn't
>> see home position any more) and GPIO14 as half CCD.
>> But it doesn't seems to be so simple. Why windows driver plays with home switch ?
>
>The home switch is of the photoelectric variety most of the time, so
>switching it off saves a few milli Amperes.
>
OK I can let GPIO11 to 0 (not interested to save few mA for the moment !!!!!!!)
>> Why did I have half image with GPIO13/14 to 0 ?
>
>That question cannot be answered without knowledge of the actual
>electrical connections. I'd just accept the fact that GPIO13/14 needs to
>be switched together.
In one 1200dpi log, I get the value 0x22 for reg 0x6C. (but I'm not sure of this log).
>
>> Subsidiary question : where in the code to play to modify default 0x6C register
>> value before calibration, before scanning and after scanning ?
>
So you think that I just have to find the good value and let it from begining to the end the same ?
Why windows driver plays with reg 0x6C ?
>The genesys_gl841-part unifies the setup for calibration scans and
>regular scans. The mid level functions get a set of parameters
>describing what, where and how to scan, and setup everything for that.
>Those functions are: gl841_init_motor_regs_off, gl841_init_motor_regs,
>gl841_init_motor_regs_scan for the motor control part,
>gl841_init_optical_regs_off, gl841_init_optical_regs_scan for the
>optical control part. gl841_init_scan_regs and gl841_feed pose as
>frontends for these functions.
>
>Before scanning, each of the mid level functions sets the bits that
>control parts of the scanner relating to the given function. For
>example, gl841_init_optical_regs_scan sets the bits needed for half-ccd
>mode, while gl841_init_motor_regs_scan will be responsible to setup a
>given motor power mode.
OK It answers my question about changing 0x6C value ?
>
>If you really need to do things differently for calibration and regular
>scanning(which i doubt), you need to look at
>gl841_init_regs_for_coarse_calibration, gl841_init_regs_for_shading,
>gl841_init_regs_for_scan, gl841_offset_calibration,
>gl841_coarse_gain_calibration, gl841_led_calibration. IIRC the init_regs
>functions are called before the actual action is done, and the resulting
>register set is directly written to the scanner. The actual calibration
>happens in the other functions, using or not using the previously setup
>registers. All of these call gl841_init_scan_regs and gl841_feed to get
>their work done, but the register set can be modified after that call.
>
>The initial bit-fiddling (if needed) happens in gl841_init_registers,
>starting off from the values stored in genesys_devices.c:
>static Genesys_Gpo Gpo[].
>
>> Regards
>> Guillaume
>
>Regards,
> Pierre
Regards
Guillaume
More information about the sane-devel
mailing list