Stoppuhr mit Digitalanzeige in KiCad
Vor kurzem waren wir damit beschäftigt, für einen Kunden aus dem Bereich Sondermaschinenbau eine Stoppuhr mit Digitalanzeige zu realisieren. Der Kunde wollte eine Anzeige für Minuten und Sekunden haben. Das Display sollte dabei aus 4 Sieben-Segment LED-Anzeigen aufgebaut werden. Diese sollten elegant unter einer Blendenscheibe verschwinden und über einen Rahmen in der Maschinenfrontplatte montiert werden können. Die Uhr sollte bis 59:59 hochzählen und anschließend sollte ein Reset auf 00:00 erfolgen. Zudem sollte die Stoppuhr über einen Steuereingang über die SPS des Kunden gestartet, angehalten und rückgesetzt werden können. Ein nettes kleines Projekt nahm also seinen Anfang…
Bisheriger Stand
Bisher verbaute der Kunde schon ein BETESO „Digi“ in seiner Anlage. Dies ist eine Platine mit Auswerteschaltungen zur Strom- und Spannungsmessung kombiniert mit einer numerischen Anzeige auf 7-Segment-Basis. Daher sollte die Stoppuhr sich vom „Look & Feel“ her an das Digi anlehnen. Die Platinenabmessungen, der Typ 7-Segment-Anzeige, die verwendete optische Blende und einige weitere Rahmenbedingungen waren daher für uns gesetzt und verbindlich.
Die Umsetzung der Stoppuhr
Gesagt, getan. Nachdem wir bei BETESO zum Jahreswechsel konsequent auf KiCad als Software fürs Platinenlayout umgestiegen sind, war dies meine erste 4-lagige Platine in KiCad. Und was soll ich sagen: Es funktioniert!
Das Layout war zunächst etwas knifflig, zumal ich die Versorgungsplanes nach dem Fluten so intakt wie möglich halten wollte. Nach ein paar anfänglichen Hürden hat das Routing in KiCad aber ganz prima geklappt. Daher hier ein paar Impressionen des Boards aus KiCad:
Die Technik
Herzstück des Boards ist ein ATmega32A im 44-pin QFN-Gehäuse. Dem Board haben wir zusätzlich noch eine ISP-Schnittstelle zur einfachen Programmierung des Controllers spendiert. Außerdem haben wir die JTAG-Schnittstelle und den UART des ATmega herausgeführt. Damit wird die Firmware-Entwicklung und das On-Chip-Debugging erleichtert.
Die Firmware für den Mikrocontroller haben wir in C programmiert unter Nutzung der AVR-GCC Toolchain und der Bibliothek avr-libc für die ATmegas. Als Taktgeber für die Stoppuhr haben wir uns für einen 11,0592 MHz Baudratenquarz entschieden. Dieser speist über einen Vorteiler den 16-bit Timer/Counter des ATmegas im CTC-Modus.