O2Micro OZ890 Based BMS Units

yep, that's the hing whe should do next: try out find you how to AT command mode my module.... anyway, we need a voltage potential separation for our module... like the linear electronics i2c isolator.

For testing we can still use a 9V block battery... i found the lm5018 buck converter that should help us for voltages up to 100V, it can have isolated output as well.
 
powersupply said:
The LM2596HV is a chinese knock off of ti's LM2596 (same with those LM2596, they are not from ti).
The HV version is supposedly the "high voltage" version of ti's LM2596.
I could not find any datasheets for the 2596HV [...]
I think they simply sort out those which can stand a higher voltage and label them as HV

TI sells the Lm2596HV, you can find the datasheet here http://www.ti.com/lit/ds/symlink/lm2576.pdf
you can buy it here for example http://www.reichelt.de/LM-2576-HVS-ADJ/3/index.html?&ACTION=3&LA=446&ARTICLE=109349&artnr=LM+2576+HVS-ADJ&SEARCH=2576
Max voltage is 60V, enough for 13s batteries. 14s would be too much already IMO.

Edit: actually 12s is the most you can user th lm2596HV for. the stated 60V are rather optimistic. I blew some of them at only 54V, many vendors sell them as "up to 52V".
 
Can the external temp sensor be added and used to limit power when the motor gets hot?
I think it is meant to watch the batteries, but I'm unsure of the actual function and thought somebody might know without me having to find the big book.
 
you could use one of those thermal breakers that open when the temp rises above a certain temp. i have some for 95oC. wire them in series with the thermal breaker on the battery or in line with the circuit current to open the breaker when it reaches some selected temp. that would shut off the battery at the point the motor overheats.
 
I actually use it as a FET protection. It shuts down at 65°C. This is reached within a few minutes at 65A and the stock 4410 Fets. With the 3077 and a bit better cooling ( i bolted the BMS to the battery case with some thermal conductive foil) it does not shutdown anymore even after more than 1/4hour of 65A discharge. Quite useful.
 
Are, Very good. I'm about to double my maximum demand too a whopping 30 Amps. It seems I have to do nothing :)

I thought these boards could have an additional temp sender. Looking now, I just see the one. I should check the oz890 spec...

I shoved the sensor in the batteries. Any idea of the factory setting and if it can throttle the load, not just switch off?


I'm not sure I want a breaker going. I guess if it resets then fine. I wouldn't want a one shot thermal fuse though. Not inside the motor.


Edit: I see now, the chip can support another sensor, but they are just configurable for over and under temp switching. No turning the motor down, just switching the power off. The board makes no provision for the second external sensor though. Just the chip.
 
Yes, those original TI made LM2596HV can operate up to roughly 60V.
I was referring to the chinese knock offs, the 2596HV (sans LM)
Some have the (clearly fake) NS logo, some are lasered as Ti etc.

Even at large quantities the original TI LM2596HV is around US$1.50.

No way these are used in the mentioned ebay offerings.

Crossbreak, did you get any closer to a bluetooth version?
Summer is coming (well, it never really left SoCal).

Thank you!

crossbreak said:
powersupply said:
The LM2596HV is a chinese knock off of ti's LM2596 (same with those LM2596, they are not from ti).
The HV version is supposedly the "high voltage" version of ti's LM2596.
I could not find any datasheets for the 2596HV [...]
I think they simply sort out those which can stand a higher voltage and label them as HV

TI sells the Lm2596HV, you can find the datasheet here http://www.ti.com/lit/ds/symlink/lm2576.pdf
you can buy it here for example http://www.reichelt.de/LM-2576-HVS-ADJ/3/index.html?&ACTION=3&LA=446&ARTICLE=109349&artnr=LM+2576+HVS-ADJ&SEARCH=2576
Max voltage is 60V, enough for 13s batteries. 14s would be too much already IMO.

a simple TL763 would be ok for powering just an attiny and a lcd screen even at voltages up to 125V
 
ATM i'm still coding basic CA functions, like a big menu with many pages to store all of the EEPROM variables. But I am almost done.. Current/Energymeter works, Throttle mapper works, all 3 Tachos (wheel, motor, PAS) work really accurate and fast now...next step is bluetooth logging in a final state, we will use simple *.csv format files.

I have to order an I2C isolator so I can add it to my prototype, thx for the reminder :D Next time I order from Farnell ;)
 
That is so cool!
Really great what you got going already.
Sometimes getting samples for the I2C isolators is the fastest (and definetly the cheapest) way. But be prepared for endless markteing calls (thank God for IPKall).
Thanks& please keep us posted!
 
Hi, sorry for the long delay, am back now.

