ULC1001-DRV2911EVM: Zmin vs Pmax/Smax extrema for mass detection

Part Number: ULC1001-DRV2911EVM
Other Parts Discussed in Thread: ULC1001, DRV2911, ULC1001-DRV290XEVM,

Tool/software:

Hi,

we are developing a custom ULC control board based on the ULC1001 chipset. We have been able to resonate the glass strongly at one frequency but have been having trouble finding alternative frequencies which work reliably. I have also been having trouble with mass detection and continuous operation.

A few questions to improve our understanding and help fine tune the operation of the ULC system:

  1. Can the mass detection system use extrema other than the Zmin? The calMode
    registers for the burst 19 correctly set the frequency ranges based on the
    extrema selected however it is unclear if when burst 19 runs if it uses the
    said extrema or measures Zmin regardless and therefore false positive
    triggers? I ask as the LCS I have is quite large and the I cannot find a
    Zmin outside the audio region of the spectrum and these do not seem to
    shift sufficiently in frequency for reliable mass detection.
  2. Are there any recommended design guidelines for selecting the cutoff
    frequency and other parameters for the filter circuit which drives the transducer.
  3. Are there firmware variations for the ULC1001 DSP is the DSP firmware upgradable. I have noticed
    some variations between user manual revisions which may be reflect possible firmware changes.

Thank you for your assistance.

Regards,


