This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DRV5055EVM: Resolution

Part Number: DRV5055EVM
Other Parts Discussed in Thread: DRV5055

Dear Team,

I hope you are doing well!

In our application, we need to measure a linear distance of 5 inches.

The resolution required is 20 micrometers.

I have gone through this evm.

Can we achieve this resolution by using DRV5055?

Looking forward to hearing from you.

Kindly suggest any other parts if it can achieve the requirements.

Regards,

Mit 

  • Hello Mit,

    Thank you for using the TI forum. The simple answer to your question is yes, but in practice you would want to use multiple DRV5055s.

    Looking at this more closely, first lets convert the linear distance of 5 inches with a resolution of 20 µm into a number of measurable steps. So, 5 inches equals 127000 micrometers.  So, 127000/20=6350 distinguishable steps that you need to measure. If we use a 5V supply for the DRV5055, the linear output voltage range is 0.2V to 4.8V, so the measurement range is 4.8-0.2=4.6V, or 4600mV. For mathematical purposes, lets say you have a magnet/system setup that linearly utilizes this entire range.  If this is the case, each measurement step would be 4600/6350=0.7244mV.  The A4 version of this device has the lowest output referred noise with a peak to peak noise of 1.5mV.  This means that the noise floor of the device is roughly twice the measurement resolution you need.  

    With this in mind, you could filter the device output and/or average samples to reduce your noise floor and get the resolution you need. However, this is all assuming that you have a linear magnetic field across the 5V range.  In order to achieve this, you would need a very large (5 inches long) very strong magnet traveling horizontally over the sensor. This is generally not practical in any application.

    The easiest way around this is to set up an array of DRV5055s. The magnet would go sideways over the sensors as in this image:

    The spacing between the sensors would need to be just under the length of the magnet. You would only use the most linear section of the curve (in between the peak and trough) for position data.  

    To help illustrate this idea, I ran a quick sim the following details:

    Magnet details: grade N42, 1/2in diameter, 1in thick (25.4mm thick)

    Number of sensors: 6 DRV5055A3s

    Spacing between sensors: 21.1667mm

    Spacing between magnet surface and sensing element with package: 6mm

    Travel distance: 5 in (127mm)

    This gave the following output:

    Note that this has not been optimized for your system.  You could probably get a cheaper solution by using a smaller magnet and more sensors.  Also, for accuracy, you would want the steep diagonal part of the curve to be as straight an linear as possible.

    Here is the logic flow to help you determine the position in this type of setup:

    Logic Flow:

    • Initial data:
      • First we need to know the min and max voltages we expect to see in the used linear region.  This happens where the magnet is placed directly in between two sensors (such as the image with the magnet and sensors above).  We can get these values from the simulation data (for example at the midpoint of the movement range marked in the simulation output above, or from measuring it in the actual system).
      From this plot, we see that at the mid-point, the min and max values are 4.56V and 0.44V
      • Note that these should both be the same distance from the mid-supply value of 2.5V  (ie, 4.56-2.5=2.06 AND 2.5-0.44=2.06)
      • Distance from the mid-point is the only value we need for the calculations (ie, 2.06)

    Measurement:

    • Each measurement is taken, and a liner interpolation from the known position of the sensors is used to determine the magnet position along the path
    • Note the known position of each sensor (with the left most curve in the plot above being sensor 1 and the right most curve being sensor 6) = (sensorNum*sensorSpacing)-(sensorSpacing/2)
      • Ie, for the sensor that produces the lime green curve, that would be sensor#3, and it’s known position would be (3*21.1667)-(21.1667/2)=52.916mm
        • Note that  52.916mm is the point where the lime green curve passes the vout midpoint of 2.5V.
    • Take a measurement and calculate the position
      • The logic for which sensor to use for position data is as follows:
        • At any given physical point, look at the data for all sensors. 
        • Find which sensor has an output farthest from the midpoint of 2.5V (ie, either closest to 0V or closet to 5V)
          • If the output found in the step above was above the midpoint, use the sensor to the right for position data.
          • If the output found in the step above was below the midpoint, use the sensor to the left for position data.
          • If there is no sensor to the left or right, then use the sensor that had the max offset (end cases).
        • Use linear interpolation between the two known positions to determine the physical magnet location.
          • (we actually know the distance between each location so we only need the current sensor position, voltage output, the max distance from midpoint (2.06V))
          • Position = KnownPoint+(SensorSpacing/2)*((VOUT-2.5)/2.06)

    Notes:

    • Note if the magnet direction is flipped, the “left” and “right” sensor directions are also flipped for the logic.
    • The magnet size and sensor spacing can be adjusted, however, the magnet thickness must be longer than the distance between the sensors for this process to work.
    • The sensor version can be changed to adjust the distance between the sensor and the magnet.
    • The magnet can be moved closer to the sensor, so that the min and max values of the used linear region are closer to the full scale linear region of the device (0.2V-4.8V), but just don’t cross those values.
    • Coding tip: subtract 2.5 from each voltage reading to center the curve on 0.  This way, you can use negative numbers and absolute values to your advantage. (this would remove the “-2.5” from the position equation as well)