Forum: Mikrocontroller und Digitale Elektronik Chipcard


von HDW (Gast)


Lesenswert?

Hallo

Wie versorgt man eine Goldwafercard (PIC16F84) mit dem Takt?
Hier gibts die Pin-Belegung:
http://www.cardic.com.tw/pro-05-e.htm


mfg   Wolfram Hildebrandt

von Steffen (Gast)


Lesenswert?

Über C3-Clock (mit RB6 parallel).

MfG
Steffen

von HDW (Gast)


Lesenswert?

Das ist schon klar.
Aber wie geht das?.
Normalerweise habe ich ja einen Keramikschwinger oder Quarzoszillator 
mit zwei Pins am PIC. Jetzt sind aber ein Oszill.Pin und ein Port 
zusammengeschaltet. Wie geht das da?

von Steffen (Gast)


Lesenswert?

Entweder Du baust einen Oszilator mit ein paar Bauteilen diskret auf 
oder nimmst gleich einen fertigen.
Schau mal unter www.jauch.de. Die haben ein riesiges Angebot.
Bei Conrad gibt´s die natürlich auch.

MfG
Steffen

von Steffen (Gast)


Lesenswert?

Die Card wird doch mit Sicherheit durch eine andere Schaltung 
ausgelesen.? Den Takt könnte man dann aus der Schaltung "abzweigen".

MfG
Steffen

von HDW (Gast)


Lesenswert?

Hallo

Ich wollte zu Testzwecken nur mal den I/O-Port auf H schalten.
Bei diesem merkwürdigen Oszillatoranschluss kann ich mir aber nicht 
vorstellen, wie man welche Art von Taktgeber anschließen soll.
Ein Kermamikschwinger geht so z.B. nicht, da dieser zwei 
Oszillatoranschlüsse braucht.
Was benutzt man denn üblicherweise als Taktgeber?


mfg   Wolfram Hildebrandt

von Steffen (Gast)


Lesenswert?

Das sind komplette Taktgeber, meist mit 4 Anschlüssen. 1x nicht belegt, 
Takt, Betriebsspannung und Masse.

Betriebspannung anschließen und Taktausgang mit dem Takteingang der Card 
verbinden.

Nun klar?

MfG
Steffen

von HDW (Gast)


Lesenswert?

Ich glaube, du meinst fertige Quarzoszillatoren.
So einen habe ich momentan nicht auf Lager.
4Mhz sollten doch ausreichen, oder?


mfg   Wolfram Hildebrandt

von Steffen (Gast)


Lesenswert?

Der integrierte PIC läuft mit 0..6 MHz. Also 4MHz sind ok. Nur was 
bringt es den I/O-PIN auf High zu legen?

Wenn der PIC bereits programmiert ist, könnten nach einem High-Impuls 
dann evtl. Daten rauskommen (wenn das Protokoll so implementiert ist). 
Wenn er noch nicht programmiert ist, dann passiert gar nichts.

Geht es vielleicht um eine Pay-TV Card?

MfG
Steffen

von HDW (Gast)


Lesenswert?

Hallo

Den PIC in der Karte wollte ich nur testweise auf H setzen. Einfach, um 
erkennen zu können, ob das Programm richtig auf den PIC übertragen 
wurde.
Ich wollte ein Codeschloss mit Chipkarte bauen, dass einen Türöffner 
anteuert. Der PIC in der Karte sollte dann einem anderen PIC eine 
bestimmte Bit-Folge geben, die das Codeschloss öffnet. Mit Primiere hat 
dies nichts zu tun. Aber egal.

Was mich da nur wundert, ist dass der Keramikschwinjger nicht 
funktioniert. Ein PIN an pos.Spannung, 1 PIN an Masse, dritte PIN an 
Takteingang. Doch nichts tut sich.
Ich denke, dass das Testprogramm richtig gebrannt wurde. Der I/O-Pin 
gibt aber 1,4V anstatt 5V aus.

von Steffen (Gast)


Lesenswert?

Keramischwinger? Das funktioniert freilich nicht. Die Takterzeugung 
funktioniert nur mit einer Oszilatorschaltung.

Probeweise kannst Du einen anderen PIC mit dem Keramkschwinger 
beschalten (Spannungsversorgung nicht vergessen) und als Taktquelle 
verwenden. Den Taktausgang (OSC2 vom PIC) dann einfach mit Clock 
verbinden.
Ist zwar nicht so ganz den Spezifikationen entsprechend sollte aber zum 
Testen gehen.

MfG
Steffen

von HDW (Gast)


Lesenswert?

Hallo

Der Tip mit dem zweiten PIC funktioniert ganz gut.

Komisch ist nur, dass der PIC auf der Karte, der laut Programm den 
I/O-Pin auf H legen soll, dies nur dann tut, wenn man die Karte aus der 
Kontaktienrichtung zieht und diese dann wieder zurücksteckt.
Beim normalen Start (PIC für Takt und Goldwafer angeschlossen) gibt der 
I/O-Pin Low-Potential aus.
Wenn ich am Anfang eine Verzögerung einbaue, geht der I/O-Pin beim 
Einschalten der Spannungsversorgung nach dieser Wartezeit auf L, anstatt 
auf H. Wird die Karte dann rein-und rausgesteckt, wechselt der Pin wie 
vorgesehen nach 250ms auf H.
Reset bringt keine Änderung im Verhalten.

Wie ist das zu erklären?


mfg   Wolfram Hildebrandt

von Steffen (Gast)


Lesenswert?

Hallo Wolfram,

ich glaube Du hattest das Programm schon mal gepostet, ich finde es 
gerade nur nicht. Könntest Du es noch mal reinstellen?

MfG
Steffen

von HDW (Gast)


Angehängte Dateien:

Lesenswert?

Hallo

Hier der Programmcode.

Bei einem normalen PIC ohne Chipkarte keine Probleme.

von Steffen (Gast)


Lesenswert?

Das Problem ist, das RB6 und OSC1 zusammengeschaltet sind. In dem 
Programm stetzt Du alle Pins von PortB als Ausgang und gibst Low aus. 
Also liegt auch an OSC1 Low-Pegel an. Dadurch wird der Takt 
"kurzgeschlossen".

Mit "01xxxxxxb" in trisb sollte es funktionieren.

Nochmal kurz zum Takt da kannst Du auch einen RC-Oszilator (Beschaltung 
etc. im Datenblatt) verwenden wenn es nicht so genau sein muss.

MfG
steffen

von HDW (Gast)


Lesenswert?

Hallo

Genau das war das Problem. Da habe ich wohl beim programmieren 
geschlafen.

Vielen Dank.

mfg  Wolfram Hildebrandt

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.