Czytnik kart chipowych nie widzi mi karty.


Wreszcie po jakimś czasie znalazłem a raczej dostałem od pewnego kolegi kod w bascomie do czytania kart telefonicznych na chipy. Kod ogólnie działa, ale...
No właśnie jak zawsze jest ale. Nie widzi mi karty tak więc wgranie "niczego" czyli tylko zwarty (rozwarty) "sprawdzacz" włożonej do slotu karty powoduje że można otworzyć układ wszystkim.

Za każdym razem Id katy mam jednakowe i jest ono równe FFFFFFFFFFF. Pomożecie?
W załączniku kod bascoma.

-> Kod bascom <-

-> Film kolegi od którego mam kod <-

Nawet podpowiem że czytanie karty odbywa się tutaj:

   Id = 0
 
      Gosub Reset_chip                                      'wywołaj reset chipa
 
   For R = 1 To 6                                           ' odczytanie 6 razy po 7 bitów z karty
      For X = 0 To 7
        Gosub Adres
        A.x = Io
      Next X
      Ciag = Ciag + Hex(a)                                  'zapis odczytanych bitów w postaci szesnastkowego ciagu
   Next R
 
   Ciag = Mid(ciag , 2 , 11)                                'usunięcie pierwszego znaku ciągu, bo zawsze jest 0
   Print "ID karty: " ; Ciag                                'wyswietl numer karty
    waitms 100
 
      Gosub Koniec
                                                'po odczycie przejdz do podprogramu koncowego
 End If
 Waitms 50
Loop                                                        'pętla
End                                                         'koniec programu
 
Reset_chip:                                                 'procedura resetu chipa
   Res = 1
   Delay
   Clk = 1
   Delay
   Clk = 0
   Delay
   Res = 0
   Delay
 
Return
                                                           'procedura odczytu bitów
Adres:
   Res = 0
   Delay
   Clk = 1
   Delay
   Clk = 0
   Delay
Return

Ale nie wiem co jest? Może za szybko procek komunikuje się z kartą bo taktuję go 8MHz. Może powinienem użyć kwarcu zegarkowego? Bodajże 32kHz z czymś.

Macie może jakieś linki co do lektury? Żeby trochę o tym poczytać.




Portret użytkownika mirley

Re: Karta

To spróbuj dodać opóźnienie zamiast tego Delay..... tak na marginesie to nie za bardzo wiem jakie opóźnienie wprowadza ten Delay bo nie znam tego polecenia. Spróbuj np waitms xx.

Jak masz dostęp do protokołu kary chip i wiesz jak się ona komunikuje to popatrz na czasy opóźnienia

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika matrix

Re: Czytnik kart chipowych nie widzi mi karty.

No właśnie najgorsze jest to że próbowałem wielu rzeczy. Polecenie delay wprowadza opóźnienie rzędu 1000us. Gdzieś wyczytałem że przerwy między kolejnymi stanami powinny wynosić od 5 do 25ms ale sprawdzałem i nic.

Wiem natomiast że do współpracy z kartą procek powinien być zdaje się taktowany zegarem 32,768kHz czyli ze standardowego kwarcu zegarkowego, a przynajmniej tak zbudowany jest układ o nazwie Autocerber który przedstawiony był w jednym z numerów EP (chyba 7/04).

Nawet mam program z tego autocerbera, ale to nie tylko czytnik kart, ale cały immobilizer do samochodu.