Translate

27 November 2009

Wie gehts weiter mit dem LIPO-Balancer

Ich konnte es dann doch nicht lassen
und hab mal wieder eine Nachtschicht
eingelegt um mal die serielle Ausgabe
der Spannungsmessung zu
programmieren.
Grundsätzlich geht das schon ganz gut,
aaaaaaaaaber...................
1. momentan wartet der ATtiny auf eine
Eingabe und erst dann wird weiter
balanziert das geht so nicht!
Der soll laufen, egal was an der
Schnittstelle los ist.
Ist sicher nur eine winzige Änderung,
aber ich habs noch nicht gefunden wies
geht- Geduld! wird schon noch!
Das ist mein erstes ATtiny Programm!!!
Da dauert manches halt etwas länger!
Vielleicht hat ja wer die Lösung!

mit:
rcall RdCOM
rcall RdADC
rcall WrCOM
(das sind Unterprogramme
des Microprozessor Lernpakets)

gehts halt nicht, weil das
Programm bei RdCOM
wartet, bis an der
Schnittstelle was passiert.
Bei einem eigenständigen
Spannungsmesser wäre
das aber egal !
Ich müsste das Verfahren dahingehend
ändern, dass der Zustand der Schnittstelle
nur abgefragt und irgendwo abgelegt wird.
Dann müsste entschieden werden wie
es weitergeht.Das Ganze ist aber ohnehin
kein Problem, wenn die Spannungsmessung
so wie ich es plane, völlig unabhängig
von der Balancereinheit laufen soll.

2. Das Ganze soll auch noch laufen wenn
der Akku leer ist also bis 2V und ev. darunter.
(der ATtiny 13v bzw. 25 laufen ab 1,8V stabil)
Eine Kopplung mit einer Art M-Bus kann ich
so nicht realisieren, zumindest nicht mehr
zuverlässig wegen der niedrigen Spannung
und CAN etc ist mir
derzeit noch viel zu kompliziert und braucht
auch zusätzliche Bausteine.
Eventuell wärs mit "Single-Wire" bzw I²C
sogar machbar, aber da fehlts bei mir
noch an Erfahrung.

Wie gehts weiter?
Ich denke, ich werde ADUM5241
Isolierübertrager mit integrierter 5V
DC-DC-Wandlung einsetzen,damit wär
schon mal die galvanische Trennung
der seriellen Schnittstelle
gelöst und mit den isolierten 5V kann
ich einen zweiten ATtiny betreiben
der am selben Spannungsteiler hängt
wie der Balancer. Damit könnte ich
jetzt schon die Spannung auslesen.