I had another board, could not fix the high temp error issue on the first board.
Then I had to send back the adapter which Schwibsi was kind enough to lend me, so I could not fiddle around with byte wise programming.

Were you able to resolve that problem meanwhile?
 
I have tried various memory manipulations, but was unable to fix temperature issue.
It looks like there is additional undocumented memory space, which holds calibration data. For example I was unable to find a location, where cell voltage calibration information is.
There is a "internal temperature offset" register, that can be edited, however it only affects IntOT/IntUT values, but not actual displayed temp. Looks like a bug.
By the way, this happened when I tried to calibrate it with v0.87 software. Some time ago I had several boards and two of them were bricked this way with v0.87. Calibration works fine with v0.75. So beware.
 
interesting. I never had temp error with any boards. I use the new software now on Win7 X64. And now i got bugs:
Internal Temp is fine, external shows 90°C
Temperature calibration does not affect this

Another issue: After charging with high current, i got weird readings like -13mV per cell.

Guess this is just a software error. We will compare as soon as we can interprete all BMS functions. Hopefully soon. BTW the i2c isolator works as desired.
 
Hello Peeps.
I have not done much with the bike for a bit, but I'm back on it again. I just ordered a smart bms and realised I have a fresh opinion on hvc setting that apposes my previous views. Views shared by others. So perhaps I need some guidance. I can't find the manual to confirm things myself.

I just specified 4.25v as my hvc. Though my 12s charger is set 44.4v giving 4.2v each. I'm viewing the hvc as a safety cut-off. I believe upon hitting hvc the bms stops both charging and balancing. I would like to check that, and view the recovery trigger voltage, just so I can believe the process works.
If charge voltage and hvc are specified the same, Then charging will almost always lead to one cell hitting hvc first and the bsm shutting off. This I have observed over thousands of cycles. It never comes back on.
Now, if I were to turn my charger down a tad. Perhaps to 4.1v. Would I not find a well balanced pack reaching 4.1v and if one was a little ahead, no problem. One leading cell could be a whole 0.1v ahead before it ceased balancing due to a hvc incident. Instead, that leading cell remains 'treatable' for much longer. Almost indefinitely with a 0.1v gap between charge and hvc voltages.
Does this chip have values for both hvc and balance voltages?

Is it not the chargers job to watch the current dry up and cease charging? Cycling back on again if demand reoccurs.

Ideally, Would I want the bms to watch for that 4.1V. To know I want 4.1V and if it gets there with a reasonable balance, then halt charging. Only some self discharge over time should be restarting the charge process. Also I would like a hvc of 4.2v for 'full stop' before dangerous voltages exist for some fault related reason. Then I would like a charger set to 4.1V so that when the average cell voltage is correct, Charge current has about stopped. Only as high cells come down, is voltage available to bring low cells up.

Could a smart charger give 4.2v till current dropped to say 300mA at which point it would revert to 4.1v per cell. It wouldn't be like the cells were ever taken to 4.2v, It would just be that they had been persuaded by a voltage gap of good proportion. Moving that along, could that gap be greater. Would it hurt to strap 10V over a cell, just as long as the cell is never allowed to reach it. I'm leading toward wire size in charging systems, and back on topic:

HVC a different setting to Balance Voltage?
My actual order was a charger of 4.2v and HVC of 4.25V
When I ordered from bestec he specified 4.28v hvc knowing I was aiming for 4.2v with my charger. I thought from opinions earned here that we were having a language problem, but have now come round to his way of thinking. The microchips setting list could be of great interest to me.


Have I led myself astray? lol

edit: omg, I just realised I'm ignoring some recent trends my bikes showing. I noticed the charger voltage is down a bit, and have also noticed the green led going bright/not so bright and thought to myself it looks like balancing, but it didn't used to do it. (This has likely lit my new thought path to some extent)

Edit2: After talking all that out, I can now compress it. I believe Hvc should be above charge voltage, or you miss out on some balancing. Perhaps needed by larger or older packs.
 
Maybe you mix something up here. The analog bestech BMS start to balance near HVC, the OZ890 stops to balance at HVC. That is the difference. You can set balance start voltage to any voltage for the OZ890, i use 3.8V for example. As said, HVC of the bestech is always very close to HVC, say you order 4.20V, you get a balance start voltage of 4.1V, that is how i ordered mine.

Anyway, I always set charge voltage above balance start voltage, but below HVC. This is how you did, too, if i get it right. Don't now if this is how "it should be done"... but at least this is the common sense here. And it works as intended that way.

You can find a complete list of features of the OZ890 in the datasheet. I have not found any hidden registers yet. All i can find in the cownboy tool can be found in the datasheet, too. If you have assignment problems here, you can compare register addresses from the Cowboy tool EEPROM file with the addresses given in the datasheet. That's how i did.

