In fw/drv8323.cc, the low-side gate drive configuration for reg4 appears to use the wrong lookup table for DRV8353.
Current code:
(map_choice(drv8323 ? idriven_table_drv8323 : idrivep_table_drv8353,
config_.idriven_ls_ma) << 0);
Since this field is configuring idriven_ls_ma, the DRV8353 branch seems like it should use idriven_table_drv8353, not idrivep_table_drv8353.
The high-side register immediately above appears to use the expected pairing:
(map_choice(drv8323 ? idrivep_table_drv8323 : idrivep_table_drv8353,
config_.idrivep_hs_ma) << 4) |
(map_choice(drv8323 ? idriven_table_drv8323 : idriven_table_drv8353,
config_.idriven_hs_ma) << 0);
Suggested change:
(map_choice(drv8323 ? idriven_table_drv8323 : idriven_table_drv8353,
config_.idriven_ls_ma) << 0);
In
fw/drv8323.cc, the low-side gate drive configuration forreg4appears to use the wrong lookup table for DRV8353.Current code:
(map_choice(drv8323 ? idriven_table_drv8323 : idrivep_table_drv8353, config_.idriven_ls_ma) << 0);Since this field is configuring
idriven_ls_ma, the DRV8353 branch seems like it should useidriven_table_drv8353, notidrivep_table_drv8353.The high-side register immediately above appears to use the expected pairing:
(map_choice(drv8323 ? idrivep_table_drv8323 : idrivep_table_drv8353, config_.idrivep_hs_ma) << 4) | (map_choice(drv8323 ? idriven_table_drv8323 : idriven_table_drv8353, config_.idriven_hs_ma) << 0);Suggested change:
(map_choice(drv8323 ? idriven_table_drv8323 : idriven_table_drv8353, config_.idriven_ls_ma) << 0);