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: How to set CC1310 GPIO control logic off

Part Number: CC1310
Other Parts Discussed in Thread: TMP112,

IC:CC1310F128RHB

Use case :rfEasyLinkTX....nortos_css 

my demo RF PA SKY66115 ,LDO controls the SKY66115 power supply, LDO EN is IOID_9.

IOID_8 is tmp112 power 

my demo mcu use pin  IOID_2, IOID_1 ,IOID_9,IOID_8 , 

I currently only achieve GPIO high-->send data--> sleep 

But the consumption current is relatively large, does not meet the actual use requirements

Program assumption:

CC1310 The system is powered on and enters the sleep state-->GPIO high-->send data

-->GPIO off  --> sleep 

Q1.How to set CC1310 GPIO control logic off

Q2.Use case :rfEasyLinkTX....tirtos_css  Is it more appropriate 

But the dormant current must meet the actual requirements

  • Hello Likang,

    are you using a custom board or a TI Launchpad?

    Can you try to run the pinStandby example (pinStandby (ti.com)) and check if you the current consumption is meeting your requirements?

    Best regards
    Manuel

  •  my demo is using a custom board .

    The TI  Launchpad  Use case :rfEasyLinkTX....nortos_css 

    Turn off all GPIOs ,The test current meets the requirements.

    The average current after sleep is 1uA .

  • Hi Likang,

    Are you saying that when you run the code on your custom board, the current consumption is too high, but when the same code is run on a TI LaunchPad, the current consumption is acceptable? Are you talking about sleep current or TX current?

    You mentioned a sleep current of 1 uA on TI LaunchPad, how much do you get on your custom board?

    Regards,

    HG

  •  My demo is using a custom board . current =35mA  ,the  for the large sleep current is the GPIO high 

     Try :   attempts to turn off GPIO before hibernation were unsuccessful

    The TI LaunchPad  no PA Sky66115 ,The same code is run on a TI LaunchPad  ,There is no point in testing the current

  • Hi Likang,

    Most likely, the reason for the current consumption either because the GPIO enabling the LDO is not set low or the current that you have measured is the TX current.

    Could you post the schematic of you custom board? I want to see how you have connected everything. And could you post the part of the code where you set the GPIO high and low?

    Regards,

    HG

  • HI, my  demo  The requirement of hibernation current is relatively high

    The following is the relevant circuit diagram,Improved sky66115 sleep mode current

     I

  • HI  Use case :rfEasyLinkTX....tirtos_css  Is it more appropriate 

     *  ======== rfEasyLinkTx_nortos.c ========
     */
    /* Application header files */
    #include "smartrf_settings/smartrf_settings.h"
    
    /* Board Header files */
    #include "Board.h"
    
    /* Standard C Libraries */
    #include <stdlib.h>
    #include <stdint.h>
    #include <unistd.h>
    
    /* TI Drivers */
    #include <ti/drivers/pin/PINCC26XX.h>
    #include <ti/drivers/Power.h>
    #include <ti/drivers/rf/RF.h>
    #include <ti/devices/DeviceFamily.h>
    #include <ti/drivers/GPIO.h>
    /* EasyLink API Header files */
    #include "easylink/EasyLink.h"
    
    /* Undefine to not use async mode */
    #define RFEASYLINKTX_ASYNC
    
    #define RFEASYLINKTX_BURST_SIZE         10
    #define RFEASYLINKTXPAYLOAD_LENGTH      30
    
    /* Pin driver handle */
    static PIN_Handle pinHandle;
    static PIN_State pinState;
    /*
     * Application LED pin configuration table:
     *   - All LEDs board LEDs are off.
     */
    #define IO_CTX                     IOID_2 // =0:RX妯″紡,    =1:TX妯″紡
    #define IO_CSD                     IOID_1 // =0:Sleep妯″紡, =1:姝e父妯″紡
    #define LDO_EN                     IOID_9
    #define TMP112x_POWER              IOID_8
    PIN_Config pinTable[] = {
        //Board_PIN_LED1 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
       // Board_PIN_LED2 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
        IO_CTX| PIN_GPIO_OUTPUT_EN  | PIN_GPIO_HIGH | PIN_PUSHPULL| PIN_DRVSTR_MAX,
        IO_CSD | PIN_GPIO_OUTPUT_EN | PIN_GPIO_HIGH  | PIN_PUSHPULL| PIN_DRVSTR_MAX,
        LDO_EN | PIN_GPIO_OUTPUT_EN | PIN_GPIO_HIGH  | PIN_PUSHPULL| PIN_DRVSTR_MAX,
        TMP112x_POWER  | PIN_GPIO_OUTPUT_EN | PIN_GPIO_HIGH  | PIN_PUSHPULL| PIN_DRVSTR_MAX,
        PIN_TERMINATE
    };
    //初始化GPIO
    static uint16_t seqNumber;
    
    #ifdef RFEASYLINKTX_ASYNC
    static volatile bool txDoneFlag;
    static volatile uint8_t txSleepPeriodsElapsed;
    #endif //RFEASYLINKTX_ASYNC
    
    #ifdef RFEASYLINKTX_ASYNC
    void txDoneCb(EasyLink_Status status)
    {
        if (status == EasyLink_Status_Success)
        {
            /* Toggle LED1 to indicate TX */
        //    PIN_setOutputValue(pinHandle, Board_PIN_LED1,!PIN_getOutputValue(Board_PIN_LED1));
        }
        else if(status == EasyLink_Status_Aborted)
        {
            /* Toggle LED2 to indicate command aborted */
        //    PIN_setOutputValue(pinHandle, Board_PIN_LED2,!PIN_getOutputValue(Board_PIN_LED2));
        }
        else
        {
            /* Toggle LED1 and LED2 to indicate error */
         //   PIN_setOutputValue(pinHandle, Board_PIN_LED1,!PIN_getOutputValue(Board_PIN_LED1));
        //    PIN_setOutputValue(pinHandle, Board_PIN_LED2,!PIN_getOutputValue(Board_PIN_LED2));
        }
        txDoneFlag = true;
        txSleepPeriodsElapsed = 0;
    }
    #endif //RFEASYLINKTX_ASYNC
    
    void *mainThread(void *arg0)
    {
    
       uint32_t absTime;
    
        /* Open LED pins */
        pinHandle = PIN_open(&pinState, pinTable);
        if (pinHandle == NULL)
        {
            while(1);
    
    }
        /* Clear LED pins */
        //PIN_setOutputValue(pinHandle, Board_PIN_LED1, 0);
       // PIN_setOutputValue(pinHandle, Board_PIN_LED2, 0);
         PIN_setOutputValue(pinHandle, IOID_1, 1);
         PIN_setOutputValue(pinHandle, IOID_2, 1);
         PIN_setOutputValue(pinHandle, IOID_9, 1);
        PIN_setOutputValue(pinHandle, IOID_8, 1);
        static uint8_t txBurstSize = 0;
    // PIN_close(pinHandle);
    
    #ifdef RFEASYLINKTX_ASYNC
        /* Reset the sleep period counter */
        txSleepPeriodsElapsed = 0;
        /* Set the transmission flag to its default state */
        txDoneFlag = false;
    #endif //RFEASYLINKTX_ASYNC
    
        // Initialize the EasyLink parameters to their default values
        EasyLink_Params easyLink_params;
        EasyLink_Params_init(&easyLink_params);
    
        /*
         * Initialize EasyLink with the settings found in easylink_config.h
         * Modify EASYLINK_PARAM_CONFIG in easylink_config.h to change the default
         * PHY
         */
        if (EasyLink_init(&easyLink_params) != EasyLink_Status_Success){
            while(1);
        }
    
    
        /*
         * If you wish to use a frequency other than the default, use
         * the following API:
         * EasyLink_setFrequency(868000000);
         */
    
        while(1) {
            EasyLink_TxPacket txPacket =  { {0}, 0, 0, {0} };
    
            /* Create packet with incrementing sequence number and random payload */
            txPacket.payload[0] = (uint8_t)(seqNumber >> 8);
            txPacket.payload[1] = (uint8_t)(seqNumber++);
            uint8_t i;
            for (i = 2; i < RFEASYLINKTXPAYLOAD_LENGTH; i++)
            {
                txPacket.payload[i] = rand();
            }
    
            txPacket.len = RFEASYLINKTXPAYLOAD_LENGTH;
    
            /*
             * Address filtering is enabled by default on the Rx device with the
             * an address of 0xAA. This device must set the dstAddr accordingly.
             */
            txPacket.dstAddr[0] = 0xaa;
    
            /* Add a Tx delay for > 500ms, so that the abort kicks in and brakes the burst */
            if(EasyLink_getAbsTime(&absTime) != EasyLink_Status_Success)
            {
                // Problem getting absolute time
            }
            if(txBurstSize++ >= RFEASYLINKTX_BURST_SIZE)
            {
                /* Set Tx absolute time to current time + 1s */
    
                txPacket.absTime = absTime + EasyLink_ms_To_RadioTime(1000);
                txBurstSize = 0;
            }
            /* Else set the next packet in burst to Tx in 100ms */
            else
            {
                /* Set Tx absolute time to current time + 100ms */
                txPacket.absTime = absTime + EasyLink_ms_To_RadioTime(100);
            }
    
    
    #ifdef RFEASYLINKTX_ASYNC
            /*
             * Set the Transmit done flag to false, callback will set it to true
             * Also set the sleep counter to 0
             */
            txDoneFlag = false;
            txSleepPeriodsElapsed = 0;
    
            /* Transmit the packet */
            EasyLink_transmitAsync(&txPacket, txDoneCb);
    
    
            while(!txDoneFlag){
    
                PIN_close(pinHandle);
     //           GPIO_write(Board_PIN_LED0, Board_GPIO_LED_ON)
                if (pinHandle == NULL)
                {
                    while(1);
    
            }
    
                /* Clear LED pins */
                //PIN_setOutputValue(pinHandle, Board_PIN_LED1, 0);
               // PIN_setOutputValue(pinHandle, Board_PIN_LED2, 0);
                 PIN_setOutputValue(pinHandle, IOID_1, 0);
                 PIN_setOutputValue(pinHandle, IOID_2, 0);
                 PIN_setOutputValue(pinHandle, IOID_9, 0);
                PIN_setOutputValue(pinHandle, IOID_8, 0);
                /*
                            * Set the device to sleep for 108ms. The packet transmission is
                            * set 100 ms in the future but takes about 7ms to complete and
                            * for the execution to hit the callback. A 1ms buffer is added to
                            * the sleep time to ensure the callback always execute prior to
                            * the end of usleep().
                            */
    
                usleep(10108000);//US休眠
    
                /* check to see if the transmit flag was set during sleep */
                if(!txDoneFlag){
                    txSleepPeriodsElapsed++;
                    
                    if(txSleepPeriodsElapsed == 3){
                        /* 324 ms have passed. We need to abort the transmission */
                        if(EasyLink_abort() == EasyLink_Status_Success)
                        {
                            /*
                             * Abort will cause the txDoneCb to be called and the
                             * txDoneFlag to be set
                             */
                            while(!txDoneFlag){};
                        }
                        break;
                    }
                }
            }
    #else
            EasyLink_Status result = EasyLink_transmit(&txPacket);
    
            if (result == EasyLink_Status_Success)
            {
                /* Toggle LED1 to indicate TX */
            //    PIN_setOutputValue(pinHandle, Board_PIN_LED1,!PIN_getOutputValue(Board_PIN_LED1));
            }
            else
            {
                /* Toggle LED1 and LED2 to indicate error */
             //   PIN_setOutputValue(pinHandle, Board_PIN_LED1,!PIN_getOutputValue(Board_PIN_LED1));
             //   PIN_setOutputValue(pinHandle, Board_PIN_LED2,!PIN_getOutputValue(Board_PIN_LED2));
            }
    #endif //RFEASYLINKTX_ASYNC
        }
    }
    

    Try to modify the code,Basically can achieve GPIO high and low levels

    New problems arise;use SmartRF Studio 7 to test transmitter to receiver

    After many tests, it was found that the PA sometimes did not work,

    analyze the cause:It should be a GPIO control timing problem on the code,

    The GPIO 9 was turned off early, resulting in PA being in a power unpowered state ,need to add a delay mechanism to the code,

    Do you have a better suggestion to control this PA code?

    Thanks!

  • Sorry, MCU GPIO 9 is not driven, in check code

  • Hi Likang,

    Please share the pin configuration used in SmartRF. I don't think it's a good idea to disable the LDO. If you just disable the external PA, will that not be sufficient enough? The LDO will not be available instantly after wake-up as it has a some startup time. 

    Regards,

    HG

  • HI ,HG

    The LDO will not be available instantly after wake-up as it has a some startup time. 

    Ready to try: Add a delay mechanism to the code .

    code: CPUdelay(16129032);

  • Hi Likang,

    Have you tried it with the pin configuration that you have shared already? Did it work in SmartRF?

    Regards,

    HG

  • HI ,HG

    I have re-changed the code,All the GPIOs used have been successfully driven,

    Ready to try: Add a delay mechanism to the code .

    Ready to try: Add a GPIO delay mechanism to your code.

    #include "smartrf_settings/smartrf_settings.h"
    
    /* Board Header files */
    #include "Board.h"
    
    /* Standard C Libraries */
    #include <stdlib.h>
    #include <stdint.h>
    #include <unistd.h>
    
    /* TI Drivers */
    #include <ti/drivers/pin/PINCC26XX.h>
    #include <ti/drivers/Power.h>
    #include <ti/drivers/rf/RF.h>
    #include <ti/devices/DeviceFamily.h>
    
    /* EasyLink API Header files */
    #include "easylink/EasyLink.h"
    
    /* Undefine to not use async mode */
    #define RFEASYLINKTX_ASYNC
    
    #define RFEASYLINKTX_BURST_SIZE         10
    #define RFEASYLINKTXPAYLOAD_LENGTH      30
    
    /* Pin driver handle */
    static PIN_Handle pinHandle;
    static PIN_State pinState;
    
    /*
     * Application LED pin configuration table:
     *   - All LEDs board LEDs are off.
     */
    #define IO_CTX                     IOID_2 // =0:RX妯″紡,    =1:TX妯″紡
    #define IO_CSD                     IOID_1 // =0:Sleep妯″紡, =1:姝e父妯″紡
    #define LDO_EN                     IOID_9
    #define TMP112_EN                 IOID_8
    //GPIO_setConfig(Board_GPIO_TMP112_EN, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_HIGH);
    PIN_Config pinTable[] = {
        //Board_PIN_LED1 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
       // Board_PIN_LED2 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
        IO_CTX| PIN_GPIO_OUTPUT_EN  | PIN_GPIO_HIGH | PIN_PUSHPULL| PIN_DRVSTR_MAX,
        IO_CSD | PIN_GPIO_OUTPUT_EN | PIN_GPIO_HIGH  | PIN_PUSHPULL| PIN_DRVSTR_MAX,
        LDO_EN | PIN_GPIO_OUTPUT_EN | PIN_GPIO_HIGH  | PIN_PUSHPULL| PIN_DRVSTR_MAX,
        TMP112_EN  | PIN_GPIO_OUTPUT_EN | PIN_GPIO_HIGH  | PIN_PUSHPULL| PIN_DRVSTR_MAX,
        PIN_TERMINATE
    };
    
    
    static uint16_t seqNumber;
    
    #ifdef RFEASYLINKTX_ASYNC
    static volatile bool txDoneFlag;
    static volatile uint8_t txSleepPeriodsElapsed;
    #endif //RFEASYLINKTX_ASYNC
    
    #ifdef RFEASYLINKTX_ASYNC
    void txDoneCb(EasyLink_Status status)
    {
        if (status == EasyLink_Status_Success)
        {
            /* Toggle LED1 to indicate TX */
    //        PIN_setOutputValue(pinHandle, Board_PIN_LED1,!PIN_getOutputValue(Board_PIN_LED1));
            PIN_setOutputValue(pinHandle, IO_CTX,!PIN_getOutputValue(IO_CTX));
            PIN_setOutputValue(pinHandle, IO_CSD,!PIN_getOutputValue(IO_CSD));
            PIN_setOutputValue(pinHandle, LDO_EN,!PIN_getOutputValue(LDO_EN));
            PIN_setOutputValue(pinHandle, TMP112_EN,!PIN_getOutputValue(TMP112_EN));
    
        }
        else if(status == EasyLink_Status_Aborted)
        {
            /* Toggle LED2 to indicate command aborted */
    //        PIN_setOutputValue(pinHandle, Board_PIN_LED2,!PIN_getOutputValue(Board_PIN_LED2));
        }
        else
        {
            /* Toggle LED1 and LED2 to indicate error */
    //        PIN_setOutputValue(pinHandle, Board_PIN_LED1,!PIN_getOutputValue(Board_PIN_LED1));
    //        PIN_setOutputValue(pinHandle, Board_PIN_LED2,!PIN_getOutputValue(Board_PIN_LED2));
        }
        txDoneFlag = true;
        txSleepPeriodsElapsed = 0;
    }
    #endif //RFEASYLINKTX_ASYNC
    
    
    void *mainThread(void *arg0)
    {
       uint32_t absTime;
    
        /* Open LED pins */
        pinHandle = PIN_open(&pinState, pinTable);
        if (pinHandle == NULL)
        {
            while(1);
        }
    
        /* Clear LED pins */
        CPUdelay(16129032);  //延时1S
        PIN_setOutputValue(pinHandle, IO_CTX, 0);
        CPUdelay(16129032);  //延时1S
        PIN_setOutputValue(pinHandle, IO_CSD, 0);
        CPUdelay(16129032);  //延时1S
        PIN_setOutputValue(pinHandle, LDO_EN, 0);
        CPUdelay(20000000);  //
        PIN_setOutputValue(pinHandle, TMP112_EN, 0);
        // 3 cycles per loop: 1 loop @ 48 Mhz ~= 62 ns *
        //  CPUdelay(16129032);//增加延时机制
    //    GPIO_setConfig(TMP112_EN, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_HIGH);
    //    GPIO_setConfig(TMP112_EN, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_HIGH);
    //    GPIO_write(TMP112_EN, TMP112_EN_ON);
        static uint8_t txBurstSize = 0;
    
    #ifdef RFEASYLINKTX_ASYNC
        /* Reset the sleep period counter */
        txSleepPeriodsElapsed = 0;
        /* Set the transmission flag to its default state */
        txDoneFlag = false;
    #endif //RFEASYLINKTX_ASYNC
    
        // Initialize the EasyLink parameters to their default values
        EasyLink_Params easyLink_params;
        EasyLink_Params_init(&easyLink_params);
    
        /*
         * Initialize EasyLink with the settings found in easylink_config.h
         * Modify EASYLINK_PARAM_CONFIG in easylink_config.h to change the default
         * PHY
         */
        if (EasyLink_init(&easyLink_params) != EasyLink_Status_Success){
            while(1);
        }
    
    
        /*
         * If you wish to use a frequency other than the default, use
         * the following API:
         * EasyLink_setFrequency(868000000);
         */
    
        while(1) {
            EasyLink_TxPacket txPacket =  { {0}, 0, 0, {0} };
    
            /* Create packet with incrementing sequence number and random payload */
            txPacket.payload[0] = (uint8_t)(seqNumber >> 8);
            txPacket.payload[1] = (uint8_t)(seqNumber++);
            uint8_t i;
            for (i = 2; i < RFEASYLINKTXPAYLOAD_LENGTH; i++)
            {
                txPacket.payload[i] = rand();
            }
    
            txPacket.len = RFEASYLINKTXPAYLOAD_LENGTH;
    
            /*
             * Address filtering is enabled by default on the Rx device with the
             * an address of 0xAA. This device must set the dstAddr accordingly.
             */
            txPacket.dstAddr[0] = 0xaa;
    
            /* Add a Tx delay for > 500ms, so that the abort kicks in and brakes the burst */
            if(EasyLink_getAbsTime(&absTime) != EasyLink_Status_Success)
            {
                // Problem getting absolute time
            }
            if(txBurstSize++ >= RFEASYLINKTX_BURST_SIZE)
            {
                /* Set Tx absolute time to current time + 1s */
    
                txPacket.absTime = absTime + EasyLink_ms_To_RadioTime(1000);
                txBurstSize = 0;
            }
            /* Else set the next packet in burst to Tx in 100ms */
            else
            {
                /* Set Tx absolute time to current time + 100ms */
                txPacket.absTime = absTime + EasyLink_ms_To_RadioTime(100);
            }
    
    #ifdef RFEASYLINKTX_ASYNC
            /*
             * Set the Transmit done flag to false, callback will set it to true
             * Also set the sleep counter to 0
             */
            txDoneFlag = false;
            txSleepPeriodsElapsed = 0;
    
            /* Transmit the packet */
            EasyLink_transmitAsync(&txPacket, txDoneCb);
    
            while(!txDoneFlag){
                /*
                 * Set the device to sleep for 108ms. The packet transmission is
                 * set 100 ms in the future but takes about 7ms to complete and
                 * for the execution to hit the callback. A 1ms buffer is added to
                 * the sleep time to ensure the callback always execute prior to
                 * the end of usleep().
                 */
    
                           //PIN_setOutputValue(pinHandle, Board_PIN_LED1, 0);
                          // PIN_setOutputValue(pinHandle, Board_PIN_LED2, 0);
               //            CPUdelay(16129032);//增加延时机制
               //             PIN_setOutputValue(pinHandle, IOID_6, 0);
               //             CPUdelay(16129032);
               //             PIN_setOutputValue(pinHandle, IOID_7, 0);
               //             CPUdelay(16129032);
               //             PIN_setOutputValue(pinHandle, IOID_27, 0);
               //             CPUdelay(16129032);
               //            PIN_setOutputValue(pinHandle, IOID_26, 0);
                usleep(5108000);//US休眠
    
                /* check to see if the transmit flag was set during sleep */
                if(!txDoneFlag){
                    txSleepPeriodsElapsed++;
                    if(txSleepPeriodsElapsed == 3){
                        /* 324 ms have passed. We need to abort the transmission */
                        if(EasyLink_abort() == EasyLink_Status_Success)
                        {
                            /*
                             * Abort will cause the txDoneCb to be called and the
                             * txDoneFlag to be set
                             */
                            while(!txDoneFlag){};
                        }
                        break;
                    }
                }
            }
    #else
            EasyLink_Status result = EasyLink_transmit(&txPacket);
    
            if (result == EasyLink_Status_Success)
            {
                /* Toggle LED1 to indicate TX */
                PIN_setOutputValue(pinHandle, Board_PIN_LED1,!PIN_getOutputValue(Board_PIN_LED1));
            }
            else
            {
                /* Toggle LED1 and LED2 to indicate error */
                PIN_setOutputValue(pinHandle, Board_PIN_LED1,!PIN_getOutputValue(Board_PIN_LED1));
                PIN_setOutputValue(pinHandle, Board_PIN_LED2,!PIN_getOutputValue(Board_PIN_LED2));
            }
    #endif //RFEASYLINKTX_ASYNC
        }
    }
    

  • HI  HG

    Trying to debug GPIO 9 delay, there is no debugging more desirable effect

  • HI  HG 

    Cancel the LDO test ,GPIO DIO_1 DIO_2 controls SKY66115

    Test RX RSSI using SmartRF Studio 7.

    15:17:07.366 | 1f | 43520 | 34 93 b1 bc 60 ed 55 db 8d 66 27 79 16 b1 78 a7 18 b6 8f 98 fb 20 44 0e 6e a5 5e 88 26  |  -95
    15:17:19.334 | 1f | 43520 | 35 14 ae 28 56 20 e8 66 ed ee 44 77 92 60 d8 7b 60 1f b4 69 61 6b bb bb cc a2 44 d9 fe  |  -53
    15:17:32.242 | 1f | 43520 | 36 91 74 46 3a 7e 59 8c 21 f1 c7 e8 f0 46 f3 b6 7b f4 d1 9b ed 9b 2d 74 3d cf 8b 01 6f  |  -96
    15:17:43.264 | 1f | 43520 | 37 a7 c0 51 8f 04 4d ed 6e a1 7e c4 1b df 47 da 20 4e d9 af 82 fb 07 70 76 7c 5c e0 e3  |  -53
    15:17:55.221 | 1f | 43520 | 38 bc f8 04 9c 87 2f 91 5a d4 e0 16 7a d6 95 e9 7c c1 5f d3 37 5c 6f 7b dd 4b 74 93 b3  |  -96
    15:18:07.185 | 1f | 43520 | 39 1a b8 c4 8d 09 fa 5a 0a 9a 09 af 95 db 25 59 17 74 15 13 7c 6f 08 6c ec ca 2c 31 c6  |  -50
    15:18:19.148 | 1f | 43520 | 3a be 10 9b 5c cd ba 39 71 8e 88 9c 73 38 c7 c4 78 f0 15 4d fb d2 77 59 53 c1 39 3c f7  |  -96
    15:18:31.118 | 1f | 43520 | 3b ef 89 ea 73 2b d2 21 29 ee d9 56 c8 24 9a 61 8e ba e0 e8 3d eb a7 8b de 4b 31 d4 39  |  -53
    15:18:43.080 | 1f | 43520 | 3c 90 ea dd 0f 23 fd be 1e 6b b2 bd d2 d4 8e 35 cb a1 29 42 13 77 cd 32 1b a5 d3 ab 7a  |  -96
    15:18:55.052 | 1f | 43520 | 3d 34 be 9c 66 b2 14 e4 ee bf 00 c5 fd 54 a9 07 0f d6 50 ec b0 df 2c d7 b9 c7 05 bb 4a  |  -54
    15:19:07.004 | 1f | 43520 | 3e f4 92 44 86 e6 94 c8 11 01 af ec 4b 19 0b 16 49 c0 ae 96 97 4f 97 93 b0 b5 9b b7 3a  |  -96


    Found problem PA 50% action failed,

    I want to check the RF communication pass rate after SKY66115 TI related swra528.pdf setup.

    Thanks

  • Hi,

    I am not sure what exactly is happening. If you look at the average RSSI, it goes low for every other packet which is a bit strange to me. Are both the transmitter and receiver CC1310 with SKY66115. Which PHY are you running? How are you sending different payload each time? Are you changing the payload manually and sending the packets one by one?

    Regards,

    HG

  • My TX demo  CC1310+sky66115, RX demo CC1310

    TX sending data is currently random data on the code

    I will check whether the TX problem is affected by the code

    Thanks