Author Topic: Current sensor based on magneto resistive sensor (Sensitec CMS3025)  (Read 1660 times)

0 Members and 1 Guest are viewing this topic.

Offline 0xdeadbeefTopic starter

  • Super Contributor
  • ***
  • Posts: 1570
  • Country: de
I worked on a mini project this weekend and before I order the PCBs, I wanna make sure I didn't mess anything up. So if one of you is bored, he/she might take a look and provide (constructive) feedback.
The main idea is to get an affordable and simple current->voltage converter that has only negligible impact on the load behavior but that's more accurate and easier to use than a affordable DC/AC current clamp (no drift, 9V battery etc.).
Like we're typically using Fluke i30s and the like which are limited to 100kHz and where the 9V battery tends to be discharged just when you need it. The Sensitec CMS3025 allows to measure 25A rms (even +/- 100A for short periods) with a 2MHz bandwidth (there are other types available from 5A rms to 100A rms). As it's somewhat cheap (~20€), this allows to build a current measurement box for ~30€ (well, to be proven) instead of spending like >500€ for a 100kHz current clamp.

So basically, this implements the application circuit of the Sensitec CMS3025 current sensor with some bells and whistles
1) Reverse input voltage protection with P-FET
2) Creation of -15V with inverting charge pump (LT1054)
3) Four LEDs to display reaching certain current thresholds (output signal rectified and four comparators with resistance ladder)

Re #1
The expected input voltage is 15V. The Irf7416 (VDSS=-30V, RDSon=20mOhm, Vgs=+/-20V) is a somewhat arbitrary choice. The wide Vgs range was important (so I can safe the Z diode and resistor). As the worse case current consumption will be below 200mA, the 20mOhm RDSon is acceptable. An even wider Vgs range would be nice, but as e.g the LT1054 is also limited to 15V (max. 16V), this wouldn't make much sense without other overvoltage protections efforts (which I skipped somewhat deliberately).

Re #2
Of course a symmetrical supply would be acceptable for a device like this, but it will be much easier to use with a single supply.
Of course I could use a discrete inverting charge pump, but as the current consumption on the -15V/-12V line might be close to 100mA, it seemed to a safer choice to use an of the shelf solution.I also had a look at the LTC3261, but it's more expensive and the voltage drop at 100mA seems to be much higher. At least in my LTSPice simulation, the LT1054 approach still delivered -13.4V with 100mA load (Vin=15V) while the output on the LTC3261 was only -12.6V under the same conditions.
As I'm using LDOs to get a stable +/-12V supply, only the LT1054 seemed to be usable.

Re #3
For the planned purpose I thought it would be nice to get some feedback that a current is flowing without connecting a scope.
While I was at it, I thought it would be also nice to get a rough indication of the magnitude of current flowing.
So I added a resistance ladder with four comparators that drive 4 LEDs at certain voltage levels which indicate certain current levels.
As the current (and therefore the voltage) can be negative of course, I added a ( full-wave) measurement rectifier to get the absolute voltage for the comparators.
Note that due to the open collector output of the LM339, the inputs are inverted.
The values in the schematic should result in the first LED being lit at ~1A, the 2nd at ~10A, the third at ~25A and the last one at ~55A.
Honestly I didn't test yet if the expected short (few ms) current pulses would be even visible. With 1k resistors and 15V supply, there should be 15mA flowing if an LED is controlled and I would hope that it would be possible to see pulses of a few milliseconds. I guess I will have to experiment a bit to be sure. Maybe I need to add some kind of latch or low pass filter later.
Also while the LED lit at the highest voltage/current was supposed to be a red one for overload warning, the chosen value of 55A is somewhat arbitrary.
According to the manual, the CMS3025 has a nominal current of 25A rms. With +/-12V supply, the measurement range is +/-75A though but this current has to be limited to 3s per minute. Obviously, I don't want to spend the effort to calculate a true RMS value just to display a warning. I guess I could add a massive low pass filter and use that filtered value for the warning LED but the comparator part is already pretty much densely populated and I don't want to excess a width of 50mm to reduce PCB costs.

Some other notes:
While the CMS3025 needs a +/-15V supply to fully support the +/-100A current range, I decided to use +/-12V instead as this makes it possible to use the LT1054 and limits the absolute maximum current consumption to 100mA.
While the datasheet is unclear whether this 100mA could be consumed from the negative supply at all, I felt the limitation to 12V (and thus 100mA) would be the safer choice.
Besides, the resulting limitation to a maximum of +/-75A is not really important as higher currents are only allowed for short intervals anyway.

Voltage drop considerations are also responsible for selecting 500mA LDOs instead of 100mA types. The 100mA types I found had a too big dropout voltage (1.7V instead of 1.1V).

The current connectors on the PCB are slightly asymmetric. I could have only avoided this by rotating the CMS3025 by 90° but this would have made the PCB quite a bit longer. Maybe I could try to match the area of the two connector copper fills better, but honestly I somewhat doubt this will have much impact anyway.

Regarding the case: I plan to use safety banana jacks (32A) mounted in an acrylic panel which are soldered to the PCB afterwards. So there are no wires and only the front/top panel is screwed to the case (simple box with opening on the upper side), so this will look a bit like the µCurrent, just that the PCB will actually hang ~21mm below the front/top panel. The transparent panel will also allow to see the LEDs btw.
« Last Edit: August 06, 2017, 07:16:03 pm by 0xdeadbeef »
Trying is the first step towards failure - Homer J. Simpson
 

Offline EugenioN

  • Contributor
  • Posts: 25
Cms3000 sensor family is an absolute nightmare.

"Do not use": this is what I was told by a Sensitec engineer this week, so use it at your own risk.
 

Offline 0xdeadbeefTopic starter

  • Super Contributor
  • ***
  • Posts: 1570
  • Country: de
Is there any reason for this statement? For my intended use case (where the signal shape is much more important than the absolute values), the two boxes I built work perfectly fine.
Only the default (room temperature, new sensor) offset on the output was a bit higher than expected and obviously outside the "typical" range defined in the datasheet.
Guess I should have added a way to trim the offset.
I posted some more details about the progress of my project here:
https://www.eevblog.com/forum/projects/diy-dc-current-probe/25/
Trying is the first step towards failure - Homer J. Simpson
 

Offline EugenioN

  • Contributor
  • Posts: 25
In a batch of 5 prototypes I've seen a severe temperature drift. "Severe" means that the current to voltage ratio doubles with the increasing of temperature. Even if the sensor ia well within temperature specs.

In other 4 prototypes, linearity error exceeds 30%.

I startes susptecting that somethig was really wrong when rs components suddenly went out of stock of cms3000 evaluation boards.

Someone in my company contacted Sensitec, and they said that it's better (and strongly recomended) not to use cms3000 series in production devices (because they are $##t) and replace with another sensor that has not the same specs. Not even close: BW of replacement part is 500kHz @-3dB, instead of 2MHz of cms3xxx.

So, if you are happy with your board, consider that maybe Sensitec will discontinue those sensors in a while, because simply they don't work as described.

Inviato dal mio ASUS_Z00AD utilizzando Tapatalk
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf