The theoretical range is (0, 4096)
The actual value you can adjust to the maximum value by using the manual focus program, and read the register to get the actual value.
I am sorry but I don’t know 0x1 usage. I am aware that I need to initialize before use vcm init addr: 0x02 with value 0x0. The problem is I am not sure what is low addr: 0x01 is for.
The effective bit of the control register of vcm is 12bit, which requires two 8bit registers.
So 0x00 is the high register address and 0x01 is the low register.
For example, if you want to write 2000 to vcm, you should write 0x7e to 0x00 register and 0x70 to 0x01 register.
2000 (dec) = 0x7e7 (hex)
0x7e7 << 4 = 0x7e70 (high 12bit is valid)
high = (0x7e70 & 0xFF00) >> 8 = 0x7e
low = (0x7e70 & 0x00FF) = 0x70