Smart Bluetooth Forum Discussions
Hi All,
I am testing the power consumption of 20736 EVK when 20736 as a master, but I found the strange current pules when 20736 connected a slave device .I use the power monitor to record the current of 20736 EVK, the power monitor is a suit for testing power consumption, it include the one power supply and the PC tool.
One 20736 EVK as a slave and run hello_sensor app, I modified some codes in hello_sensor, the following is the modification.
1. disable the connect idle timer.
2. update the connect interval to 1S by calling bleprofile_SendConnParamUpdateReq(800, 820, 0, 700).
3. disable the sending notification and indication.
Another 20736 EVK as a master and run hello_cleint app, I modified some codes in hello_client, the following is the modification.
1. disable the advertising.
2. disable all the writing and reading slave GATT DB codes.
3. add the blecen_connUp() to disable the connect timer in hello_client_connection_up();
5. disable the advertising after connected one salve device by blecm_setAdvDuringConnEnable(FALSE);
But I found the strange current pulse after connecting the slave device on master EVK when I use the power monitor to test the power consumption. Attach the screenshot, the strange current pules is shown for every about 4S. I expand the strange current pules, found it is kept about 14 ms, The connect interval is about 1S, normal timer and fine timer is 1S, I can found the current pules of connect interval and timers, but I don't explain the strange 15ms current pules, anyone can help me?
Show Less
We are looking for a way to control the state of a GPIO depending on the radio activity so that we can control the bypass pin of our DC/DC converter for power consumption optimisation.
The DC/DC converter we are using has a really bad efficiency in low load condition. So we would like to only turn the DC/DC converter off while the radio is active. This is a similar use case when trying to connect an external booster chip to the BCM which should only be active while the TX part of the radio is active.
We know that there is a callback mechanism with bleprofile_notifyAdvPacketTransmissions() so that we get called before and after an advertisement packet is sent. Inside this callback we could turn the bypass pin of our DC/DC converter on and off to optimise the power consumption during advertisement state. But we have not found a way to do the same while we are in connected state.
Other BLE chips (like the TI CC2540) do have this functionality. What about the BCM2073x?
Show LessArvinds,
I checked the thread: UART Routines and the code you posted there.
I did 2 testes. In both tests I send 10 bytes to PUART when button is pressed (on TAG3 board):
#define W_MARK 0
void hello_sensor_interrupt_handler(UINT8 value)
{
if (value&0x01)
{
// Set watermark
// Max watermark level is P_UART_WATER_MARK_TX_LEVEL_HIGHEST ( = 15)
P_UART_WATER_MARK_TX_LEVEL( W_MARK );
if(P_UART_TX_FIFO_IS_EMPTY())
{
puart_synchronousWrite("12345678\n\r", 10) ;
// Enable the TX interrupt. Callback registered with puart_txCb will be invoked when all bytes
// have been transmitted.
P_UART_INT_ENABLE |= P_UART_ISR_TX_FAE_MASK;
}
}
}
In puart_tx_callback function I check if TX FIFO is empty:
void puart_tx_callback(void)
{
// Clear interrupt state
P_UART_INT_CLEAR(P_UART_ISR_TX_FAE_MASK);
// TX FIFO is empty now. So send another at most 16 bytes here if required,
// set new watermark (if not 0) and re-enable TX interrupt.
// check is TX FIFO is really empty
if(P_UART_TX_FIFO_IS_EMPTY())
ble_trace0(">>>>>> TX FIFO empty\n\r");
else
ble_trace0(">>>>>> TX FIFO not empty !!!\n\r");
}
Test 1.
#define W_MARK 0
puart_tx_callback reports that TX FIFO is NOT empty !!! why ????
Test 2.
#define W_MARK 15
Since we send only 10 bytes puart_tx_callback should never be called (10 < 15)
In fact puart_tx_callback IS called !!! why ????
Attached, you will find the test code based on hello_sensor app.
There is an issue with waking up from deep sleep using a timer.
If I don't configure any GPIO with interrupt then the chip can enter deep sleep mode but when it's time to wake up it keeps rebooting every 5 seconds. On the other hand if I configure one GPIO (any GPIO) with interrupt then everything works.
I don't understand the relation between GPIO and wake up using a timer.
Attached please find a test app that demonstrates this issue.
Show LessThese functions are found in the time.h that comes with the SDK. Projects can #include time.h & make calls to these functions without errors from the compiler. The linker seems unable to find these functions as if they've been declared but not somewhere in code. Any ideas where I might find these functions in the SDK?
Show LessHi
I'm trying to connect a linear devices LTC2499 ADC to the wiced sense through i2c. So far, I can't seem to get it to acknowledge -- all I get is NO ACK. I'm using the cfa_bsc_OpExtended command as is used for the other sensors on the board. With this command I can read from the other sensors no problem using their i2c addresses, but the i2c address I give for the ADC never works. I've tried changing the i2c address for the LTC2499 (it is configurable) but none of them connect.
Looking at it with the oscilliscope, I see that SCL is running at 100Hz -- I guess that's the default, as I haven't changed it. I haven't managed to decode the SDA signal yet -- I guess I'll try adding an external trigger on one of GPIO pins.
Any other things I could try? Are the commands in i2c.h still broken for the Wiced Sense? I don't think the actual code for cfa_bsc_OpExtended is available so I can't debug it from the software side. I'm using SDK 2.2.
Thanks,
Reynald
Show LessI'm a bit confused on the distinction between the RAM and ROM applications.
* When building a RAM application with the 'download' parameter, the object code still gets programmed into ROM, right?
* Is the object code for the application loaded into RAM, and executed from RAM during runtime? Or does that just execute straight from ROM?
* Some of the documentation I was reading over mentioned that RAM applications allow for dynamic reconfiguration of the GATT database. Does that mean registering/unregistering services and characteristics, or does that only mean modifying and storing values?
* Does the build system do anything different in the build for RAM targets versus ROM targets? (Relevant: Visiting the guy that wrote the build scripts - DevOps Reactions)
Show LessI want to set a peripheral device cannott allow be paired with center(Smart phone)
in my progarm, I call
lesmp_setPairingParam(
LESMP_IO_CAP_DISP_ONLY,
LESMP_OOB_AUTH_DATA_NOT_PRESENT,
LESMP_AUTH_FLAG_NO_BONDING,
LESMP_MAX_KEY_SIZE,
LESMP_KEY_DISTRIBUTION_ENC_KEY
| LESMP_KEY_DISTRIBUTION_ID_KEY
| LESMP_KEY_DISTRIBUTION_SIGN_KEY,
LESMP_KEY_DISTRIBUTION_ENC_KEY
| LESMP_KEY_DISTRIBUTION_ID_KEY
| LESMP_KEY_DISTRIBUTION_SIGN_KEY
);
but device can be paired with center.
How should I set the parameter of lesmp_setPairingParam to refuse to be paired with center ?
or
Which API I should call to to refuse to be paired with center ?
Show LessHi,
I just downloaded the WICED SMART SDK 2.2.0. There is mention of an automation_io app in the README.txt file, but the folder seems to be missing from the Apps folder. Can someone point out where the app can be obtained or explain why it is no longer there? Any pointers are appreciated.
Regards,
Arvind
Show Less