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