STM32 GPIO problem

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
Användarvisningsbild
mkk
Inlägg: 16
Blev medlem: 15 juli 2010, 11:23:10
Ort: Kil

STM32 GPIO problem

Inlägg av mkk »

Hej alla glada!

Jag sitter med en STM32F401CEU6 (Black PIll). Denna har 10 GPIO confade open drain. På dessa sitter externa 10k pullups till 5 Volt (eller kanske blir 10 eller 12, oklart än och jag har samma problem oavsett spänning). Således förväntar jag mig en spänning på utgångarna som är 0 eller 5/10/12V, vilket oxå är fallet (STM32an har tydligen inga skyddsdioder på pinnarna) på 9 av mina 10 utgångar. En av dem (PB2) vägrar gå över 2.5 Volt!! :cry: Detta är så oavsett om jag konfar pinnen som oanvänd, ingång eller open drain utgång. Om jag dock sätter push pull ut så får jag de väntade 3.3v ut. Men den noden kan jag aldrig få till mina önskade 5+ volt.

Min fråga, har jag förstört pinnen på ngt sätt, eller är det normalt beteende för denna MCU? Jag har beställt en likadan till för att testa, men det tar en mindre evighet att få hem den... Finns ngn STM32 kung som vet?

Jag vet att det är okristligt att lägga så höga spänningar över ingångarna, men det borde funka. I nästa hw kommer det sitta n-ch FET-ar på utgångarna, för att skydda MCUn. Men man undrar ju ändå... :humm:
Användarvisningsbild
Klas-Kenny
Inlägg: 11292
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: STM32 GPIO problem

Inlägg av Klas-Kenny »

Databladet säger absolut max Vdd+4.0 V på dessa pinnar.
Så du får ej överstiga 7.3V på pinnarna om du matar med 3.3V.

Har du kopplat till 12V är det nog stor risk att utgången gått sönder.
Wihelm
Inlägg: 588
Blev medlem: 18 juni 2019, 17:30:19
Ort: Nybro

Re: STM32 GPIO problem

Inlägg av Wihelm »

STM32 är 3.3V MCU som tål 5V på många ingångar inte alla. Så ut får du aldig mera än 3.3V ut. Vill du ha mera får du ha externa mosfet.
Användarvisningsbild
Klas-Kenny
Inlägg: 11292
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: STM32 GPIO problem

Inlägg av Klas-Kenny »

Kollade just schemat för Black Pill:
https://stm32-base.org/assets/pdf/board ... l_V2.0.pdf


Tydligen sitter där ett pull-down på 10k på just PB2. Det är sannolikt förklaringen till problemet då. Om du matar 5V till ditt 10k pull-up så är 2.5V precis som förväntat.

Men faktum kvarstår, du får inte mata in 10 eller 12V på de pinnarna, då lär något gå sönder.
Men med 5V till dina pull-up så ska det fungera fint, men inte just PB2. Du får använda en annan pinne istället.
ToPNoTCH
Inlägg: 4847
Blev medlem: 21 december 2009, 17:59:48

Re: STM32 GPIO problem

Inlägg av ToPNoTCH »

Man kan inte låta bli att undra varför dom pillat dit en pull-down där.
Ologiskt.

Som ett tillägg till mycket bra svar tidigare, tänk på att när man håller på att närma sig maximum rating på spänning, så behöver man ha väldigt klart för sig hur mycket jitter och spikar man har på denna spänning.
Man fångar inte sådant med multimeter utan kräver ett skåp.
Mr Andersson
Inlägg: 1394
Blev medlem: 29 januari 2011, 21:06:30
Ort: Lapplandet

Re: STM32 GPIO problem

Inlägg av Mr Andersson »

Inte alls ologiskt. PB2 är BOOT1-pinne.
En bättre fråga är varför ST valt en GPIO-pinne för den funktionen istället för en dedikerad pinne som BOOT0 är.
BOOT1BOOT0
x0Main Flash memory
01System memory
11Embedded SRAM
ToPNoTCH
Inlägg: 4847
Blev medlem: 21 december 2009, 17:59:48

Re: STM32 GPIO problem

Inlägg av ToPNoTCH »

Hehe
Jag som till och med bemödade mig att kolla databladet i tabell 9 "Alternate functions".

Boot1 är "Additional function" och mycketriktigt framgår detta i tabell 8

