Ejemplo n.º 1
0
        static void ReadTypeB(Pn532 pn532)
        {
            //ushort[] Regs = new ushort[11] { 0x633C, 0x6302, 0x6303, 0x6308, 0x6309, 0x6316, 0x6317, 0x6318, 0x6319, 0x630E, 0x6305 };
            //byte[] toWrite = new byte[11] { 0x10, 0x83, 0x83, 0x85, 0x4D, 0x69, 0xFF, 0x3F, 0x10, 0x00, 0x07 };
            //pn532.WriteRegister(Regs, toWrite);
            //pn532.WriteRegister(new ushort[] { 0x6305 }, new byte[] { 0x0C });
            //Regs = new ushort[4] { 0x633A, 0x6339, 0x6339, 0x6339 };
            //toWrite = new byte[4] { 0x80, 0x05, 0x00, 0x00 };
            //pn532.WriteRegister(Regs, toWrite);
            //Span<byte> span = stackalloc byte[1];
            //bool ret;

            //ret = pn532.ReadRegister(new ushort[] { 0x633A }, span);
            //Console.WriteLine($"Read Fifo: {ret}, {BitConverter.ToString(span.ToArray())}");

            //pn532.WriteRegister(new ushort[] { 0x633D }, new byte[] { 0x80 });
            //span = (new byte[16]).AsSpan();
            //Regs = new ushort[16] { 0x6334, 0x6336, 0x633a, 0x6339, 0x6339, 0x6339, 0x6339, 0x6339, 0x6339, 0x6339, 0x6339, 0x6339, 0x6339, 0x6339, 0x6339, 0x633A };
            //ret = pn532.ReadRegister(Regs, span);
            //Console.WriteLine($"Read ATQB: {ret}, {BitConverter.ToString(span.ToArray())}");
            // Soft reset
            pn532.WriteRegister(0x6331, 0x0F);
            // IC Configuration
            pn532.WriteRegister(0x633C, 0x10);
            pn532.WriteRegister(0x6302, 0x83);
            pn532.WriteRegister(0x6303, 0x83);
            pn532.WriteRegister(0x6308, 0x85);
            pn532.WriteRegister(0x6309, 0x4D);
            pn532.WriteRegister(0x6316, 0x69);
            pn532.WriteRegister(0x6317, 0xFF);
            pn532.WriteRegister(0x6318, 0x3F);
            pn532.WriteRegister(0x6319, 0x10);
            pn532.WriteRegister(0x630E, 0x00);
            pn532.WriteRegister(0x6305, 0x07);
            //Start transceive
            pn532.WriteRegister(0x6331, 0x0C);
            // REQB/WUPB
            pn532.WriteRegister(0x633A, 0x80);
            pn532.WriteRegister(0x6339, 0x05);
            pn532.WriteRegister(0x6339, 0x00);
            pn532.WriteRegister(0x6339, 0x00);
            // ReadFIFOLEvel
            byte fifoLevel = 0;
            var  ret       = pn532.ReadRegister(0x633A, out fifoLevel);

            Console.WriteLine($"Fifo level: {ret}, {fifoLevel.ToString("X2")}");
            pn532.WriteRegister(0x633D, 0x80);
            fifoLevel = 0;
            ret       = pn532.ReadRegister(0x6334, out fifoLevel);
            Console.WriteLine($"CommIrqReq: {ret}, {fifoLevel.ToString("X2")}");
            ret = pn532.ReadRegister(0x6336, out fifoLevel);
            Console.WriteLine($"ErrReg: {ret}, {fifoLevel.ToString("X2")}");
            ret = pn532.ReadRegister(0x633A, out fifoLevel);
            Console.WriteLine($"ErrReg: {ret}, {fifoLevel.ToString("X2")}");
        }
