Schlagwort-Archive: I2C

  1. IC: ADuM1250 I2C-Isolator

    6

    13.08.2015 von plaintron

    ADUM1250I2CISO_01Manchmal fallen mir Bauteile in die Hände, die mich einfach faszinieren, weil sie so genial sind und ein Problem elegant lösen, das sonst nur mit einigem Aufwand in den Griff zu bekommen wäre.

    Problemstellung:

    In einer Schaltung ist ein Sensor verbaut, der eine bestimmte Größe misst, etwa Strom, Spannung, Temperatur, Licht oder Druck. Mit einem Mikrocontroller möchte ich diesen Wert via I2C-Bus verarbeiten und eine Regelgröße beeinflussen. Sensor und Controller liegen allerdings in getrennten Stromkreisen und müssen galvanisch isoliert sein.

    Das Bastlerherz greift sofort zur Schublade mit den Optokoppern, sucht eine Highspeed-Variante raus und studiert die technischen Daten. 20-30 kHz schafft das Teil. Danach wird das Signal ziemlich unscharf, weil die Kapazitäten der verbauten Dioden wie ein Tiefpass-Filter wirken. Die Flanken werden also immer flacher mit steigender Frequenz, der effektive Pegel sinkt. Es gibt zwar durchaus schnellere Varianten, aber dann brauche ich immer noch etwas zusätzliche Logik, um ein- und ausgehende Signale zu sortieren, denn I2C arbeitet bidirektional, es wird also nur eine Leitung in beide Richtungen verwendet.

    Aber es muss ja eine Lösung geben. Eine Netzwerkkarte etwa funktioniert doch auch mit galvanischer Trennung. Dort wird ein Transformator verwendet. Der kann allerdings nur Frequenzen übertragen, aber keine unterschiedlichen Impulslängen. Dazu wäre also ein Modulator notwendig, der die Impuse in Frequenz- oder Amplitudenwerte umsetzt. Bei unidirektionaler Datenübertragung wäre sogar das noch realisierbar, mit je einem Modulator-IC und einem kleinen Übertrager pro Signal. Hier sind dann 3-4 Übertrager mit je einem Modulator und einem Demodulator pro Seite gefragt.

    ADUM1250I2CISO_03Analog Devices hat es geschafft, diese komplette Mimik in ein SO8-Gehäuse zu packen, also Modulatoren, Demodulatoren und Übertrager, und das sogar bidirektional (ADuM1250 SCL und SDA bidirektional, ADuM1251 nur SDA). Im Ergebnis habe ich auf jeder Seite zwei Ein-/Ausgänge für Takt und Daten, dazu je zwei Pins für die Betriebsspannungen und das war es schon. An externen Bauteilen sind nur die üblichen Pullups notwendig, die aber ohnehin benötigt werden, sobald ich mit I2C-Signalen arbeite. Mit ein paar Euro Materialeinsatz habe ich mir also endlose Bastelarbeiten gespart.

    Bei mir kommen diese Schaltungen im Labornetzteil-Projekt zum Einsatz und sind für die Kommunikation zwischen A/D- bzw. D/A-Wandler und Controller zuständig. Für andere Anwendungen gibt es diese Isolatoren ebenfalls, etwa für USB oder SPI.

     

    Quellen:

    I2C-bus specification and user manual
    http://www.nxp.com/documents/user_manual/UM10204.pdf

     

    Advertisements
  2. Projektidee: Tochscreen-Labornetzteil

    5

    08.08.2015 von plaintron

    vamos_psu_kopf

    Es gibt ein paar Projekte, an denen kommt kaum ein Bastler vorbei. Das Labornetzteil gehört neben Funktionsgenerator, Belichter, Reflow-Ofen und einigem anderen Werkbank-Zubehör ganz oben auf die Bastel-Liste.

    Mein erstes geregeltes Netzteil habe ich in der Lehrzeit gebaut, mit einem 2N3055 als Linearregler und mit zwei schönen analogen Anzeigen. Mit 12V und maximal 1A hat es mir lange Zeit gute Dienste geleistet, wurde dann aber irgendwann durch ein chinenisches Schaltnetzteil mit 30V und 3A ersetzt.

    In letzter Zeit sind mir allerdings ein paar Bauteile in die Hände gefallen, die danach schreien, endlich wieder ein Netzteil zu entwerfen, und zwar eins, das die nächsten 20 Jahre für alle Anwendungen die passenden Features hat und in der Entwicklung und der täglichen Nutzung wirklich Spaß macht.

    Mein Arbeitsplatz ist zwar ziemlich breit, aber es fehlt an Tiefe. Also muss ein kompaktes Gehäuse her. Eine Steckdosenleiste, die ich vor einiger Zeit hauptsächlich wegen des interessanten Pultgehäuses gekauft habe, wird also geschlachtet und umfunktioniert.

    steckdosenleiste

    Damit für jede Anwendung die richtige Versorgung parat ist, habe ich zwei regelbare Ausgänge mit 28V und 3A eingeplant. Außerdem kommen noch zwei Festspannungen dazu, 12V und 5V bieten sich an. Zusätzlich hätte ich gerne USB-Anschlüsse, an denen ich schnell und ohne viel Gestöpsel Arduino-Boards versorgen kann.

    xl4016_obenIm chinesischen Gemischtwarenhandel ist mir ein Step-Down-Regler über den Weg gelaufen, der sich vom üblichen China-Schrott deutlich unterscheidet: Saubere Verarbeitung, sinnvoll entworfene Schaltung und wirklich die Leistung, die drauf steht. Er arbeitet mit dem Schaltregler XL4016 von XLSEMI, ein bei uns kaum erhältliches Teil, der mit nur 5 Pins einfach zu verwenden ist und beeindruckende Leistungswerte zu bieten hat.

    xl4016_hintenAn dem Schaltregler habe ich schon rumgelötet und das Poti für die Spannungseinstellung mit einer Steuerspannung aus einem D/A-Wandler verbunden. Das funktioniert sehr gut. Auf der Unterseite sieht man den XL4016 und eine doppelte Schottky-Diode. Normalerweise sitzt hier ein Kühlkörper. In meinem Fall soll der Schaltregler aber direkt auf dem Gehäuseboden befestigt werden und diesen zur Kühlung nutzen.

    Mit den anderen beiden Potis werden die Strombegrenzung und der Schwellenwert für die Überstromabschaltung eingestellt. Diese beiden Funktionen werde ich voraussichtlich nicht nutzen, und zwar aus folgendem Grund: Die Ausgangsspannung des Schaltreglers ist leicht wellig. Also muss ich mit Elkos glätten. Dann habe ich aber keine schnell veränderbare Spannung am Ausgang, weil die Elkos erst entladen müssen, wenn ich die Spannung reduziere. Mehr als 10µF sollten nicht parallel zu den Ausgangsbuchsen hängen.

    Die Lösung ist ein nachgeschalteter Linearregler, der sich auch um die Strombegrenzung kümmert. Ein gewöhnlicher LM317 bzw. dessen stärkere Brüder kommen hier nicht in Frage, da sie sich nicht bis auf 0 Volt herunterregeln lassen. Ich bräuchte dann also eine negative Referenzspannung und das ist mir zu viel Aufwand. Außerdem sollte die Drop-Out-Spannung, also der minimale Spannungsabfall zwischen Ausgang und Eingang des Regler, möglichst gering sein.

    Linear Technologies hat hier die Lösung in Form des LT3083. Das ist ein wirklich beeindruckender Regler, der zwar nicht billig ist, aber jede Menge Vorteile mitbringt, die ich demnächst noch genauer erläutern werde.

    lt3083

    Ebenfalls von LT kommt der A/D-Wandler LTC2945. Dieser Baustein ist ein kompletter Power-Monitor mit I2C-Bus, der nur einen Shunt braucht, um Strom- und Spannungwerte mit einer Genauigkeit von 12 Bit zu liefern.

    Einen D/A-Wandler brauche ich auch. Hier kommt ein LTC2633 zum Einsatz, der ebenfalls einen I2C-Bus hat. Kurz zur Erklärung, warum ich nicht die Analogpins des Controllers verwende: Ich möchte mit einem einzigen Controller für die gesamte Schaltung arbeiten (wahrscheinlich der erste Einsatz meines Teensy). Dieser soll von den Ausgangsspannungen galvanisch getrennt sein. Die beiden Ausgangsspannungen möchte ich auch symmetrisch verwenden können, also dürfen sie keine gemeinsame Masse haben. Das geht nur, wenn ich A/D- und D/A-Wandlung im jeweiligen Schaltkreis der Ausgangsspannung einbaue und das I2C-Signal dann über einen Isolator zum Controller führe. Diese galvanische Trennung übernimmt bei mir der ADuM1250 von Analog Devices, auch ein beeindruckendes IC, über das ich demnächst mehr schreiben möchte.

    display_vorneDer Teensy soll auch die zwei Touch-Displays verwalten. Ich möchte zwei 2,4-Zoll-Displays mit SPI verwenden und diese sowohl für die Anzeige der Ausgangswerte als auch für die gesamte Steuerung des Controllers verwenden.

    display_hintenDer Touch-Controller ist bereits auf dem Board montiert. Hier wird ein chinesischer Nachbau des Controllers ADS7845 von TI/Burr-Brown verwendet, ein XPT2046. Der Display-Controller ist ein ILI9341, für den es jede Menge gute Bibliotheken gibt. Ein Schacht für eine SDHC-Karte ist auch vorhanden. Darauf lassen sich Bitmaps und Fonts für die Dartellung speichern. Außerdem lassen sich darauf komplette Setups sichern, etwa bestimmte Spannung/Strom-Kombinationen.

    So weit mein kurzer Einblick in die Schaltungstechnik. Wenn ich mit dem Aufbau anfange gibt es mehr Details. Da es an Baustellen bei mir nicht mangelt, wird das wohl noch ein paar Monate dauern.

    Immerhin habe ich schon genaue Vorstellungen, wie das Labornetzteil aussehen soll. Auch bei diesem Projekt habe ich erst mal ein Modell in Sketchup erstellt:

    vamos_psu_012-7_exp

    Die Drehgeber für die Einstellung von Spannung und Strom haben eine eingebaute RGB-LED und eine transparente Achse. Das sieht nicht nur cool aus, sondern ist auch zur Anzeige des jeweiligen Modus praktisch. Der Encoder leuchtet blau während der Spannungseinstellung und rot bei der Wahl der Strombegrenzung.

    Dazu passen die beleuchteten Taster. Hier kommen kleine Metalltaster mit LED-Ring und 14mm Außendurchmesser in schwarz und chrom zum Einsatz.

    Was fehlt, sind passende Polklemmen. Hirschmann kommt optisch nicht in Frage, das China-Sortiment ist qualitativ einfach nicht so wie ich es möchte. Also bleibt mir nur, die Buchsen ebenfalls selbst zu bauen. Aber das ist eine andere Geschichte, von der zu anderer Zeit berichtet werden soll. 😉

Blogverzeichnis - Bloggerei.de