Hi
I have a CC3100 chip that is being controlled from a host MCU. On the host, I'm using source code from the radio tool to make the CC3100 transmit continuously on channel 6. I'm trying to measure the resulting signal on a spectrum analyzer.
When I run the CC3100 in sta mode and connect to the AP, I can see the response on the spectrum analyzer spread out on the channels. But when I run the same chip through the radio tool source code, I don't see the corresponding output on the spectrum analyzer.
Pseudo code for continuous TX:
WIFI_takeOutOfReset(0);
raw=sl_Start(NULL,NULL,NULL);
assert(raw==0);
ret=sl_WlanPolicySet(SL_POLICY_CONNECTION, SL_CONNECTION_POLICY(0, 0, 0, 0, 0), NULL, 0);
assert(0 == ret);
ret = sl_Stop(0xFFFF);
assert(ret == 0);
ret = sl_Start(NULL, NULL, NULL);
assert(ret == 0);
memset(data_frame, 0, size);
sl_NetCfgGet(SL_MAC_ADDRESS_GET, NULL,&pConfigLen, &TemplateFrame[TA_OFFSET]);
memcpy(&TemplateFrame[RA_OFFSET], dest_mac_addr, SL_BSSID_LENGTH);
memcpy(&TemplateFrame[DA_OFFSET], dest_mac_addr, SL_BSSID_LENGTH);
memcpy(data_frame, TemplateFrame, sizeof(TemplateFrame));
SlRateIndex_e rate=RATE_1M;
raw_socket = sl_Socket(SL_AF_RF, SL_SOCK_RAW, channel);
ret=sl_SetSockOpt(raw_socket, SL_SOL_PHY_OPT, SL_SO_PHY_NUM_FRAMES_TO_TX, &numberOfFrames, sizeof(unsigned long));
assert(ret==0);
int i;
for(i=0;i<2000;i++)
{
ret=sl_Send(raw_socket, data_frame, size, SL_RAW_RF_TX_PARAMS(channel, rate, power_level, preamble));
assert(ret==size);
}
tx_thread_sleep(OS_TICKS_PER_MSEC * 500);
ret = sl_Close(raw_socket);
assert(ret == 0);
//sl_WlanPolicySet(SL_POLICY_CONNECTION, SL_CONNECTION_POLICY(1, 0, 0, 0, 0), NULL, 0);
raw=sl_Stop(0xFFFF);
assert(raw==0);
WIFI_PutInReset(1);
For this application, channel = 6, power = 0, preamble = SL_LONG_PREAMBLE and numberOfFrames = 0
Am I missing something here?