SLAU915 May 2024 ULC1001
Texas Instruments created three main cleaning modes for removing ice, mud and water from the lens of the LCS and an Auto mode that can be programmed to drive a cleaning sequence when mass, such as water, is detected on the lens. Two additional custom modes are also available for flexibility. Assuming the user has already run Calibration Mode and updated the appropriate settings, a cleaning mode can be run by hitting the Run/Play buttons next to the mode configuration matrix in the Cleaning Modes High Level Page. For convenience, the Run/Play buttons automatically put the device in Active Mode and send a Reinit System command before the mode is run. The device is returned to Software Shutdown Mode after a cleaning mode. TI highly recommends the Amp (puV) settings for each burst of the cleaning modes equal the Amp (puV) settings used when Calibration Mode was run.
When running any cleaning mode, all but the GUI Abort Sequence button is grayed out. The Abort Sequence button ends the running mode and resets the ULC1001-DRV2911 EVM to the state of the device just before the cleaning mode was initiated.
The register sequence for running calibration mode is displayed in Table 4-21.
Register | Read/Write | Data | Description |
---|---|---|---|
00 | W | 00 | Change to Page 0 |
7F | W | 00 | Change to Book 0 |
02 | W | 00 | Put device in active mode |
NA | NA | NA | Wait 5ms |
00 | W | 1A | Change to page 0x1A |
58 | W | 0000000X | Set Cleaning Mode Command in the UserCommand Register |
5C | W | 00000001 | Notifies the device there is a new command to be executed |
NA | NA | NA | Wait until above register, 0x5C, = 0. The wait time depends on the cleaning modes' settings. |
00 | W | 00 | Change to page 0 |
02 | W | 02 | Put device in software shutdown mode |
In the GUI, the following script can be used in the Python window to run a cleaning mode. The cleaning modes are 0x3 = Custom Mode 1, 0x4 = Custom Mode 2, 0x5 = Deice, 0x6 = Auto Mode, and 0x7 = Mud mode.
GUI_Module=__import__('ULC1001')
import time
GUI=GUI_Module.Device_GUI("ULC1001.exe",6640.000000)
GUI.write_register("ULC1001","PWR_CTL",0x0) # put device in active mode
# Set Cleaning Command (0x3-0x7)
GUI.write_register("USER_Commands","USER_Commands_userCommand",0xX) # set Cleaning Command
GUI.write_register("USER_Commands","USER_Commands_flag_newCommand",0x1) # sets lock bit
time.sleep(x) # set appropriate wait time
GUI.write_register("ULC1001","PWR_CTL",0x02) # returns device to Software Shutdown