Hm, da sehe ich die Gefahr das sich das bei kleinen Zellen und kleinen Ladeströmen aufschwingen kann. Stepdown Betrieb ist dann bei den 500W Varianten und den 24V Input ein Thema, oder? muss man vieleicht einfach mal ausprobieren.
Aufschwingen ? Nein ich denke aufschwingen wird sich in beidn Fällen nichts. Nur eben etwas unruhe im Stromverlauf halte ich für denkbar. Das Stepdown Thema sehe ich nicht bei grossen Ladeströmen, wo der Balancerstrom im Verhältnis zum Ladestrom sehr klein ist. Nein unabhängig von der Versogungsspannung bei kleinen Ladestömem, welche im Verhältnis zu dem Balancerstrom ähnlich groß sind. Da haben die 300mA Balancerstrom sicher einen Einfluss auf die Akku Klemmspannung und dem SW geregelten Ladestrom. Im Endeffekt ist die Diskusion aber unnötig weil nur theoretisch. Die normale schnell laufende Zellspannungsababfrage brauch man sowieso. Und ob man die Balancerstrom Logik gleich in den ADC Int packt oder aber erst nach dem alle Zellen erfasst wurden startet und hiernach ggf. eine längere Pause einlegt macht bei der Programmierung kaum einen Unterschied und ist schnell anpassbar. Habe ich dir eigentlich schon gesagt dass ich absoloter C Anfänger bin? Bis auf eine kelines eigenes Cellshield Projekt, habe ich in C noch nichts gemacht. Wie läuft bei dir egentlich die Regelung im Stepdown Betrieb? ...da fällt mir gerade ein
Den Stepdown Wandler habe ich ja recht schnell rausgeworfen. Bin insofern auch nie in die Verlegenheit gekommen das zu implementieren. Bzgl. C: Was dir an Erfahrung fehlt gleiche ich durch Inkompetenz aus Ich schau mal das ich die Tage mal anfange. Meine Frau ist demnächst drei Wochen nicht da.
Ohhh, ich hole ne Kiste Bier und ziehe 3 Wochen bei dir ein Ich setze mich mal selber hin, ein eigenes Programm zu stricken. Warscheinlich ist nicht viel davon zu gebrauchen, da ich als "ungelernter Programmierer" eher unsauberen Code erzeuge. Aber funktionieren wird es, jeahhh Ich fokusiere mich erstmal hauptsächlich auf die Sample&Hold Zellabfrage.
Jou komm vorbei Die Spannungsmessung ist doch schon fertig Nee im Ernst, habe gerade mal die Spannungsmessung aus dem existierenden Code extrahiert. Kompliliert sogar.... Kalibrierung und das Umschalten des Kondensators fehlen. Ganz grob zur Struktur: Alle Zellbezogenen Daten sind in der Struktur tCell definiert und der globalen Array gCell[] abgelegt Openbalance.c enhält main() und sonst nicht viel ADC.c enthält die ADC Interrupt Routine und das Update der gCell Struktur, ausserdem sind dort zwei Routinen zum strukturierten Zugriff auf das EEPROM hinterlegt (für die Kalibrierwerte). Das ist aufwendiger als wir es brauchen, aber vorhanden und getestet. Gegenwärtiger Stand anbei. Die avrlib habe ich nicht gezippt. Fragen? -> fragen ! Feedback? Gruß Malte
Dito, ADC Abfrage kommt aus meinem Cellshield Projekt Ich habe versucht es dir gleich zu tuhen und die Struktur bei mir unter AVR Studio einzubinden, bekomme aber einen Kompiler Fehler. Das mit der Struktur muss ich mal in meinem C für Anfänger Buch nachlesen. Scheint eine 2D Tabelle zu sein. Bin gestern länger Bahn gefahren, mein Stand hängt auch dran. Aber nicht lachen, bin C Anfänger Die Bauteile von Reichelt sind vollständig(!) gekommen. Versand erfolgt Samstag per Wertbrief an euch.
Hi Thomas, Hab ein paar Tage gebraucht um da mal draufzuschauen. Ad hoc sind mir zwei Dinge aufgefallen: - Das Setzen des Muxers in mpxset() funktioniert so nicht, da die Numerierung nicht durchgängig ist. - Wenn du etwas per #define definierst dann ist das ein Wert / Name der im Präprozessor bekannt ist und du kannst dann #ifdef Statements verwenden: Deinen Ausdruck: #define ADCSLEEP 1 if ( ADCSLEEP == 0 ) {BlaBla1} else {BlaBla2} Scheibt man sinnvollerweise #define ADCSLEEP #ifndef ADCSLEEP BlaBla1 #else BlaBla2 #endif Was mir nicht klar ist ob die ADC Genauigkeit so ausreichend ist. Ich hatte relativ viel Ärger damit und deswegen auch diese Mittelwertbildung und das Oversampling integriert. Jetzt sind die Spannungen die wir Messen deutlich geringer, aber trotzdem könnte es da zu Schwierigkeiten kommen. Soviel im Moment, muss ins Bett... Gruß Malte
Ach so tCell ist eigenlich ein neuer Datentyp der dazu dient alle Zellspezifischen Daten zu speichern. Das Objektorientiert (Objekt -> Zelle) zu nennen wäre wohl zuviel, geht aber in die Richtung. Hat z.B. den Vorteil das wir eine Ausgaberoutine schreiben können: Ausgabe( tCell* cell) { .... } Das kann man erst mal so implementieren und wenn man später noch einen zusätlichen Wert für eine Zelle erfasst (z.B. % der Zeit die Balanciert wurde) kann man das später leichter integrieren weil man nicht mehr alle Funktionsaufrufe anfassen muss. So jetzt reichts aber wirklich. Gruß Malte
So, was lange währt wird endlich gut. Die Platinen sind heute gekommen. Zeit also hier weiterzumachen. Ich würde euch bitten mir nochmal euere Adressen zukommen zu lassen. Dann bringe ich sie mitsamt der FETs auf den Weg. Dann müssen wir auch noch die Kosten auseinanderdividieren. Thomas was bekommst du von mir für die Reichelt Bestellung?
Hi, also euere Platinen gehen morgen raus, sorry hat etwas länger gedauert. Ich habe meine weitgehend fertig bestückt aber noch nicht in Betrieb genommen. Zwei Dinge: 1. Der INA125 ist, anders als ich auf den Platinen vorgesehen habe das kleine Gehäuse. Habe ich einfach auf einer Seite festgelötet da auf der anderen Seite nur zwei Pins zu verdrahten sind. 2. Die Widerstandsarras sind superwinzig und entsprechend schwierig zu löten. Im Prinzip kein riesiges Problem bis auf die drei Arrays die direkt nebeneinander platziert sind. Offenbar sind die Pins bis an die Kanten des Gehäuses geführt was zu Kurzschlüssen führt. Daher umbedingt einen kleinen Abstandshalter beim Platzieren der Gehäuse verwenden. Kurzschlüsse hier umbedingt vermeiden, das schließt Zellen kurz !!!! 3. Irgendwelche 2.2k Widerstände sind zuviel, dafür fehlen mir ein paar 22k? Widerstände. Thomas die 2.2k gehen an dich zurück. Die 22k (oder welchen Wert auch immer) finde ich wohl noch in meinem Fundus Thomas, hab ich deine Kontonummer schon bekommen? Gruß Malte