12
Return list

9720

Posts

24

Resources
21
 
baixiukai published on 2019-8-20 11:52 I used the development board to test and modified it using the Beacon routine. Add IO configuration code to modify the broadcast interval main program to add...

I tried your code

There is a sentence in while: "GPIO_ToggleBits(GPIO_Pin_6);"

If you comment it out, DIO6 will always be at low level.

This post is from ST - Low Power RF

Comments

Well, in fact, I tested that removing GPIO_ToggleBits() will also change. The premise is that you configure it to output high level before while (1). Then there will be a change. I suspect that the problem is caused by the internal configuration of the pin to the state before sleep after waking up from sleep.  Details Published on 2019-8-20 17:51
Personal signature虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 

29

Posts

0

Resources
22
 
littleshrimp posted on 2019-8-20 16:54 I tried your code. There is a sentence "GPIO_ToggleBits(GPIO_Pin_6);" in while. Comment it out. DIO6 ...

Well, in fact, I tested that removing GPIO_ToggleBits() will also change the sentence. The premise is that you configure it to output high level before while (1).

This will cause a change. I suspect that this problem is caused by the internal configuration of the pins to the pre-sleep state after waking up from sleep.

This post is from ST - Low Power RF

Comments

If io6 is set high before entering while, the chip will output a high level after waking up, and will become high impedance after entering sleep (displaying a low level when measured). This is logical.  Details Published on 2019-8-20 18:00
 
 
 

9720

Posts

24

Resources
23
 
baixiukai posted on 2019-8-20 17:51 Well, in fact, I actually tested that removing GPIO_ToggleBits(); this sentence will also change. The premise is that you configure it to output high level before while (1). ...

If io6 is set high before entering while, the chip will output a high level after waking up, and will become high impedance after entering sleep (displaying a low level when measured). This is logical.

This post is from ST - Low Power RF

Comments

Well, it is logical, but the level signal will be pulled down for 2-3ms during the wake-up configuration process. I used an oscilloscope to observe the amplified waveform. It outputs a low level first and then configures it to a high level during the configuration process. So if these pins are connected to something like a common anode LED in the product, the broadcast  Details Published on 2019-8-20 21:12
Personal signature虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 
 

29

Posts

0

Resources
24
 
littleshrimp posted on 2019-8-20 18:00 If io6 is set high before entering while, the chip will output a high level after waking up, and will become high impedance after entering sleep (displaying low when measured)...

Well, it is logical, but during the wake-up configuration process, the level signal will be pulled down for 2-3ms. I used an oscilloscope to observe the amplified waveform. During the configuration process, it outputs a low level first and then configures it to a high level.

Therefore, if these pins are connected to something like a common anode LED in the product, a faint flash will be seen during the broadcast wake-up period.

This post is from ST - Low Power RF

Comments

OK, I'll try connecting a resistor tomorrow.  Details Published on 2019-8-21 14:08
OK, I'll try connecting a resistor tomorrow.  Details Published on 2019-8-20 22:09
 
 
 

9720

Posts

24

Resources
25
 
baixiukai posted on 2019-8-20 21:12 Well, it is logical, but during the wake-up configuration process, the level signal will be pulled down for 2-3ms. I used an oscilloscope to observe the amplified wave...

OK, I'll try connecting a resistor tomorrow.

This post is from ST - Low Power RF
Personal signature虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 
 

9720

Posts

24

Resources
26
 
baixiukai posted on 2019-8-20 21:12 Well, it is logical, but during the wake-up configuration process, the level signal will be pulled down for 2-3ms. I used an oscilloscope to observe the amplified wave...

I connected a 20K resistor to DIO6 and tested it as shown below. The high level is after wake-up, and it is usually at the middle level (because of the influence of LED), without low level jump

The same 20K pull-up is connected to DIO0, and a jump is seen, the lowest is about 2.4V

20K pull-up connected to DIO4 will always be high level, no low level jump is found

After waking up, flipping DIO4 will produce the following waveform, proving that the physical connection and configuration of DIO4 are correct

This post is from ST - Low Power RF
Personal signature虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 
 

29

Posts

0

Resources
27
 

Check out the last picture to see if it is explained in this way.

This post is from ST - Low Power RF

Comments

This is only possible if you add i/o flip in while. If you don't add it, it will always remain at a high level and the problem you encountered will not occur. If you change the i/o flip to the following, set the high level before sleep and change it to a low level after waking up, you can see that it will wake up 4 times in a short time every second.  Details Published on 2019-8-21 16:31
 
 
 

9720

Posts

24

Resources
28
 
baixiukai posted on 2019-8-21 16:09 See if this is the explanation of the last picture

This is only possible if you add i/o flip in while. If you don't add it, it will always remain at a high level and the problem you encountered will not occur.

If you change the i/o flip to the following, set the high level before sleep and change it to low level after wakeup, you can see that it will wake up 4 times in a very short time every second, then sleep for nearly 1 second, and then wake up 4 times in a row. The interval between each time is 560us and the wakeup time is 80us. This should be related to the configuration of Bluetooth broadcasting.

This post is from ST - Low Power RF

Comments

OK, thanks for the recent help. We have modified a version of the circuit board, and now it is fine. The power consumption is about 6ua if there is no broadcast in sleep mode, and about 16ua once per second. We will ask the ST manufacturer about the problem of automatic IO configuration when the broadcast wakes up, and see if they have any reply, and then post it.  Details Published on 2019-8-23 17:04
Personal signature虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 
 

29

Posts

0

Resources
29
 
littleshrimp posted on 2019-8-21 16:31 This is only possible if you add i/o flip in while. If you don't add it, it will always remain at a high level and the problem you encountered will not occur. If you put...

OK, thanks for the recent help. We have modified a version of the circuit board, and now it is fixed. The power consumption is about 6ua when in sleep mode and without broadcasting.

If it happens once per second, it will be around 16ua.

We will ask ST about the automatic IO configuration after broadcast wakeup and see if they have any reply. We will post it later.

Many thanks

This post is from ST - Low Power RF
 
 
 

12
Return list
Just looking around
Find a datasheet?

EEWorld Datasheet Technical Support

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号
快速回复 返回顶部 Return list