www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PIC 18F2550 und PS2 Tastaur


Autor: Ik4ru5 (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,


ich versuche an meine PIC 18F2550 eine PS2 Tastatur anzuschlien. Die 
Tastatur soll nur gelesen werden.


Ich hab bis jetzt nur versucht das Clock Signal der Tastatur abzufangen 
und zu lesen allerding verlässt der PIC die Unterroutine zum Checken der 
Clock nicht. Die Prüfung der auf High wird bestanden, was auch logisch 
ist da ja nach PS2 Standard der Ruhezustand der Leitung High ist. 
Allerding empfängt mein PIC kein Low Signal der Tastatur.

Ich hab Tastaur mehrmals am Computer geteste und sie funktioniert also 
kann nicht der grund für den fehler sein.

Auch die Hardware hab ich mehr mals geprüft und durch geklingelt 
allerdings konnte ich keinen Fehler in der Hardware finden.

Bilder von meiner Platine könnt ihr auf
http://www.ik4ru5.de ansehn ... hoffentlich erkennt ihr genug.

Erklärung der Bilder
CIMG2076.JPG:
- die oberen 4 Pins die zusammen gelötet sind liegen auf meiner 
Entwicklungs umgebung auf Masse
- die 4 weiteren Pins die zusammen gelötet sind liegen auf +5V
- gefolgt von der Clockleitung
- dann kommt die Datenleitung

CIMG2077.JPG
- die 4 rechten Pins sind Masse
- die 4 links von Masse sind +5V
- dann Clock
- dann wieder Data

CIMG2078.JPG
- rechts 4 Masse
- die 4 links von Masse wieder +5V
- dann Clock
- dann wieder Data


Die PS/2 Buchse ist von Reichelt Artikel-Nr: EB-DIO M06 Datenblatt ist 
bei Reicletverfügar 
(http://www.reichelt.de/?;ACTION=7;LA=6;OPEN=0;INDE...)... 
ich hoffe der Link geht



Vielen Dank im Vorraus

Ik4ru5

Autor: Ik4ru5 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Falls es noch hilfreich ist ich benutze eine alte Cherry PS/2 Tastatur
FCCID: GDDG83-6000
Model RS 6000
Part No.: G83-6105LPNDE/ 02
Serial NO.: G0064518 2K35 4 1

Mfg Ik4ru5

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
CALL  UP_PS2_clock_change

;*********************************************************************** 
*******
; Unterprogramme
  UP_clock_change


Da passt doch was nicht?

Autor: Ik4ru5 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oh sorry also das war nur ein fehler von zusammen fassen hatte no teile 
vom anderen Programm drinne und da hieß funktion noch UP_clock_change 
... also daran liegts net das is nur ein Tippfehler ... also einfach 
überlesen ;)

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>... also daran liegts net das is nur ein Tippfehler ... also einfach
>überlesen ;)

Den Rest am besten auch ignorieren.
Bis der Originalcode mal rüberkommt.

Autor: Ik4ru5 (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Keine ahnung was du damit sagen willst aber das is der Orginal Code.
Hab jetzt nochmal den Korregierten Code angehägt.

In dem anderen Code war nur noch meine LCD routinen drinne und da die 
funktioniren braucht ihr euch ja nich durch unnötigen Code zu welzen.


Mfg Ik4ru5

Autor: Meister Eder (edson)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>allerding verlässt der PIC die Unterroutine zum Checken der
>Clock nicht

Hast du das vermeintlich durch Messung an PORTB:6 festgestellt? Der und 
PORTB:7 sind nämlich standardmäßig vom OnChip-Debug belegt und müssen in 
den ConfigBits explizit als I/O freigegeben werden.

Grüße,
Edson

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Keine ahnung was du damit sagen willst aber das is der Orginal Code.

Ich möchte damit sagen das der zuerst gepostete Post
wohl kaum durch den Assembler gegangen ist. Der hätte
dir haufenweise Fehlermeldungen um die Ohren gehauen
und auf keinen Fall ein Programm generiert was du auch
nur annähernd getestet haben könntest.

Und ob der das mag weiß ich nicht:

  CLRF  PORTC        ; alle Pins von PORTC -> Ausg�nge
  CLRF  TRISC        ; PORTC komplett l�schen
  #DEFINE  ps2_data  PORTA,1 ; PS/2  Datenleitung
  #DEFINE  ps2_clock  PORTA,0  ; PS/2  Clockleitung

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ich möchte damit sagen das der zuerst gepostete Post

Ich möchte damit sagen das der zuerst gepostete CODE
.... ;)

Autor: Meister Eder (edson)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Holger

Meinst du die #defines im executable code? Die lässt MPASM tatsächlich 
so durchgehen. Im AbsoluteMode ist das manchmal sinnvoller, als einen 
riesigen Header voranzustellen oder es in ein include-File wegzupacken. 
Mehrere Files verarbeitet man bequemer im RelocatableMode(mit MPLINK).

Grüße,
Edson

Autor: Ik4ru5 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So für alle skeptiker ob der Code geht auf http://www.ik4ru5.de ist der 
Code noch ma geuppt als .asm und mit mpasm Assembliert mit der 
generierten .cod und .hex Datei und wer will sogar eine .lst


Mfg Ik4ru5

Autor: Meister Eder (edson)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ik4ru5 wrote:
> So für alle skeptiker

Hast du meine Beiträge überhaupt gelesen?

Grüße,
Edson

Autor: Ik4ru5 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja hab ich aber ich hab dich auch nich zu den skeptiken gezählt. Aber 
mein Problem liegt wahrscheinlich weniger an der Software. Wird wohl 
eher an der Hardware liegen und ich wäre super froh wenn mir jemand 
helfen könnte. Vielen dank schon ma


Ik4ru5

Autor: Meister Eder (edson)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schon ok. Die ConfigBits betreffen in Bezug auf PORTB direkt die externe 
Hardware. Beantworte doch bitte meine Frage, wie du den Fehler 
festgestellt hast. Per Messung an PORTB:6 oder benutzt du einen 
Debugger?

Grüße,
Edson

Autor: Ik4ru5 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich benutze keine Debugger und an PORTB:6 und PORTB:5 lass ich nur die 
LED Blinken um zu erkennen nach was er grade Prüft. Und es blinkt nur 
PORTB:6 also Prüft der nur auf Low und kehrt nicht auf High zurück.


Mfg ik4ru5

Autor: Meister Eder (edson)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, dann ist die OnChip-Debug Funktion deaktiviert, was sie ja auch sein 
sollte.

>Wird wohl eher an der Hardware liegen und ich wäre super froh
>wenn mir jemand helfen könnte.

Da ich keine Zeit und Lust habe mich in deine Bilder und die Verdrahtung 
reinzudenken, hier mein Tip:

Schließ mal nur +5V/GND an die Tastatur bzw. an deinem Stecker an und 
messe die Clock und Datenleitung nach. Wenn die Signale anliegen, kannst 
du sie wieder mit dem PIC verbinden. Sobald sie da anliegen, wo sie 
hinsollen, liegts nicht mehr an der Hardware. Oder fehlt es dir etwa an 
geeignetem Messinstrument?

Grüße,
Edson

Autor: Ik4ru5 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mir fehlt es in der tat an den geeigneten Mess Instrumenten aber ich 
versuche zurzeit an ein Oszilloskop zu kommen um genau das zu machen was 
du vorschlägst. Aber trotzdem danke für die hilfreichen Tipps. Ich werde 
mich nochmal melden wenn ich es hinbekommen hab und die Lösung des 
Problems bekannt geben


Mfg

Ik4ru5

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.