Forum: Mikrocontroller und Digitale Elektronik ICL 7660 Spannungsinverterschaltung


von Patrick S. (patrick_s)


Lesenswert?

Habe folgendes Problem:

Baue gerade eine Funkuhr mit einem LCD Display. Mein µC funktioniert nur 
mit 3.3V darum brauche ich eine negative Kontrastspannung(-3.3V) für LCD 
Display.

Ich benutze dafür den ICL 7660, habe schon ins Datenblatt geguckt aber 
irgendwie check ich nicht welche Schaltung ich nehmen soll für den 
Spannungsinverter!

Ich hoffe mir kann einer von euch weiterhelfen! Dank im Vorraus!

von (prx) A. K. (prx)


Lesenswert?

Erste Seite, "Typical Operating Circuit".

von H. L. (Gast)


Lesenswert?

Auf dieser Seite ist das mit dem ICL7660 gut beschrieben:
www.sprut.de/electronic/lcd/index.htm#strom

von usuru (Gast)


Angehängte Dateien:

Lesenswert?

Du kannst auch einen Ausgang Deines µC mittels PWM-Modul auf 
"Dauerfeuer" stellen und ohne zusätzlichen Chip eine neg. 
Kontrastspannung erzeugen.

von Uwe (de0508)


Lesenswert?

Hey usuru,

 wo hatte ich den das mal Veröffentlicht ?

von Patrick S. (patrick_s)


Lesenswert?

> Du kannst auch einen Ausgang Deines µC mittels PWM-Modul auf
>"Dauerfeuer" stellen und ohne zusätzlichen Chip eine neg.
>Kontrastspannung erzeugen.

Geht darum nicht, da der µC jetzt schon extrem belastet wird!
Im Sinne, dass mein Programm so programmiert ist, dass er immer 3 
Aufgaben zugleich zu tun hat (alles über interrupts) keine Rechenzeit 
wird verschenkt

von H. L. (Gast)


Lesenswert?

Das PWM Modul muss nur an Anfang initialisiert werden, dann läufte es 
von alleine.

von Bernhard S. (b_spitzer)


Lesenswert?

Ist ein MAX232 mit auf dem Board?? Dann den Kontrastpoti an die V-- des 
MAX232 klemmen.

von Lars (Gast)


Lesenswert?

Welchen uC verwendest du? Und welche 3 Aufgaben musst du erfüllen, dass 
du nicht mal die Zeit hast um ein Rechtecksignal auszugeben?

von usuru (Gast)


Lesenswert?


von Patrick S. (patrick_s)


Lesenswert?

Ich verwende den µC PIC18F46K20

Er muss ein DCF77 Signal auswerten zugleich muss durch Interrupts an 
Timer 0 der schon mit einem Wert vorgeladen ist Interrupts im 
Sekundentakt auslesen und es wäre gut, dass die Uhr gleichzeitig immer 
auf dem LCD Display konstant mitläuft!

von Patrick S. (patrick_s)


Lesenswert?

Ein MAX 232 ist leider nicht auf meinem Board

von spontan (Gast)


Lesenswert?

Sieht nicht so aus, als ob der µC an die Leistungsgrenze kommt, eher 
nicht.

von Patrick S. (patrick_s)


Lesenswert?

Das Problem ist nicht die Leistungsgrenze sondern nur, dass er fast 
alles zu gleich machen muss!

von Patrick S. (patrick_s)


Lesenswert?

Noch eine weitere Frage dieses Problem ist noch aufgetreten

Ich habe folgenden Uhrenquarz:

http://www.reichelt.de/Uhrenquarze-SMD-Gehaeuse/32-768-MS1V-12-5/3/index.html?;ACTION=3;LA=446;ARTICLE=85040;GROUPID=4005;artnr=32%2C768+MS1V-12%2C5;SID=12UQlZ8n8AAAIAAG0vwXwa948cc37bbfad8ffe0059b2844836511

Ich möchte ihn an Timer 0 vom PIC18F46K20 betreibern das wäre PIN 6 PORT 
RA4 wenn ich nicht falsch liege.

Ich habe aber nur ein PIN zur Verfügung, mit welcher externen 
Beschaltung muss ich diesen Quarz an dieses PIN schalten damit er 
reibungslos anschwingt und dann mit seiner konstanten Frequenz schwingt?

