Ein- und Ausschalter für Labornetzteil KD3005P


Gepostet März 2019, Kategorie: Labornetzteil


Ein- und Ausschalter für Labornetzteil KD3005P

In einem vergangenen Post habe ich beschrieben, wie ich eine graphische Benutzeroberfläche für mein Labornetzteil KD3005P geschrieben habe. Diese Benutzeroberfläche kommt eher selten im Alltag zur Verwendung. Jedoch ist es sehr praktisch den Ausgang des Netzteils deaktivieren zu können, ohne das Netzteil komplett auszuschalten. Aus diesem Grund ist dieser kleine "Mod" des Labornetzteils enstanden.


Inhaltsverzeichnis


    Grundlagen

    Wie im vorangegangenen Post Graphische Benutzeroberfläche für Labornetzteil beschrieben können Befehle über die serielle Schnittstelle von einen Computer an das Labornetzteil gesendet werden. Die Dokumentation der Befehle ist im Handbuch ab Seite 12 zu finden. Wenn die Befehle OUT0 oder OUT1 gesendet werden, kann der Ausgang des Netzteils aus- oder angeschaltet werden. Die Bitrate beträgt 9600 Baud.

    Diese Befehle sollen von einen Mikrocontroller gesendet werden, wenn sich die Schalterposition des An- und Ausschalters geändert hat. Dadurch kann der Ausgang der Stromversorgung aktiviert oder deaktiviert werden.

    Untersuchung des Aufbaus des Labornetzteils

    Durch einige Schrauben kann das Gehäuse des Labornetzteils geöffnet werden. Im hinteren Teil des Netzteils ist die Kommunikationsplatine zu erkennen. Diese stellt eine galvanisch getrennte Verbindung über RS232 oder USB zum Computer her.

    Geöffnetes Labornetzteil

    Sehr auffällig ist die vierpolige Leitung, die von der Kommunikationsplatine zur Hauptplatine in der Front geht. Wie zu erwarten überträgt diese Leitung das UART-Signal. Die genaue Pinbelegung ist in folgender Tabelle zu sehen:

    Pin Farbe der Ader Belegung
    1 rot GND
    2 schwarz UART: MCU → PSU
    3 schwarz UART: MCU ← PSU
    4 schwarz 3,3 V

    Umbau

    Die vierpolige Leitung führt auf Hautplatine in ein JST-Verbinder und kann dort getrennt werden.

    Steckverbindung der UART-Leitung

    Außerdem wurde in die Front ein Schalter eingebaut, der mit einer zweipoligen Leitung versehen wurde, die auf die Mod-Platine gesteckt werden kann. Um diesen Schalter einzubauen, musste die gesamte Front und Hauptplatine abgebaut werden.

    Anschließend habe ich eine kleine Platine mit einen MSP430-G2553 gelötet. Die serielle Schnittstelle wird an die entsprechend vorgesehenen Pins angeschlossen. Außerdem wurde der Schalter mit einen freien GPIO-Pin verbunden.

    Auf der Platine ist ein zusätzlicher JST-Verbinder zu sehen. Hier kann die serielle Schnittstelle verbunden werden, sodass die Kommunikation mit den PC weiterhin möglich ist.

    Vorderseite der Platine Rückseite der Platine Einbau der Platine

    Programmierung

    Der MSP430-G2553 wurde mit Code Composer Studio programmiert. Die zugehörigen Projektdateien sind in Github-Repository zu finden: https://github.com/RobFro96/KD3005P_OnOff

    Im folgenden Quelltext soll der Ablauf des Programms grob beschrieben werden, sodass die Programmierung auch für andere Mikrocontroller nachvollzogen werden kann:

    // Globale Variable: Speichern des letzten Zustands des Schalters
    static uint8_t last_state = 0xff; 
    
    int main(void) {
        // Initialisierung des GPIO der seriellen Schnittstelle (9600 Baud)
        ...
    
        // 100 ms Warten, damit erster Befehl von PSU empfangen werden kann.
        _delay_cycles(100000L); 
    
        // Aktualisieren des Schaltzustands
        update_state();
    
        while (1) {
            // Warte, bis serielle Schnittstelle Daten gesendet hat
            while (!(uart_flags & UART_TXD_FINISHED))   
                ;
            
            // Zustand aktualisieren
            update_state(); 
        }
    }
    
    static void update_state() {
        // Auslesen des Schalterzustandes
        uint8_t current_state = (P1IN & SWITCH) ? 1 : 0;    
    
        if (current_state != last_state) {
            // Schalterzustand hat sich geändert
            last_state = current_state;
    
            if (current_state == 0) {
                // Schalter in OFF-Position -> Ausgang ausschalten
                uart_tx_start("OUT0", 4);
            } else {
                // Schalter in ON-Position -> Ausgang anschalten
                uart_tx_start("OUT1", 4);
            }
        }
    }
    

    Implementierung mit anderen Mikrocontrollern

    Der MSP430-G2553 ist der Mikrocontroller, den ich gern für eine Vielzahl von Projekten einsetze. Dieser muss mit einen Launchpad oder einen FET von Texas Instruments programmiert werden.

    Jedoch können für diese recht einfache Anwendung auch andere Mikrocontroller verwendet werden. Eine Betriebsspannung von 3,3 V ist hierbei ein wichtiges Kriterium. Zum Beispiel könnte ein ATtiny verwendet werden. Eine serielle Schnittstelle wird nicht zwingend benötigt. Mit Hilfe von Bitbanging kann die OUT0 oder OUT1-Nachricht vom Mikrocontroller ausgegeben werden.

    Hierbei ist aufzupassen, dass ein Open-Kollektor-Ausgang am Mikrocontroller hergestellt wird. Sonst kommt es bei der Verwendung der PC-Kommunikation zu einen Kurzschluss am Pin. Ein Open-Kollektor-Ausgang kann über mehrere Methoden hergestellt werden:

    • Umschalten des Pins zwischen Ausgang und Eingang im Programm
    • Einfügen einer Diode
    • Aufbau einer Kollektorschaltung mit einen Transistor, Negation des Pin-Ausgangs ist notwendig
    Wetterdaten Eilenburg
    Temperatur: 13.0 °C
    Luftdruck: 1029.4 hPa
    Luftfeuchte: 60 %
    [mehr]