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.
I have the CC2538-CC2592EM add-on module and CC2538EMK add-on module that I use with the SmartRF06EB boards I flashed one of the examples in RIOT-OS that reads the signal strength when a packet is received.
The problem I have is that CC2538-CC2592EM seems to send packets with a very low TX power while its sensitivity seems great especially when compared to the CC2538EMK module (RSSIs on sending and receiving seems reasonable, i.e. ~(-18) within a meter). The RSSI I got on the CC2538-CC2592EM module is as low as ~-72.
This also happens when I have two of the CC2538-CC2592EM modules communicating, RSSIs of both are very low and cannot communicate unless they are placed very close to each other. However, when I have two of the CC2538EMK they seem to work fine with reasonable RSSIs.
I flashed both modules using RIOT's configuration board CC2538DK
I would appreciate your help in the matter
Hello Ahed,
Are you programming the CC2538 with Z-STack 3.0.X ZNP firmware? Please be aware that the inclusion of HAL_PA_LNA_CC2592 did not Propagate to ZNP Project, as noted in issue 21 of the Known Issues and Fixes E2E Post. This failure to engage the CC2592 front-end could explain why you are observing unsubstantial TX power numbers. Or you could further test the PHYs with Smart RF Studio to determine if this a hardware issue.
Regards,
Ryan
Thanks for the reply.
No, I don't use Z-Stack, I use RIOT-OS-based projects, i.e., ndn-consumer and ndn-producer examples found here. According to RIOT-OS, the devices with CC2538 board are supported, besides I have successfully flashed the mentioned projects to CC2538EMK and Openmote-CC2538 and I have not encountered a transmission issue.
I wonder if the CC2592 power profile conflict with the CC2538 power profile defined in RIOT-OS (see here). If it does, is there any way to work around it?
Ahed
Basically, you should add the following PA/LNA pin setting (using CC2538-CC2592EM) in your init function.
/* PC3 -> PAEN */ RFC_OBS_CTRL0 = RFC_OBS_CTRL_LNAMIX_PD_INV; OBSSEL3 = OBSSEL_OBS_CTRL1; /* PC2 -> EN (LNA control) */ RFC_OBS_CTRL1 = RFC_OBS_CTRL_PA_PD_INV; OBSSEL2 = OBSSEL_OBS_CTRL0;
And, you also need to use matched tx power table such as:
const uint8 CODE macRadioDefsTxPwrCC2592[] = { 22, /* tramsmit power level of the first entry */ (uint8)(int8)8, /* transmit power level of the last entry */ /* 22 dBm */ 0xFF, /* characterized as 22 dBm in datasheet */ /* 21 dBm */ 0xD5, /* characterized as 20.9 dBm in datasheet */ /* 20 dBm */ 0xC5, /* characterized as 20.1 dBm in datasheet */ /* 19 dBm */ 0xB0, /* characterized as 19 dBm in datasheet */ /* 18 dBm */ 0xA1, /* characterized as 17.8 dBm in datasheet */ /* 17 dBm */ 0xA1, /* 16 dBm */ 0x91, /* characterized as 16.4 dBm in datasheet */ /* 15 dBm */ 0x88, /* characterized as 14.9 dBm in datasheet */ /* 14 dBm */ 0x88, /* 13 dBm */ 0x72, /* characterized as 13 dBm in datasheet */ /* 12 dBm */ 0x72, /* 11 dBm */ 0x62, /* characterized as 11 dBm in datasheet */ /* 10 dBm */ 0x58, /* characterized as 9.5 dBm in datasheet */ /* 9 dBm */ 0x58, /* 8 dBm */ 0x42, /* characterized as 7.5 dBm in datasheet */ };
First, sorry for not responding soon...
Thank you very much, YiKai Chen, for the solution, it was helpful.
To make things easier for those operating in RIOT-OS, (please correct me if I am wrong, YiKai Chen) I put the following at "void cc2538_init(void)" in "cc2538.rf.c"
/* PC3 -> PAEN and PC2 -> EN (LNA control)*/ RFCORE_XREG_RFC_OBS_CTRL0 = 0x6A; RFCORE_XREG_RFC_OBS_CTRL1 = 0x68; CCTEST_OBSSEL2 = 0x80; CCTEST_OBSSEL3 = 0x81;
TX power table needs to be adjusted too as in Yikai's reply.
I also adjust some constants as follows:
#define CC2538_RSSI_OFFSET (-82) /**< Signal strength offset value */ #define CC2538_RF_SENSITIVITY (-102) /**< dBm typical, normal conditions */ #define CC2538_RF_POWER_DEFAULT (TX_POWER) /**< TX_POWER need to be set acording to aformentioned power table */
YiKai Chen I do have some questions though as I want to know if it is possible to make the CC2538-CC2592EM operate as the CC2538EMK in terms of TX power and RX sensitivity. In other words, is it possible to disable the CC2592EM functionality in it?
As I am working in a limited space area, controlling the sending and receiving range with the help of TX power is helpful for my experiment especially on Ppenmote-cc2538 and CC2538EMK. i.e., I was able to make them operate within a 4m range (antenna included) by lowering the TX_POWER to -24dbm. While this was helpful on both of them, it seems impractical on CC2538-CC2592EM as the received signal on sending and receiving was too high.
is it possible to know the maximum range for each TX power for the CC2538-CC2592EM?
I don’t think it’s feasible to disable CC2592 on CC2538-CC2592EM. For range estimation, you can use excel in www.ti.com/.../RF-RANGE-ESTIMATOR