Stuart

  • Stuart,

    Thanks for contacting us.

    1) You mentioned your LCS is quite large and the resonant frequency is outside the audible range. How large is it and how thick is the lens?  Are you able to expel or move the water?  

    2) LC filter not only filters high frequency signals but also provides a voltage gain. The cutoff frequency is determined by the resonant frequency of LCS. Usually it is either smaller or larger than the LCS resonant frequency. The distance between the LCS resonant frequency and cutoff frequency determines the voltage gain. The closer, the higher the voltage gain.   For example, TI’s LCS-FL-RNG15 resonant frequency is around 60kHz. The cutoff frequency of the LC filter in the EVM is 110kHz. This provides a voltage gain of ~4, boosting the 30V DRV2911 PVDD to ~120V.   

    3) For public version, there isn't firmware variations. There is some minor difference between ULC1001 firmware and ULC1001Q1 firmware.   

  • Hi Hailong,

    thank you for your reply.

    Our LCS is around 60mm and 1 mm thick.  It has been possible to expel water but some water is left behind in rings and it has been hard to find a higher frequency resonance which expels the water from the rings.  These are Pmax resonances around 125KHz but the only Zmin resonances I can find is are below 16KHz.  These are found using the calibration sweeps of the ULC1001.  

    Can you please confirm if the mass detection does/does not work with resonances other than Zmin, are there any settings I might have missed necessary to have burst 19 work with the Pmax/Smax resonances.

    I have seen mention, elsewhere in the threads, of simulation/modeling of the transducer/LCS are you able to share?

    It appears I have the ULC1001 are there any minor differences which affect the ability to find resonances or with the mass detection on resonances other than Zmin or with the register maps etc.  I have been developing micropython code to interrogate the ULC1001 from an ESP32 processor. I noticed the disappearance from the documentation of burst 4 from the calibration sequence. Is the firmware reprogrammable or would it require changing the IC I expect we will need to upgrade the IC going forward into production in any case.  I am also a little unclear on how the Region1 and Region2 power setting calibrations are supposed to work.

    I sounds like I should reduce the resonance of the filter as I expect the resonance of my LCS is much lower.  The resonance of our filter is actually currently around 500KHz probably due to lack of information about the design requirements at that stage of the process.

    Thank you in anticipation of you reply, once again.

    Regards,

    Stuart

  • The IV sense resistors might need modifications based on the LCS, otherwise the IV sense data might be very off and the mass detection won't work well. 

    Regarding the resonant frequencies of the LCS, it is recommended to use an impedance analyzer to check where the resonant frequencies are (the IV sense in the EVM may not work well for your LCS). 

    I am not sure what simulation you are talking about, but there are simulation tutorials from COMSOL on piezo simulation. 

     The algorithm inside the ULC1001 DSP is not reprogrammable for customers, but the configurations for different LCS are programable via I2C.   

  • Hailong,

    thank you for your further response.

    I have "optimized" the sense resistors as per the supplied calculation
    spreadsheet. I have then computed the associated gains and set the
    associated registers. Unless the GUI does some undocumented
    calculations and/or sets some undocumented registers it should be ok?
    Or are there some other requirements for fine tuning the IV sensing
    networks?

    reg.Rsns = 1.4
    reg.Rf = 84000.0
    reg.R1 = 360000.0
    reg.R2 = 30000.0
    reg.R3 = 1000000.0
    reg.R4 = 430000.0

    reg.Vsns_GAIN() = 0.006557784
    reg.Isns_GAIN() = 0.2734884

    (0x00, 0x03, 0x10, 32) USER_Params_voltsPerCnt_sf: 0x00000000 0.000000
    (0x00, 0x03, 0x14, 32) USER_Params_ampsPerCnt_sf: 0x00000000 0.000000
    (0x00, 0x06, 0x68, 32) USER_Params_dcBiasParams_amps_sf_Q28: 0x10000000 1.000000
    (0x00, 0x06, 0x6C, 32) USER_Params_dcBiasParams_volts_sf_Q30: 0x00000000 0.000000
    (0x00, 0x17, 0x3C, 32) USER_Params_oneOverWindow_sf: 0x00000000 0.000000
    (0x00, 0x17, 0x4C, 32) USER_Params_amps_sf_Q28: 0x04603558 0.273488
    (0x00, 0x17, 0x50, 32) USER_Params_ohms_sf_Q22: 0x0A6D14A0 41.704384
    (0x00, 0x17, 0x54, 32) USER_Params_volts_sf_Q30: 0x006B7158 0.006558
    (0x00, 0x17, 0x58, 32) USER_Params_watts_sf_Q18: 0x01C3A2F0 112.909119
    (0x00, 0x17, 0x74, 32) USER_Params_Imag_max_sf_Q27: 0x1A539780 3.290816 (This looks to be wrong but correcting it to 0.24614 has had little effect)
    (0x00, 0x17, 0x78, 32) USER_Params_invWin_kaiser_sf_Q31: 0x0028F5C2 0.001250
    (0x00, 0x07, 0x3C, 32) USER_Params_sfaultParams_numIsrsBetweenChecks: 0x000061A8 25000.000000
    (0x00, 0x07, 0x40, 32) USER_Params_sfaultParams_Imag_threshold_A_Q9: 0x00000019 0.048828
    (0x00, 0x07, 0x44, 32) USER_Params_sfaultParams_Zthreshold_ohm_Q20: 0x0E100000 225.000000
    (0x00, 0x07, 0x48, 32) USER_Params_sfaultParams_flag_enableContinuousMode: 0x00000001 1.000000

    The lowest clear resonance I can find using a signal generator,
    oscilloscope and a 47R resistor is 15.465kHz. This is driving 14.8Vpp
    across the LCS and resistor in series and 3.28V across the resistor
    equating to 70mA and a LCS resistance of 165R

    As an example and why I ask if there are issues with resonance peaks other than Zmin I have measured using the
    calibration repeatedly a Pmax peak at 132.812 kHz with a standard devialtion 0 over 10 repeated measurements.
    When I load the LCS the peak shifts to 129.199 kHz with a standard deviuation of 471 Hz.

    I have 'USER_Params_controlParams_calMode_19' set to 1 (Pmax).

    I have 'USER_Params_mdetectParams_deltaFreqThreshold_Hz_Q9' set to 1000Hz.

    Yet auto (single run of sequence 4) and auto mode (flags set continuous) runs the bursts after burst 19 in sequence 4. In my understanding this should not be the case. If I increase the deltaF sufficiently (1250 Hz) I can get it to
    only run burst 19 but then adding mass to the glass is not detected.

    Given the calibration results the driver would appear to be able to measure the resonances sufficiently accurately
    however the driver is not responding as documented or expected.

    Please let me know if you see anything above that may be causing problems.

    Regards,

    Stuart

  • I did just notice burst 19 start and stop would not include the shifted peak however adjusting these to be wider only caused me to have to increase the deltaF further to try and stop mass detection from false triggering.  I haven't found a setting large enough as yet.

  • Dear customer,

    As Monday is a US holiday, responses will be delayed. We will provide feedback when back in office. Thank you for your patience!

    Best regards!

  • Hi,

    I am still trying to figure out why the auto modes keeps false triggering when no additional mass is present and I am able to measure stable resonances with and without additional mass using the calibration burst 1 calibration.

    Will the relative polarities of the Isns and Vsns affect Zmin/Imax measurements as I don't seem to get Zmin/Imax results around Pmax and Smax resonances.

    Can Pmax/Smax be used for mass detection.

    Is there any way to see the result/frequency of the of the burst 19 measurements that are being performed during mass detection.

    Regards,

    Stuart

  • Stuart, 

    I will loop in our firmware expert to help here. 

  • Hi Hailong,

    thanks.

    Further to my last email I have managed to get the EVM board to mass detect with a 20mm lens cover.  I did seem to be getting Zmin measurements using the EVM board while I'm not getting them using our board so I'm going to be trying some changes to the sense resistors next week.  I tried rearranging the sense wires but this did not improve things so I think this does not seem to matter. Also I noted the arrangements of sense wiring differs between the user manual body and the supplied circuits for the EVM at the end of the document. I also note this circuit is for the ULC1001-DRV290xEVM which does not match the ULC1001-DRV2911EVM version I have, is the updated circuit available please?

    What exactly are the firmware differences between the available ULC1001 variants?  The demo board which worked has a ULC1001UQ1 while our prototype boards have the ULC1001.

    The question of whether Pmax/Smax can be used to detect mass remains unanswered as the working test above was a Zmin so there are currently two problems I need to solve.  They are why I cannot seem to measure Zmin resonances  with our board (One possibility may be filter and voltage divider networks) and why given I can measure the difference in resonant frequency between mass loaded and unloaded Pmax resonances I cannot seem to use these for mass detection.

    Regards,

    Stuart

  • Stuart, sorry for the delay here. Let me get my colleague to help here. 

  • Thanks, looking forward to their response.

  • No problem. We should be able to provide the feedback soon. 

  • In the interim, what is the significance of the PRAM block data?  It seems to be populated in the GUI saved config files but was not present at some point or is not readable from the ULC1001 as it is all 0x00000000 in my saved files which are generated from the data read back from the ULC1001 the exact data I read is based on a GUI saved config originally from an older version of the GUI possibly in demo mode but later updated from the latest version GUI with minor corrections to fix the consistency of 32 bit data representation.

    The ULC1001UQ1 chip on the ULC1001-DRV2911EVM board seems to be responding a little differently to the ULC1001 chip on our prototype boards.  I seem to get stuck waiting for the command in progress flag to turn off when sending commands like reinit or any of the cleaning sequences and the PRAM seems to be the most obvious difference.  I am writing this in concurrence with integrating the PRAM data into my calibration files but have not yet tested if this makes any discernible difference.  Essentially I have wired up spare outputs on one of my prototype boards to drive the I2C bus in the EVM after disconnecting J7 and J9 (something was pulling SCL low) so I can test my software with the other ULC1001 and standard EVM filter and voltage dividers.  I am surprised though that I am getting operational differences as these don't seem to be reflected in the User Manuals unless perhaps I've missed something.  Otherwise perhaps some other default settings are different and causing issues but this should also be fixed by the updated config I hope.

    Regards,

    Stuart

  • It seems that when I read back the PRAM registers they return 0x00000000.  That note aside the ULC1001UQ1 seems to work better with the saved config data from the GUI though I do not see Zmin resonance in the same region that the GUI reports. I'll check through the setting more thoroughly on Monday and see what if anything I may have missed.

  • Received the questions. I will talk to our software expert and we should be able to follow up with the questions early next week. 

  • Hi Hailong,

    While conducting further testing I have found that if I configure the U1001UQ1 with the GUI software by reading in a saved config file I am able to identify a Zmin resonance at about 45.5kHz.  The measurement is then repeatable if I switch to control from my own python code.  If, however, I use my own python code to write the same config file to the ULC1001UQ1 running a calibration no longer finds that same Zmin resonance.  It is now reported at the band edge at around 40kHz indicating that the measurement is invalid.  Given that the config file is just a list of the current register values I am trying to figure out what the difference is when the GUI uploads a config file.  

    I also have the GUI working with one of our boards measuring Zmin I am still having difficulty finding a resonance which is sensitive enough to detect water sprayed onto the lens but not result in false triggering..

    Still looking forward to your feedback on my previous question and necessary steps required to initialize the ULC when loading register values from a config file.

    Regards,

    Stuart