Moin, Ich möchte via I2C ein paar Atmega328 microcontroller mit einem Arduino Mega verbinden. Diese müssen aber entkoppelt sein (dh. kein common ground, keine gemeinsame Versorgungsspannung). Deshalb will ich einen Isolator einsetzen (wie den TI ISO1540). Jedoch muss der Isolator mindestens auf der Atmega328-Seite auch schon bei 2.5v und nicht erst bei 3v Versorgungsspannung funktionieren. Die zweite Seite kann ich mit 5v versorgen. Gibt es sowas als abgeschlossenes, kostengünstiges Bauelement? Danke für eure Tipps & hinweise.
Hi >Ich möchte via I2C ein paar Atmega328 microcontroller mit einem Arduino >Mega verbinden. Diese müssen aber entkoppelt sein (dh. kein common >ground, keine gemeinsame Versorgungsspannung). Warum? MfG Spess
Die Atmega328 chips überwachen einzelne Blocks einer Batterie und melden Spannung und Temperatur an die «Zentrale» (Arduino Mega) zwecks Battery Management. Die Atmegas laufen direkt mit der jeweiligen Zellspannung, welche zw. 2.5v & 4.2v sein kann. Deshalb muss auch der Isolator ab 2.5v laufen. Die Spannung innerhalb der Batterie kann bis knapp unter 60v betragen, daher kein Common Ground. Etwas kompliziert zu erklären - hoffe es ist einigermassen nachvollziehbar.
Spoe N. schrieb: > Moin, > > Ich möchte via I2C ein paar Atmega328 microcontroller mit einem Arduino > Mega verbinden. Diese müssen aber entkoppelt sein (dh. kein common > ground, keine gemeinsame Versorgungsspannung). Deshalb will ich einen > Isolator einsetzen (wie den TI ISO1540). Jedoch muss der Isolator > mindestens auf der Atmega328-Seite auch schon bei 2.5v und nicht erst > bei 3v Versorgungsspannung funktionieren. Die zweite Seite kann ich mit > 5v versorgen. https://www.silabs.com/isolation/digital-isolators/si86xx-digital-isolators Up to 5 kVrms isolation UL, CSA, VDE certification 60-year life at rated working voltage High electromagnetic immunity Supply voltage 2.5 to 5.5 V Independent, bidirectional SDA and SCL isolation channels Open drain outputs with 35 mA sink current Supports I²C clocks up to 1.7 MHz Unidirectional isolation channels support additional system signals (Si8605, Si8606) fchk PS: Ich hab mir gerade das Datenblatt angeschaut https://www.silabs.com/documents/public/data-sheets/Si860x.pdf und da steht 3.0V. Auf der Webseite steht 2.5V. FRag am Besten mal nach, und/oder besorge Dir so ein Teil mal und probiere aus, ob es bei 2.5V noch sauber funktioniert.
:
Bearbeitet durch User
Spoe N. schrieb: > laufen. Die Spannung innerhalb der Batterie kann bis knapp unter 60v > betragen, daher kein Common Ground. Etwas kompliziert zu erklären - > hoffe es ist einigermassen nachvollziehbar. Für sowas gibts von Analog/Linear spezielle Bausteine, wo ein Chip 12 oder 14 Zellen monitoren kann. Das ist letztendlich deutlich billiger als 12 Arduinos plus die Isolatoren, die auch ein paar € kosten. https://www.analog.com/en/products/power-management/battery-management/multicell-battery-stack-monitor.html Schau Dir das an: https://www.analog.com/en/products/ltc6811-1.html Diese Bausteine gibts nicht ohne Grund. fchk
Ich denke, dass "Warum?" von Spesss meinte "Warum I2C?". I2C galvanisch zu trennen ist sehr aufwendig. UART z.B. wäre deutlich einfacher.
Spoe N. schrieb: > Die Atmega328 chips überwachen einzelne Blocks einer Batterie und melden > Spannung und Temperatur an die «Zentrale» (Arduino Mega) zwecks Battery > Management. Die Atmegas laufen direkt mit der jeweiligen Zellspannung, > welche zw. 2.5v & 4.2v sein kann. Deshalb muss auch der Isolator ab 2.5v > laufen. Typischer Fall von "dämliches Design führt zur Frage nach Wunderbauelementen" Die Kommunikation ist doch unidirektional. Kein Grund, dafür auf I²C zu setzen. Nimm SPI oder UART. Dann reichen Optokoppler. Und schau dir auch an, wie das die Profis machen. Ein ATMega328 (also wahrscheinlich Arduino-nano) pro Zelle ist vollkommener Overkill.
Ist der Unterschied denn so gross? Brauche ich nicht sowohl bei UART als auch bei I2C ein RX ein TX sowie einen gemeinsamen GND? Würde das konkret nicht die gleiche Anzahl trennstellen bedeuten? Wunderbauelement - nö, denke ich nicht?! Imho würde es der TI ISO1540 tun, wenn er schon ab 2.5v funktionierte... wesentlich unter 3v werde ich ohnehin nicht gehen - die 2.5v sind reine Sicherheit. Zum Einsatz soll der blanke ATmega328 kommen (mit 8mhz internal clock). Es wird aber immer eine bidirektionale Kommunikation benötigt, da der Arduino Mega die Infos abfragt zu dem Zeitpunkt wo er sie für nötig hält. Dann treten erst die Atmega328 in Aktion, messen & melden. Und nein, ich bin kein Profi und ja, ich mache bestimmt Fehler, denn von der ganzen Sache habe ich (noch) nicht derart viel Ahnung, dass ich das ohne das Fragenstellen schaffe. ABER ich lerne dazu ;)
Spoe N. schrieb: > Brauche ich nicht sowohl bei UART als auch bei I2C ein RX ein TX sowie > einen gemeinsamen GND? Nicht wirklich. I2C ist bidirektional, sowohl SDA als auch SCL. Beim UART reicht TX (bzw. von der anderen Seite RX). Die oben gezeigte Schaltung wird für I2C zweimal bebraucht. MfG Klaus
Klaus schrieb: > Nicht wirklich. I2C ist bidirektional, sowohl SDA als auch SCL. Beim > UART reicht TX (bzw. von der anderen Seite RX). Die oben gezeigte > Schaltung wird für I2C zweimal bebraucht. Heisst das im Umkehrschluss, dass ich mit zwei Optokopplern auskomme wenn ich UART verwende? Da war ich irgendwie auch schon mal... siehe Anhang
Spoe N. schrieb: > Heisst das im Umkehrschluss, dass ich mit zwei Optokopplern auskomme > wenn ich UART verwende? Ja. Und wenn die Atmegas nur senden reicht auch einer. MfG Klaus
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.