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.

TRF7961 not writing registers

Other Parts Discussed in Thread: TRF7961, TRF7960

Hi,

So I'm trying to get the TRF7961 to work, but it doesn't seem to be writing registers properly - when I do a read after a write, the changes don't show up (returns the default value, not what I have written in).

I have looked at it with a logic analyzer, and the signals seem fine:

Register write (attempt to write register 0x00 (control) with 0x80 (sleep)):

... and subsequent register read (read register 0x00 - returns default 0x01):

(and several more with other registers in the logic analyzer export)

The hardware setup is a custom board based on the TRF7690 application schematic in SPI mode connected to a external microcontroller. The antenna (magnet wire coil) is probably not really tuned, although that shouldn't affect register read/writes, right? The SYS_CLK pin is also running at ~3 MHz when EN is high ~60 kHz when EN is low.

The chip was soldered by hand using a hot-air machine (set to 260 C), then a soldering iron (set at 300 C) to make any missing connections. Could heat damage be the cause? Or am I doing something seriously wrong in software? Any ideas?

Thanks!

  • for the TRF7961 and the Saleae, you need to set up two SPI monitors, just click on + sign next to analyzers - you need one to be set up for MOSI and leading edge, the other will be set up for MISO and on the trailing edge. This is to accomodate the polarity switching between writes and reads.

  • Ok, but the register write/read still isn't consistent. I'm attempting to write 0x80 in, but reading 0x01 out.

    (write)

    (read)

    (updated logic analyzer file - which also includes an attempt to write to register 0x09 to change the SYS_CLK frequency, which also is not successful)

    6710.trf7961_broken_data_updated.zip

  • Any ideas?

    Is it safe to assume that the chip is dead, rather than a host microcontroller firmware error? Are there any conditions (say, a pin or the thermal pad didn't properly get soldered) which would cause the registers to read but not write? Is the chip very heat-sensitive (or moisture-sensitive, for that matter)? Could improper circuitry have caused the chip to self-destruct?

    Also, I ended up replacing the chip with a new fresh one, only to get the same problem. Could it be a bad batch of chips (they all have the same date codes), or could my soldering process be killing the chip? If it's the latter, it seems to be failing very, very consistently - and is there a way to test if this is the cause?

    If anyone wants to check, the here is the schematic - it should be an exact clone of the TRF7960 evaluation board, but with the data interface and power pins broken out.

    3630.TRF7960_CustomBoardSchematic.pdf

    Please help!

    Thanks!

  • Hi Ducky,


    I got the the same problem with you before.

    EN is HIGH and SYS_CLK is 3MHz as noticed but I could not read/write.

    My problem is that SPI interface pins were not in good soldering so some of them were not in good contact with PCB

    (I also soldered it myself)

    Here is my guideline to start with TRF:

    - Power on and measure all power regulator outputs (VDDA, VDDIO, etc) to see they have the correct voltage

    - EN is HIGH and measure SYS_CLK is about 3MHz => crystal and EN pin work correctly

    - Then, TRF can be read/written as long as its SPI signals are available (no need any special setup in the firmware)

    Maybe you probed the SPI signals from your MCU and you thought that TRF could receive it but actually it could not.

    (It was my case ^)^ )

    To check the contact of any pin of TRF to your PCB, you can measure OHM between a pin and GND, if a pin has good contact, there will be an amount of resistance.

    Hope this help.

    Huy