Focus Actuator Comments (#2478)

* comments from DW9800W datasheet

* more comments
old-commit-hash: 4d5efb5789
vw-mqb-aeb
George Hotz 5 years ago committed by GitHub
parent 67a738b2f4
commit c5313f6bcf
  1. 14
      selfdrive/camerad/cameras/camera_qcom.cc

@ -1399,7 +1399,7 @@ static void camera_open(CameraState *s, bool rear) {
err = ioctl(s->ois_fd, VIDIOC_MSM_OIS_CFG, &ois_cfg_data); err = ioctl(s->ois_fd, VIDIOC_MSM_OIS_CFG, &ois_cfg_data);
LOG("ois init settings: %d", err); LOG("ois init settings: %d", err);
} else { } else {
// leeco actuator // leeco actuator (DW9800W H-Bridge Driver IC)
// from sniff // from sniff
s->infinity_dac = 364; s->infinity_dac = 364;
@ -1407,6 +1407,7 @@ static void camera_open(CameraState *s, bool rear) {
{ {
.reg_write_type = MSM_ACTUATOR_WRITE_DAC, .reg_write_type = MSM_ACTUATOR_WRITE_DAC,
.hw_mask = 0, .hw_mask = 0,
// MSB here at address 3
.reg_addr = 3, .reg_addr = 3,
.hw_shift = 0, .hw_shift = 0,
.data_type = 9, .data_type = 9,
@ -1417,11 +1418,14 @@ static void camera_open(CameraState *s, bool rear) {
}; };
struct reg_settings_t actuator_init_settings[] = { struct reg_settings_t actuator_init_settings[] = {
{ .reg_addr=2, .addr_type=MSM_ACTUATOR_BYTE_ADDR, .reg_data=1, .data_type = MSM_ACTUATOR_BYTE_DATA, .i2c_operation = MSM_ACT_WRITE, .delay = 0 }, { .reg_addr=2, .addr_type=MSM_ACTUATOR_BYTE_ADDR, .reg_data=1, .data_type = MSM_ACTUATOR_BYTE_DATA, .i2c_operation = MSM_ACT_WRITE, .delay = 0 }, // PD = power down
{ .reg_addr=2, .addr_type=MSM_ACTUATOR_BYTE_ADDR, .reg_data=0, .data_type = MSM_ACTUATOR_BYTE_DATA, .i2c_operation = MSM_ACT_WRITE, .delay = 2 }, { .reg_addr=2, .addr_type=MSM_ACTUATOR_BYTE_ADDR, .reg_data=0, .data_type = MSM_ACTUATOR_BYTE_DATA, .i2c_operation = MSM_ACT_WRITE, .delay = 2 }, // 0 = power up
{ .reg_addr=2, .addr_type=MSM_ACTUATOR_BYTE_ADDR, .reg_data=2, .data_type = MSM_ACTUATOR_BYTE_DATA, .i2c_operation = MSM_ACT_WRITE, .delay = 2 }, { .reg_addr=2, .addr_type=MSM_ACTUATOR_BYTE_ADDR, .reg_data=2, .data_type = MSM_ACTUATOR_BYTE_DATA, .i2c_operation = MSM_ACT_WRITE, .delay = 2 }, // RING = SAC mode
{ .reg_addr=6, .addr_type=MSM_ACTUATOR_BYTE_ADDR, .reg_data=64, .data_type = MSM_ACTUATOR_BYTE_DATA, .i2c_operation = MSM_ACT_WRITE, .delay = 0 }, { .reg_addr=6, .addr_type=MSM_ACTUATOR_BYTE_ADDR, .reg_data=64, .data_type = MSM_ACTUATOR_BYTE_DATA, .i2c_operation = MSM_ACT_WRITE, .delay = 0 }, // 0x40 = SAC3 mode
{ .reg_addr=7, .addr_type=MSM_ACTUATOR_BYTE_ADDR, .reg_data=113, .data_type = MSM_ACTUATOR_BYTE_DATA, .i2c_operation = MSM_ACT_WRITE, .delay = 0 }, { .reg_addr=7, .addr_type=MSM_ACTUATOR_BYTE_ADDR, .reg_data=113, .data_type = MSM_ACTUATOR_BYTE_DATA, .i2c_operation = MSM_ACT_WRITE, .delay = 0 },
// 0x71 = DIV1 | DIV0 | SACT0 -- Tvib x 1/4 (quarter)
// SAC Tvib = 6.3 ms + 0.1 ms = 6.4 ms / 4 = 1.6 ms
// LSC 1-step = 252 + 1*4 = 256 ms / 4 = 64 ms
}; };
struct region_params_t region_params[] = { struct region_params_t region_params[] = {

Loading…
Cancel
Save