von MaWin (Gast)


Lesenswert?

> Ich habe aber nur ein PIN zur Verfügung

Tja, dann geht es eben nicht.

Du wirst schon einen ganzen Oszillator nehmen müssen:

http://de.farnell.com/epson-toyocom/sg-3030jc/oszillator-32-768khz/dp/1278043

von tt2t (Gast)


Lesenswert?


von Lars (Gast)


Lesenswert?

Wie wär's damit: http://de.wikipedia.org/wiki/Pierce-Schaltung

Man könnte das Ausgangssignal nach einem Buffer auch für die 
Ladungspumpe verwenden.

Normal hängt man den Uhrenquarz an den sekundären Oszillator (RC0 RC1) 
und verwendet Timer1. Dann könnte man auch den internen Oszillator für 
die CPU verwenden, und die Pins für den primären Oszillators als IOs 
verwenden.
Du könntest auch den Uhrenquarz als primären Oszillator verwenden, wenn 
dir der PIC dann nicht zu langsam wird.

Wenn das DCF77 Modul die ganze Zeit läuft, könnte man den 1 Hz Takt für 
die Uhr auch aus diesem Signal gewinnen.

von Lars (Gast)


Lesenswert?

Wenn du das Rechteck für die Ladungspumpe an einen IO ohne PWM Modul 
ausgeben willst, dann könntest du einen Timer mit Prescaler verwenden 
und bei jedem Interrupt den Pin toggeln, was ja nur 1 ASM-Befehle (BTG) 
ist. Vorladen musst du den Timer nicht, da die genaue Frequenz nicht so 
kritisch ist.

von Dennis H. (t1w2i3s4t5e6r)


Lesenswert?

Patrick Schwarz schrieb:
> Er muss ein DCF77 Signal auswerten zugleich muss durch Interrupts an
> Timer 0 der schon mit einem Wert vorgeladen ist Interrupts im
> Sekundentakt auslesen und es wäre gut, dass die Uhr gleichzeitig immer
> auf dem LCD Display konstant mitläuft!

Das ist doch aber nicht wirklich viel zu tun. Ich denke, du hast etwas 
falsche Relationen. Für dich als Mensch wäre das einiges zu tun, weil du 
es wirklich gleichzeitig machen müsstest. Beim µC ist das anders. Für 
diese Aufgaben, die du genannt hast, braucht er vielleicht 200Takte, 
habe ich jetzt einfach mal grob geschätzt. Bei internen 8Mhz dauert ein 
Takt 125ns (Nanosekunden). Das mit den grob geschätzten 200Takten 
multipliziert macht 25µs(mikrosekunden). Innerhalb dieser Zeit kannst du 
nichtmal zwinkern. Und nach diesen 25µs wartet er wieder nur sinnlos auf 
den nächsten Interrupt, der eine Sekunde später kommt. In meiner 
Rechnung habe ich jetzt nicht mit bedacht, das ein LCD auch mal ein paar 
Pausen von ein paar µs braucht, um Befehle auszuführen, aber selbst 
diese Zeit bekommst du als Mensch gar nicht mit. Auch wenn der µC alles 
nacheinander macht, so kommt es dem Menschen vor, als würde er alles 
gleichzeitig machen. Wenn du mit einem Taster z.B. durch ein Menü auf 
dem LCD schalten willst und der µC erst 5ms(Millisekunden) nach dem 
Tastendruck reagiert, fühlt sich das für dich als Mensch immer noch so 
an, als hätte er direkt auf meinen Tastendruck reagiert. Tatsächlich hat 
er aber innerhalb dieser Zeit 40.000 Takte was anderes gemacht. Es ist 
also alles halb so wild, was dein µC bis jetzt machen muss.

MfG Dennis

von Patrick S. (patrick_s)


Lesenswert?

Lars schrieb:
> Wie wär's damit: http://de.wikipedia.org/wiki/Pierce-Schaltung
>
> Man könnte das Ausgangssignal nach einem Buffer auch für die
> Ladungspumpe verwenden.
>
> Normal hängt man den Uhrenquarz an den sekundären Oszillator (RC0 RC1)
> und verwendet Timer1. Dann könnte man auch den internen Oszillator für
> die CPU verwenden, und die Pins für den primären Oszillators als IOs
> verwenden.
> Du könntest auch den Uhrenquarz als primären Oszillator verwenden, wenn
> dir der PIC dann nicht zu langsam wird.
>
> Wenn das DCF77 Modul die ganze Zeit läuft, könnte man den 1 Hz Takt für
> die Uhr auch aus diesem Signal gewinnen.

