www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik USB + PIC + LCD mit 2xKS0108 = Chaos?


Autor: Florian D. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich stelle mein Problem einfach mal ein wenig klarer da:

Ich benutze einen PIC18F2550, der direkt über USB gespeist wird. An
PORTA hängen Reset, CS1, CS2, Enable, R/W und D/I des Displays. An
PORTB hängt der Datenbus des Displays. An RC0 hängt über einen FET die
Hintergrundbeleuchtung des LCD.

Das ganze hängt an einem USB-Hub. Laut USB-Doku soll jeweils ein
Einheitsstrom von 100mA pro Anschluss zur Verfügung stehen. Die
Beleuchtung zieht zwar ~150mA, scheint aber tadellos zu funktionieren,
ohne dass die Versorgungsspannung einbricht.

Ein einfaches Programm, dass das Display blinken lässt, funktioniert
erstklassig.

Wenn ich nun auf die Idee komme, das Display nach dem Busy-Zustand
abzufragen, scheint sich der PIC selbst zu resetten (Watchdog,
Brown-Out, MCLR ausgeschaltet). Mir ist absolut schleierhaft, weshalb
das passiert. In der Versorgungsspannung sehe ich keine Spitzen; der
Oszillator scheint einzubrechen. Ich habe versucht, einen externen 40
MHz-Oszillator zu verwenden. Dabei sprang der PIC schlecht an. Mit einem
4 MHz-Quarz war das Ergebnis ähnlich. Jetzt nun, mit einem 16 MHz-Quarz
läuft der PIC sauber, bis man das Display ansprechen möchte; auch erst
dann, wenn man eine der beiden Chip-Select-Leitungen des Displays
setzt.

Gibt es vielleicht von Eurer Seite Tips, wie man soetwas am besten
entstört? Ich denke mal, dass der DC/DC-Wandler des Displays und die
Taktung des Displays selbst irgendwelche Störungen ausstrahlen. Kann es
sein, dass man dies vielleicht noch zusätzlich extern speisen sollte?

Vielen Dank im Voraus!

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Genügend Abblock-Kondensatoren vorhanden?

Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sicher, das sich der PIC resetet und nicht nur die USB-Verbindung
unterbrochen wird? Eventuell dauert dein busy polling zu lange, hast du
die USB-Firmware selbst geschrieben oder benutzt du was fertiges von
Microchip?

Versuche mal, die Beleuchtung auf 100mA zu reduzieren. Wie hoch ist die
Gesamtkapazität, die an den +5V vom USB hängen? Bei mehr als 10µF kann
es Probleme geben.

Thorsten

Autor: Florian D. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der USB-Transceiver ist sogar ausgeschaltet. Es sieht so aus, als würde
den PIC immer dann wegfliegen, wenn ich die Enable-Leitung hochziehe
und Chip-Select gesetzt ist. Ohne CS auch kein Reset. In genau diesem
Moment soll das Display die Daten an den Datenbus anlegen. Alles, was
ich noch sehe, ist ein kurzer Spike auf der Enable-Leitung. Der Port
ist aber auf jeden Fall als Input geschaltet.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.