Part Number:CC2541
Hello,
I'm developing Beacon module using the CC2541 and the CC2590.
The development environment is BLEstack 1.4.2.2 with using SimpleBLEBroadcaster -part of the CC2541.
When the other related enginner completed the S/W, it worked fine. But when we did field test with more than 50 sets, almost 100% of sets
stopped advertising for 2.9Hours and get back to normal advertising condition. It happened once per day or or once per week random.
Based on E2E advice, I tried to adjust (#define HAL_SLEEP_ADJ_TICKS) time to 85 from original 35 to secure enough 32MHz X-tal
stabilization time. But the problem was happened contineously. When I adjusted the tick time to 15, the problem happened all the time.
So I tried to excluded power_save mode as follow just for test. Then I found 32MHz X-tal was running without sleep.
But the problem happened again & again. So it's thought that problem is not only related with Tick time.
INT_HEAP_LEN=2048
HALNODEBUG
OSAL_CBTIMER_NUM_TASKS=1
HAL_AES_DMA=TRUE
HAL_DMA=TRUE
xPOWER_SAVING
xPLUS_BROADCASTER
xHAL_LCD=TRUE
xHAL_LED=FALSE
xHAL_KEY=TRUE
The other phenominon I found is that the problem cause 32MHz X-tal oscillation conteniously WHEN power_save mode was enabled.
So normal power consumption 0.8mA was increased to 8mA for 2.9hours. And back to 0.8mA at sleep.
To avoid any other unused I/O port interrupt, I've changed port setting in many ways. But it does not fix the problem.
----------------------------------------------------------------------------------------------------
#if defined( CC2540_MINIDK )
// Register for all key events - This app will handle all key events
RegisterForKeys( simpleBLEBroadcaster_TaskID );
// makes sure LEDs are off
HalLedSet( (HAL_LED_1 | HAL_LED_2), HAL_LED_MODE_OFF );
// For keyfob board set GPIO pins into a power-optimized state
// Note that there is still some leakage current from the buzzer,
// accelerometer, LEDs, and buttons on the PCB.
P0SEL = 0; // Configure Port 0 as GPIO
P1SEL = 0; // Configure Port 1 as GPIO
P2SEL = 0; // Configure Port 2 as GPIO
P0DIR = 0xFC; // Port 0 pins P0.0 and P0.1 as input (buttons),
// all others (P0.2-P0.7) as output
P1DIR = 0xFF; // All port 1 pins (P1.0-P1.7) as output
P2DIR = 0x1F; // All port 1 pins (P2.0-P2.4) as output
P0 = 0x03; // All pins on port 0 to low except for P0.0 and P0.1 (buttons)
P1 = 0; // All pins on port 1 to low
P2 = 0; // All pins on port 2 to low
#endif // #if defined( CC2540_MINIDK )
----------------------------------------------------------------------------------------------------------------------------
Coul you pls advise which parts of S/W can cause such problem ? And how to fix it ?
The schematic is as attached.