houhei84541 发表于 2012-6-11 13:55:26

RC522无法读写NXP原装S50卡

我用RC522做了一个板子,单片机用的STC12LE5616,读写复旦的S50钥匙卡没问题,但是读写NXP的S50卡大卡就不行,不知道是什么原因。代码都是在论坛里找的示例程序修改过来的,在程序里面加了一些串口打印输出,发现两种卡在读卡的时候,调用PcdComMF522通信函数时,
if (Command == PCD_TRANSCEIVE)
    {    SetBitMask(BitFramingReg,0x80);}

//    i = 600;//根据时钟频率调整,操作M1卡最大等待时间25ms
i = 1000;
    do
    {
      n = ReadRawRC(ComIrqReg);
                TxData_com(n);   在这里我把n值打印出来      
      i--;
    }
    while ((i!=0) && !(n&0x01) && !(n&waitFor));
我把n的值从串口打印出来,发现能读的卡会执行三次do,打印出n分别为04 44 64,不能读的卡只执行了两次do,打印出来的n分别为04 64。
两种卡都是S50卡,差别就是一个原装一个副厂,一个是大卡,一个是钥匙扣卡。副厂的能读写,原装的就不行了。实在是找不出原因来,希望大家能帮帮忙。

youmeng 发表于 2013-5-27 10:33:19

跟你一个现象,但我只有打卡,读出来的值是04 64

fwluck 发表于 2013-6-7 09:57:14

你们没说明白。
S50是一个标准,没有大小。
如果是有类型能读有的不能是,是程序的事。
如果钥匙扣的,和标准大小不同的有的能有的不能则是电路和卡的因素。据说小卡与标准有区别。
还有国人独有的上海卡,只是加密稍有不同。

nuoya 发表于 2013-6-13 14:43:48

很可能是射频IC内的参数设置不能,看一下输出阻抗部分!
页: [1]
查看完整版本: RC522无法读写NXP原装S50卡