Falls ich es gelöst bekomme, die
Balancer- und die
Auslesefunktion zu entkoppeln
würde auch ein ATtiny reichen, aber
ich sollte ihn dann mit 5V versorgen.
Dann wäre der Balancer aber nicht
mehr eigenständig!
So ein ATtiny kostet nur ca 1 bis 1,50 €
was soll der Geiz.....??????
Bevors Probleme gibt, bau` ich halt
zwei drauf!
Das würde auch die Feinabstimmung
wieder vereinfachen.
Jeder Spannungsmesser braucht
eine spezifische Kennung für die
Adressierung.Die könnte dann
einfach so bleiben und zum Einstellen
der Balancerwerte könnte man
vorgefertigte HEX-files nehmen,
weil die ja so wieder unabhängig
von der Kennung der Zelle wären.
Ich bräuchte den Source-Code
nicht veröffentlichen und der
Anwender muss nicht
Programme compilieren,
sondern nur reinladen.
Oberer und unterer Grenzwert
ist eh fest und vom Akku-Typ
abhängig, also müsste nur die
Schwelle des Balancers eingestellt
werden. (in 0,0173V-Schritten)
Allein das spricht schon für
die Version mit zwei ATtinys.
Ausserdem wäre so die
serielle Schnittstelle des
Balancer-ATtiny frei,
also zwei weitere Ports frei
z.B. für "Unterspannungs-
Vorwarnung"
und
"Balancerschwelle
überschritten"
auf Balancer-Ebene,
also mit Schaltausgang
weil ich die serielle
Spannungsauslesung eher
als Option betrachte.
Ich will nicht von der
Funktion eines externen
Rechners abhängig sein!
Eigentlich sollte es reichen,
zu wissen, ob alles ok ist.
Ist der Wert wirklich so
wichtig????
Schön wärs auf alle Fälle,
den ablesen zu können,
das ist klar! Aber halt auch
Luxus!

Die Ausgabe der Meldungen
direkt aus dem Balancer werde ich
ohne galv.Trennung realisieren.
das geht gut mit einer Reihe von
kleinen P-Kanal Mosfet +Widerstand
in Reihenschaltung.
(je einer pro Modul und Meldung)
Wenn einer öffnet ist die Reihe
unterbrochen, ein Transistor an Masse
öffnet und ein Relais schaltet.
Braucht einen Draht je Meldung
durchgeschleift und geht ohne
zusätzliche CPU oder dergleichen.
Es soll ja möglichst einfach bleiben!

Wie ist das aber mit Jack Rickards
Ansichten vereinbar?

Ganz einfach!
So sehr widerspricht sich
das gar nicht!Man darf es nur
nicht zu verbissen sehen!
Letztendlich läuft doch alles
darauf hinaus, dass es nicht ohne
eine Unterspannungs-
Überwachung geht! Das ist es!
Ob nun oben oder unten
balanziert wird ist doch egal!
Der schwächste Akku wird immer
den größten Spannungshub haben,
ganz egal, wie mans macht!
Aber "unten" balanzieren
hat einen riesigen Vorteil!!!!!!!!
Da ja gar nicht mehr bis zum
"Ende" balanziert wird sondern
gewissermaßen mit dem Laden
aufgehört wird wenn die erste Zelle
voll ist, und letztendlich die
Balanzierspannung so angepasst
werden sollte, dass alle Zellen
zugleich leer!!!!! werden,kann
der Shunt-Widerstand viel
schwächer ausgelegt werden
und er braucht gar nicht den
Ladestrom niederzubügeln
sondern es genügt, jede
Zelle sanft in die richtige
Richtung zu schieben.
Somit ist auch das Problem
mit der Abwärme in den
Shunts kein Problem mehr.
Nach etlichen Ladezyklen
sollte alles passen.Ein wenig
Beobachten, den schwächsten
Zelle etwas mehr Ladung geben,
den stärksten etwas weniger
das wars dann schon!
Am Grundprinzip der
Schaltung ändert sich da nichts.
Und auch nicht an der
Tatsache, dass LIPOs allergisch
auf Über- und Unterspannung
reagieren! Nur die Sichtweise
auf die Problematik ist eine
etwas Andere.

Und Ich denke mal:
JACK HAT GRUNDSÄTZLICH RECHT!!!!
es hat ein bisschen gedauert,
bis ich alles verstanden habe,
was er meinte und ich will
auch nicht jede seiner
Meinungen gut heissen,
aber die Richtung stimmt!


Was wird so ein Balancer-Modul
letztlich kosten?????

ATtiny25(oder 13V) je ca 1,20€
1Mosfet für Shunt ca 1€
1Shunt 10R???? ca1€
1 kleiner p-Kanal-Mosfet
je Meldung ca 50cent
ein paar Widerstände,
Bandkabel+Stecker
+Kleinteile.....+Platine
also ca 10€ an Material
je Zelle denk ich mal,
an reinen Materialkosten.

Dafür gibts dann ein
wunderbar konfigurierbares
BMS-System der
Mittelklasse mit Über-
und unterspannungs-
Überwachung.
und eventuell
"Vorwarnung bei
Erreichen der Grenzen"

für serielle Spannungsauslesung
käme noch dazu:
ADUM5241 ca 3,50$
noch ein ATtiny......
also ca 5€

und ein Auslesegerät/Display
hmmmmm............
je nach Luxus..............
bzw was man sich da zurechtschnitzt,
und wie bunt??????
PC?
Handheld-PC ?

ev übers Navi??

LED-Display mit kleinem ATmega?
und Tasten zum durchklicken,
ev MAX-MIN-Anzeige
Das sollte so in der 50€-Region
realisierbar sein.

Wie schon erwähnt will ich
das "Übertragungsprotokoll"
aufs minimalste beschränken.
Derzeitiger Entwicklungsstand:
Zellennummer z.b. 008 wird
gesendet.
Zelle 8 erkennt nur diesen einen
Befehl und antwortet mit dem
AD-Wandler-Wert in 8-BIT
bezogen auf 1,1V Referenz
und ohne Umrechnung des
Eingangsspannungsteilers 1:4.

Zu Kompliziert! Klar!

8Bit bedeutet 255 Stufen,
Referenz am AD-Wandler 1,1V
1,1V / 255= 0,0043V
am Eingang je Einheit.

Spannungsteiler 10k / 3k3
= 4,03 : 1

also 1 Einheit = 0,0173V
(0,0043 x 4,03 = 0,0173)
am Akku

z.B.: 208= ca.3,6V (3,605)

Nochmal : Master schickt 008,
Zelle 008 antwortet 208
also hat Zelle8 gerade 3,6V

Das ist Überschaubar!

Die Umrechnung müsste
im Display erfolgen.

Aufgrund der winzigen Daten-
menge kann die Baudrate
sehr niedrig sein.

Der ATtiny könnte auch 10Bit
aber dann besteht die ausgegebene
Zahl aus 2 Byte; 2Bit + 8Bit
bei den 3,6V von vorhin wären
das dann 3 64
(00000011 01000000
also 3 x 256 + 64 = 832

Das gäbe dann zwar eine
Auflösung der Spannug
in 0,0043V Schritten
am Akku aber davon hat
niemand wirklich was.
Nur die Umrechnung wäre
komplizierter.
.....wenn mir mal
langweilig sein sollte...HA! HA!

Das kann man mit einem
primitiven Terminalprogramm
auslesen, das nur eine Reihe
von Nummern sendet und die
jeweilige Antwort anzeigt.
Vorerst muss man dann
zwar noch die Werte mit
0,0173V multiplizieren,
aber das ist auch noch lösbar,
.......später mal......

mfG Franz

23 November 2009

Die Thesen des Jack Rickard........

Was will uns Jack Rickard eigentlich sagen?

(für die, die der Englischen Sprache nicht
ganz so mächtig sind fasse ich das mal
kurz mit meinen Worten zusammen)


Jack fährt unter anderem eine Porsche
356-Replika mit Elektroantrieb und bei
diesem Auto verzichtet er praktisch auf
jegliches automatisiertes Batterie-
management (BMS).Er misst gelegentlich
mit dem Voltmeter nach und gleicht dann
die Unterschiede gewissermaßen von
Hand aus. Und es funktioniert
völlig problemlos, wogegen er bei
einem anderen Fahrzeug mit BMS mehrere
Akku-Defekte hatte. Ebenso bei
Versuchen mit diversen BMS-Systemen.

Letztendlich behauptet er sogar, dass
manche Systeme regelrechte LIPO-
Killer seien, und das obwohl doch
die landläufige Meinung ist, man dürfe
LIPOs keinesfalls ohne BMS betreiben.

Wieso also dieser Widerspruch von
Theorie und Praxis????????



Jack erklärt das sinngemäß so:
Die meisten Systeme balanzieren am
oberen Ende, was ja bei einer einzelnen
Zelle durchaus richtig ist. Aber hier
sind viele Zellen in Reihe geschaltet.
Diese Zellen sind nicht alle gleich.
Manche haben einfach etwas weniger
Kapazität und die sind dann halt als
erste leer.Weil aber die meisten noch
Energie haben bemerkt man das aber
nicht rechtzeitig, die Zelle wird tief-
entladen und das wars dann................

(An dieser Stelle muss ich einhaken:
ein ordentliches BMS hat
Einzelspannungsüberwachung
und Tiefentladeschutz,
sonst kann man
es sowieso nicht wirklich brauchen.
Darauf kann man nicht eimal bei
Bleiakkus verzichten!!!!
Wenn er also nicht bemerkt, dass
eine Zelle leer ist, dann liegt das
an der fehlenden Überwachung
und nicht daran dass zuvor
"oben" balanziert wurde!
Also: selber schuld, man betreibt
Akkus niemals!!!!!! ohne
Unterspannungsüberwachung,
das geht nie gut!)

Was macht also Jack, damit ihm das
nicht wieder passiert?

Er balanziert im unteren Bereich, also
am unteren Knick der Kennlinie
so bei 2,5 bis 3V je nach Akkutyp,
dann lädt er, bis der erste Akku
den oberen Knickpunkt der
Kennlinie erreicht.
Manche der Akkus könnten da
zwar noch was aufnehmen, aber
die Kette muss sich nach dem
schwächsten Glied richten.
So werden sie alle zugleich leer,
und man merkts auch ohne
kompliziertes BMS-System.
(wenn man die Gesamtspannung
beobachtet)

Wenn er es erklärt wird das
plötzlich ganz klar!
So habe ich das bisher nie
betrachtet, aber wo er recht
hat, da hat er recht.

Ich werde auf alle Fälle
mal Versuche in diese Richtung
machen. Mein Balancer
auf ATtiny-Basis ist ja sehr
fein abgleichbar.Ob ich auf
den Balancer-Widerstand
verzichten werde???
Nein! ganz gewiss nicht!
Aber ich werde versuchen,
jeder Zelle eine optimierte
Einstellung zu geben, so
dass die Balance im
entladenen Zustand optimal
ist.Ich muss ohnehin für
jede Zelle ein eignes Programm
laden, damit die Einzelspannungs-
abfrage funktioniert.
Jedes Modul hat einen eigenen
Befehlscode auf den es antwortet
wenn der "Master" nach Daten fragt.
So kann man die seriellen
Schnittstellen praktisch parallel
betreiben und den Schaltungs und
Programmaufwand minimieren.
Ich denke da so an eine Art M-Bus.
Can-Bus wäre auch machbar, aber
das ist mir noch zu kompliziert....
Da fehlt mir die Erfahrung.
Mal schauen.......

Ein Abgleich der Grenzwerte auf
die jeweilige Zelle ist also
auch nicht allzuviel Mehraufwand.

Ausserdem ist das "Die Lösung" des
Problems mit der in den Balanzier-
Widerständen verheizten Energie.
Die Widerstände brauchen ja gar
nicht fertigbalanzieren und sie
können auch viel schwächer aus-
gelegt werden, weil sie ja gar nicht
bis zum völligen Ausgleich arbeiten
müssen.Es reicht, wenn sie etwas
korrigieren und im Zusammenspiel
mit den Einstellungen die Werte
so zurechtrücken, dass letztendlich
alle Akkus zusammen leer werden.
Dann und nur dann ist das Akku-
paket perfekt balanziert.
(und wenns mehrere Lade-und
Entlade zyklen brauchen sollte
bis es passt, dann macht das auch
nicht viel aus)
Hauptsache, das System meldet
Über- und Unterspannungszustände
und warnt dann bzw. schaltet ab.

mfG
Franz

17 November 2009

Funktionstest des LIPO-Balancers mit ATtiny13

So, und heute gibts ein Video von meiner
Balancerschaltung mit ATtiny13!

(Später wird da entweder ein ATtiny13V oder 25
eingesetzt werden mal sehen.........)

Noch nicht ganz fertig, aber die Grundfunktion
läuft schon mal ganz gut!
Die Unterspannungsüberwachung konnte
zunächst nicht laufen, weil der Attiny in der
Konfiguration des Lernpakets bei 2,5V
abschaltet.
Das muss entsprechend umgestellt werden,
was aber mit dem Lernpaket nicht geht,
da mit der mitgelieferten Ausrüstung kein
Zugriff auf die "Fuses" möglich ist

(Nachtrag 19.11.2009,
Ich habe mir mittlerweile den AVR-ISP-Adapter
nachgebaut, damit ich z.B. mit Ponyprog
die "Fuses" umstellen kann.das geht mit dem
Adapter aus dem Lernpaket nicht.
Damit konnte ich die Abschaltung bei 2,8V
stillegen; jetzt geht auch die Meldung
bei Unterspannung.
Die Verwendung eines ATtiny13V oder 25
im Endzustand ist aber weiterhin nicht zu umgehen.
Zum Testen gehts aber auch mit dem
normalen 13er, halt ausserhalb seiner
spezifikation....)

Die Serielle Ausgabe des Spannungsmesswertes
muss noch reinprogrammiert werden.
Das sollte aber kein größeres Problem sein.
eher das Auswerten....wird schon noch........

Es braucht wirklich nicht viel!
ein ATtiny13V,(oder noch besser ein ATtiny25)
ein MOSFET (TTL-Typ N-Kanal)
ein Lastwiderstand
für die Funktion,
und zwei LED +Widerstand
für die Anzeige

mfG

Franz

Ich möchte an dieser Stelle auf den Blog
von Jack Rickard verweisen.

Einer der interessantesten Blogs, die ich in letzterZeit
gelesen habe.Auch wenn ich nicht alle seiner
Ansichten zu 100% teile, so hat er doch eine Menge
Erfahrung im Umgang mit diversen LIPOs und er hat
eine ganz wesentliche Tatsache festgestellt,welche
noch keiner bisher so gut erklären konnte wie er.
Es läuft sich zwar auch darauf hinaus, dass eine Unter-
spannungsüberwachung unverzichtbar ist,
Was eigentlich selbstverständlich sein sollte,
was sich offenbar noch nicht überallhin durchgesetzt hat
aber sein Vorschlag, die entladenen Akkus zu
balanzieren und dann gewissermaßen zu laden
bis der erste (schwächste) randvoll ist klingt
zunächst ungewöhnlich, aber hört ihn euch
einfach mal an! Macht Sinn!

http://jackrickard.blogspot.com/

http://web.me.com/mjrickard/

auf der Webseite gibts hervorragende
und ewig lange Videos zu allen möglichen
Themen. Stundenlang!







13 November 2009

ATtiny-Balancer-Programm läuft jetzt!!!!!!!

Es ist gerade 2Uhr55-Gäääääähhhhhhhhhhn!
seit ein paar Minuten macht der ATtiny13
endlich das, was ich will dass er es tun soll.......

(Dachte ich zumindest, aber ganz so wars dann
doch nicht, da war noch ein Fehlerchen drin, der ist
jetzt aber behoben und auch hier schon korrigiert.
Jetzt arbeitet Port B0 so wie er soll, die serielle
Schnittstelle ist wieder frei, aber noch nicht
programmiert....Immer mit der Ruhe!)
War irgendwie nicht ganz so einfach, wie ich ganz
am Anfang dachte.
In der Grundprogrammierung des
Lernpakets sind zwei der fünf Ports schon für
die Serielle Schnittstelle reserviert (PB1 und PB2)
ein weiterer (PB0) hängt mit an der Versorgung
den wollte ich eigentlich als Balancer-Ausgang
nehmen, aber irgendwie hats nicht geklappt,
obwohl es eigentlich gehen sollte.
(dem muss ich noch bei Gelegenheit
mal nachgehen, um die serielle Schnittstelle
zu erhalten,die könnte noch mal sehr
wertvoll werden)
(Anmerkung 16.11. Problem ist behoben!!!!!!!)
Da ist eine Art Boot-Programm drauf,
so dass man den ATtiny jederzeit neu
programmieren kann ohne lang
löschen und resetten zu müssen.
Ein sogenannter Boot-Loader halt, sowie
eben die Serielle Schnittstelle über die
man z.B. die Akkuspannung auslesen könnte.

Das wäre natürlich die Krönung des Ganzen!
Und Grundvoraussetzung für ein ordentliches
Display mit Spannungsanzeige etc.

Weil ich Port PB0 nicht zum Arbeiten überreden
konnte, nahm ich halt Port PB1 da gings.
Dafür geht jetzt die serielleSchnittstelle nicht,
aber das müsste auch noch zu schaffen sein.
Jetzt muss man halt klassisch neu
programmieren- was solls.......
Port PB0 ist wohl auch irgendwie vom
Boot-loader benutzt. Seltsam ist nur, dass
ich den Port per Impuls-Pausen-Steuerung
ohne Probleme nutzen kann,
aber nicht als Schaltausgang.
Andere takten den Balancer-Ausgang
ohnehin, aber ich sehe bei größeren
Akkus keine Notwendigkeit hierfür.
(um die 100Ah)
Ich denke, das Problem wird zu
lösen sein.Ich habe den Baustein jetzt
eh schon ohne Boot-loader
programmiert, vielleicht
wärs das schon gewesen,
aber das teste ich ein andermal.
(Anmerkung 16.11. Problem ist behoben!!!!!!!
es scheint wirklich der Boot-Loader
gewesen zu sein! da ist noch einiges
an Programm dabei für ein Interface,
und das benutzt den Port als
Puls-Pausen-Ausgang, drum war der
als solcher initialisiert und für nichts
anderes zu gebrauchen)


Derzeitiger Zustand:
ATtiny13 (muss noch ersetzt werden durch
einen ATtiny13V weil der auch für 1,8V
spezifiziert ist,ansonsten aber identisch)
Der Baustein ist als eigenständig
laufender Balancer konzipiert.
Versorgt aus der zu überwachenden Zelle.
Serielle Spannungsauslesung ist vorgesehen,
aber noch nicht realisiert.
Eine Status-LED bzw. Optokoppler
kann aber schon angesteuert werden.

Derzeitige Schaltgrenzen:
Alarm unter 2,5V bzw. über 3,6V (pin2 high)
Balancer schaltet ein bei 3,5V (pin5 high)
Diese Werte lassen sich in
0,0173V-Schritten verändern

Der PIC nutzt seine interne Referenz
von 1,1V mit 255-stufiger AD-Wandlung
macht 0,0043V-Schritte am ADC-Eingang.
Mit Spannungsteiler 4:1
(10k+3k3 bzw. 1k+330R 0,1%) ergeben
sich 0,0173V an der "Klemme"
bei einem Messbereich bis 4,43V max.

Hier der Quellcode:
(Anmerkung: korrigierte Version vom 16.11.09)

;Regler1.asm, Balancer 2,5V 3,5V 3,6V 1,1Ref;
;Werte für Eingangsteiler 4:1 10k/3k3 bzw 1k/330R 0,1%
;ADC an PIN3(PB4): Ref.:1,1V/255=0,00431V gibt 0,0174V je Einheit
;2,5V:0,62V:144 3,5V:0,87:201 3,6V:0,89:207
;Stoermeldung an PIN2(PB3)
;Balancer an PIN5(PB0)

.include "tn13def.inc"
.def A = r16 ;Messwert ADC
.def B = r17 ;GWu
.def C = r18 ;GWbal
.def D = r19 ;GWo
.def Delay = r20
.def Count = r21
rjmp Anfang
Anfang:
sbi ddrb,0 ;Datenrichtung PB0
sbi ddrb,3 ;Datenrichtung PB3
rcall AdcInit
Schleife1:
ldi A,2 ;ADC2 an PB4
rcall RdADC
ldi B,144 ;GWu: 0,62V/1,1V*255=144
ldi C,207 ;Bal: 0,89V/1,1V*255=207
ldi D,219 ;GWo: 0,94V/1,1V*255=219
cp A,B ;Vergleich GWu
brlo PB3ein
cp C,A ;Vergleich Balancerspg
brlo PB0ein
cp A,C ;Vergleich Balancerspg
brlo PB0aus
Schleife2:
cp D,A ;Vergleich GWo
brlo PB3ein
allesok:
cbi portb,3 ;port3 Stoerung aus
rjmp Schleife1 ;naechste Messung
PB3ein:
sbi portb,3 ;Stoerung ein
rjmp Schleife1 ;naechste Messung
PB0ein:
sbi portb,0 ;Balancer ein
rjmp Schleife2 ;zum Vergleich GWo
PB0aus:
cbi portb,0 ;Balancer aus
rjmp Schleife2 ;zum Vergleich GWo
AdcInit:
ldi A,3 ;Clock / 4
out ADCSRA,A
sbi ADCSRA,ADEN ;AD einschalten
ret
RdADC:
out ADMUX,A
sbi ADMUX,ADLAR ;Left adjust
sbi ADMUX,REFS0 ;1,1VRef benutzen
sbi ADCSRA,ADSC ;Wandlung starten
ADrdy:
sbic ADCSRA,ADSC
rjmp ADrdy
sbi ADCSRA,ADSC
ADrdyb:
sbic ADCSRA,ADSC
rjmp ADrdyb
in A,ADCH
ret



Das wars schon!


Das ist mein allererstes ATtiny-Programm!
Nachdem nun auch die schlimmsten Fehler
behoben sind und die Pins für die serielle
Schnittstelle jetzt wieder frei sind,
bin ich fürs erste schon sehr zufrieden damit.
Und das mit der seriellen Datenausgabe zur
Spannungsüberwachung krieg ich sicher auch noch
zum Laufen, aber nicht heute......
.....und vermutlich auch nicht in den nächsten paar
Tagen.....ich muss einige andere Dinge in Ordnung
bringen.... Vaterpflichten....Ämter.... Haus renovieren
Steuererklärung, Werkstatt aufräumen,
Winterreifen montieren, Müll entsorgen,
und so manch andere unangenehme
Tätigkeit... da hat sich ganz schön was angesammelt!

Ich werde mir wohl einen Adapter basteln,
wo ich alle Aus und Eingänge beobachten kann,
also fünf LED mit Vorwiderstand
und Schalter sowie ein Poti
zur Spannungsvorgabe,
dann geht der Test einfacher,
wohl auch gleich mit den Programmier
und Leseleitungen

Eine Programmieranleitung gibts
ein andermal.
Da müsst Ihr halt jemanden bitten,
ders schon kann. Oder selber schlau machen.
Ein bisschen googeln........

Auf der Homepage des Verfassers
des Lernpakets gibts
die nötigen Programme als Update zum
Downloaden!

www.b-kainka.de/lpmikros.htm

da ist auch der Schaltplan des Adapters
zu finden, sind nur ein paar teile!


Hier noch die HEX-Daten: (Stand 16.11.09)

:020000020000FC
:1000000000C0B89ABB9A15D002E017D010E92FECC7
:100010003BED011740F0201740F0021740F0301779
:1000200010F0C398F1CFC39AEFCFC09AF8CFC09821
:10003000F6CF03E006B9379A089507B93D9A3E9A7C
:10004000369A3699FECF369A3699FECF05B1089585
:00000001FF

als BMS.HEX abspeichern (nur Tex)
und auf den ATTiny übertragen.

viel Spass!
Das geht leider noch nicht bei 2,5v
weil der dann abschaltet


Zum ändern der Schaltgrenzen muss
der Quelltext angepasst und neu
compiliert werden.

Das Auslesen der Werte stelle ich mir
momentan so vor, dass es in einer Art
Master-Slave-Modus passiert.
Dazu müsste zwar jedes Modul einen
eigens programmierten PIC drin haben,
mit speziellem Befehl für die Antwort,
aber die Adressierung wäre dann einfacher.
Funktionierende Programme hierfür sind
im Lernpaket auch schon dabei,
solange das Problem mit Port 0 nicht
gelöst ist, könnte man mit zwei PIC arbeiten,
aber wie schon gesagt,das muss gehen,
und wenn ich den Balancer takten muss!

Ein Rechner (notfalls Terminal-Programm)
sendet die Nummer gleichzeitig an alle.
Der angesprochene antwortet mit seinem
ADC-Wert -fertig!
Die Umrechnung auf lesbare Werte
( Wert x 0,0173V) sollte eigentlich auch
noch im PIC erfolgen können,
zumindest als mV müsste direkt gehen.
So könnten alle parallel geschaltet sein,
und der Elektronik-Aufwand wäre gering.

Die Spannungen sollten eigentlich nur
interessieren wenn was nicht passt.
Den Alarm bei Über- und Unter-
Spannug habe ich zusammengefasst,
weil nicht beides gleichzeitig auftreten
kann, bzw sich der Fehler aus der
Situation erklärt.
Laden: Überspannung,bzw
Versagen eines Balancers.
Fahrt: kann nur Unterspannung sein.

Fürs erste könnte ein PC angeschlossen
werden, aber für die Zukunft sollte es
schon ein ordentliches Display sein.
(eine neue Aufgabe.............)

bis demnächst!

mfG
Franz

12 November 2009

LIPO-Balancer auf PIC bzw ATtiny-Basis

So viele Wege führen zum selben Ergebnis.............

Ich habe mich nun doch entschlossen, für den LIPO-Balancer
einen PIC bzw. in diesem Fall einen ATtiny zu programmieren.

Wieso jetzt doch auf einmal???????????

Die Seiko-ICs sind sehr schwer zu bekommen
insbesondere, wenn man nur ein paar Stück braucht.

Die Schaltung mit OP ist zwar einfach, aber zum
exakten Abgleich nicht ganz problemlos.
Der "freiliegende" Spannungsteiler ist
mir ein unsympatisches Element, der
kann sich verändern wenns feucht wird!

Letztendlich kosten die Teile mehr als der ATtiny!
Beim ATtiny könnte man sogar seriell die Spannung
auslesen bzw auch die Temperatur.
Da man die Dinger ohne großen Aufwand umprogrammieren
kann ist auch ein Abgleich auf andere Werte
keine Zauberei.

Leider gehts auch beim ATtiny nicht ohne Spannungsteiler.
Wenn die interne Referenz von 1,1V genutzt wird,
dann sind am AD-Wandler eben auch nur 0 bis 1,1V
möglich. Hier sinds aber nur zwei Widerstände
mit festem Wert.
Anpassung an die Akkus erfolgt im Programm.

Warum ausgerechnet ATtiny?
Ein ATtiny13V oder 25 kostet unter 1,50 €
eher sogar unter 1€
Der läuft ab 1,8V und hat eine 1,1VReferenz
gleich mit drauf.
Das Programmieren ist relativ simpel und
man braucht keine teure Ausrüstung dafür.
Den Sockel zum Programmieren kann man
selber basteln, die nötigen Programme sind
Freeware bzw die Demo genügt hierfür.

Um das Projekt auch für Leser dieses Blogs
nachvollziehbar zu gestalten, habe
ich mir das "Mikroprozessor-Lernpaket"
vom FRANZIS-Verlag bei Reichelt besorgt.
Da ist in einer Kiste für 49€ alles drin, was
man braucht. inclusive Bausatz für die
Programmierplatine etc. sowie ein
Handbuch mit Programmbeispielen,
die so richtig bei null beginnen.
Auf einer CD gibts alle Beispielprogramme
und Compiler etc- alles drin!
ein paar Bauteile für Versuche
sind auch dabei zum Spielen......
Man braucht das nicht zu kaufen,
aber bis man sich alles selber baut........
Das macht eigentlich nicht viel Sinn,
und das (sehr) dünne Handbuch ist für
absolute Anfänger ein guter Einstieg.

Ein nettes Spielzeug!
Zwar ist da nur ein ATtiny13 (ohneV)
dabei, der erst ab 2,5V sicher läuft, aber
das ist zunächst belanglos.

Tipp am Rande:
gleich noch ein paar passende 24Pol
IC-Sockel besorgen,(gedrehte Kontakte)
und einen davon als Adapter in den
eingelöteten stecken,
die Dinger leiern sehr schnell aus,
insbesondere die LED-Beine sind
zu dick

Das Beispielprogramm Zweipunktregler
ist schon nach Ändern von ein paar
Befehlen direkt geeignet, eine
Spannung zu regeln, bzw halt den
Leistungsmosfet in einer Balancer-
schaltung anzusteuern.
Einstellbar in ca 0,017V-Schritten,
das ist mehr als genau genug.

Kostet an Elektronik etwa
3-4€ je Akku.

Ich hab grad nicht Zeit, das alles genauer
zu erklären, aber wer Interesse hat,
sollte sich schon mal entweder das
Einsteigerset besorgen oder zumindest
schon mal die Programmierschaltung
zusammenlöten.
Anleitungen zur Genüge im Internet!
Ich werde in der nächsten Zeit eher
gemütlich mal am Programm feilen.
Bei AVR gibts das AVR-Studio.
Damit wird am Programm geschrieben
und compiliert. zum Programmieren des
Bausteins kann man dann entweder
das im Starterset enthaltene Programm
benutzen (Da sind auch schon Tools
dabei um einzelne Ports zu schalten
bzw Werte über die serielle Schnitt-
stelle auszulesen etc also ich würde
schon eher das Starterset kaufen)
Oder man nimmt z.B. Ponyprog
oder was ähnliches das geht
zur Not auch.
Oder man bittet gleich einen Bekannten
der das schon kann, einem die Dinger
zu programmieren.................
Es ist aber nicht sehr schwer,
und je weiter man da einsteigt,
desto faszinierender werden
diese Bausteine.
Es gibt natürlich auch von anderen
Herstellern ähnliche Bausteine und meist
bleibt man dann halt dabei, weil auch
die Programme die man schon hat
darauf laufen und man dann immer wieder
in die Schublade greifen kann.
Für den Hobbybereich kann ich aber
die ATtiny uneingeschränkt
empfehlen. In meiner Firma werden
überwiegend PIC von Microchip,
eben aus historischen Gründen und
weil die Compiler etc für größere
Projekte auch nicht für das berühmte
Butterbrot zu bekommen waren/sind.
Das AVR-Studio gibts kostenlos.
Ein bisschen googeln, dann findet man auch
Direktlinks ohne sich anmelden zu müssen.
Der ATtiny13V kann nur 1k Code speichern.
Das klingt nach wenig, aber es reicht locker.
So viel muss man erst mal programmieren.
Und wenns nicht reicht, dann gibts auch
leistungsfähigere Typen, aber bis man
so weit ist, vergeht noch einige Zeit
und dann ist auch meine Hilfe nicht mehr
wichtig!Wäre toll, dann wärs nämlich
nicht umsonst gewesen!
Wie schon gesagt, ich muss mich in
der nächsten Zeit vermehrt um
andere Sachen kümmern, aber
Tröpfchenwiese gehts sicher weiter.
Die Anleitung um ein einfaches
Begrenzerprogramm zu laden folgt
auf alle Fälle noch im November.
das dürfte für einfache Aufgaben
schon genügen.Eine Warn-LED
für Über- und Unterspannung
ist sicher noch möglich, und den
MOSFET kann der ATtiny
direkt ansteuern fehlt nur noch
ein Hochlastwiderstand ca 1R 20W
und ein Eingangsspannungsteiler 4:1
also z.B. 10k + 3k3 0,1%
sowie ein oder zwei LEDs
+ Vorwiderstand ca 680R bis 1k
Leiterplatte + Klemmen fertig
ist ein Balancer-Modul!
Auf Spielereien wie Taktung etc
kann man meiner Meinung nach verzichten.
Ist die Spannung zu hoch, muss etwas
Energie aus dem Akku bis es wieder
passt. da braucht man weder Timer
noch Hysteresen oder sonst was.
Ein Akku, der ein paar hundert
Ampere abgeben kann braucht
das nicht, wenn mal mit 4-5A
an 3,5V also ca 15W balanciert
wird. Alles andere macht vielleicht
im Modellbaubereich Sinn,
hier eher nicht, hier zählt nur
die pure Leistung.
Eine gewisse Taktung ergibt sich ohnehin
ganz von selbst aus den Programmlaufzeiten.
Was in einem Durchlauf eingeschaltet wird
kann erst im nächsten Durchlauf wieder
ausgeschaltet werden.
Keine Angst, das geht sehr schnell
bei solch kleinen Programmen.


mfG
Franz

05 November 2009

Erster Test der Motorsteuerung mit einem Elektromotor

Ganz aktuell...........



Ich habe mal ganz provisorisch einen Motor
an meine Steuerung gehängt.
(gute 100Watt an 20V Dauerleistung, aber 25-50 A
nimmt der schon mal auf bei starker Belastung
und ca 50V)

nur drei 12V-Akkus also auch nur drei Schaltstufen
mit P-Kanal-Mosfets in der Plusleitung
nur vom Optokoppler direkt angesteuert
und die Transistoren zum Brücken
sind noch nicht angesteuert sondern nur als
Freilaufdiode drin.
Ein Akku ist ziemlich schwach deswegen läuft der
Motor nicht ganz "rund" aber das soll jetzt
nicht stören.

Es geht tatsächlich!
Wie erwartet tickt das Ganze ein bisschen,
aber das Prinzip funktioniert!!!!!!!!!!!!!!!!!
Das ist schon mal ein Lichtblick!!!!!!!!!!!!
Und: wie erwartet wird nichts warm!
Ich hab nicht mal Kühlkörper an den
Transistoren auch keine zusätzlichen
schnellen Dioden oder sonstiges.
Nur je einen Pull-Down(bzw.up)
Widerstand am Gate.
IRF4905 P-Kanal, der schaltet
P60NF06L passiv als "Freilaufdiode"
Über den läuft der Strom, wenn der
Akku gerade nicht eingeschaltet ist.
Der muss später noch entsprechend
angesteuert werden, damit er
bei abgeschaltetem Akku ordentlich
leitet. Das ist aber ein ganz anderes
Kapitel und da gehts dann
um Microsekunden.
Selbst bei starker Belastung werden
die momentan nur mal "Handwarm".
Die IRF4905 werden praktisch gar nicht
warm.(Sind ja komplett durchgeschaltet)
Aber wenn später mal so 300A fliessen
sollen, sieht das schon anders aus........

Ich habe meiner Tochter solch einen Motor
in einen Tretroller eingebaut,
vielleicht schaff ich es dieser Tage mal,
mit drei Batterien den ersten Rollversuch
meiner Steuerung damit zu starten.

(ich habs auch schon mal mit getakteter
Steuerung probiert, aber das ist
auch ein ganz anderes Thema)

....und falls die Frage auftauchen sollte, warum
es mit dem LIFEPO4 Balancer nicht weitergeht,
Das ist ganz einfach:
1. keine Zeit
2.Ich finde es nicht gut, wenn der Spannungsteiler
mit Widerständen aufgebaut wird. Viel lieber hätte ich
das Ganze geschützt im Inneren irgend eines ICs.
Ich werde mich gelegentlich mal in die
Programmierung der Atmel ATtiny einarbeiten
müssen und so ein Teil entsprechend programmieren.
In der Firma arbeiten wir meist mit PIC von
Microchip aber die gehen nicht für so niedrige
Spannungen und haben keine Referenzspannung
drauf.
Aufgeschoben ist aber nicht aufgehoben,
ich bleib dran an dem Thema.

Sollte jemand Fragen hierzu haben,
einfach einen Kommentar abgeben!

mfG Franz