We finished to read and interpret the full list of registers by now...but do net yet have a GUI for that. As soon as we have, i can send you a µC you can use for debugging/monitoring with your PC. We proceed with writing all the settings now before we make the GUI so we finally have full access to the chip. Then we still want to add packet Error check, which does not work for the current version of the Cowboy tool as well.

I did not talk to O2 anymore, i'm a bit disappointed from their software development. Waiting years of it to come, but still no full access, no working Error check, still foulty readings when Error events occur (like current in HVC), still bugs in the connection...at least we got a Win7 x64 version now and can calibrate the Temp sensor and can check for PF error occurrence...what a break through :D

BTW, my external overtemp error seem to have it's reason in a faulty sensor. Tested a second board which works just fine with the Win7
 
crossbreak said:
anyway...who needs 3 temp channels? I only need one for the battery and one for the FETs.
One might want to monitor temperature in several places of the pack to see if there are differences, which could mean a problem.

crossbreak said:
Why not simply ignore the readings of the internal probe
Not possible, AFAIK. Maximum preset temp is 120C and when this is reached, it will disconnect FETs.
 
crossbreak said:
Maybe you mix something up here. The analog bestech BMS start to balance near HVC, the OZ890 stops to balance at HVC. That is the difference. You can set balance start voltage to any voltage for the OZ890, i use 3.8V for example. As said, HVC of the bestech is always very close to HVC, say you order 4.20V, you get a balance start voltage of 4.1V, that is how i ordered mine.

Anyway, I always set charge voltage above balance start voltage, but below HVC. This is how you did, too, if i get it right. Don't now if this is how "it should be done"... but at least this is the common sense here. And it works as intended that way.

You can find a complete list of features of the OZ890 in the datasheet. I have not found any hidden registers yet. All i can find in the cownboy tool can be found in the datasheet, too. If you have assignment problems here, you can compare register addresses from the Cowboy tool EEPROM file with the addresses given in the datasheet. That's how i did.

Cheers Pal. That lines up with my thoughts exactly. I had been wrongly specifying 4.2v chargers with 4.2v hvc levels. I have now dropped my charger voltage below my cell hvc and it balances for a long time after the charger has gone green. Seen as the green light changing brightness. Before, when the numbers matched, charging just stopped like hitting a wall, and didn't carry on till after the bike had been on a run.


Edit:
3.8v sounds quite low. Is that for RC lipo? I didn't think there cell capacity's would be close enough.

I'm sure you understand, but just to recap for newbies.. If a balanced pack of cells is discharged, the lowest capacity cell will loose it's voltage quickest. The biggest cell will still have voltage remaining, after all the rest are depleted. Looking at the biggest cell, it's higher voltage could lead to the balancing circuit starting to drain it down. Yet we know it is a balanced pack. Later in charging all the other cells will fill and need discharging a bit because it happened to the big one. This would be counterproductive. This is why balancing is done when very close to full, when you want them to be in balance.
 
yep that makes more sense indeed. Anyway, to speed up balancingI always did use the mentioned 3.8V for lipo. The Samsung and Sony cells i welded up yet were all so close they never really balanced.. so I did not yet think about this...thx for the hint
 
crossbreak said:
We finished to read and interpret the full list of registers by now...but do net yet have a GUI for that.

Just finished some remaining code, pretty much in alpha phase but you can configure everything (i guess) now but only manually (opreg and eeprom). Just configured my BMS to work in Software Mode, but i need to hard reset (plug off balancer and main) every time in order to incur eeprom settings.
Maybe the reset pin will do fine or i have to do the eeprom protected data mechanism like the cowboy tool :(

There are still lots of features i want to add and the layout is by far not finished just a bunch of tests on a simple gui, if i didn´t misread it should work on any OS aswell (only tried xp 32bit/win7 64bit).
 

Attachments

  • Gui2.jpg
    Gui2.jpg
    130.2 KB · Views: 3,682
Brainfuckr said:
Just finished some remaining code, pretty much in alpha phase but you can configure everything (i guess) now but only manually (opreg and eeprom). Just configured my BMS to work in Software Mode, but i need to hard reset (plug off balancer and main) every time in order to incur eeprom settings.
Maybe the reset pin will do fine or i have to do the eeprom protected data mechanism like the cowboy tool :(

file.php
Is this your software?
How far did you come? Is it working complete?
Can it be used for I²C transfer by parallel or RS-232 port?

What about the data protection you mentioned?
Does that mean this is used to "dongle" the expensive O2micro-I²C-USB-interface?
 
Back
Top