BackPowering beim EADOGMxxx Display

Markus

BASCOM-Experte
11. Jan. 2008
1.190
6
38
Lonsee
Sprachen
Hallo zusammen,

bei meinen Basteleien bin ich auf einen Punkt gestoßen den ich Euch nicht vorenthalten möchte.

Ich verwende sehr häufig LCD-Displays von electronic assembly vom Type EA DOG-M xxx. Egal ob 081 oder 162 oder 163. Wie im beigefügten Bild verwende ich die Standardbeschaltung bei einer Betriebsspannung von 5V im 4-Bit-Modus.

Nun kam ich auf die Idee, im Betrieb um Strom zu sparen das LCD-Display "hart" abzuschalten. Dies wollte ich über eine Transistorstufe realisieren welche mir den Pin(26) VDD schaltet. Dabei stellte ich - wie kann es auch anders sein - BackPowering fest da sich das Modul die notwendige Spannung "fast" gänzlich über andere Wege "organisiert".

Folgendes habe ich durch Tests herausgefunden welches auch durch electronic assembly so bestätigt wurde:

VDD, VIN, VOUT, PSB, D0..D3, RESET müssen komplett an die über Transistor geschaltete Versorgungsspannung angeschlossen werden und zusätzlich muss sichergestellt werden, das D4..D7 auf VSS liegen.

So einfach wars dann doch nicht :eek: Wie üblich halt :rolleyes:

Um nicht kampflos aufzugeben habe ich aus meiner Schaltung gleich die Transistorstufe rausgeschmissen. Somit spare ich zwar keinen Strom aber Geld. Darüber hinaus habe ich die Display-Off-Funktion des LCD-Controllers umgesetzt.
Das EADOGMxxx geht dabei in eine Art Ruhestrommodus / Schlafmodus und verbraucht dadurch weniger Strom. Vorteil dieser Lösung ist, dass das Display sein Gedächtnis behält und nach erneutem Einschalten den korrekten Display-Inhalt wieder anzeigt. Somit ist keine Reinitialisierung nach Abschalten notwendig. Auch nicht schlecht, gell.

Jetzt wird's zwar für Das Forum Elektronik-Bauelemente OffTopic aber zur Vollständigkeit hänge ich den relevanten BASCOM-Code hier noch an.



CodeBox Bascom

'---------------------------------------------------------------------
' LCD - Gosub-Routine: Lcd_display_ein
' Routine schaltet das gesamte Display ein
'---------------------------------------------------------------------
Lcd_display_on:
' Instruction Display ON/OFF gemäß LCD Befehlskatalog
_temp1 = &B00001100
!Call _Lcd_control
Return
'-- End Lcd_display_ein ----------------------------------------------

'--------------------------------------------------------------------
' LCD - Gosub-Routine: Lcd_display_aus
' Routine schaltet das gesamte Display aus
'--------------------------------------------------------------------
Lcd_display_off:
' Instruction Display ON/OFF gemäß LCD Befehlskatalog
_temp1 = &B00001000
!Call _Lcd_control
Return
'-- End Lcd_display_ein -----------------------------------------------


Achtung: Häufig findet man die Kommunikatiom mit dem LCD auch über die Routine "rCall _Lcd_control" umgesetzt. Dabei kann man sich selber "ins Knie schießen" :D
rCall sollte durch Call ersetzen werden. rCall ist ein relavtiver Sprung welcher nur über 2kByte Zeilen geht. Bei größerem Code z.B. bei ATmega64 oder ATmega128 usw. kann es sein, dass die LCD-Lib Aufgrund der Code-Größe außerhalb des Bereichs liegt und deshalb nicht mehr angesprungen werden kann.
BASCOM liefert dann den Fehler: Error 220: Forward jump out of range
Also besser gleich Call und dann ist man auf der sicheren Seite!


Grüße,
Markus
 

Anhänge

  • EADOGMxxx-A_5V_4Bit.gif
    EADOGMxxx-A_5V_4Bit.gif
    24 KB · Aufrufe: 38
Diesen Beitrag hab ich erst mal in das FAQ-Verzeichnis mit aufgenommen weil
man sich auf diese Art mit Sicherheit auch andere Displays zerschießen kann.
Durch das Fehlen der Betriebsspannung versorgt sich das Display über die
Schutzdioden der Pins, die für die Datenleitungen und Steuersignale zuständig
sind. Oder es werden auf dem Chip vorhandene Halbleiterübergänge sozusagen
"zweckentfremdet". Das kann gutgehen wenn die Entwickler den Chip etwas
großzügiger dimensioniert haben. Aber es kann genausogut in Halbleiterschrott
enden.

Das ganze gilt natürlich nicht nur für Displays sondern auch für andere Chips.
Wenn man zB bei einem Mikrocontroller die Betriebsspannung vergißt kann
er sich evtl genauso aus seinen übrigen Leitungen fremdversorgen.

Das sieht Chip-intern folgendermaßen aus ...

Vcc----|<----Pin----|<----GND

Die beiden Dioden sollen normalerweise ein zu hohe oder zu niedrige Spannung
am Pin zu den Versorgungsspannungen hin kurzschließen. Wenn man also eine
Spannung größer Vcc oder kleiner GND anschließt und den Strom nicht
begrenzt dann himmelt man sich diese Schutzdioden oder sogar gleich den
gesamten Chip. Wenn man jetzt Vcc vergißt aber an einem Pin einen digitalen
High-Pegel (zB +5V) anschließt, dann fließt ein Strom vom Pin über die obere
Diode zum Chip-internen Vcc und versorgt ihn damit über den Pin und die
Diode fremd. Wenn wenig Strom fließt kann das gut gehen. Bei größeren
Strömen (bei größeren Chips schnell erreicht) fliegt einem das Ding um die
Ohren. Vor allem wenn man dann über andere Pins noch LED oder anderes
Zeugs mit versorgt liegt man ganz schnell bei mehreren zig Milliampere.
Identisches gilt natürlich auch bei vergessenem GND-Anschluß.

Zu den chipinternen Halbleiterübergängen. Ein Halbleiterchip ist keine
Schaltung wie man sie auf einer Platine aufbaut. Es werden auf einem
Halbleiterkristall durch das Einbringen von Fremdatomen Sperrschichten
erzeugt und damit zB auch Leiterbahnen. Die sind dann nur von anderen
Bereichen elektrisch getrennt weil die Spannung in entsprechender Richtung
anliegt. Wenn man also Pins "vergißt" oder Pins falsch anschließt kann es
vorkommen das auf dem Chip diese designtechnisch vorhandenen "Dioden"
auf einmal durchschalten und Bereiche verbunden sind, die es besser nicht
sein sollten. Es gibt auch Leiterbahnen die über Metalloxide isoliert sind.
Aber es sind nicht alle Leiterbahnen über diese Metalloxide von den anderen
Teilen isoliert. Manche sind nur über entsprechend erzeugte Sperrschichten
abgetrennt.

Als Warnung für alle, die sich das Leben einfach machen wollen :D

Gruß
Dino
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)