1.CC3200发射功率是否可以降低。
2.CC3200发射功率是否可以设置到一个固定的值。
3.cc3200现在代码中默认的功率是多少dbm?
4.cc3200只需要802.11b协议,在代码中怎么限制?
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.
1.CC3200发射功率是否可以降低。
2.CC3200发射功率是否可以设置到一个固定的值。
3.cc3200现在代码中默认的功率是多少dbm?
4.cc3200只需要802.11b协议,在代码中怎么限制?
CC3200的发射功率
– TX Power
•18.0 dBm @ 1 DSSS
• 14.5 dBm @ 54 OFDM
CC3200的发射功率可以降低,具体可以调节TX Power Level的等级来进行控制
/*
*****************************************************************************
//
//! Configure the device to Default state according to the given use case
//!
//! \param None
//!
//!\return Negtive int value on failure other value on succusses
//
*****************************************************************************
*/
static long ConfigureSimpleLinkToDefaultState()
{
SlVersionFull ver = {0};
_WlanRxFilterOperationCommandBuff_t RxFilterIdMask = {0};
unsigned char ucVal = 1;
unsigned char ucConfigOpt = 0;
unsigned char ucConfigLen = 0;
unsigned char ucPower = 0;
long lRetVal = -1;
long lMode = -1;
SlNetCfgIpV4Args_t ipV4;
lMode = sl_Start(0, 0, 0);
ASSERT_ON_ERROR(lMode);
/* configure device to station mode */
SwitchToStaMode(lMode);
/* Get the device's version-information */
ucConfigOpt = SL_DEVICE_GENERAL_VERSION;
ucConfigLen = sizeof(ver);
lRetVal = sl_DevGet(SL_DEVICE_GENERAL_CONFIGURATION, &ucConfigOpt,
&ucConfigLen, (unsigned char *)(&ver));
ASSERT_ON_ERROR(lRetVal);
UART_PRINT("Host Driver Version: %s\n\r",SL_DRIVER_VERSION);
UART_PRINT("Build Version %d.%d.%d.%d.31.%d.%d.%d.%d.%d.%d.%d.%d\n\r",
ver.NwpVersion[0],ver.NwpVersion[1],ver.NwpVersion[2],ver.NwpVersion[3],
ver.ChipFwAndPhyVersion.FwVersion[0],ver.ChipFwAndPhyVersion.FwVersion[1],
ver.ChipFwAndPhyVersion.FwVersion[2],ver.ChipFwAndPhyVersion.FwVersion[3],
ver.ChipFwAndPhyVersion.PhyVersion[0],ver.ChipFwAndPhyVersion.PhyVersion[1],
ver.ChipFwAndPhyVersion.PhyVersion[2],ver.ChipFwAndPhyVersion.PhyVersion[3]);
/*
* Set connection policy to Auto + SmartConfig
* (Device's default connection policy)
*/
lRetVal = sl_WlanPolicySet(SL_POLICY_CONNECTION,
SL_CONNECTION_POLICY(1, 0, 0, 0, 1), NULL, 0);
ASSERT_ON_ERROR(lRetVal);
/* Remove all profiles */
lRetVal = sl_WlanProfileDel(0xFF);
ASSERT_ON_ERROR(lRetVal);
/*
// Device in station-mode. Disconnect previous connection if any
// The function returns 0 if 'Disconnected done', negative number if already
// disconnected Wait for 'disconnection' event if 0 is returned, Ignore
// other return-codes
*/
lRetVal = sl_WlanDisconnect();
if(0 == lRetVal)
{
/* Wait for connection */
while(IS_CONNECTED(g_ulStatus))
{
_SlNonOsMainLoopTask();
}
}
/* static IP or DHCP configuration */
if (g_IpV4Option == STATIC_IP) {
ipV4.ipV4 = g_myIpAddr;
ipV4.ipV4Mask = (_u32)SL_IPV4_VAL(255,255,255,0);
ipV4.ipV4Gateway = g_GwIPAddr;
ipV4.ipV4DnsServer = g_GwIPAddr;
sl_NetCfgSet(SL_IPV4_STA_P2P_CL_STATIC_ENABLE,IPCONFIG_MODE_ENABLE_IPV4,sizeof(SlNetCfgIpV4Args_t),(_u8 *)&ipV4);
UART_PRINT("Configured to Static IP Address \n\r");
}
if (g_IpV4Option == DHCP) {
/* Enable DHCP client */
UART_PRINT("IP Address will be obtained through DHCP \n\r");
lRetVal = sl_NetCfgSet(SL_IPV4_STA_P2P_CL_DHCP_ENABLE,1,1,&ucVal);
ASSERT_ON_ERROR(lRetVal);
}
/* Disable scan */
ucConfigOpt = SL_SCAN_POLICY(0);
lRetVal = sl_WlanPolicySet(SL_POLICY_SCAN , ucConfigOpt, NULL, 0);
ASSERT_ON_ERROR(lRetVal);
/*
// Set Tx power level for station mode
// Number between 0-15, as dB offset from max power - 0 will set max power
*/
ucPower = 0;
lRetVal = sl_WlanSet(SL_WLAN_CFG_GENERAL_PARAM_ID,
WLAN_GENERAL_PARAM_OPT_STA_TX_POWER, 1, (unsigned char *)&ucPower);
ASSERT_ON_ERROR(lRetVal);
if (g_ActiveUseCase == TRANSCEIVER_MODE) {
lRetVal = sl_WlanPolicySet(SL_POLICY_PM ,SL_LOW_POWER_POLICY , NULL, 0);
ASSERT_ON_ERROR(lRetVal);
} else {
/* Set PM policy to normal */
lRetVal = sl_WlanPolicySet(SL_POLICY_PM , SL_NORMAL_POLICY, NULL, 0);
ASSERT_ON_ERROR(lRetVal);
}
/* set the sleep interval */
if (g_ActiveUseCase == ALWAYS_CONNECTED && LSI_SLEEP_DURATION_IN_MSEC > 100) {
_u16 PolicyBuff[4] = {0,0,LSI_SLEEP_DURATION_IN_MSEC,0}; /* PolicyBuff[2] is max sleep time in mSec */
sl_WlanPolicySet(SL_POLICY_PM , SL_LONG_SLEEP_INTERVAL_POLICY, (_u8*)PolicyBuff,sizeof(PolicyBuff));
}
/* Unregister mDNS services */
lRetVal = sl_NetAppMDNSUnRegisterService(0, 0);
ASSERT_ON_ERROR(lRetVal);
/* disable mdns */
sl_NetAppStop(SL_NET_APP_MDNS_ID);
/* Remove all 64 filters (8*8) */
memset(RxFilterIdMask.FilterIdMask, 0xFF, 8);
lRetVal = sl_WlanRxFilterSet(SL_REMOVE_RX_FILTER, (_u8 *)&RxFilterIdMask,
sizeof(_WlanRxFilterOperationCommandBuff_t));
ASSERT_ON_ERROR(lRetVal);
if (g_ActiveUseCase == INTERMITTENTLY_CONNECTED) {
/* Set connection policy to Auto + fast connect in */
lRetVal = sl_WlanPolicySet(SL_POLICY_CONNECTION, SL_CONNECTION_POLICY(1, 1, 0, 0, 0), NULL, 0);
ASSERT_ON_ERROR(lRetVal);
}
if (g_ActiveUseCase == SLEEP_MEASURE || g_ActiveUseCase == TRANSCEIVER_MODE) {
/* Set connection policy to None */
lRetVal = sl_WlanPolicySet(SL_POLICY_CONNECTION, SL_CONNECTION_POLICY(0, 0, 0, 0, 0), NULL, 0);
ASSERT_ON_ERROR(lRetVal);
}
if (g_SocketType == SEC_TCP_SOCKET) {
ASSERT_ON_ERROR(SetTime());
};
lRetVal = sl_Stop(10);
ASSERT_ON_ERROR(lRetVal);
g_ulStatus = 0;
return lRetVal; // Success
}
/*
// Set Tx power level for station mode
// Number between 0-15, as dB offset from max power - 0 will set max power
*/
ucPower = 0;
lRetVal = sl_WlanSet(SL_WLAN_CFG_GENERAL_PARAM_ID,
WLAN_GENERAL_PARAM_OPT_STA_TX_POWER, 1, (unsigned char *)&ucPower);
ASSERT_ON_ERROR(lRetVal);
// Set Tx power level for station mode
// Number between 0-15, as dB offset from max power - 0 will set max power
ucPower = 0;
lRetVal = sl_WlanSet(SL_WLAN_CFG_GENERAL_PARAM_ID,
WLAN_GENERAL_PARAM_OPT_STA_TX_POWER, 1, (unsigned char *)&ucPower);
ASSERT_ON_ERROR(lRetVal);
你好,我们在降低CC3200发射功率,使用了如下两种方式:
1.
// Set Tx power level for station mode
// Number between 0-15, as dB offset from max power - 0 will set max power
*/
ucPower = 15;
lRetVal = sl_WlanSet(SL_WLAN_CFG_GENERAL_PARAM_ID,
WLAN_GENERAL_PARAM_OPT_STA_TX_POWER, 1, (unsigned char *)&ucPower);
ASSERT_ON_ERROR(lRetVal);
2.
sl_SendTo(sockedid, buf, sizeof(buf), SL_RAW_RF_TX_PARAMS(1 /*eChannel*/, 13 /*eRate*/, 15/*powerLevel_Tone*/, 0 /*ePreamble*/), (SlsockAddr_t*)&sAddr, iAddrSize);
sl_SendTo函数中, 降低发射功率的参数是powerLevel_Tone, 15为发射功率最小。
问题:CC3200在连接AP以后,正常工作过程中,发射功率已经降低,为10dbm以下, 但是在连接AP的过程中,瞬间发射功率会达到15dbm, 怎样才能把cc3200连接AP的过程中的瞬间发射功率降低到10dbm以下?