Jag tror dom har så på i princip alla sina MCU.
Jag har aldrig haft behov av att använda boot1 och på modeller med få pinnar så känns det ju rätt.
Boot0 har man dock (med viss skam) fått lov att använda när man efter ett tag kommer på att det inte är smart att sätta mcu i deepsleep det första man gör i koden :roll:
Användarvisningsbild
AndLi
Inlägg: 17049
Blev medlem: 11 februari 2004, 18:17:59
Ort: Knivsta
Kontakt:

Re: STM32 GPIO problem

Inlägg av AndLi »

Mr Andersson skrev: 3 oktober 2022, 23:49:22 Inte alls ologiskt. PB2 är BOOT1-pinne.
En bättre fråga är varför ST valt en GPIO-pinne för den funktionen istället för en dedikerad pinne som BOOT0 är.
BOOT1BOOT0
x0Main Flash memory
01System memory
11Embedded SRAM
För att om man verkligen behöver maxa antalet gpio så är det ju onödigt att slösa en på boot...
Wihelm
Inlägg: 588
Blev medlem: 18 juni 2019, 17:30:19
Ort: Nybro

Re: STM32 GPIO problem

Inlägg av Wihelm »

Nu finns ju STM32F401 i 48, 64 eller 100 pinars utförande.
Vill man ha färdiga kort rekomenderar jag ST egna Nucleo kort med inbyggd debugger/progammerare
https://www.st.com/en/ecosystems/stm32- ... l#overview
Användarvisningsbild
mkk
Inlägg: 16
Blev medlem: 15 juli 2010, 11:23:10
Ort: Kil

Re: STM32 GPIO problem

Inlägg av mkk »

Wihelm skrev: 3 oktober 2022, 19:20:23 STM32 är 3.3V MCU som tål 5V på många ingångar inte alla. Så ut får du aldig mera än 3.3V ut. Vill du ha mera får du ha externa mosfet.
De är open drain och externt pullade up till en högre spänning. Det går som sagt fint på alla andra utgångar. Men på just en så max 2.5 V, och i push-pull hela vägen till 3.3v. Knepigt.
Användarvisningsbild
mkk
Inlägg: 16
Blev medlem: 15 juli 2010, 11:23:10
Ort: Kil

Re: STM32 GPIO problem

Inlägg av mkk »

Klas-Kenny skrev: 3 oktober 2022, 21:14:08 Kollade just schemat för Black Pill:
https://stm32-base.org/assets/pdf/board ... l_V2.0.pdf


Tydligen sitter där ett pull-down på 10k på just PB2. Det är sannolikt förklaringen till problemet då. Om du matar 5V till ditt 10k pull-up så är 2.5V precis som förväntat.

Men faktum kvarstår, du får inte mata in 10 eller 12V på de pinnarna, då lär något gå sönder.
Men med 5V till dina pull-up så ska det fungera fint, men inte just PB2. Du får använda en annan pinne istället.
Aha, en pull down för boot. Tusan, annars kunde jag ju opererat bort den. BlackPillen är en ryggsäck på ett custom PCB, så byta pinne är nytt PCB. Då kan jag lika gärna göra ett riktigt drivsteg för varje IO. Är ändå inte nöjd med flankerna från pullupen.. Slarvigt av mig att missa det i schemat. Tack till dig!! :tumupp: Ska verifiera med lite olika spänningar och pullup värden. Är det konsekvent motsv 10k ner så är det svaret. Om nivån ligger kvar på 2.5v oavsett så är det ngt i ingångsteget på just den pinnen.
Mr Andersson
Inlägg: 1394
Blev medlem: 29 januari 2011, 21:06:30
Ort: Lapplandet

Re: STM32 GPIO problem

Inlägg av Mr Andersson »

Om du bara startar från flash (SW2 öppen enligt schemat) kan du ta bort PD-motståndet på PB2. Med BOOT0 låg har BOOT1 ingen funktion.
Användarvisningsbild
adent
Inlägg: 4094
Blev medlem: 27 november 2008, 22:56:23
Ort: Utanför Jönköping
Kontakt:

Re: STM32 GPIO problem

Inlägg av adent »

Jag har alltid tyckt att open drain är lite useless om man ändå inte får ha högre spänning på pinnen än var processorn matas med ungefär.
Friflytandeheten kan ju uppnås genom att växla mellan output-låg och input-no-pull-up/down istället.
Skriv svar