Maker Pro
Maker Pro

Voltage threshold issue

Rajinder

Jan 30, 2016
568
Joined
Jan 30, 2016
Messages
568
Hi all,
We are trying to use a FT230x CBUS3 to control the BOOT status of a STM32F215.
The boot pin of the STM32 is tied to 0V via a 10K pull down.

The internal pull up of the FT device is used to toggle the boot pin. I have attached a diagram.

We are seeing a voltage of 0.5V which does not meet the requirements for the VIH of the STM32 to register as a logic 1. It has the following criteria 1.75V<VDD<3.6V

However, when the pull down is changed to 100K we get around 2.2V.

I have measured the value of the internal pull up of the FT230 by measuring the current going into the CBUS3 pin and VCcIO is 3.3V. Which is around 66K.

This all makes sense. My question is why when the pull down is at 10K can I still enter boot mode when the voltage going into the STM32 is 0.5V? Sometimes it fails.

Thanks in advance.
 

Attachments

  • IMG_20231020_071530.jpg
    IMG_20231020_071530.jpg
    128.1 KB · Views: 7

AnalogKid

Jun 10, 2015
2,860
Joined
Jun 10, 2015
Messages
2,860
Manufacturing margin: The voltage/current/resistance range over which a pin is guaranteed to function, and the range over which it actually will function, are two different things.

ak
 

Rajinder

Jan 30, 2016
568
Joined
Jan 30, 2016
Messages
568
Manufacturing margin: The voltage/current/resistance range over which a pin is guaranteed to function, and the range over which it actually will function, are two different things.

ak
Thanks for your reply. However, I can't understand how a voltage of 0.5V can he recognised as a logic 1 on the STM32, which has a minimum ViH of 1.26V.
 

Delta Prime

Jul 29, 2020
1,793
Joined
Jul 29, 2020
Messages
1,793
Thanks for your reply. However, I can't understand how a voltage of 0.5V can he recognised as a logic 1 on the STM32, which has a minimum ViH of 1.26V.
This all makes sense. My question is why when the pull down is at 10K can I still enter boot mode when the voltage going into the STM32 is 0.5V? Sometimes it fails
You have to check your code!
Your output is floating causing false triggering.
Look at the actual minimum and maximum range of the internal Pull-Ups on the datasheet.
Take your multimeter and measure the actual voltage supplied to the chip.
Now!The internal pull-up resistors on the GPIO pins can be enabled or disabled in software.
With an unconnected IO pin in software; set it to an input with the pull up enabled.
Measure the current from that pin to ground.
With the measured voltage supplied to the chip you can calculate the actual resistance of the internal pull-up resistor.
Then you can make the appropriate adjustments. Ohm's law baby! R=V÷I. The principles the same for pulldown resistors.
Snap a photo of your setup.
 
Last edited:

Rajinder

Jan 30, 2016
568
Joined
Jan 30, 2016
Messages
568
You have to check your code!
Your output is floating causing false triggering.
Look at the actual minimum and maximum range of the internal Pull-Ups on the datasheet.
Take your multimeter and measure the actual voltage supplied to the chip.
Now!The internal pull-up resistors on the GPIO pins can be enabled or disabled in software.
With an unconnected IO pin in software; set it to an input with the pull up enabled.
Measure the current from that pin to ground.
With the measured voltage supplied to the chip you can calculate the actual resistance of the internal pull-up resistor.
Then you can make the appropriate adjustments. Ohm's law baby! R=V÷I. The principles the same for pulldown resistors.
Snap a photo of your setup.
I have measured the value of the internal pull up. Which is 66K. I think I have found the issue ViL for the STM32 is 0.43V, ViH is 1.26 V (minimum) . We are getting 0.5V on the boot0 pin i.e. indeterminate area. So it could be a logic 1 or 0.

The 10K pull up changed to a100K results in units that failed to pass successfully (i.e. bootloader).
 

Harald Kapp

Moderator
Moderator
Nov 17, 2011
13,632
Joined
Nov 17, 2011
Messages
13,632
The internal pull up of the FT device is used to toggle the boot pin.
That makes no sense. One doesn't operate pull-up and pull-down resistors on the same signal. Use CBUS3 as a controllable signal (GPIO pin). Then it will be able to deliver 2 mA at Voh >= 2.97 V (FT230X datasheet, table 5.4).
Also have a look at tables 3.6 and 3.7 in the datasheet for information how to control CBUS3 as GPIO pin (don't forget to look at the app note referenced in table 3.7).
 

Rajinder

Jan 30, 2016
568
Joined
Jan 30, 2016
Messages
568
That makes no sense. One doesn't operate pull-up and pull-down resistors on the same signal. Use CBUS3 as a controllable signal (GPIO pin). Then it will be able to deliver 2 mA at Voh >= 2.97 V (FT230X datasheet, table 5.4).
Also have a look at tables 3.6 and 3.7 in the datasheet for information how to control CBUS3 as GPIO pin (don't forget to look at the app note referenced in table 3.7).
The pull down is hardwired with a 10K resistor. We are only using cbus3 to toggle a high level.
 

Rajinder

Jan 30, 2016
568
Joined
Jan 30, 2016
Messages
568
Also the internal pull up from cbus3 is 68K. So if we have a 68K with a 10K pull down, vcc is 3.3V, this equates to around 0.5 V we are seeing with the scope.
I am not sure how the 2mA for Voh for the gpio pin is configured. I presume via FTPROG utility. But would I then not have to adjust my pull down resistor value?
Thanks in advance
 

Rajinder

Jan 30, 2016
568
Joined
Jan 30, 2016
Messages
568
Read the datasheet. Table 3.3


no.
I have seen that it is configurable as I/O pin. Cbus Drive 1 sets this to a high looking at table 3.7
Do we need to adjust the drive strength to 2mA?

I can see all this. But can't see how this works with a internal pull up of 68K and pull down of 10K? Powered from 3.3V.

I apologize but can't see how it will work. Genuinely.
 

Rajinder

Jan 30, 2016
568
Joined
Jan 30, 2016
Messages
568
Or are you saying set drive 1 and drive strength to 2mA and it will work i.e. meet requirements for VoH?
 

Harald Kapp

Moderator
Moderator
Nov 17, 2011
13,632
Joined
Nov 17, 2011
Messages
13,632
Forget the internal Pull-Up. When configured as GPIO pin, the pin is driven by a transistor.
 
Top