Smart Bluetooth Forum Discussions
I'd like to make hello_sensor connected or not with button.
During idle state, board can connect or disconnect depending on the button.
But When the board is in deep sleep mode, it can not advertise with the first button interrupt.
I summarized my test procedures.
1. idle case
1) button press (advertise) - button press (stop advertise and disconnect) - button press (advertise ... ) .....
2. deep sleep case
1) button press (advertise) - button press (stop advertise and disconnect) - deep sleep - button press (wake up) - button press (advertise)...
if board does not go into deep sleep mode, it can toggle the connection state (advertisement state).
but if board goes into deep sleep mode, I should press button twice, the first is for wakeup and the second is for advertising.
Could you tell me what I should do after waking up from deep sleep mode for advertisement?
Show LessHi,
I'm using SDK2.1 and I'm trying to test out OTA (non-secure) functionality. I've installed BTW and have the plugable dongle suggested on the forum. My board is the EMRF-2036S-BOB board which uses the BCM920736SA1 chip. I can successfully flash my board and connect to my windows machine. However, when I go and run
WsUpgrade.exe ota_firmware_upgrade-BCM920736TAG_Q32-rom-ram-Wiced-release.ota.bin
I always end up with a CRC check that fails on ws_verify() (the packets seem to get downloaded just fine) and the OTA aborts.
Do you have any idea why I might be having these issues? Here is the 20736_EEPROM.btp file I am using (straight out of the box)
DevicePreset "20736 EEPROM (64 byte pages)"
{
ConfigFSOffset = 0
DLReadWriteMode = "Cortex M3 HCI"
DLWriteVerifyMode = "Write and verify"
DLMaxWriteSize = 64
DLSectorEraseMode = "Chip erase"
DLDTRReset = 0
DLPostResetDelay_ms = 100
DLAutobaud = 0
DLAutobaudRepeat = 1
DLAutobaudRepeatDelay_ms = 200
DLWaitForLaunchAnnounce = 0
DLConfigReprogramIF_PLL = 0
DLUsbBulkPipe = 0
DLMinidriver = 1
DLMinidriverPathUSB = "[MINIDRIVERS]\20732\usb.hex"
DLMinidriverPathNET = "[MINIDRIVERS]\2072\uart.hex"
DLMinidriverPathSDIO = "[MINIDRIVERS]\2072\sdio.hex"
DLMinidriverPathUPRX = "[MINIDRIVERS]\20732\uart.hex"
DLMinidriverPathUART = "[MINIDRIVERS]\20732\uart.hex"
DLFirmware = 0
DLFirmwareTargeting = "Standard"
DLConfig = 1
DLConfigTargeting = "EEPROM"
ConfigPath = "[BTP_FOLDER]\A_20732A0-hello_sensor-rom-ram-spar.cgs"
DLConfigFixedHeader = 1
DLConfigFixedHeaderFromBurnImage = 0
DLConfigOmitRF_PLL = 1
DLConfigIncludeChargerConfig = 0
DLConfigDFUKey = 4294967295
DLConfigCrystalFreqMHzX10000 = 240000
DLConfigOutputPowerAdjust = 40
DLConfigImpedanceMatchTuning = 31
DLConfigSerialControlBaudRate = 115200
DLConfigEEPROMAccessSpeed = 100
DLConfigVSOffset = 0
ConfigDSLocation = 1408
DLConfigSSLocation = 0
DLConfigIncludeBTWSecurityKey = 0
DLConfigVSLocation = 320
DLConfigVSLength = 1024
DLConfigRemoteDeviceCount = 0
DLConfigBD_ADDRBase = "20736A1*****"
DLConfigFixedBD_ADDRFlag = "Can change"
OTAFWUAckAllRecords = 0
OTAFWUUpdateFirmware = 1
OTAFWUUpdateConfig = 1
}
And here is my ws_upgrade.c settings
const WS_UPGRADE_NV_LOC_LEN nv_loc_len[2] =
{
{
/* .ss_loc = */ {0, 256},
/* .ds1_loc = */ 0x580, // ConfigDSLocation
/* .ds1_len = */ 0x7A00, // ~31KB
/* .ds2_loc = */ 0x8000,
/* .ds2_len = */ 0x7A00, // ~31KB
/* .vs1_loc = */ 0x140, // DLConfigVSLocation
/* .vs1_len = */ 0x400, // DLConfigVSLength
/* .vs2_loc = */ 0, // No VS2 for EEPROMS
/* .vs2_len = */ 0 // No VS2 for EEPROMS
},
// We are assuming that we have a 64KByte Serial Flash. If the SF is larger, you may change ds1_len, ds2_loc, ds2_len
// accordingly.
{
/* .ss_loc = */ {0, 0x1000},
/* .ds1_loc = */ 0x4000, // ConfigDSLocation
/* .ds1_len = */ 0x6000,
/* .ds2_loc = */ 0xA000,
/* .ds2_len = */ 0x6000,
/* .vs1_loc = */ 0x2000, // DLConfigVSLocation
/* .vs1_len = */ 0x1000, // DLConfigVSLength
/* .vs2_loc = */ 0x3000,
/* .vs2_len = */ 0x1000
},
};
thank oyu,
akbar
Show LessI spent some time reviewing SPI as well as the latest TAG board referenced as BCM920737TAG. If I look at the document called "920737TAG03-HWUM100-R", page 14. I see the GPIO Pin 15 called "P15" on the BCM20737A1 being connected to VDDIO via R31. The document specifies the R31 being a 0 ohm resistor, it has also been confirmed with a measurement tool.
At this point it is unclear why we would connect the "P15" to VDDIO directly, is it possible to clarify the intention behind this design?
Second point, and probably the most important, is that the Spiffy2 Master sample code in WICED-Smart-Hardware-Interfaces.pdf, page 9 sets P15/PORT 0 as CS. I think we will have a problem if we run this code on the tag board. I do see a short happening here as soon as CS is going low.
Last point I couldn't confirm the R31 resistor value via the BOM, I couldn't find it in the BOM document (ref: TAG3_Manufacturer_BOM.pdf).
Is it possible to comment on this,
Thanks
Show LessHello,
I saw in a couple threads mentioning that the power consumption when a peripheral is connected, but not doing anything should be in the uA range. However my device seems to be running in the 10mA range always.
How can I enable low power modes? I was able to but the device into deep sleep, but at that point the connection is lost.
Do you have a recommended way to measure power consumption on the TAG board?
Show LessHello
Is RFCOMM service available with BLE product BCM20732 ?
Best regards
Michel
Hi,
Im having a bcm920737IBCN_REF board and i want to program it. Is there any user guide which helps me to do basic setup.
Initially we were using bcm20732 which we could do sample profiles.
Thanks,
Show LessHi sirs,
If I want to keep both interface exist, can I arrange the pin assignment as follow?
SPIFFY2 -> CS(P02), SCLK(P03), MOSI(P00) and MISO(P05).
UART -> RXD(P4), TXD(P32)
I read the BCM920732_HW_Application_Note and have a question about the restrictions.
If a peripheral UART is also being used by the application, the SPIFFY2 signals and peripheral UART RX signal must be on the lower pad bank (P0 through P7) or on the upper pad bank (P24 through P39). Thus, SPIFFY1 or SPIFFY2, and peripheral UART RX, cannot be on two different pad banks.
What does it exactly means?
Best regards,
Fran
Show LessWould it be possible to get the source code for this function? It would be very helpful as a base for doing low-level timing-critical functions (and we think we know how to make it slightly more accurate, based on a guess of how it works).
Show LessWe want our central to advertise its ID all the time.
But it only sends the ad set at boot-time specified by .local_name in the BLE_PROFILE_CFG array.
When we change the ad, it still keeps sending the boot-time data.
We copied the method to set the ad from our peripheral, which updates its ad ok.
Here's how we set the ad:
char ad_name_frame[LOCAL_NAME_LEN_MAX + 1];
adv[0].len = 1 + 1;
adv[0].val = ADV_FLAGS;
adv[0].data[0] = LE_GENERAL_DISCOVERABLE /* LE_LIMITED_DISCOVERABLE */ | BR_EDR_NOT_SUPPORTED;
sprintf(ad_name_frame, "zz %d %3d %2d %4d"
adv[1].len = strlen(ad_name_frame) + 1;
adv[1].val = ADV_LOCAL_NAME_COMP;
strcpy(adv[1].data, ad_name_frame);
bleprofile_GenerateADVData(adv, BLE_ADV_FIELD_ELEMENTS);
Show Less