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: PCB Layout Issue/Software code Issue

Other Parts Discussed in Thread: CC1310

Hi,

I have recently made a new PCB layout for my application involving CC1310. Its a four layer FR-4 board. My application involves the following series of events (in order):

1) RF Packet Rx

2) RF Packet Tx

3) SPI data Mode.

The cycle time is 1sec.

Using the examples given and of course with my previous posts in this forum, I could able to complete the software code for CC1310 with the above mentioned sequence of events. During this development time , I was using CC1310 EM module and  I could able to test the complete code using CC1310 EM module. Its works perfectly in EM module with minimum power consumption in every cycle.

Now I have loaded the same software code (used earlier in the CC1310 EM module) in the new layout board. Its not working properly.

The following are the observations:

1) After the power reset, in the series of events mentioned above, the Rf Packet Tx is only happening in the first two cycles, while the other modes RX and SPI  are continuing in each cycle . CC1310 could not able to transmit the RF packet after two cycles.

2) I also observed the current consumption during each cylce. After Rx current(which is fine), there is no build of Tx spike current after two cycles. The current is almost equal to Rx current for the TX cycle while SPI current consumption is fine which is next cycle to Tx.

What could be the issue?

Is this the layout issue which stops Tx after two cycles? Also I tried to put all the capacitors near to pins with the recommended values mentioned in reference design.

Do we need to load something else in newly purchased CC1310 chip before the actual code?

Please advise on the issue and the way to solve it.

Regards,

