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.

CC1310: TCK noise immunity in harsh environment

Part Number: CC1310


Hi.

The documentation describes that TCK may be sensitive to unintended noise (datasheet p.4.4 + reference manual p.5.4).

Also, the reference manual declares:

If it is not possible to guarantee that such activity does not happen, it is recommended that a strong external pullup is used, or even shorting the pin to the supply voltage through a zero-ohm resistor. The size of the pullup or whether the pin is shorted to the supply voltage, will be a tradeoff between robustness against unintentional external activity and the need for an accessible debug port. If the TCK pin is disabled by shorting it to the supply voltage, flash programming must be done using the bootloader.

But the other paragraph, p.8.1.1 of the reference manual, says that the bootloader isn't secure enough to be used in the production:

The ROM bootloader supports commands that can read the flash image. Due to this read capability, a secure measure for disabling the bootloader has been implemented. If the bootloader is disabled using the CCFG BOOTLOADER_ENABLE parameter, the bootloader is unable to execute any commands, which prevents attackers from using the bootloader if the Cortex® -M3 program counter (PC) is forced to execute from the bootloader code.

One of our prototypes has this kind of issue with a picked noise, but more severe than described in the datasheet. In our case:

1) the DUT picks a noise from a powerful mains load switching (a few kW)

2) POR occurs

3) Due to the present noise during POR, it gets stuck in the POR state and never reaches the firmware

We've come up with a few workarounds:

1) 120 pF from TCKC to GND

2) 1k from TCKC to +VDDS

3) 1k + 120 pF from TCKC to +VDDS (120 pF to pass the high-frequency noise better than the 1k)

4) 1+2 combined

We've tested the first one already, and it mitigates the issue. Other options are under evaluation.

In summary, we would like to ask you for a proper approach to mitigate such trouble in the design. From the bootloader, the description seems like it isn't ok for the production stage, so eventually, we're dealing with a tradeoff between DUT's noise immunity and being able to program it.

  • Hi,

    Option 2) should be the preferred solution, as per the TRM, pending (successful) testing.

    Please test this and provide feedback on whether this also mitigates the external noise issue.

    Regards,

    Zack

  • Hi Zack, thanks for the comment.

    Not sure I've got you right about higher pullup value. From a TRM description, it seems like a "lower value = higher robustness." Correct me if I'm wrong. And your opinion regarding other proposed workarounds is highly appreciable.

    Also, I didn't see the answer to my question, so let me rephrase it.

    We can certainly use the pullup with some value and test it on several prototypes. But from my point of view, it doesn't guarantee that it will never reproduce on a mass scale (10+ kpcs/mo). So this is the answer we're looking for - how to ensure that mass-scale production would be safe because the described issue (complete freeze without a chance for the watchdog reboot) is just unacceptable from the end-users point of view.

  • I misread the question slightly; I have modified my reply to reflect this.

    You are correct in that you want to aim for as low a resistor value as possible.

    More information about the noise source is needed for this. As I have been contacted by your FAE about this, it is probably better to move the discussion to emails so that you can share more information.

    Regards,

    Zack