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.

CC1101 GDO1 (Slave Out) pin behaving erratically

Other Parts Discussed in Thread: CC1101

Hello,


I have recently had a 4 layered PCB designed for me, in which I have an STM32F207 connected to CC1101. I tested this configuration earlier by connecting an STM32F207 evaluation board to a CC1101 eval board through jumpers, and it worked perfectly. However, in the current PCB, the CC1101 behaves very erratically. I power both the ICs through a common 3.3V line.


At first, every time I powered the board, the Slave Out line (GDO1) remained low at all times. Regardless of how many times I tried to do a manual Power-On Reset, the pin would stay low and the IC wouldn't respond. Yesterday, this situation changed. This line now shows a constant 1.8V right after power up and during the power on reset. It doesn't settle for over two minutes. I realized that it could be a problem with the crystal, so I changed the load capacitors, from 27pF to 2.2pF (after the respective calculation found at  ' lpcware.com/content/faq/how-calculate-value-crystal-load-capacitors, ' taking load capacitance of the crystal as 6pF and stray capacitance as 5pF). It still shows the same error.

I would be glad to know if I am doing something wrong.

Thank you.

  • If SO doesn't behave like expected a likely reason is that the xtal isn't running.

    If you probe GDO0, do you see a clock signal there? The default setting for this register is CLK_XOSC/192 so if the xtal is running you should see it here.
    2.2 pF load caps sounds too low, please show the calculation you have done.
  • Ok, so the formula given on the website is-

    CL = ((CX1 x CX2) / (CX1 + CX2)) + Cstray

    I know that my crystal has a load capacitance of 6pF, and that the stray capacitance varies from 2pF to 5pF. I assumed that Cstray was 5pF and calculated CX, assuming CX = CX1 = CX2. Hence, I got the result of CX = 2pF. The closest component I had was 2.2pF, so I used it. I will check out the GDO0 pin and get back to you.

    Thank you.
  • TER said:
    If SO doesn't behave like expected a likely reason is that the xtal isn't running.

    If you probe GDO0, do you see a clock signal there? The default setting for this register is CLK_XOSC/192 so if the xtal is running you should see it here.
    2.2 pF load caps sounds too low, please show the calculation you have done.

    I probed the GDO0, and I don't see any clock signal. I observe nothing but noise. What load caps do I use in this case?

  • Please note that according to the datasheet 6 pF load is outside the spec. Also ~2 pF parasitic cap is more likely than 5 pF. I would look into a different xtal.
  • So I transplanted the crystal and load caps from the CC1101 (433 MHz) eval board on to my board to check the results. When I connected a probe to GDO0, I got a vague clock signal of 50 Hz frequency.
    I tried to run my code again, and the slave out has reverted to being perpetually zero (It is about 220 mV). Also, I noticed earlier when my SO Pin was high, it went low as soon as I touched my multimeter probe to it.

    Is there anything else I could try?

  • Was this with the same load caps as the eval board or did you keep your small caps?

  • The same load caps of the eval board.

    Here is something wierd which I discovered just now-
    The entire power up sequence code runs when I touch the multimeter probe to the slave out line. The readback is wrong, but the entire code runs. Do you know what might be going wrong?
  • It sounds like the multimeter sets the voltage level on the SO line. You say that the power up sequence code is running but is it actually setting the registers on the CC1101?

    I would go through the schematic and layout to check if everything is properly powered, including the die paddle under the chip.
  • I'm not sure about how the unpowered probe affects the line. I did check every single electrical connection on an unpopulated board, and they were all correct. The die pad on the center is connected to the ground.
  • So I changed my load caps to 47 pF today and the GDO0 pin showed a perfect square wave of 135 kHz, which is CLK_XOSC/192. I verified my SPI signals too, and they were perfect. Now coming to the Slave Out Line. I probed it through an Oscilloscope, and here is it's status-

    -> On startup, the line showed a sawtooth waveform.
    -> When I initialized my GPIO pins, including the chip select, it went low.
    -> In the Power On Reset sequence, I pulled Csn high (For approximately 40us) and the line went high.
    -> When I pulled the Csn low after that, the SO went low.
    -> When I issued SRES, it remained low. (Which is undesirable in my case. I wait for the SO to go high, and then for it to go low. I did try commenting out the 'wait for SO going high' code line, but then the chip still didn't respond to my SPI commands after that).

    Is there anything I can try now? Or do you know why the chip goes unresponsive after some time?

    Thank you very much for your help.
  • This problem was resolved today. I faced the problem where the CC1101 did not respond to SPI. This issue never had a concrete solution. To fix it, I placed 10 ohm series resistors in all interfacing lines (SO, SI, SCLK, GDO0, GDO2 and Csn). I also replaced the IC. It seemed to respond perfectly and give appropriate read-backs after that.