Ankur

  • Since your code works on a CC1310 I assume your issue is hardware related.
    - What modifications have you done in the code to run it on your board? I assume you have changed board files etc
    - I would like to take a look at your schematic and layout to see if something sticks out. You can send me a friend request if you don't want the information to be public.
    - If the Rf packet Tx are only performed twice, what in the code could potentially stop the event? Since Rx and SPI are performed the code runs so what is the requirements for Tx to be run?

    When you get a purchased chip it should be just to flash in your code and run.
  • Hi TER,

    My code is same as the one I used in CC1310 EM module. There are only few changes for IOIDs in the board file.
    I have sent you the friend request for sending layout and schematics.
    Is this due to the 10uH inductor used for DC-DC output from CC1310 that stops Tx current to build up (some inductive effect in the layout)?
    I can lower the inductor value. I have 4.7uH also.


    Regards,
    Ankur
  • I have accepted your friend request and will look closer at your schematic when I get it. Note that the DCDC inductor is very important for the functionality. We are using a 6.8 uH in the ref design so this indicate that you are not follow the reference design. To check if the DCDC components/ layout causes the software issue, turn off the DCDC in ccfg.c and see if this makes a difference.
  • Hi TER,

    Please see the message.
    I sent you all the details.

    Regards,
    Ankur
  • I can't see anything in the schematic and layout that could explain what you are seeing. The layout is not optimal, please follow the reference design more closely.

    How is the timing when you run the code on the EM and the custom board?

    You go Rx -> Tx -> SPI -> Rx when things work. When the Tx stops on the custom board does the code use equal long time between the Rx events?

    Could it be that Tx power consumption causes an issue? What happens it you set txPower to the lowest output power?
  • Hi TER,

    There is no break in the cycle(1 sec) in the custom board. In custom board, I observed the SPI data regularly, which is the next event to Tx , its always there.

    Also I tried changing the Tx power but there is no change.

    I would like to get some specific comments about my layout .

    Please give your specific comments about my layout which I can modify and try.

    Thanks & regards,

    Ankur

  • Layout: When I looked at the layout I get the impression that the xtals were placed a bit far from the chip and the RF part use very wide tracks and the first component are placed fairly far from the chip. In general it should look more like our reference designs.

    Software: Have you looked more into what the software does when it skips the Tx routine? If the Tx isn't run some error etc should be returned.
  • Hi TER,

    There are few more observations.

    1) If I change the events in custom board (Tx -> Rx) and make EM as (Rx-> Tx -> SPI) , everything works perfectly, which means custom board is supporting (Tx -> Rx) continuously in every cycle(1Sec).  Also in EM , the code is running, with which we can say that the code (Rx-> Tx -> SPI) is not having any issue.

    2) However, If I change back to actual case i.e. custom board (Rx-> Tx -> SPI) and EM as Tx->Rx, the custom board works only in one cycle with all the events and then just Rx in the later cycle.

    3) If I measure the voltage after DC-DC inductor in EM, it is around 1.72V whereas in custom board it is varying from 1.62V to 1.72V.

    4) Please note that in all the software code power management is happening means CC1310 goes to stand by mode after the complete operation.

    I am not sure whats the issue here. Is there any hardware issue?

    Please help.

    Regards,

    Ankur

  • How have you done the mapping of IOs on the custom board with regards to the SPI? Since the code works with Tx - > Rx and not Tx- > Rx -> SPI it could sound like you have done something differently with the SPI interface on the custom board?
  • Hi TER,

    There are few more things:

    1) I have two modules(EM/custom board). I want to make one as Tx-> Rx->Tx whereas the other one would be Rx-> Tx-> SPI->Rx which means that when I do Tx first I will not do any SPI(only Rx after Tx).

    2) The custom board is not supporting Rx-> Tx-> SPI->Rx in all the cycles. Moreover, it executes all the events only once (the very first cycle) with the power reset but if I reset with the switch(no power reset), it executes only Rx after first cycle.

    3) I could see the SPI only in first cycle after power reset.

    Is there any issue with the switching current demand by CC1310 that changes in both the situation? As Tx -> Rx goes correctly in custom board ant the next Tx is executed after 1 sec. CC1310 wakes up from stand by to executes Tx whereas in other case Tx is required just after Rx.(Any sort of initialization issue of DC-DC converter).

    Please advise.

    Regards,

    Ankur

     

  • Hi TER,

    I am observing the Tx current as around 9mA for +14 dBm power set in smartrf setting file.

    What could be the reasons for low Tx current ?
    What are the changes for ccfg file which can affect this current?

    Please advise.

    Regards,
    Ankur
  • In the ccfg.c file you have two options, max output power 12.5 dBm or 14 dBm.

    From your schematic it looks like you don't have the option to do conducted measurements. Try to terminating C28 with 50 ohm and check the current consumption then.

    I looked at your antenna tuning, have you mounted L7, L8 and L9? Normally only 2 of these should be mounted and one of them should be a cap to tune to 50 ohm. The current consumption indicate that your antenna is not tuned.
  • Hi TER,

    I terminated C28 with 50 ohm, there was an increase in Tx current by 3mA which means for the +14dBm ,it is around 12mA but it is supposed to be 22 mA.

    The point here is Tx current still less.

    Also there are two more observations :

    1) Rx current consumption is more in custom board. It is around 8mA which is suppose to be around 6mA for EM.

    2) Standby current is much higher in custom board. I could not able to measure correctly for the EM but for the custom board it is around 1mA.

    So in short, Tx current is less while Rx current and the stand by current is more for the custom board as compared to EM.

    I am not sure whats the issue here? But there seems an imbalance in the current consumption for the custom board as compared to the EM.

    I was seeing the EM details. Its a two layer board with a dielectric thickness of 28mil between the top and bottom layer.

    Does this higher thickness of dielectric play a role in the current consumption?

    Please advise.

    Regards,

    Ankur

  • When I originally checked your schematic I looked for reasons why you software behaved strange. I see that a fair amount of the components don't have the value recommended in the reference design.
  • I changed the DC-DC inductor to 6.8uH and the capacitor to 22uF as used in reference design.
    But just want to know does the dielectric thickness play a role in current consumption? Because it a high dielectric thickness in EM (28 mil) whereas the custom board is just using 12 mil FR-4 with 8 mil pre-preg.

    Regards,
    Ankur
  • If you look at the 4 layer ref design it uses 0.175 mm between layer1 and layer2. I believe that it's a few components in the balun/ filter in your design that is not the same as the reference design.
  • Hi TER,

    As suggested by you, I changed the matching circuit components. The Tx currents looks to be fine now. Its around 20mA for +14dBm.

    I left up with one last issue.The stand by current .

    The stand by current for custom board is around 600uA whereas for the EM it is less than 20uA.

    What could be the reason for more stand by current in custom board?

    Actually if I can reduce this , I save lot of battery power as my cycle is 1 sec and my on period is just 12msec.

    Is CC1310 consuming more current in stand by mode in custom board?

    How to reduce the stand by current?

    Please advise.

    Regards,

    Ankur 

  • Are you sure that it's the CC1310 that consumes 600 uA and not the TPSx on your board?
  • Hi TER,

    Yes. I also thought that may be these TPSx consuming some more current. But , I disconnected those TPSx and measured still it is the same value 600uA.

    I think it can be two things : Is it CC1310 or some issue with FR-4? Have you seen earlier anytime FR-4 showing any leakage current like this?

    Please advise.

    Regards,

    Ankur

  • Hi TER,

    If I hold the reset button, this current goes off. The moment I release the reset button, it comes again. So ,this current is due to CC1310 only.

    Whats your idea? Whats could be the issue here?

    Please advise.

    Regards,

    Ankur

  • The current consumption when the device is in standby or similar is not dependent on the layout. One reason could be the DIO configuration. Are some of the DIOs configured as inputs?
  • Hi TER,

    I am using DIO's as the output pins only. There is no input pin. The example is shown below:
    Board_EN | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
    Board_EN_OSC | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
    Board_EN_UWB_3_3 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,

    Also I tried disabling all the circuit including the regulator. I loaded pinstandby example. Even then the standby current was more for the custom board. Almost 10 times more as compared to EM.
    I have currently 6 custom boards. All shows similar behavior.
    I purchased 10 chips for CC1310 from Mouser.
    I cannot understand whats going on here.
    Are there any trim setting needs to be done to adjust the current in CC1310 new chip which was done for EM?

    Regards,
    Ankur
  • I don't see anything on the schematic/ layout that easily can explain the current consumption. To be able to understand more I think I would have to measure on the board myself.

    All required trim settings are loaded into the chip when tested before sent out to customers.

    Note that the pinstandby uses DIOs as input, how do you define the inputs in this case?
  • Hi TER,

    These were the settings used for pinstandby as given below:

    /* Led pin table */
    PIN_Config LedPinTable[] =
    {
    Board_LED1 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX, /* LED initially off */
    Board_LED2 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX, /* LED initially off */
    Board_LED3 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX, /* LED initially off */
    Board_LED4 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX, /* LED initially off */
    PIN_TERMINATE /* Terminate list */
    };

    Regards,

    Ankur

  • Hi Ankur,

    I think I've got a similar problem with the CC1310 and PCB design. Because we have done prototype (without any problem) but with a new PCB design batch, we have a problem with the TX ( the TX is blocked by the CSMA-CA at power on of the board) and the current consumption not matching with our precedent revision of the board (TX and RX consume less as expected but the standby current is higher). I 've done several tests and measures but nothing getting the same performance of the precedent rev. If you want we can share our experience in this subject.

    Best regards,
    Baptiste
  • Ankur: Sorry, I thought about the two other pin examples which uses a button to control the state. Have you checked the 32 kHz oscillator?
  • Hi TER,

    I was also thinking about this 32kHz oscillator.

    How to check this guy?

    Please suggest some way.

    Regards,

    Ankur

  • Not sure what exactly to check. One thing I thought of is if the crystal used is not the same we recommend and that this could potentially impact the current. One test would be to swap the xtal and load caps from the EM to one of your boards to see if this makes a difference.
  • Hi TER,

    I swaped the crystal but there was no change in the current.

    There is one difference between the chip no:

    EM : CC1310 F128 TI X56I AG9F G4

    Custom Board: CC1310 F128 TI 57I CVFS G4

    What is the difference between the two?

    Regards,

    Ankur

  • Different lot. Are you able to swap chips?
  • Hi TER,

    I am trying but could not able to do. I could able to remove the chips but it looks I could not able to swap properly. The following error is appearing in CCS after I swap.

    Error connecting to the target:
    (Error -275 @ 0x0)
    The attempt to poll a target device exceeded its timeout limit.
    The utility or debugger has requested that a target device be
    repeatedly accessed for a specific data or status value.
    This has failed because the built-in limit for the maximum number
    of attempts when polling the JTAG scan-path has been exceeded.
    (Emulation package 6.0.228.0)

    Would it possible for you to see the stand by current with CC1310 lot which I have? The number is CC1310 F128 TI 57I CFVS G4. I hope you will have all the resources at your site.

    Regards,

    Ankur

  • I have to check what I have on my desk. Could 5.4 in www.ti.com/.../swcu117f.pdf explain the current consumption?
  • Hi TER,

    I was observing the activity on TCK pin for both the boards using oscilloscope. There was no noise on TCK pin in the both the boards.

    It just show 3.3V constant during the normal operation after the removal of emulator. What else could be?

    Could you find on your desk the CC1310 lot which I have and observe the stand by current?

    Regards,

    Ankur

  • I haven't been to the office in a few days due to a nasty cold, I'll check next week.
  • Hi TER,

    No worries. Get well soon.

    I could able to put the EM chip onto the custom board. The results are same which means all chips are fine.

    I would like to know about two points:

    1) Can I get the document that talks more about pin.h. I want to know more about the pin settings which we do in program.

    2) I lower the supply voltage during stand by mode, the stand by current increases. Is it explain the current consumption?

    Please suggest.

    Regard,

    Ankur 

  • 1) The main documentation is in the pin.c file as comments. Note that the PINCC26XX.h contain more chip specific driver.
    2) How do you do this and did you do the same when you measured the power consumption on the EM?
  • Hi TER,

    I am not sure exactly is lowering of voltage causes an increase in stand by current during stand by mode? Need to do more experiments on this.
    For EM, I am not interrupting(lowering) the supply voltage during the measurement.
    If you see my schematics there is a booster from TI that acts in boost mode and bypass mode based on enable that comes from CC1310. In boost mode it maintains 3.3V whereas in bypass it just gives the battery voltage which is near to 3V.
    Whats your idea? I think the current in stand by should increase if I lower the supply voltage. But I am not sure.

    Regards,
    Ankur
  • I got the impression that you had removed all the TPSxx from the measurement? If not, try supplying CC1310 directly removing the TPSxx from the equation.
  • Hi TER,

    The current looks equivalent to EM now after I removed all these TPSxx. Actually I did this earlier also but at that time I forgot to remove one connection(DONE) from CC1310 to nano timer which was responsible for the high stand by current.

    Also I was not aware that CC1310 by default puts its IO pins to high if not controlled in the software. I did not define earlier any thing for this pin and found it was high and there was a current flowing from that through nano timer DONE pin. So I defined now and made it low. 

    Thanks a lot for your regular advises.

    Regards,

    Ankur