Discussion in 'Opencharge' started by MalteS, Sep 2, 2008.

  1. MalteS

    MalteS Member

    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.
  2. Space

    Space New Member

    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
  3. MalteS

    MalteS Member

    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.
  4. Space

    Space New Member

    Ohhh, ich hole ne Kiste Bier und ziehe 3 Wochen bei dir ein :D


    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 :eek:

    Ich fokusiere mich erstmal hauptsächlich auf die Sample&Hold Zellabfrage.
  5. MalteS

    MalteS Member

    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

    Attached Files:

  6. Space

    Space New Member

    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 :p


    Die Bauteile von Reichelt sind vollständig(!) gekommen. Versand erfolgt Samstag per Wertbrief an euch.

    Attached Files:

  7. MalteS

    MalteS Member

    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
  8. MalteS

    MalteS Member

    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
  9. MalteS

    MalteS Member

    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?
  10. MalteS

    MalteS Member

    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

Share This Page