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.

TRF7964A - Special Direct Mode

Other Parts Discussed in Thread: TRF7970A

Hi Guys, 

I am trying to write to a mifare tag and I have read that one requires special direct mode. I have read SLOA159 but I still find the topic vague. 

Can someone clarify: 

(1) What is the purpose of special direct mode.

(2) How does Special direct mode differ from Direct Mode 0 and 1

We are battling to grasp how special direct mode interacts with the card and the reader 

  • Hello Byron,

    Byron Loader said:
    (1) What is the purpose of special direct mode.

    Special Direct Mode (SDM) is used to make interfacing to Mifare Classic (or other proprietary) Tags easier.  

    Byron Loader said:
    (2) How does Special direct mode differ from Direct Mode 0 and 1

    Simply, SDM Generates a clock signal for you to use while transmitting, while DM1 and DM0 require you to directly control the modulation yourself, via the MOD pin.  

    Here is the User Modes from the Datasheet:

    Both DM1 and DM0 ttransmitthe same way.  The user toggles the MOD pin, to generate each bit.  This is pretty demanding on timing, both from a speed and accuracy perspectives.  I've attached a power point showing Sending and receiving via DM0.  (I did rip some Mifare specific slides out so I could put it up on E2E.)

    Special Direct mode bypasses some of this timing/accuracy demand by generating a data clock for you, and creating the modulation scheme itself.  It's similar to using DM1 to recieve, but for sending.  

    I've very recently been working on a SDM Mifare Classic example.  I'm going to drafting some documentation on it soon and I need to port the code to the TRF7970A EVM.  

    Please let me know if you have any more questions on SDM or implementing it.

    Thanks,

    JD 

    DM0 Timings with TRF79x0A.pptx
  • Hi John,

    I have made some progress with communicating to a Mifare Classic via Direct Mode 0. Unfortunately, getting the modulation timing accurately is proving challenging on my processor so I decided to try Special Direct Mode that promises to take care of the timing.

    I have followed SLOA159 and managed to enter Special Direct Mode. I see a clock of 9.6us which is as expected for 106kbps TX rate. I tested sending out a sequence of 0's only, then a sequence of 1's only. The resulting Miller pattern looks correct. However, when probing the output voltage on my coil, I see that the low (off) timing is slightly wrong. Instead of 3us (as per miller encoding) for when the field goes off, I am seeing around 2.7us. 

    Any ideas what could be wrong? Are there any registers I can use for tweaking the timing?