Oled mit Menü für ein STM32L476 Nucleo board

Gespeichert von artbody am Sa., 26.01.2019 - 11:48

Oled mit Menü für ein STM32L476 Nucleo board

Immer wieder habe ich den Punkt Benutzerschnittstelle:

Display mit Menü für bestimmte Elektronikentwicklungen. So auch für den großen Pflanzengiesser.

Hierbei habe ich auf den fertigen Platinen meist nur die 2Draht SW Schnittstelle von ST zum Programmieren und Debuggen. Es fehlen somit die erweiterten Möglichkeiten wie UART usw. Da die Nucleo Developement Boards meist günstig und zu ersten Testaufbauten sehr gut geeignet sind, habe ich mir eine Adapterplatine für OLED, Drehknopfencoder, Schalter und div LED's entwickelt. Da die Nucleoboards über einen voll funktionsfähigen STLink2.1 verfügen, kann ich den vollen Umfang des Debuggers nutzen.

Zunachst der Schaltplan

https://easyeda.com/artbody/stm-morpho_oled_shield_2018_12_13

Da der Morpho Header bei allen Nucleo Boards gleich belegt ist und nur die Port Funktionen sich etwas unterscheiden habe ich mir eine konfiguration mit Lötbrücken überlegt, mit welchen die meisten Nucleo Board abgedeckt sind und die Platine entsprechend zum Board konfiguriert werden kann. Anstelle der Lötbrücken könne auch SMD NULL OHM Widerstände der 603 Bauform verwendet werden.

  • OLED SSD1306
  • Dreh Encoder mit Drucktaster
  • 2 extra Drucktaster welche parallel zu den beiden Drucktastern auf dem Nucleo Board sind.
  • Eine extra RGB LED
  • Eine LED oder Ausgang mit MOSFET Ansteuerung
  • Ein Eeprom mit genug Platz für Benutzerdaten

! Das PCB Layout ist derzeit in Überarbeitung. !

Die zusätzliche RGB LED und die einfarbige LED verwende ich meist dazu, dem Benutzer ein schnelles Feedback zu geben. Dies ist meist schon in dem entsprechenden  IRQ Handler implementiert, so dass die Auswertung des Signals wie z.B. das Entprellen des Tasters usw. dem Benutzer nicht wirklich auffällt. Die Aktualisierung eines Displays geschieht meist nicht ganz so schnell und kann schon mal je nach Programumfang und Komplexitität ein paar 100ms dauern. Hierbei ist u.a. auch darauf zu achten, dass z.B. vom Benutzer keine Mehrfacheingaben erzeugt werden können.