Das Problem ist dass Timer 1 schon verwendet wird, den internen nehme 
ich nicht so gerne, und zu drei der PIC wird mir dadurch zu langsam, da 
das DCF 77 Modul anhand von 100 bzw. 200ms ausgewertet wird!

von usuru (Gast)


Lesenswert?

> Das Problem ist dass Timer 1 schon verwendet wird, den internen nehme
> ich nicht so gerne, und zu drei der PIC wird mir dadurch zu langsam, da
> das DCF 77 Modul anhand von 100 bzw. 200ms ausgewertet wird!

Im Datenblatt ist ein Code-Beispiel für eine RTC mit dem Timer1 
angegeben. Timer2 und Timer3 sind auch 16-bit-Timer, der Timer3 ist dem 
Timer1 fast identisch, Timer2 kannst Du für PWM nehmen.

Der PIC wird Dir zu langsam? Das ist ja wohl lachhaft, der PIC läuft bis 
zu 64 MHz, der hat die meiste Zeit nix zu tun!

Und für die PWM hats Du wirklich keinen Ausgang von den 40 Pins mehr 
frei???

von Stampede (Gast)


Lesenswert?

Interner OSC, den Taktausgang für die Ladungspumpe als Inverter nutzen.
Der PIC46k20 ist mit seinen 16MIPS schon eher ein Rechenmonster, da habe 
ich schon deutlich komplexeres umgesetzt.

von Patrick S. (patrick_s)


Lesenswert?

> Der PIC wird Dir zu langsam? Das ist ja wohl lachhaft, der PIC läuft bis
> zu 64 MHz, der hat die meiste Zeit nix zu tun!

Falls ich ihn mit dem Uhrenquarz takten möchte so ist das gemeint

von bingo (Gast)


Lesenswert?

> Falls ich ihn mit dem Uhrenquarz takten möchte so ist das gemeint

Warum in alles in der Welt willst Du denn das tun? Warum nimmst Du dann 
einen solchen PIC?

Du hast dich da in eine Sackgasse verrannt. Mach mal einen "harten 
Reset" und fang wieder bei null an.

von Patrick S. (patrick_s)


Lesenswert?

Ich habe diesen PIC gerade zur Hand

>Und für die PWM hats Du wirklich keinen Ausgang von den 40 Pins mehr
>frei???

Dazu, ich habe noch fast den halben PORTB frei

von Lars (Gast)


Lesenswert?

Du kannst auch dem Timer 3 mit externem Uhrenquarz betreiben

von Patrick S. (patrick_s)


Lesenswert?

Ich finde bei der PIN Beschreibung vom PIC18F46K20 im DIL 40 Gehäuse 
keinen Timer 3

von Lars (Gast)


Lesenswert?

Wie wärs im Datenblatt auf Seite 169:
http://ww1.microchip.com/downloads/en/DeviceDoc/41303G.pdf

von usuru (Gast)


Lesenswert?

@ Patrick Schwarz (patrick_s)

Hast Du eigentlich schon mal mit diesem PIC gearbeitet, beherrschst Du 
so ganz banale Basisfunktionen wie LED ein/aus, Blinken (Ausgänge, div. 
Timer), Eingänge abfragen ??? Interrupts sind dann schon höhere Weihen!

von Patrick S. (patrick_s)


Lesenswert?

LED einschalten ausschalten kann ich die IO Ports richtig einstellen den 
AD Wandler bedienen, Interrupts programmieren ich muss zugeben mit PWM 
habe ich nocht nichts realisiert. Ich bin eine Anfänger und das 
behersche ich in C und Assembler nur möchte ich C verwenden, da 
Asemmbler komplex wird!

von Patrick S. (patrick_s)


Lesenswert?

Natürlich kann ich auch eingänge abfragen und Timre konfigurieren aber 
bis jetzt habe ich nur mit dem Timer 0 gearbeitet. (Ich bin noch beim 
Lernen ich bin erst 17)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.