T on delay

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

Die Idee

t_on delay entstand für einen Freund, der in seiner Freizeit gerne mit seinem Ultraleichtflieger unterwegs ist. Nach dem Flug vergaß er manchmal sein Navigationsgerät auszuschalten und dieser entleerte die (relativ kleine) Batterie des Fliegers regelmäßig. Dies fällt natürlich erst bei dem nächsten Flug auf nervt auf Dauer doch etwas. Er wünschte sich eine kleine Schaltung, den man direkt in die USB-Leitung einschleifen kann und folgende Funktionen umsetzt:

  • Ein Taster soll die Schaltung für zwei Stunden aktivieren. In diesen zwei Stunden soll der USB-Anschluss des Navigationsgerätes bestromt werden. Danach soll die Spannung an der USB-Buchse abgeschaltet werden.
  • Die Spannung an der USB-Buchse soll nicht ruckartig eingeschaltet werden sondern langsam ansteigen
  • Ein grüner LED soll anzeigen, wenn Spannung an der USB-Buchse anliegt
  • Die Schaltung soll weder andere Geräte im Flieger stören noch selbst für Störungen empfänglich sein
  • Die Schaltung selbst soll möglichst wenig Strom verbrauchen damit die Batterie des Fliegers nicht unnötig belastet wird

Realisierung

Steuerung

µCortex Modul

Für die Steuerung verwende ich ein µCortex-Modul. Dieses Modul ist mit einem STM32F030F4P6 bestückt, sowie mit einem externen Quarz (8MHz)und 3V3-Spannungsregler. Um dieses Modul herum ist die eigentliche Schaltung gebaut.

Pinzuordnung:

Pinzuordnung µCortex
  • PA0: REL_RESET (Schaltet mit einem Puls das Relais aus)
  • PA1: Taster (EXTI-Eingang für den Taster, weckt den Controller aus dem Stop-Mode auf)
  • PA5: STATUS (Statusabfrage Relais)
  • PA9: SoftStart (Schaltet 5V auf den Ausgangsstecker)
  • PA10: LED (Laderückmeldung für den Benutzer)
  • PB1: REL_SET (Schaltet mit einem Puls das Relais ein

bipolares Relais

bipolares Relais

Als Relais wird ein HFD3/5-L2 eingesetzt. Da es ein bipolares Relais ist, genügt ein kurzer Stromimpuls zum ein- und ausschalten; danach wird kein Haltestrom für die Spulen benötigt. Die Freilaufdioden / Snubber sind die übliche Beschaltung; der Stromimpuls selbst wird durch n-Kanal Mosfets erzeugt. (R9 hat in der fertigen Schaltung keine Funktion; es wurde lediglich eingefügt damit die Stromaufnahme der Spulen mit dem Oszi dargestellt werden kann.)

Soft Start

Soft Start

Es wurde eine Soft-Start Schaltung implementiert damit das Einschalten des Navigationsgerätes nicht direkt durch das Relais sondern etwas weicher erfolgt. Die Aktivierung des Einschaltsignals erfolgt einige 100ms nachdem das Relais angezogen hat.

Anschluss von LED und Taster

Anschluss von LED und Taster

Der Taster liegt mit einem Pull-Up auf HIGH-Potential und erzeugt einen EXTI (externer Interrupt) auf PA1 wenn der Taster gedrückt wird. Das LED kann leider nicht direkt vom Portpin bestromt werden, daher wird es mit einem kleinen Mosfet eingeschaltet.

Die fertige Schaltung

Ausschaltverzögerung für USB

Die Schaltung wurde mit einer alten Version von Target 3001 (V13) als zweiseitige Platine gelayoutet und passt in ein G025N Gehäuse von Kemo. Ein kleiner Fehler hat sich ins Layout leider eingeschlichen: R14 wurde beim Platzieren einfach vergessen. (zu meiner Entschuldigung sei gesagt, dass ich beruflich mit Altium Designer arbeite und mit Target zuletzt vor 5-6 Jahren zu tun hatte) Den fehlenden Widerstand habe ich dann händisch auf der Unterseite eingelötet und das Layout entsprechend angepasst. Deshalb sieht man R14 bei mir auf der Platine nicht, es ist aber in der Targetdatei enthalten.

Alternative Anwendung

Natürlich kann die Schaltung umdimensioniert und/oder zweckentfremdet werden und andere Sachen programmgesteuert schalten. Eine kleine Abwandlung steuert bei uns in der Firma die Lüftung der Lötdampfabsaugung (1 Stunde Laufzeit, ausschaltbar durch erneutes Drücken der Taste) und auch den Wasserbrunnen bei mir zuhause.

Entwickler

Fragen, Lob, Kritik, Ideen, Anregungen, etc. an: Claus Müller

Software

  • Die Software ist mit der freien Version von Keil MDK geschrieben worden ohne die Verwendung der "standard peripheral library" (mag ich nicht) aber natürlich mit CMSIS.
  • Link zur Entwicklungsumgebung: http://www2.keil.com/stmicroelectronics-stm32/mdk).
  • Funktionsbeschreibung folgt in den nächsten Tagen...

Downloads

Siehe auch