Ejemplo n.º 2
0
        static void FixRegister(Pn532 pn532)
        {
            const int   MaxRead = 16;
            Span <byte> span;

            ushort[] reg = new ushort[MaxRead];
            // 03E0 9F CB 3C C0 5B 00 3B 8E CE 51 00 00 02 85 08 3E
            for (ushort i = 0; i < MaxRead; i++)
            {
                reg[i] = (ushort)(0x03E0 + i);
            }
            span = (new byte[16] {
                0x9F, 0xCB, 0x3C, 0xC0, 0x5B, 0x00, 0x3B, 0x8E, 0xCE, 0x51, 0x00, 0x00, 0x02, 0x85, 0x08, 0x3E
            });
            var ret = pn532.WriteRegister(reg, span);

            if (ret)
            {
                Console.WriteLine($"1 reg ok");
            }
            // 03F0 81 3E 81 3E 81 00 00 00 00 00 00 00 00 00 00 AC
            for (ushort i = 0; i < MaxRead; i++)
            {
                reg[i] = (ushort)(0x03F0 + i);
            }
            span = (new byte[16] {
                0x81, 0x3E, 0x81, 0x3E, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAC
            });
            ret  = pn532.WriteRegister(reg, span);
            if (ret)
            {
                Console.WriteLine($"2 reg ok");
            }
            //  07E0 9F CB 3C C0 5B 51 00 00 02 85 08 3E 81 3E 81 3E
            for (ushort i = 0; i < MaxRead; i++)
            {
                reg[i] = (ushort)(0x07E0 + i);
            }
            span = (new byte[16] {
                0x9F, 0xCB, 0x3C, 0xC0, 0x5B, 0x51, 0x00, 0x00, 0x02, 0x85, 0x08, 0x3E, 0x81, 0x3E, 0x81, 0x3E
            });
            ret  = pn532.WriteRegister(reg, span);
            if (ret)
            {
                Console.WriteLine($"3 reg ok");
            }
            // 07F0 81 3E 81 3E 81 00 00 00 00 00 00 00 00 00 00 AC
            for (ushort i = 0; i < MaxRead; i++)
            {
                reg[i] = (ushort)(0x07F0 + i);
            }
            span = (new byte[16] {
                0x81, 0x3E, 0x81, 0x3E, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAC
            });
            ret  = pn532.WriteRegister(reg, span);
            if (ret)
            {
                Console.WriteLine($"4 reg ok");
            }
            // 6100 00 00 00 04 00 20 43 00 00 04 00 00 00 01 00 00
            for (ushort i = 0; i < MaxRead; i++)
            {
                reg[i] = (ushort)(0x6100 + i);
            }
            span = (new byte[16] {
                0x00, 0x00, 0x00, 0x04, 0x00, 0x20, 0x43, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00
            });
            ret  = pn532.WriteRegister(reg, span);
            if (ret)
            {
                Console.WriteLine($"5 reg ok");
            }
            // 6320 00 00 00 00 00 80 40 80 00 00 03 88 FF 00 03 00
            for (ushort i = 0; i < MaxRead; i++)
            {
                reg[i] = (ushort)(0x6320 + i);
            }
            span = (new byte[16] {
                0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x80, 0x00, 0x00, 0x03, 0x88, 0xFF, 0x00, 0x03, 0x00
            });
            ret  = pn532.WriteRegister(reg, span);
            if (ret)
            {
                Console.WriteLine($"6 reg ok");
            }
            // 80E0 9F CB 3C C0 5B 51 00 00 02 85 08 3E 81 3E 81 3E
            for (ushort i = 0; i < MaxRead; i++)
            {
                reg[i] = (ushort)(0x80E0 + i);
            }
            span = (new byte[16] {
                0x9F, 0xCB, 0x3C, 0xC0, 0x5B, 0x51, 0x00, 0x00, 0x02, 0x85, 0x08, 0x3E, 0x81, 0x3E, 0x81, 0x3E
            });
            ret  = pn532.WriteRegister(reg, span);
            if (ret)
            {
                Console.WriteLine($"7 reg ok");
            }
            //  80F0 81 3E 81 3E 81 00 00 00 00 00 00 00 00 00 00 AC
            for (ushort i = 0; i < MaxRead; i++)
            {
                reg[i] = (ushort)(0x80F0 + i);
            }
            span = (new byte[16] {
                0x81, 0x3E, 0x81, 0x3E, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAC
            });
            ret  = pn532.WriteRegister(reg, span);
            if (ret)
            {
                Console.WriteLine($"8 reg ok");
            }
        }