Patent ID: 8525864

Claim:
A semiconductor laser driver to drive a semiconductor laser, the semiconductor laser driver comprising: a drive circuit to generate a driving current to cause the semiconductor laser to emit; and a current control circuit to cause the driving current to repeatedly increase and decrease in a predetermined cycle, wherein the driving current is increased and decreased while shading correction is performed in the semiconductor laser driver, wherein the current control circuit comprises a register, and the current control circuit divides the predetermined cycle into equal intervals, sets in the register increments for the driving current when shading correction is started and variations for the driving current for each interval, and increases and decreases the driving current in accordance with the increments and the variations stored in the register while shading correction is performed, wherein the increase and decrease of the driving current by the current control circuit is based on shading clock signals and internal clock signals, and wherein the current control circuit comprises: a counter, receiving the shading clock signals, to count the shading clock signals; a first register to set the increments when shading correction is started and the variations for each interval and output a level of a start code that is an initial code of a shading code while shading correction is performed and the variations for each interval; a multiplexer to select one of the variations output from the register; an encoder, receiving an internal clock signal to convert the variations output from the multiplexer into variation patterns synchronized with the internal clock signal and output the variation patterns for each interval; a second register, receiving the shading clock signals, the level of the start code, and a preceding code that is one preceding interval of the variation patterns to output a level of present shading code when preceding shading clock signal cycle is finished; an adder to add the variation patterns output from the encoder and the level of present shading code and output a shading code; and a digital-analog converter to convert the shading code output from the adder into a control current and output the control current to the drive circuit while shading correction is performed.