This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Dear all,
my company realized a board integrated the trf7970a. I wanna communicate with this device through wipy microcontroller.After the software inizialization I can read all register of devices like shown the datasheet in page 53. After the I send the inventory command, that is only 8 bytes.
buf[0]=0x8F #Send Inventory(8B)[0x8F 0x91 0x3D 0x00 0x30 0x26 0x01 0x00]
buf[1]=0x91
buf[2]=0x3D
buf[3]=0x00
buf[4]=0x30
buf[5]=0x26 #,0x26 single subcarrier, high data rate, inventory flag,no protocol extensions,no AFI,1 slot,option flag, RFU=0
buf[6]=0x01 #0x01
buf[7]=0x00
After the the sending of the command the IRQ occurs 1.6 ms after the SS line goes high . The IRQ status register read yields 0x80, which indicates that TX in complete like shown in datasheet in page 41. Then , if tag is in the field and no error is detected by the reader a second interrupt is excpected and occurs 4 ms after first IRQ. I should read for the second interrupt 0x40 and 0x3E when a tag is detected but I don't detect anything.
I put this tag bought on amazon:
https://www.amazon.it/ISO15693-scheda-bianca-Icode-confezione/dp/B07DBKX4CG
PS: this is the initial settings:
def NFC_init():
testcommand=[0]
testcommand_=[0,0]
DirectCommand(SOFT_INIT)
testcommand[0] = IDLE
DirectCommand(IDLE)
time.sleep_ms(2)
DirectCommand(RESET)
time.sleep_ms(2)
testcommand_[0] = NFC_TARGET_LEVEL
testcommand_[1] = 0x07
WriteSingle(2,testcommand_)
ReadSingle(1,testcommand_)
testcommand_=[0,0]
testcommand_[0] = MODULATOR_CONTROL
testcommand_[1] = 0x08 #ASK 100%, no SYS_CLK output,0x01
#6.78 MHz, OOK 100%,0x81
WriteSingle(len(testcommand_),testcommand_)
testcommand[0] = MODULATOR_CONTROL
ReadSingle(1,testcommand_)
testcommand_[0] = REGULATOR_CONTROL
testcommand_[1] = 0x06
WriteSingle(2,testcommand_)
ReadSingle(1,testcommand_)
turnRFOn=[0,0]
tturnRFOn[0] = CHIP_STATUS_CONTROL
turnRFOn [1]=0x20
WriteSingle(len(turnRFOn),turnRFOn)
ReadSingle(1,turnRFOn)
WriteSingle(len(testcommand_), testcommand_)
testcommand_[0] = ISO_CONTROL
testcommand_[1] = 0x02 # iso15693
WriteSingle(len(testcommand_), testcommand_)
ReadSingle(1,testcommand_)
Are the initial setting corrrected?(modulator control, iso control , regualtor control, chip status control are correct?)
Thanks in advance
I 'll very appreciate your answrer . Thanks.
Francesco Pugliese
Hello Francesco,
I figured out the following values from your post:
Modulator Control: 0x81 -> ok if you are using 27.12MHz Clock
Regulator Control: 0x06 -> ok for a 3.3V supplied system
Chip Status Control: 0x20 -> ok -> 3V System and RF on
ISO Control -> 0x02 -> ok for ISO15693 high bit rate
From my understanding the ISO15693 tag you bought should work with these settings.
Best regards,
Helfried
Dear Helfred,
Thanks for your fast reply. It is very useful, But I am using an oscillator cristal of 13.56MHz which determines a clock of 13.56 MHz.Therefore I put in register Modulator control 0x08. Is it correct?
In page 70 of datasheet there is a register NFC Target Detection Level Register(0x18) I put on 0x07. Is it correct? I put n 0x07 because the rf field is 170 mV(page 49).Is it correct?
However in this register I can set the NFCID size. The NFCID is the UID? Because the NFCID size could be 4, 7, 10 bytes but the UID is 8 byte. Why?
Thanks in advance
I 'll very appreciate your respond.
Thanks
Francesco Pugliese
Hello Francesco,
I will close this thread because your questions are handle in a second thread.
Best regards,
Helfried