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.

simpliciTI CC1101 power ramp feature

Other Parts Discussed in Thread: SIMPLICITI, CC1101

I'm currently using simpliciTI 1.1.1 and I would like to use the PA power ramping feature. However looking through the code, I could not find where the PA table is programmed.  Here is the smartrf_CC1101.h I generated to use, but the macro PA_TABLE doesn't appear to be used in simpliciTI. What am I missing?

Code:

/* Carrier frequency = 905.998993 */
/* PA ramping = true */
/* Preamble count = 2 */
/* CRC enable = true */
/* Data rate = 249.939 */
/* Channel number = 20 */
/* Data format = Normal mode */
/* Whitening = false */
/* Sync word qualifier mode = 30/32 + carrier-sense above threshold */
/* Manchester enable = false */
/* Packet length = 255 */
/* Address config = Address check, no broadcast */
/* Deviation = 126.953125 */
/* Base frequency = 901.999969 */
/* RX filter BW = 541.666667 */
/* TX power = 0 */
/* Modulation format = GFSK */
/* Channel spacing = 199.951172 */
/* Device address = 0 */
/* Modulated = true */
/* Packet length mode = Variable packet length mode. Packet length configured by the first byte after sync word */
/* CRC autoflush = false */
/* PA table */
#define PA_TABLE {0x00,0x03,0x0e,0x25,0x66,0x51,0x50,0x8e,}
/***************************************************************
 *  SmartRF Studio(tm) Export
 *
 *  Radio register settings specifed with C-code
 *  compatible #define statements.
 *
 *  RF device: CC1101
 *
 ***************************************************************/

#ifndef SMARTRF_CC1101_H
#define SMARTRF_CC1101_H

#define SMARTRF_RADIO_CC1101
#define SMARTRF_SETTING_IOCFG0     0x06
#define SMARTRF_SETTING_PKTCTRL1   0x05
#define SMARTRF_SETTING_PKTCTRL0   0x05
#define SMARTRF_SETTING_CHANNR     0x14
#define SMARTRF_SETTING_FSCTRL1    0x0C
#define SMARTRF_SETTING_FREQ2      0x22
#define SMARTRF_SETTING_FREQ1      0xB1
#define SMARTRF_SETTING_FREQ0      0x3B
#define SMARTRF_SETTING_MDMCFG4    0x2D
#define SMARTRF_SETTING_MDMCFG3    0x3B
#define SMARTRF_SETTING_MDMCFG2    0x17
#define SMARTRF_SETTING_MDMCFG1    0x02
#define SMARTRF_SETTING_DEVIATN    0x62
#define SMARTRF_SETTING_MCSM1      0x0C
#define SMARTRF_SETTING_MCSM0      0x18
#define SMARTRF_SETTING_FOCCFG     0x1D
#define SMARTRF_SETTING_BSCFG      0x1C
#define SMARTRF_SETTING_AGCCTRL2   0xC7
#define SMARTRF_SETTING_AGCCTRL1   0x00
#define SMARTRF_SETTING_AGCCTRL0   0xB0
#define SMARTRF_SETTING_WORCTRL    0xFB
#define SMARTRF_SETTING_FREND1     0xB6
#define SMARTRF_SETTING_FREND0     0x17
#define SMARTRF_SETTING_FSCAL3     0xEA
#define SMARTRF_SETTING_FSCAL2     0x2A
#define SMARTRF_SETTING_FSCAL1     0x00
#define SMARTRF_SETTING_FSCAL0     0x1F
#define SMARTRF_SETTING_TEST0      0x09

#endif

Hints would be appreciated.



  • Hi

    I do not think writing to more that the first entry is supported by SimpliciTI (no ramping/shaping). If you want to do this you must implement it yourself.

    In the function MRFI_SetRFPwr you need to do a burst write to the PA_TABLE, where your start address is PA_TABLE0. The array mrfiRFPowerTable must be a two dimensional array where you store the ramping  sequences for the different output powers:

    static const uint8_t mrfiRFPowerTable[][] =

    {

      {0x00,0x03,0x17,0x00,0x00,0x00,0x00,0x00,}, // -20

      {0x00,0x03,0x0f,0x1e,0x26,0x26,0x00,0x00,}, // -10

      {0x00,0x03,0x0f,0x25,0x67,0x40,0x60,0x50,} // 0

    };

    BR

    Siri

  • Siri said:

    Hi

    I do not think writing to more that the first entry is supported by SimpliciTI (no ramping/shaping). If you want to do this you must implement it yourself.

    In the function MRFI_SetRFPwr you need to do a burst write to the PA_TABLE, where your start address is PA_TABLE0. The array mrfiRFPowerTable must be a two dimensional array where you store the ramping  sequences for the different output powers:

    static const uint8_t mrfiRFPowerTable[][] =

    {

      {0x00,0x03,0x17,0x00,0x00,0x00,0x00,0x00,}, // -20

      {0x00,0x03,0x0f,0x1e,0x26,0x26,0x00,0x00,}, // -10

      {0x00,0x03,0x0f,0x25,0x67,0x40,0x60,0x50,} // 0

    };

    BR

    Siri

    All right I was afraid that would be the case.

    I noticed that the scaling for lower output values in smartRF studio just reduces the number of entries used in the RF table. Would it make sense to use the same table of values and just shorten the entry count each time the power is set for the power table? It would mean just one PA_TABLE would be needed and simplify things (I hope).

    Thanks Stephen