Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

atMega128 & TRF7960 cannot read ISO14443A tag

Status
Not open for further replies.

heronx

Newbie level 4
Joined
Jun 3, 2009
Messages
6
Helped
1
Reputation
2
Reaction score
1
Trophy points
1,283
Activity points
1,323
trf7960

Hello,
I'm working with atmega128 and RFID chip TRF7960. I'm trying to read tag from Mifare card (ISO14443A) but without success. I can read and write registers in TFR7960 but cannot communicate with tag. My RFID operate with 3.3V and pararell communication with atmega
My registers settings are:
ISOControl = 0x88 to 0x8B
RegulatorControl = 0x06 - automatic config
ChipStateControl = 0x20 or 0x22 - operating at 3.3V

then I'm sending REQA
size = 1;
*pbuf = 0x8f;
*(pbuf + 1) = 0x91; // buffer setup for FIFO writing
*(pbuf + 2) = 0x3d;
*(pbuf + 3) = (char) (size >> 4);
*(pbuf + 4) = (char) (size << 4);
*(pbuf + 5) = 0x26;

irqON;
RFID_RAWwrite(pbuf, 6); // send the request using RAW writing

but whitout goog IRQ status
If anybody can give me some clue how to read that tag I appreciate that
thanks in advance!
 

trf7960

Is something wrong with you software ,mayby.
you can visit www.ti.com.
you can find TRF7960 application notes.
in TI, it uses MSP430F2370 and resource code is open-resource.
you can learn it ,and find your problem.
Good luck,boy!!!
 

software to read iso 14443a

Yes, I know that TI uses MSP430 and I saw that source code, I'm based on it but wihout result. I'm asking anybody who is working with TRF7960 and different uC than MSP, maybe there is some need to set properly some of registers.

If anybody has that knowlage, please reply
 
trf7960 msp430 help

hello, Its not the answer to the question. I think you may answer this question how to find the scanner power of iso14443A iso15673 other. is there any tool to measure.? It sounds simple to u but its big for me.:D
 
trf7960 source code

Hi,
I've done that using an ATMEGA. I am not sure, how far you got, so:
- can you read and write successfully registers?

Do you use SPI or parallel?

Cheers, Tom
 

iso14443a crc

Hi Tom,
Yes I can read and write registers using paralell port, but when I send reqA sequence I've got a lot of interrupts and some strange values in IRQ Register.
 

rfid source code für trf7960

I had used SST89E516RD2+TRF7960,and find the different of yours:
req_buf[0] = 0x8f;
req_buf[1] = 0x90; ////////----- WITH NO CRC
req_buf[2] = 0x3d;
req_buf[3] = 0x00;//( char ) size >> 0x04;
req_buf[4] = 0x10;//( char ) ( ( size << 0x04 ) | 0x0f );
req_buf[5] = req_code;

I'm not good in English,we can talk about TRF7960 at msn
liuqi110@live.cn
 

atmega128 and trf7960

Hi liuqi110, I will contact with you, anyway can you explain what is req_code?
can this syntax provide successful communication with Mifare cards?
thanks in advance!
 

writing data to a block of tag by trf7960 reader ic

how can i write the data to a block of memory of tag by trf7960 reader ic ?
 

Re: trf7960

heronx said:
My registers settings are:
ISOControl = 0x88 to 0x8B
RegulatorControl = 0x06 - automatic config
ChipStateControl = 0x20 or 0x22 - operating at 3.3V

then I'm sending REQA
Code:
	size = 1;
	*pbuf = 0x8f;
	*(pbuf + 1) = 0x91;	// buffer setup for FIFO writing 
	*(pbuf + 2) = 0x3d;
	*(pbuf + 3) = (char) (size >> 4);
	*(pbuf + 4) = (char) (size << 4);
	*(pbuf + 5) = 0x26;

You probably had the TI application note [1] at hand and tried to do as they discribed it there? Well, I'm sorry for your loss (of time and nerves). That application note contains some very very nasty bugs.
Quite obivous was the bug:
Code:
buf[3]=(char) (size>>8);
Well, no need for long discussions, it's a typo and should be just a shift for 4 Bits.

However, the TI explanation and the given example contains some very frustrating general errors!

A glimpse in the iso standard will tell you that the REQA, WUPA, etc commands all are not 8 bits in size but just 7 bits!!

To fix the example it should look something like this:
Code:
	size = 1;
	num_singlebits = 7;
	cmd = 0x26;
	*pbuf = 0x8f;
	*(pbuf + 1) = 0x90;	// send without CRC
	*(pbuf + 2) = 0x3d;
	*(pbuf + 3) = (char) ((size-1) >> 4);
	*(pbuf + 4) = (char) (((size-1) << 4) | (num_singlebits << 1) | 1);
	*(pbuf + 5) = cmd;

Furthermore you will find an explanation of what the collision position 0x40 means. They tell you that the upper nibble states the byte position and that 0x40 means the 4th byte. However, it's actually the 5th (buf[0]=1st, buf[1]=2nd,...buf[4]=5th).
Well, that's better than the info the datasheet gives - it tells you col0..col9 state the bit-position of the collision - no mention that the upper nibble (plus two bits) actually count bytes and not bits as the lower nibble does. :-/

Did anyone find out which command code I should use for internal RF test? The detailed description and that one in the command table contradict each other...

[1] Implementation of ISO14443A Anti-Collision Sequence in the TI
TRF796x, 24 Apr 2009
https://www.ti.com/litv/pdf/sloa136
 

Hi, im trying to set up a TRF7960's test board and i wish try to detect an ISO14443A tag.

Any of you got the solution? Let me know! thanks ;-)
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top