Coming soon - Get a detailed view of why an account is flagged as spam!
view details

This post has been de-listed

It is no longer included in search results and normal feeds (front page, hot posts, subreddit posts, etc). It remains visible only via the author's post history.

1
How to design current sense circuit / implement shunt resistor for 15A-20A application?
Post Body

Problem statement: for a hobby project, I am interested in measuring the current drawn by various subsystems in a way that a microcontroller can consume. The maximum expected currents are on the order of 15-20A @ 5 to 24V.

Current solution approach:

Apply resistive current sensing, following along this source (https://www.allaboutcircuits.com/technical-articles/resistive-current-sensing-low-side-versus-high-side-sensing/)

  1. Identify the maximum currents involved. For my 3D printer, I expect 15A.
  2. Make a decision about high-side v. low-side sensing. I picked low-side for now.
  3. Figure out a shunt resistor. There is a tradeoff here between power efficiency (which favors smaller resistances) and noise with high gain amplifiers.
  4. Measure on both sides of the shunt resistor and pass through an instrumentation amplifier with some gain
  5. Output from the instrumentation amplifier goes to an ADC and then uC

I'm working with currents as high as 15A. I picked 1W arbitrarily as an acceptable power dissipation for the shunt resistor. Working backwards from P=R x I^2, I calculate that I want approximately R_shunt = P / I^2 = 1 / (15^2) = 4.444 mOhm and a 66.667 mV drop across the shunt resistor @ nominal maximum current.

For the ADCs I'm looking at, they have a range of 0-5.5V at the input pins if I have understood the data sheets correctly. I pick the gain for the amplifier by choosing nominal maximum current to correspond to 4V, or a factor of 60. This also means that for an 8-bit DAC, I expect a resolution of about 80mA (5.5V / 4.0V * 15A = 20.625A saturates all 8 bits --> 20.625A / 255 increments --> 80mA per discrete increment)

Questions:

  1. Is this a sane / reasonable design approach? Am I starting to think about this problem the right way?
  2. What's the best way of implementing the shunt resistor? Right now, I have a few smaller resistors in parallel which, collectively, have the correct resistance. This has the downside of using more components; however, it has the upside of spreading risk / power / heat across those components. Other than being simpler and cheaper, are there good reasons to favor using a "proper" shunt resistor (e.g: https://www.digikey.com/en/products/detail/vishay-dale/WSLF25121L000FEA/6194698?utm_adgroup=Resistors&utm_source=google&utm_medium=cpc&utm_campaign=Shopping_Supplier_Vishay&utm_term=&utm_content=Resistors&gclid=EAIaIQobChMIps-tv83U_AIVPy6tBh2JcAK_EAQYASABEgLZvvD_BwE)? Is 1W "small enough" that I should just pick a larger package resistor or does it make sense to split the load?
  3. How reasonable is the 60x gain? How much is this going to trash SNR? Does it potentially make sense to reduce the gain (or skip it entirely) and pipe the signal directly into a 16-bit differential ADC instead?
  4. Have I missed anything obvious?

Author
Account Strength
100%
Account Age
6 years
Verified Email
Yes
Verified Flair
No
Total Karma
7,212
Link Karma
139
Comment Karma
4,099
Profile updated: 4 days ago
Posts updated: 6 months ago

Subreddit

Post Details

We try to extract some basic information from the post title. This is not always successful or accurate, please use your best judgement and compare these values to the post title and body for confirmation.
Posted
1 year ago