Hi! Ich brauche eine kurze Info aus der Schwarmintelligenz: Wer kennt einen Optokoppler, der bei 2,5..3V noch für RS-232 brauchbare Eigenschaften hat und gut verfügbar ist, evtl. bei Reichelt? Die eigentliche RS-232 Geschwindigkeit ist nicht so ultimativ wichtig, eher ginge es ums Strom sparen. Heißt möglichst geringer LED-Strom, möglichst kurzer Datenburst... Daher schneller Optokoppler, der muss halt die Flankensteilheit schaffen, damit man ein brauchbares Ergebnis bekommt. Oder die Frage genereller, hat jemand evtl. Erfahrung damit, was mit welchem Optokoppler möglich ist, wenn zwei AVR-µCs (mit 2,5..3V VCC) galvanisch getrennt miteinander Daten austauschen sollen? Gehäuseform ist einigermaßen egal, SMD oder DIP-4, DIP-6 sollte alles passen. Danke!
Ben B. schrieb: > Ich brauche eine kurze Info aus der Schwarmintelligenz: Wer kennt einen > Optokoppler, der bei 2,5..3V noch für RS-232 brauchbare Eigenschaften > hat und gut verfügbar ist, evtl. bei Reichelt? Gar keiner, denn RS232 arbeitet mit +/-12V. > Die eigentliche RS-232 Geschwindigkeit ist nicht so ultimativ wichtig, > eher ginge es ums Strom sparen. Also auch 300 Baud? Das kann praktisch JEDER Optokoppler. > Heißt möglichst geringer LED-Strom, > möglichst kurzer Datenburst... Daher schneller Optokoppler, der muss > halt die Flankensteilheit schaffen, damit man ein brauchbares Ergebnis > bekommt. Alles eine Frage der Baudrate.
Wow das ging schnell. > ISO6721B Kenne ich nicht, schaue ich mir an. > Gar keiner, denn RS232 arbeitet mit +/-12V. Du weißt doch was ich meine. Einfache serielle Kommunikation mittels "8N1" oder wie immer man das nennen soll. > Also auch 300 Baud? Das kann praktisch JEDER Optokoppler. Zur Not ja, aber etwas mehr wäre schon besser, sonst dauern die Datenburst unnötig lange und das geht auf den Stromverbrauch. > Alles eine Frage der Baudrate. Genau, daher die Frage was möglich ist.
Ben B. schrieb: >> Gar keiner, denn RS232 arbeitet mit +/-12V. > Du weißt doch was ich meine. Einfache serielle Kommunikation mittels > "8N1" oder wie immer man das nennen soll. Nennt sich UART. >> Also auch 300 Baud? Das kann praktisch JEDER Optokoppler. > Zur Not ja, aber etwas mehr wäre schon besser, sonst dauern die > Datenburst unnötig lange und das geht auf den Stromverbrauch. Der Stromverbrauch ist Strom x Zeit. Wenn der Optokoppler ULTRASPARSAM ist, kann man sich mehr Zeit lassen. >> Alles eine Frage der Baudrate. > Genau, daher die Frage was möglich ist. Ich hab mal vor LAAAANGER Zeit einen Optokoppler mit 100uA betrieben und damit 10kHz Signale übertragen, war glaube ich einer ala IL300 mit Photodiode am Ausgang. Der Empfänger war aber selbst gestrickt mittels TIA.
Es gibt kapazitiv, isolierende Datenkoppler: https://www.ti.com/de-de/isolation/isolated-interfaces/overview.html https://www.elektroniknet.de/optoelektronik/bye-bye-optokoppler.167466.html Braucht weniger Strom als Optokoppler und ist zuverlässiger als diese.
:
Bearbeitet durch User
> Heißt möglichst geringer LED-Strom, > möglichst kurzer Datenburst... Daher schneller Optokoppler, Vergiss den kruden misst. Nimm einen ISO7041: – 4.2 μA per Channel Quiescent Current (3.3 V) – 15 μA per Channel at 100 kbps (3.3 V) – 116 μA per Channel at 1 Mbps (3.3 V > Ich hab mal vor LAAAANGER Zeit einen Optokoppler mit 100uA > betrieben und damit 10kHz Signale übertragen, Hm..mit selektierten Optos, bei 15 bis 25Grad und maximal 2Jahre Kundenlebensdauer? :-D Olaf
> Nennt sich UART.
Dann nennen wir es UART.
Worüber ich nachdenke ist eine Lösung wie ich es am besten schaffe,
Daten von mehreren µCs, die alle auf einem anderen Potential liegen, mit
einem Steuersystem auszutauschen (BMS/Balancing mit etwas Leistung). Das
sind keine hohen Datenmengen, aber viele regelmäßige Datenbursts. Dafür
habe ich mehrere Ansätze und mich noch nicht genau für einen
entschieden.
Vanye R. schrieb: > Vergiss den kruden misst. > > Nimm einen ISO7041: Oder ISO7021, wenn du nur RX und TX brauchst. Nur halb so groß und noch etwas sparsamer.
Ben B. schrieb: > Daten von mehreren µCs, die alle auf einem anderen Potential liegen, mit > einem Steuersystem auszutauschen Geht mit praktisch jedem Isolator oder Optokoppler. Wenn es billig sein muss, oder es dir zu aufwändig ist, die isolierte Spannungsversorgung mit über den Bus zu legen, nimm den H11L1 (1 Mbps).
Man müsste mal probieren, ob die Dinger noch funktionieren, wenn man auf einer Seite die Ausgang über eine Diode voneinander trennt, so daß sie nur Strom ziehen, aber keinen speisen können bzw. welche Datenraten damit noch möglich sind. Ansonsten gibt's auf dem Rückkanal zum Steuerrechner das Problem, daß sie sich alle gegenseitig ihre Ausgänge blockieren. Edit: Stromversorgung sollte nicht das Problem sein, auf einer Seite haben die µCs alle ihre 2,5..3V Minimum und das Steuersystem kann seine 5V auf der anderen Seite bereitstellen wenn nötig.
:
Bearbeitet durch User
Ben B. schrieb: >> Nennt sich UART. > Dann nennen wir es UART. Sonst hast du nämlich nicht nur ein Spannungs- sondern auch noch ein Polaritätsproblem.
Ich wuerde etwas in der Richtung von ADuM1301 oder aehnlich empfehlen.
Ben B. schrieb: > Daten von mehreren µCs, die alle auf einem anderen Potential liegen, mit > einem Steuersystem auszutauschen (BMS/Balancing mit etwas Leistung). Könnte man auch ganz billig lösen mit einem Kondensator statt einem Optokoppler. Im Idle-Zustand ist der TX auf High und den RX kann man auf Pull-Up konfigurieren, nach etwas Wartezeit (ca. 3 * Tau, Tau = R_pullup * C) hat der Kondensator dann ziemlich genau Spannungsdifferenz zwischen den beiden Potentialen. Wenn die Bursts kurz genug sind dann ändert sich während dem Senden nicht viel daran und die Übertragung klappt. Gibt natürlich keine Garantie dass es keine Übertragungsfehler gibt bei schnellen Laständerungen (z.B. Kurzschluss oder Anschließen eines Gerätes mit viel Eingangskapazität), zumindest eine Prüfsumme im Protokoll sollte es also geben und eine gewisse Redundanz damit nicht viel passiert wenn ab und zu mal ein Paket nicht ankommt.
Ben B. schrieb: > von mehreren µCs, die alle auf einem anderen Potential liegen, Das Problem hatte ich vor Jahren, einen 3V3-Arduino mit eigener Versorgung an den PC zu klemmen. Ich hatte einfach ein paar vorhandene Optokoppler gegriffen, die aber zu lahm waren. Beim Ali gibt es günstige Modulchen mit dem ADuM1201, spielt sauber, siehe dort: Beitrag "Re: Arduino ProMini galvanisch getrennt" Purzel H. schrieb: > Ich wuerde etwas in der Richtung von ADuM1301 oder aehnlich empfehlen. Genau, wenn man drei Kanäle braucht. Oder auch, wie hhinz schrieb, Texas ISO6721B Das sind saubere Lösungen, man muß nicht irgendwas mit Kondensatoren oder Dioden zusammenpfuschen.
Weil es hier gerade passt.... weiß jemand zufällig ein dem genannten ISO7041 ähnliches Produkt (Mehrkanal digitaler Isolator), welches aber Eingangssignale bis 24V erlaubt (Vcc1=Eingangsseite auch gerne bis 24V; Vcc2 - also Ausgangsseite wäre dann 5V)?
:
Bearbeitet durch User
W.P. K. schrieb: > Weil es hier gerade passt.... weiß jemand zufällig ein dem > genannten ISO7041 ähnliches Produkt (Mehrkanal digitaler Isolator), > welches aber Eingangssignale bis 24V erlaubt (Vcc1=Eingangsseite auch > gerne bis 24V; Vcc2 - also Ausgangsseite wäre dann 5V)? Da reichen doch Spannungsteiler.
Gibt es einen dieser ADuM- oder ISO-Typen mit open collector Ausgang oder sowas, daß man die auf einer Seite alle zusammenschalten könnte, ähnlich wie bei I2C? Die Senderichtung (vom Steuermodul aus gesehen) wäre kein Problem, aber zurück müssten alle auf der gleichen Leitung antworten können, das geht aber nicht wenn alle den Ausgang aktiv nach Vcc oder GND schalten, bzw. sie würden bei Kollisionen beim gleichzeitigen Senden zweier Controller aneinander geraten. Eigentlich sollte das nicht passieren (die Balancing-Module sollen nur auf Anforderung Daten schicken), aber wenn's doch mal vorkommt, dann sollte nicht gleich alles abrauchen. Alternative wäre nach I2C-Isolatoren suchen und I2C benutzen - falls man mit denen kein UART-Signal übertragen kann.
Ben B. schrieb: > Gibt es einen (...) mit open collector Ausgang oder sowas, > daß man die auf einer Seite alle zusammenschalten könnte > > die Balancing-Module sollen nur auf Anforderung Daten schicken In dem Fall würde ich doch normale Optokoppler nehmen. Die haben einen Open Collector-Ausgang und brauchen auf beiden Seiten Null mA - weniger geht nicht. Der LED-Strom spielt beim Laden und Entladen doch keine große Rolle und im Standby muss man nur sehr selten abfragen. Es gibt Optokoppler, die bei 1mA oder 0.5mA LED-Strom spezifiziert sind, z.B. SFH6286-4 bzw. SFH628A-4. Damit sind 2400 Baud möglich. Kritisch ist vor allem der gemeinsame Pull-Up Widerstand, den optimalen Wert würde ich tatsächlich ausprobieren.
0.5mA LED-Strom klingt brauchbar, aber mehr als 2.400 baud sind nicht drin? Ich hatte wenigstens auf 9.600 oder 14.400 gehofft um die Dauer der Datenbursts kurz zu halten. Sind zwar jeweils nur etwa 10 Byte, aber wenn man während der Übertragung recht viel Strom braucht, wäre es gut, die Dauer möglichst kurz zu halten.
Man kann statt einem Open Collector-Bus auch einen Multiplexer vorsehen. Dann wird die Abfrage nur an einen Controller gesendet, alle nicht gefragten merken nichts davon und brauchen keinen Strom. Außerdem braucht man keine Adressen und also keine DIL-Schalter o.ä. und die Antworten können nicht durcheinander kommen. Man kann auch bei der Kodierung der Daten Strom sparen. Zum Beispiel hat man 2mV Auflösung für die Spannung. Dafür reicht ein Byte, wenn vom Steuermodul bei der Abfrage ein 0.5V breites Fenster vorgegeben wird, z.B. 3.5 bis 4V, 3.0 bis 3.5(11)V usw.
Ben B. schrieb: > 0.5mA LED-Strom klingt brauchbar, aber mehr als 2.400 baud sind nicht > drin? Fototransistoren sind halt langsam, und wenn du nur wenig LED-/Basis-Strom hast, musst du einen großen Pull-Up am Ausgang benutzen. 0.5 mA am Eingang und geringer Betriebsstrom und schneller Ausgang geht nur mit dem 6N138/9. Zur Beschaltung siehe https://electronics.stackexchange.com/a/288481/29811; es sollten mehrere hundert kbaud möglich sein, abhängig von R2.
:
Bearbeitet durch User
Vor allem darf man nicht vergessen das Optokoppler gewaltige Exemplarstreuungen haben, also immer den schlechtesten CTR aus dem Datenblatt nehmen. Dann altern die noch und sie haben eine nicht unerhebliche Temperaturabhaengigkeit. Also den Wert nochmal durch 2(privater Bastler) oder 4(Industrietechnik) teilen. Und dann wird man relativ schnell darauf kommen das die angesprochenen ISO oder der Adum, oder auch das entsprechende Exemplar von Silabs, die kluegere Wahl ist wenn es um den Stromverbrauch geht. Vanye
Ben B. schrieb: > Gibt es einen dieser ADuM- oder ISO-Typen mit open collector Ausgang > oder sowas, daß man die auf einer Seite alle zusammenschalten könnte Bei "oder sowas" fällt mir als erstes eine Schottky-Diode am Ausgang ein. Vanye R. schrieb: > Dann altern die noch ... Das ist oft ein Design-Problem. Wer die Schaltung so auslegt, dass im Idle-Zustand der Schnittstelle die LED des Optokopplers dauerleuchtet, verschenkt hier viel. Die Alterung hängt auch entscheidend davon ab, wie sehr man die zulässigen Grenzen ausreizt.
:
Bearbeitet durch User
Ben B. schrieb: > Gibt es einen dieser ADuM- oder ISO-Typen mit open collector Ausgang > oder sowas, daß man die auf einer Seite alle zusammenschalten könnte, > ähnlich wie bei I2C? Es gibt I²C-Isolatoren (z.B. ISO1540). Du könntest die Signale auch einfach mit 74xx08 kombinieren.
> Bei "oder sowas" fällt mir als erstes eine Schottky-Diode > am Ausgang ein. Die Idee schrieb ich oben bereits, man müsste probieren wie sich das auf die erreichbare Baudrate auswirkt, in Zusammenspiel mit dem passiven PullUp-Widerstand. Irgendwann werden durch parasitäre Kapazitäten auch die Flanken verschliffen. Alternativ die geringeren Baudraten zugunsten des niedrigen Stromverbrauchs in Kauf nehmen, sind ja keine hohen Datenmengen. > Das ist oft ein Design-Problem. Wer die Schaltung so auslegt, dass > im Idle-Zustand der Schnittstelle die LED des Optokopplers > dauerleuchtet, verschenkt hier viel. Das habe ich mir bereits angeschaut, der Idle-Pegel bei UART ist tatsächlich high - bedeutet, daß ich das Signal invertiert übertragen werde (idle low). Ansonsten kann man sich jede Stromspar-Überlegung sparen. Eine zweite Idee habe ich mir mit diesen ISO-Schaltkreisen noch überlegt, man könnte die Module alle in Serie legen und die Controller schicken jede Nachricht, die nicht für sie ist, zur nächsten weiter. Dann brauche ich aber Controller mit zwei UART-Modulen (hat der angepeilte ATMega8 nicht) und die Datenübertragung muss bei 13 Modulen 26mal fehlerfrei funktionieren. Erst das Kommando vom Steuermodul durch alle Balancing-Module hin und danach die Daten durch alle Module zum Steuermodul zurück. Bei dem geringen Stromverbrauch der ISO-Schaltkreise wären die vielen Datentransfers egal, Latenz ist nicht so extrem wichtig (bzw. wird durch hohe erreichbare Baudraten ausgeglichen) und die Kommunikation ist kollisionsfrei. > Es gibt I²C-Isolatoren (z.B. ISO1540). Danke für den Schaltkreis-Tip, den schaue ich mir mal an. Vielleicht kann man da auch ein UART-Signal durchjagen. > Du könntest die Signale auch einfach mit 74xx08 kombinieren. Wie meinst Du das genauer? Meinst Du alle Signale mit ODER-Gattern auf den Modulen verknüpfen und das Summensignal am letzten Ausgang nutzen?
Ben B. schrieb: >> Wer die Schaltung so auslegt, dass im Idle-Zustand der Schnittstelle die >> LED des Optokopplers dauerleuchtet, verschenkt hier viel. > > Das habe ich mir bereits angeschaut, der Idle-Pegel bei UART ist > tatsächlich high - bedeutet, daß ich das Signal invertiert übertragen > werde (idle low). "Invertiert" kann auch bedeuten, dass du mit dem UART-Signal direkt die Kathode ansteuerst. (MIDI macht das so.) >> Du könntest die Signale auch einfach mit 74xx08 kombinieren. > > Wie meinst Du das genauer? Meinst Du alle Signale mit ODER-Gattern mit UND-Gattern > auf den Modulen verknüpfen und das Summensignal am letzten Ausgang nutzen? Genau.
Nachteil der hier vorgeschlagenen Lösungen ist die EMV Verträglickeit. Im BMS ein Problem, bei hohen Strömen oder Störreichen Umfeld, wird das System unzuverlässig "Zudem bleiben die Magnetfeldlinien nicht so im Bauelement wie beim klassischen Übertrager, die elektromagnetische Verträglichkeit ist demnach schlechter. Auch der Hilfsoszillator kann hier bei der EMV Probleme machen."
Ben B. schrieb: > Daten von mehreren µCs, die alle auf einem anderen Potential liegen Aber trotzdem irgendwie in der selben Schaltung miteinander verbunden (bzw nur durch Akkus voneinander getrennt) sind? Dann könnte ich mir auch eine Schaltung ohne Optokoppler vorstellen.
Ben B. schrieb: > Worüber ich nachdenke ist eine Lösung wie ich es am besten schaffe, > Daten von mehreren µCs, die alle auf einem anderen Potential liegen, mit > einem Steuersystem auszutauschen (BMS/Balancing mit etwas Leistung). Das > sind keine hohen Datenmengen, aber viele regelmäßige Datenbursts. Dafür > habe ich mehrere Ansätze und mich noch nicht genau für einen > entschieden. Dafür gibts doch fertige Lösungen, z.B. https://www.analog.com/en/products/ltc6803-4.html fchk
Peter K. schrieb: > Nachteil der hier vorgeschlagenen Lösungen ist die EMV Verträglickeit. Hauptsächlich mit den ADUM, die kapazitiven ISO sind pflegeleichter. Man würde natürlich die langsamsten und sparsamsten Typen verwenden. Aber es geht ja auch ganz ohne diesen Aufwand, nämlich so: Ben B. schrieb: > man könnte die Module alle in Serie legen und die Controller > schicken jede Nachricht, die nicht für sie ist, zur nächsten weiter. > Dann brauche ich aber Controller mit zwei UART-Modulen Es geht auch mit einem UART. Alle Module, inkl. Steuermodul, werden in einem Kreis in Reihe geschaltet.
1 | +--> [RX TX] -> [RX TX] -> [RX TX] --+ |
2 | | | |
3 | +--<------------------------------<--+ |
Wie mit zwei UARTs geben alle Module die Nachrichten weiter und am Ende kommen sie am Steuermodul an. Bonus: jeder darf jederzeit ungefragt senden, die Module müssen nur eine Nachricht zwischenspeichern können. Der Potentialunterschied von Modul zu Modul ist kleiner als 5V, das sollte auch ohne Optokoppler oder gar ADUM machbar sein. Nur der Sender (oder der Empfänger) am Steuermodul muss die volle Spannung vertragen. Nur an dieser Stelle wird die Baudrate begrenzt. Je nachdem was einfacher ist, sendet man in Richtung höhere oder niedrigere Spannung.
:
Bearbeitet durch User
Die von mir genannten NAchteile waren übrigens aus elektronik.net
Peter K. schrieb: > Die von mir genannten NAchteile waren übrigens aus elektronik.net Das hilft natürlich ungemein, irgendwas nachzuplappern, was man nicht selbst erfahren / gemessen hat. Bitte noch mit youtube ergänzen!
nennt sich nenne einer Quelle. Beser als das oftmals ahnungslose Geplapper einiger hier. Deshalb gibt es so viele unzuverlässige BMS, aber diese scheitern dann auch recht schnell. Das dir das nicht bekannt ist oder du den nutzen daran erkennst, überrascht mich nicht.. https://www.elektroniknet.de/optoelektronik/bye-bye-optokoppler.167466.html
> https://www.elektroniknet.de/optoelektronik/bye-bye-optokoppler.167466.html > Über den Autor > Wolf-Dieter Roth ist technischer Redakteur bei HY-LINE Power Components. Das ist Werbung für GMR/TMR-Isolatoren von NVE, die von Hy-Line Power Components verkauft werden.
Hm..euch ist schon aufgefallen das der TO irgendwas olles mit Mega8 basteln wollte? Irgendwelche EMV-Betrachtungen sind da wohl erstmal aussen vor. .-) Wobei, wenn schon Mega8 dann ist ein alter Optokopplers vermutlich das Mittel der Wahl. Der wuerde sich mit so einem modernen ISO/ADum nicht wohl fuehlen. :-D Vanye
doch, EMV kann da sehr wichtig sein, gerade daran scheitern viele BMS, selbst bei kommerziellen fällt es dann plötzlich auf und man baut die wider aus
> doch, EMV kann da sehr wichtig sein, gerade daran scheitern viele BMS,
Schau mal, es gibt die ISO/ADuM seit vielen Jahren und die werden von
tausenden von Firmen in Millionen von Projekten eingesetzt.
Offensichtlich schaffen die es dort alle durch EMV-Tests zu kommen. Mag
sein das es manchmal einen zweiten Anlauf braucht denn man ohne sowas
nicht haette, aber in der Regel schaffen sie es.
Hier aber geht es um einen Bastler. Der muss nix testen. Geh mal davon
aus das >90% der Bastelprojekte hier wahrscheinlich nicht durch so einen
Test kommen wuerden. Interessiert aber keinen. Auch meine eigenen
Projekte die ich Privat mache wuerden vermutlich (floet) nicht durch den
Test kommen. .-)
Vanye
Peter K. schrieb: > EMV Verträglickeit. Verwende besser keine Akronyme, deren Bedeutung du selber nicht verstehst.
Vanye R. schrieb: >> doch, EMV kann da sehr wichtig sein, gerade daran scheitern viele BMS, > > Schau mal, es gibt die ISO/ADuM seit vielen Jahren und die werden von > tausenden von Firmen in Millionen von Projekten eingesetzt. > Offensichtlich schaffen die es dort alle durch EMV-Tests zu kommen. > Mag sein das es manchmal einen zweiten Anlauf braucht denn man ohne > sowas nicht haette, aber in der Regel schaffen sie es. Andererseits gibt es vom Analog Devices die lesenswerte und lehrreiche AN-1109 "Recommendations for Control of Radiated Emissions with iCoupler Devices". Das sind netto 18 Seiten Kleingedrucktes, kein Werbetext. Wie viel in der Art findet man bei Optokopplern? Beim 10MBaud Optokoppler ACPL-M61L ist es z.B. eine halbe Seite, im wesentlichen "braucht ein Abblock-C".
Also, dann mal probieren, Klarheit zu schaffen... Wieso der "alte" ATMega8 auf den Balancing-Modulen? Ich hätte auf den Balancing-Modulen gerne etwas Intelligenz, so daß z.B. beim Anstieg der Zellspannung über einen bestimmten Wert automatisch ein Balancing-Strom mit 3..5A aktiviert wird (Laden) oder daß man dem Modul sagen kann Balancing bitte mit 0,5..1A bis zu einer Zellspannung von (..)V. Das können diese ganzen Balancing-ICs nicht alleine - alle, die ich mir angeschaut habe, benötigen dafür einen steuernden Mikrocontroller. Für fest zusammengesetzte Akkupacks mögen die Dinger praktisch sein, weil sie die komplette Serienschaltung messen können und mit Einschränkungen auch Balancing in einem einzigen IC (wofür sie aber wieder eine Steuerung durch einen µC brauchen) - aber bei Überwachung nur einer einzelnen Zelle (oder einer Parallelschaltung vieler), brauche ich das nicht bzw. kann ich das auch alleine machen wenn ich sowieso einen Steuer-Controller brauche. Der ATMega8(L) lässt sich mit der einfachen Zellspannung ohne weitere Regelung betreiben, von der benötigten Rechenleistung her langweilt sich jeder 8-Bitter zu Tode (für die Leute, die mir hier einen STM32 oder was auch immer empfehlen möchten) und er hat genug Pins für Balancing-Ausgänge, UART, eine oder zwei LEDs, 2..4 ADC-Eingänge und eine 8 Bit ID über DIP-Switch und den Selbst-Abschalt-FET (falls die Zellengruppe vor Tiefentladung durch den BMS-Betriebsstrom geschützt werden muss). Wieso der galvanisch getrennte Datenbus? Jedes der Balancing-Module außer dem ersten in der Kette liegt mit seiner Masse eine Zellspannung über dem vorangegangen. Man kann die Masse daher nicht zusammenschalten und über Stromschleifen... Moment mal. Da fällt mir evtl. noch etwas ein, worüber ich nachdenken muss. Vielleicht ließe sich ein Datenbus bauen, der die "2,5..300V" gegenüber der Haupt-Masse toleriert, aber das ist eine unschön hohe Spreizung und wenn das bei 2,5V schon zuverlässig funktionieren soll, fließen bei sagen wir 300V schon unschön hohe Ströme bzw. Leistungen. Bei 2,5..60V mag das vielleicht noch gehen, aber da das eine harte Begrenzung wird, wollte ich das eigentlich nicht bei einem BMS-Entwurf, das "für alles" tauglich sein soll. Mittels schneller Dioden wäre es aber möglich, daß vom Steuermodul aus gesehen immer nur Strom in dieses hineinfließt. Allerdings entstehen beim Senden von Daten vom Steuermodul aus dann sehr hohe negative Spannungen gegen Masse der höchsten Balancing-Module. Vielleicht doch nicht so eine gute Idee. Die "Ringbus-Idee" von BauformB hat was, ich hatte mir über ein ähnliches System bereits Gedanken gemacht. Wenn man solche aktiven Übertrager-ICs verwendet, muss man sowieso die Betriebsspannung des Steuermoduls auf alle Balancing-Module mitnehmen (um eine Seite des ISO-ICs damit zu versorgen). Ein wirklicher Nachteil wäre aber eine hohe Auslastung des Datenbusses und sehr viele Übertragungen (lange Übertragungswege, evtl. hohe Latenz) wodurch der Datenbus praktisch ununterbrochen in Benutzung ist (alternativ: hohe Baudrate) und auf jeder der Übertragung kann etwas schief gehen, so daß die Nachricht nicht oder nicht intakt beim Empfänger ankommt, ggf. entstehen Timeout-Probleme. Der Vorteil wäre aber, daß sich das System teilweise selbst konfigurieren könnte - das Steuermodul könnte eine entsprechende Abfrage abschicken, alle Balancing-Module schnappen sich eine um 1 erhöhte ID und geben diese weiter, das Steuermodul schaut, was am Ende zurückkommt. Noch ein Vorteil wäre evtl. eine deutlich geringere Störanfälligkeit durch die ständige lokale Verstärkung und kurze Wege. Ein großer Nachteil: Ein einziger Fehler bzw. ein einziges abgeschaltetes Balancing-Modul führt zu einem kompletten Ausfall des Datenbusses, auch mit den fehlerfrei arbeitenden Modulen kann nicht mehr kommuniziert werden, das Steuermodul kann nicht ermitteln, wo der Fehler liegt. Immerhin wäre die Reihenfolge der Balancing-Module am Datenbus unwichtig, bzw. das Steuermodul braucht nicht zu wissen, an welcher Stelle in der Serienschaltung ein Balancing-Modul sitzt. Den ISO1540/1541 I2C-Isolator-IC habe ich mir angeschaut, teures Teil. Keine Ahnung ob man es mal damit versuchen sollte oder eher doch eines der anderen ISO-ICs mit Sink-Diode am Steuermodul-seitigen Ausgang (damit sie sich nicht gegenseitig plätten können). Zum Stromsparen gäbe es zwei Möglichkeiten: sehr wenig Strom und dafür geringe Geschwindigkeit (wie gesagt, 14400baud wären schön, aber zur Not gebe ich mich auch mit 1200 zufrieden, mit 300 komme ich auch klar wenn's gar nicht anders geht) oder lieber mehr Strom und dafür höhere Geschwindigkeit. Beides so, daß es noch nicht zu nennenswerten Störungen kommt bzw. nicht so wenig Strom, daß Störungen von außen viele Nachrichten zerstören. Keine Ahnung, wo da der sweet spot liegt. Ich mache mir mal Gedanken, ob ich die Hardware so auslegen kann, daß sie für beide Varianten tauglich wäre (parallelgeschaltete Busteilnehmer oder Ring). Evtl. ist die Ringbus-Idee in Sachen Stromsparen trotz der hohen Buslast gar nicht so viel schlechter. Die Nachricht muss zwar der Reihe nach durch alle Übertrager, aber bei parallelgeschalteten Busteilnehmern sind beim Senden von Daten vom Steuermodul aus auch alle Empfänger aktiv und ich vermute, die höheren erreichbaren Geschwindigkeiten könnten das kompensieren. Wegen Störungen allgemein: Wirklich relevant wäre nur, wenn mein Aufbau Störungen erzeugt, die für andere zum Problem werden. Jetzt weiß ich nicht, ob "ein paar Meter Draht", auf denen bestenfalls 14,4kHz mit 5Vss liegen, so viel Störstrahlung verursachen (könnte bei der oben genannten HV-Idee mit vielleicht 300Vss anders aussehen). Ich glaube die funktionieren besser als Antenne für externe Störungen durch die hohen Ströme im Akkusatz, so daß ich in der Pflicht bin, meinen Aufbau gegen sowas zu härten und andere Seiten eher nicht selbst störe. Daher müsste man schauen wieviel Strom für eine sichere Kommunikation bei Baudrate X und sagen wir 32..64 Balancing-Modulen erforderlich wäre. Damit käme man schon sehr weit, bei den heute am meisten gebräuchlichen 48V sinds "nur" 13 oder 14 Balancing-Module, bei evtl. noch relevant werdenden 96V 26 oder 28. Wer noch mehr will, braucht halt "Improvements" wie geschirmte Kabel, aber das wären dann so Spielereien für Drehstrom-USVs oder Elektroantriebe und das wird irgendwann unschön teuer. Dann hat man zwar schön wenig Betriebsstrom, aber verdammt viele Akkus, die man da braucht (andererseits, wer die Leistung und Kapazität solcher Anlagen braucht, der braucht eben auch das Geld dafür). Thema Sicherheit: Ich mache mir da durchaus Gedanken drüber, denn auch ich möchte nicht, daß meine Bude schwarz, kalt, oben offen und durch die Feuerwehr zusätzlich noch nass wird. Sprich das BMS wird bei einem Fehler den Strom durch den Akku sofort hart trennen, egal ob das dann zu einem privaten Stromausfall führt oder nicht. Den nehme ich in Kauf. Was ich dazu bislang auf dem Schirm habe: - ständige Messung von Zellspannung und 2..3 Temperatursensoren durch alle Balancing-Module - regelmäßige Abfrage dieser Messwerte seitens des Steuermoduls Abschaltung bei: - Überspannung einer Zelle - Unterspannung einer Zelle - Temperatur eines Fühlers außerhalb des Soll - Nichterreichbarkeit eines Balancing-Moduls bzw. Datenbus-Ausfall Gegen Überstrom nehme ich einen DC-Leitungsschutzschalter oder eine Schmelzsicherung (gPV), die sollte zuverlässig ausmachen wenn irgendwas nicht passt. Hab ich was vergessen, was man noch überwachen sollte?
:
Bearbeitet durch User
> Der ATMega8(L) lässt sich mit der einfachen Zellspannung ohne weitere > Regelung betreiben, von der benötigten Rechenleistung Naja, ich hab jetzt nicht im Datenblatt geschaut, aber man darf vermuten das es nach 20Jahren einen grossen Berg an Controllern gibt deren Ruhestrom im Sleepmodus wesentlich geringer ist und ein geringer Stromverbrauch sollte einem bei sowas ja wichtig sein. Vanye
Ob man an der Stelle so viel sparen kann... ich plane maximal 1MHz Core-Takt auf den Balancing-Modulen, das Datenblatt sagt bei 4V idle 0,5mA, bei 0,5Mhz/4V 0,2mA. Das hält eine einzelne 18650er Zelle unter Vernachlässigung der Selbstentladung fast bzw. über ein Jahr aus.
Bei geschicktem meschanischen Aufbau deines Systems, kann man sowas auch mit IR-Fernsteuerungs-Empfängern realisieren. Der "Bus" ist dann einfach die Reflektion auf der Innenseite des Gehäuses. Oder Übertrager mit FSK oder so mit HART-Modem Chips.
> Bei geschicktem meschanischen Aufbau deines Systems, kann man sowas auch > mit IR-Fernsteuerungs-Empfängern realisieren. Der Gedanke liegt nahe, noch besser sogar mit Irda weil viele moderne Mikcrocontroller sowas integriert haben. (Mega8 aber wohl nicht) Allerdings ob das eine Verbesserung bezueglich LowCurrent ist.... Aber einen gewissen Charme hat sowas wohl. Vanye
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.