zurück zur Hauptseite des Labornetzteiles

AVR-Software

Beschreibung

Die Software ist in ANSI-C geschrieben und mit avr-gcc unter ubuntu (linux) compiliert. Die Ansteuerung des LCD und die UART Library sind von Peter Fleury und das Auslesen des Drehgebers wie auch die Tasten-Enprellung sind von Peter Dannegger.

Programmablaufplan Hauptprogramm (erstellt mit PapDesigner[9] ):

Hauptprogramm Ablaufplan

(anklicken zum vergrößern)

Der Timer1-Interrupt erfolgt aller 1msek.. Davon werden die weiteren Verzögerungen abgeleitet.

Interrupt-Routine (erstellt mit PapDesigner[9] ):

Interrupt-Routine Timer1

(anklicken zum vergrößern)

In der Interrupt Service Routine von Timer1 wird nur der Drehgeber ausgelesen.

Die LCD-Anzeige soll einmal so aussehen:

LCD-Anzeige

Mit den Drehgeber kann in der oberen Zeile die entsprechende Vorgabe gewählt werden. Dabei bewegt sich der Pfeil entsprechend nach rechts oder links mit. Durch Anklicken erreicht man das Untermenü zum Einstellen des Wertes. Durch nochmaliges Klicken kommt man wieder zurück zum Auswahlmenü und der Sollwert wird am Ausgang ausgegeben. Durch langes Drücken des Drehgebers werden die eingestellten Sollvorgaben im EEPROM gespeichert. Diese dienen beim nächsten Einschalten als Startwerte. Der untere Pfeil zwischen den Istwerten gibt an, ob das Labornetzteil als Konstantspannungsquelle oder als Konstantstromquelle arbeitet. Wird der Standby-Taster gedrückt, erscheint in der unteren Zeile die Meldung „Standby“ und der Ausgang wird sofort auf Null geregelt.

Für den Abgleich des Labornetzteils muss beim Einschalten des Netzteils der Standby-Taster gedrückt werden. Dabei startet das Kalibriermenü des Netzteils. Es wird eine feste Spannung und eine feste Stromvorgabe ausgegeben. Mit dem Encoder kann dann die aktuelle Spannung und der aktuelle Strom im Display eingestellt werden. Nach dem Speichern durch langes Drücken des Encoders wird ein Korrekturfaktor für die DACs und den ADC des ATMEGA berechnet und im EEPROM abgelegt.

Dazu kommt noch eine Anpassung der max. Ausgangsleistung, da mein Trafo die 100W-Ausgangsleistung nicht schafft. Die Leistungsbegrenzung erfolgt mit einem Stromlimit nach folg. Formel.

Formel: Graph

Das heißt bei einem 100VA-Trafo wird ab 19V der maximale Ausgangsstrom begrenzt auf 55W-Leistung am Ausgang.

USB-Steuerung

Über die USB-Schnittstelle können die gemessenen Spannungs- und Stromwerte ausgelesen werden wie auch eine Fernsteuerung des Netzteils. Die Kommados sind case-sensitive.

Die Einstellungen der seriellen Schnittstelle sind:

Baudrate19200
Frameformat8bit
Paritätkeine
Stoppbit1

für Start des Datenversand:

*DSEND#

Das Datenformat sieht folgendermaßen aus:

Spannungswert V2400# entspricht 24,00V
V0500# entspricht 5,00V
Stromwert A300# entspricht 3,00A
A052# entspricht 0,52A

zu beachten ist das beim Spannungswert nur die erste Nachkomma-Stelle übertragen wird da die 2.Stelle nach dem Komma zu sehr schwankt.

für das Beenden des Datenversands:

*DSTOP#

für die Fernsteuerung des Netzteils:

*PCON#

Datenformat für Soll-Spannung und Soll-Strom:

Spannungswert V2400# entspricht 24,00V
V0512# entspricht 5,12V
Stromwert A300# entspricht 3,00A
A052# entspricht 0,52A

Eine manuelle Eingabe der Sollwerte ist nicht möglich. In der ersten Zeile des Displays erscheint: „PC controlled“. Der Standby-Taster ist weiterhin aktiv und im Standby-Modus wird anstatt der Werte „Stdby#“ gesendet.

Während aktiver PC-Fernsteuerung ist der Datenversand immer aktiv und kann nicht abgeschaltet werden. Der Datenversand der gemessenen Werte erfolgt analog wie oben.

zum Abschalten der Fernsteuerung:

*PCOFF#

Die Steuerung wird nicht gespeichert, d.h. nach Aus- und Wiedereinschalten bzw. 230V-Unterbrechung arbeitet das Netzteil manuell ohne Datenversand.

Download

Die maximale Ausgangsspannung, den maximalen Strom und die Leistung des verwendeten Trafos wird in der main.h eingestellt bei:

#define max_u	30  /**< momentan als 30V-Version eingestellt, hier die maximale Ausgangsspannung einstellen */

#define max_i	3  /**< momentan als 3A-Version eingestellt, hier den maximalen Ausgangsstrom einstellen */

#define VA_reel	5555 /**< Leistungsfaktorberechnung ((VA_trafo / 1.8)*100), den Faktor errechnen und eintragen */

dazu kommt ab der Version 2.8 die Möglichkeit einer externen Referenzquelle. Dazu muss in der main.h die Zeile:

//#define extRef				//für externe Referenzspannung an AREF-PIN

auskommentiert werden.

neue AVR-Firmware Version 2.83:

version_2_8_final.zip

AVR-Firmware Version 2.7:

version_2_7_final.zip

AVR-Firmware Version 2.5_r02:

ver_2_5r02_final.zip

weiter zum nächsten Abschnitt

 
labornetzteil/avr_software.txt · Zuletzt geändert: 2017/04/15 22:59 (Externe Bearbeitung)
Recent changes RSS feed Creative Commons License Driven by DokuWiki Made on Mac