- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi BCM support,
As a follow on to the thread here: How to lock Tx on a particular channel? (Con't)
I used the below approach for following tests:
a) Modulated test:
* call blecm_StartTransmitterTest() on channel 0(2404-2406MHz), packet length of 20bytes and packetType = 0x7(01010101)
* We expected the frequency to get locked down to channel 0.
* But in the spectrum analyzer we saw the frequency hopping
b) Unmodulated test:
* blecm_EnableUnmodulatedTxCarrierFrequencyTest() on 2404MHz at power level +4dB(I think stack ceils it to +3dB internally)
* We could see unwanted noise in frequencies other than desired above.
Can you please let us know if this is the right way to execute both of these tests for FCC?
Regards,
Subash
Solved! Go to Solution.
- Labels:
-
RegulatoryCertification
-
SDK 2.X
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi j.t,
This issue is resolved. Thanks for checking back. MBT is not useful for devices which don't expose debug UART.
Regards,
Subash
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Are you planning on leveraging Broadcom's existing regulatory per the guidelines provided here: Broadcom BCM20732S/BCM20736S/BCM20737S Regulatory Approvals
Specific to FCC: FCC Certification Flow for Broadcom module products
I ask because most customers leverage the existing regulatory, so we have little knowledge internally of how the specific regulatory tests themselves are conducted.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
We are going to leverage FCC 15-b from BCM approval. But we also need to run FCC 15-C on our product. Do you think BCM already has regulatory approval for this? If so, then how can we leverage it?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Per this thread, Re: Europe and Canada approval for BCM20732S, the following FCC 15-B and 15-C tests need to be completed when leveraging the regulatory we have completed for the SIP module:
- FCC Part B 15.109; (spurious emission)
- FCC Part C 15.207; (transmitter test)
- FCC Part C 15.247; (transmitter test)
I had verified the information in this thread earlier with our regulatory team, so it's correct.
Does this agree with the direction provided by the FCC accredited Test house you are working with?
In addition, the document below should be in the regulatory documents that the local Broadcom Rep (RF Associates) provided to you.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi mwf_mmfae,
Thanks for that detailed explanation. From your email (and what our test lab has asked us to test) this is the summary of what I understood:
a) EN 300328 (RSE) - We will leverage Broadcom approval - no need to retest
b) EN 301489-1/-17 - We will run system level test only
c) FCC Part B 15.109 - We need to retest
d) FCC Part C 15.207 - We need to retest
e) FCC Part C 15.247 - We need to retest
The link BLE RF Testing Setup Procedures suggests running these tests using MBT. For using MBT, device needs to have access to HCI interface. Our final product doesn't have HCI(through debug UART) interface exposed. When I had inquired BCM support a while ago, I was suggest following way How to lock Tx on a particular channel? From our tests at the lab using these APIs, we saw issues which has been reported here: Re: How to lock Tx on a particular channel? (Con't)
Can I please get to know what is the right way to setup tests (without HCI interface) for (b) through (e) to get these regulatory approval?
Regards,
Subash
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Are you saying that your end product does not provide access to the HCI UART (none of the 2073X products allow HCI access), which is required for all initial programming of the device? The MBT document here is a better source of information for MBT. This tool only requires access to your design over the HCI UART.
Take a look: Manufacturing Bluetooth Test Tool Application Note (SDK 2.1 and TAG3 Board)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Yes. We dont have access to HCI over UART. We use i2c to update the firmware image.
Due to lack of HCI over UART, we connect our device to a host, and send the FCC tests as commands and use API's below for starting the test. But it looks like these APIs are not setting up the transmitter in the right mode.
blecm_StartTransmitterTest()
blecm_EnableUnmodulatedTxCarrierFrequencyTest()
Your help in this regards is highly appreciable.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Are you referring to the code I pasted below that the developers provided? Again, we do not normally provide much guidance in this area, so I am trying to determine what you are looking for exactly.
Specific questions are helpful when discussing with the developers.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
From my post on 04/07/2015:
a) LE transmitter test:
* send the command(through a private characteristic) to run this test from host
* disconnect from the device using blecm_disconnect()
* call blecm_StartTransmitterTest() on channel 0(2404-2406MHz), packet length of 20bytes and packetType = 0x7(01010101)
* We expected the frequency to get locked down to channel 0.
* But in the spectrum analyzer we saw the frequency hopping
* rebooting the device will stop the test(as host cannot connect back during test)
b) Transmitter test:
* send the command(through a private characteristic) to run this test from host
* disconnect from the device using blecm_disconnect()
* blecm_EnableUnmodulatedTxCarrierFrequencyTest() on 2404MHz at power level +4dB(I think stack ceils it to +3dB internally)
* We could see unwanted noise in frequencies other than desired above.
* rebooting the device will stop the test(as host cannot connect back during test)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello Subash,
1. Have you tried using MBT (Manufacturing Bluetooth Test Tool Application Note (SDK 2.1 and TAG3 Board)) and if so, does it show the same behavior?
2. If you do not see the same behavior with MBT, then there is other RF Activity being produced in your app.
Hope this helps,
Thanks,
JT
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi j.t,
This issue is resolved. Thanks for checking back. MBT is not useful for devices which don't expose debug UART.
Regards,
Subash
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I spoke with the developers and it appears that there are some APIs you can use for regulatory tests without having to use HCI commands (in app mode).
However, you will need to write the program in such a way that you turn off all adv/scans/connections before invoking these APIs (some customers have used this mechanism and is known to work).
See blecm.h, rf_cw_test_api.{h,a}:
/**
* Ends all LE tests that were started with blecm_StartReveiverTest or blecm_StartTransmitterTest
*
* \param NONE
*/
void blecm_EndTest(void);
/**
* Starts the standard LE receiver test on the given channel
*
* \param channel The channel to use for the test. 0-39.
* \return <ReturnValue> True if test was started successfully, else could not start the test.
*/
UINT8 blecm_StartReveiverTest(UINT8 channel);
/**
* Starts the standard LE transmitter test with the given parameters
*
* \param channel The channel to use for the test. 0-39.
* \param packetLength The Length test packet. 0-37
* \param packetType The type of packet to use - The following are supported:
* {0x00, "Pseudo-Random bit sequence 9"},
* {0x01, "Pattern of alternating bits '11110000'"},
* {0x02, "Pattern of alternating bits '10101010'"},
* {0x03, "Pseudo-Random bit sequence 15 - Optional"},
* {0x04, "Pattern of All '1' bits - Optional"},
* {0x05, "Pattern of All '0' bits - Optional"},
* {0x06, "Pattern of alternating bits '00001111' - Optional"},
* {0x07, "Pattern of alternating bits '01010101' - Optional"}
* \return <ReturnValue> True if test was started successfully, else could not start the test.
*/
UINT8 blecm_StartTransmitterTest(UINT8 channel, UINT8 packetLength, UINT8 packetType);
/**
* Set advertising parameters and starts advertisements.
* \details Sets the advertisement parameters and starts it.
* \param advType The advertismenet type. See LE_Set_Advertising_Parameters HCI command for acceptable values.
* \param advInterval The advertisement interval in BT slots (min 32, max 16384).
* \param advChannel The advertisement channel mask (can bitwise OR). 0x01 for ch37; 0x02 for ch38; 0x04 for ch39.
* \param advAdrType The advertiser type (Public/random).
* \param advFilterPolicy The filter policy to use. See BT spec for acceptable values.
* \param initiatorAdrType The address type of the peer device - valid only when advType is directed advertisement.
* \param initiatorAdr The address of the peer device - valid only when advType is directed advertisement.
*/
void blecm_startAdv(INT32 advType, INT32 advInterval, INT32 advChannel, INT32 advAdrType,
INT32 advFilterPolicy, INT32 initiatorAdrType, UINT8* initiatorAdr);
////////////////////////////////////////////////////////////////////////////////
/// Enables TX CW test.
/// \param cwFreq The desired Bluetooth carrier frequency (min: 2402MHz, max: 2490MHz).
/// \param txPower The TX power to use.Will be rounded to closest value possible.
/// \return TRUE if successful; else FALSE.
////////////////////////////////////////////////////////////////////////////////
UINT8 blecm_EnableUnmodulatedTxCarrierFrequencyTest(UINT16 cwFreq, INT8 txPower);
////////////////////////////////////////////////////////////////////////////////
/// Disables unmodulated carrier frequenct TX test.
/// \return TRUE if successful; else FALSE.
////////////////////////////////////////////////////////////////////////////////
UINT8 blecm_DisableUnmodulatedTxCarrierFrequencyTest(void);
////////////////////////////////////////////////////////////////////////////////
/// Register callback to be invoked when the end test command completes.
/// \param cb Pointer to a function that takes a UINT16 num packet completed parameter.
////////////////////////////////////////////////////////////////////////////////
void blecm_setEndTestCompleteCallback(void (*cb)(UINT16));
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Here is another good write up in case you want to verify some of these RF parameters yourself.