Liebe Leute, ich betreibe mit einem Atmega Bit Banging auf vier Open Drain Ausgängen und beobachte eine seltsame Kapazität. Hintergrund: Ich möchte ein 5110 LCD mit einem 5V-Arduino betreiben. Das Datenblatt des 5110 LCD (oder vielmehr des PCD8544-Controllers, http://www.sparkfun.com/datasheets/LCD/Monochrome/Nokia5110.pdf) sieht eine maximale Versorgungs- und IO-Spannung von 3.3V vor. Der Arduino hat einen 3.3V-Ausgang. Für die IO-Pins (CLK, DIN, D/C, RST) möchte ich einen Level-Shifter vermeiden. Meine Idee war also, die IO-Pins über einen Pullup zu den 3.3V zu ziehen, und auf dem Atmega über DDR zwischen Input-Hochohmig und Output-Low hin-und-herzuschalten. Das funktioniert mit dem LCD-Display aber nur bei einem Pullup von 4.7kΩ. Schon ein 10kΩ-Pullup verschmiert die 250kHz-CLK-Signale bis zur Unkenntlichkeit. Was ich beobachte ist folgendes: Schalte ich auf Output-Low, so fällt die Spannung sehr schnell auf 0V ab. Schalte ich aber auf Input-Hochohmig um, so braucht die Spannung bei 4.7kΩ ganze 2μs um auf die 3.3V anzusteigen! Dasselbe passiert wenn das LCD gar nicht angeschlossen ist, und auch bei Pullup zu 5V! Wie kommt das? Wo ist diese Kapazität von so etwa 100pf versteckt? LG, Sebastian
Sebastian W. schrieb: > Wie kommt das? Wo ist diese Kapazität von so etwa 100pf versteckt? 100p ist nicht wirklich viel, die kommen schnell mal allein durch Leiterzüge zustande. Und die Eingangskapazität der angeschlossenen Schaltung gibt's ja auch noch.
Sebastian W. schrieb: > Wie kommt das? Wo ist diese Kapazität von so etwa 100pf versteckt? 1:1 Tastkopf verwendet? c-hater schrieb: > 100p ist nicht wirklich viel, die kommen schnell mal allein durch > Leiterzüge zustande. bei 33-66pf/m Leitung für "normale" Wellenwiderstände brauchts da schon so 1-2 meter. Gruß Anja
Gaanz dumme Querfrage - Wie lange braucht denn der Pin allein, um von Aktiv auf Passiv zu schalten? Das hat ja nichts mit einer von außen messbaren Kapazität zu tun.
Anja schrieb: > 1:1 Tastkopf verwendet? Ja. Kann das bei 250kHz schon so viel ausmachen? besupreme schrieb: > Gaanz dumme Querfrage - Wie lange braucht denn der Pin allein, um > von Aktiv auf Passiv zu schalten? Das hat ja nichts mit einer von außen > messbaren Kapazität zu tun. Es scheint, als würde der Pin nicht sofort hochohmig, sondern würde erst noch ein wenig Strom aufnehmen um eine innere Kapazität zu laden. Ich habe mal einen minimalen Aufbau versucht und Pin PB1 eines Atmega328P bei 8MHz mit 2μs Output-Low 2μs Input-Hochohmig gepulst und mit 10kΩ zu VCC 5V gezogen:
1 | #include <avr/io.h> |
2 | |
3 | int main(void) { |
4 | while(1) { |
5 | DDRB |= 1<<DDB1; |
6 | __asm__("NOP\n\tNOP\n\tNOP\n\tNOP\n\tNOP\n\tNOP\n\tNOP"); |
7 | __asm__("NOP\n\tNOP\n\tNOP\n\tNOP\n\tNOP\n\tNOP\n\tNOP\n\tNOP"); |
8 | DDRB &= ~(1<<DDB1); |
9 | __asm__("NOP\n\tNOP\n\tNOP\n\tNOP\n\tNOP\n\tNOP\n\tNOP"); |
10 | __asm__("NOP\n\tNOP\n\tNOP\n\tNOP\n\tNOP"); |
11 | }
|
12 | }
|
Das Oszilloskop ist das DS1052E, laut Datenblatt "Input Impedance 1MΩ±2%, the input capacity is 18pF±3pF". Der Tastkopf steht jetzt auf 10:1 und ist neu kompensiert. Im Anhang ein Bild des Versuchsaufbau und die Wellenform. Kein schönes Rechteck, wirklich nicht. Nach meiner Schätzung werden 2.5V nach 1.9μs erreicht, die Zeitkonstante ist also 2.75μs und bei 10kΩ damit die Kapazität sogar 275pF! Was geht hier vor ??? LG, Sebastian
Naja, die Displayeingänge wollen sicher auch ein bischen Strom sehen, sprich sind Kapazitiv. Bei 3,3V und 4k7 fliessen maximal 0,7mA. Damit machst du keine grossen Sprünge.
Sebastian W. schrieb: > mit 10kΩ zu VCC 5V gezogen: Also für mich sieht der 3. Ring gelb aus, d.h. 100k bzw. 27pF.
Peter Dannegger schrieb: > Sebastian W. schrieb: >> mit 10kΩ zu VCC 5V gezogen: > > Also für mich sieht der 3. Ring gelb aus, d.h. 100k bzw. 27pF. Uh, oh. Tatsächlich. Mit 10kΩ werden 2.5V nach 180ns erreicht -> 28pF. Danke, und Asche auf mein Haupt. LG, Sebastian
Sebastian W. schrieb: > Ja. Kann das bei 250kHz schon so viel ausmachen? Ja, weil die Anstiegszeit ja mit der Grundfrequenz nur indirekt zu tun hat. Am besten gleich angewöhnen für Digitalzeugs einen 1:10 Tastkopf zu verwenden.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.