cancel
Showing results for 
Search instead for 
Did you mean: 

Nucleo-144 STM32F767ZI pwm pins dead

Danilo_
Associate II

Hi, 

My board is acting strange. 
- When I use the USB to power the board (jumper JP3 on U5V) the led LD5 turns red ( the board draws more than 500mA). So I power the board with external power supply (5V and JP3 on E5V) but even if i'm able to flash the mcu I can't read anything on serial monitor. 


- Also, most of the PWM pins don't get anymore 3.3V. I'll share a basic piece of code that I use to test with the multimeter the voltage on every pwm pins (I soldered the pins myself). 
When I power the board I have the board power led ld6 green and I read 5V on pin E5V, 3V on 3V3 pin and 5V on +5V pin. Even though the board gets quite warm right away.

Below my .ini file on platformIO and my code using Arduino framework and an excel with voltage values.

[env:nucleo_f767zi]
platform = ststm32
board = nucleo_f767zi
framework = arduino
upload_protocol = stlink
debug_tool = stlink
build_type = debug
monitor_speed = 115200
build_flags = 
	-D USE_FULL_ASSERT
	-D DEBUG
	-D SERIAL_DEBUG
monitor_port = /dev/cu.usbmodem1103
#include<Arduino.h>

void PWM_pins_test();

void setup(){
  PWM_pins_test();
}

void loop(){
   delay(100);
}

void PWM_pins_test(){
  pinMode(PC8, OUTPUT);
  pinMode(PA10, OUTPUT);
  pinMode(PC9, OUTPUT);
  pinMode(PA9, OUTPUT);
  pinMode(PA8, OUTPUT);
  pinMode(PA3, OUTPUT);
  pinMode(PA2, OUTPUT);
  pinMode(PA7, OUTPUT);
  pinMode(PE5, OUTPUT);
  pinMode(PE6, OUTPUT);
  pinMode(PF7, OUTPUT);
  pinMode(PF8, OUTPUT);
  pinMode(PF9, OUTPUT);
  pinMode(PC6, OUTPUT);
  pinMode(PB15, OUTPUT);
  pinMode(PB13, OUTPUT);
  pinMode(PC7, OUTPUT);
  pinMode(PB3, OUTPUT);
  pinMode(PB5, OUTPUT);
  pinMode(PB4, OUTPUT);
  pinMode(PB1, OUTPUT);
  pinMode(PB14, OUTPUT);
  pinMode(PB6, OUTPUT);
  pinMode(PD12, OUTPUT);
  pinMode(PD13, OUTPUT);
  pinMode(PA0, OUTPUT);
  pinMode(PB8, OUTPUT);
  pinMode(PB9, OUTPUT);
  pinMode(PA5, OUTPUT);
  pinMode(PA6, OUTPUT);
  pinMode(PD14, OUTPUT);
  pinMode(PD15, OUTPUT);
  pinMode(PE9, OUTPUT);
  pinMode(PE11, OUTPUT);
  pinMode(PE13, OUTPUT);
  pinMode(PE8, OUTPUT);
  pinMode(PE10, OUTPUT);
  pinMode(PE12, OUTPUT);
  pinMode(PE14, OUTPUT);
  pinMode(PB10, OUTPUT);
  pinMode(PF6, OUTPUT);
  pinMode(PA15, OUTPUT);
  pinMode(PA11, OUTPUT);
  pinMode(PB11, OUTPUT);
  pinMode(PB7, OUTPUT);
  pinMode(PA1, OUTPUT);
  pinMode(PB0, OUTPUT);


  digitalWrite(PC8, HIGH);
  digitalWrite(PA10, HIGH);
  digitalWrite(PC9, HIGH);
  digitalWrite(PA9, HIGH);
  digitalWrite(PA8, HIGH);
  digitalWrite(PA3, HIGH);
  digitalWrite(PA2, HIGH);
  digitalWrite(PA7, HIGH);
  digitalWrite(PE5, HIGH);
  digitalWrite(PE6, HIGH);
  digitalWrite(PF7, HIGH);
  digitalWrite(PF8, HIGH);
  digitalWrite(PF9, HIGH);
  digitalWrite(PC6, HIGH);
  digitalWrite(PB15, HIGH);
  digitalWrite(PB13, HIGH);
  digitalWrite(PC7, HIGH);
  digitalWrite(PB3, HIGH);
  digitalWrite(PB5, HIGH);
  digitalWrite(PB4, HIGH);
  digitalWrite(PB1, HIGH);
  digitalWrite(PB14, HIGH);
  digitalWrite(PB6, HIGH);
  digitalWrite(PD12, HIGH);
  digitalWrite(PD13, HIGH);
  digitalWrite(PA0, HIGH);
  digitalWrite(PB8, HIGH);
  digitalWrite(PB9, HIGH);
  digitalWrite(PA5, HIGH);
  digitalWrite(PA6, HIGH);
  digitalWrite(PD14, HIGH);
  digitalWrite(PD15, HIGH);
  digitalWrite(PE9, HIGH);
  digitalWrite(PE11, HIGH);
  digitalWrite(PE13, HIGH);
  digitalWrite(PE8, HIGH);
  digitalWrite(PE10, HIGH);
  digitalWrite(PE12, HIGH);
  digitalWrite(PE14, HIGH);
  digitalWrite(PB10, HIGH);
  digitalWrite(PF6, HIGH);
  digitalWrite(PA15, HIGH);
  digitalWrite(PA11, HIGH);
  digitalWrite(PB11, HIGH);
  digitalWrite(PB7, HIGH);
  digitalWrite(PA1, HIGH);
  digitalWrite(PB0, HIGH);
}

 

PC8; - 0.12V

PC6; - 0.12V

PC9; - 0V

PB1; - 0.25V

PA9; -0.9V

PA8; -0.1V

PA3; - 0.3V

PA2; - 2.5V

PA7; - 0V

PE5; - 0.28V

PE6; - 0.9V

PF7; - 0.25V

PF8; - 0.3V

PF9; - 0.3V

PB15; - 0.18V

PA15; - 3.1V

PC7; - 0V

PB3; - 0.3V

PB5; - 2.43

PB4; - 2.42V

PB13; - 2.5V

PB14; - 0.18V

PB6; - 0.3V

PD12; - 0.3V

PD13; - 0.3V

PA0; - 0.34V

PB8; - 0V

PB9; - 0V

PA5; -0V

PA6; -0V

PD14; - 0.12V

PD15; - 0.12V

PE9; - 0.8V

PE11; - 0V

PE13; - 0V

PE8; - 0.1V

PE10; - 0V

PE12; - 0V

PE14; - 0V

PB10; - 2.25V

PB11; - 2.27V

PF6;  - 0.25V

PA11; - .16V

PB7; - 0.21V

PA1; - 1.10V

PB0; - 0.15V

PA10 = 2.5V

 

VBAT = 3.27V

E5V = 5.05V

3V3 = 3.27V

+5V = 5.02V


- Do you think I burnt something in the board? 

- In general I have the feeling that programming the board with arduino framework is giving me more troubles than it should, do you think that the arduino libraries for stm nucleo board are not great? At the same time I'm not interested in learning stm coding language, do you have alternatives?

 

Screenshot 2025-03-29 at 12.56.43.png

Screenshot 2025-03-29 at 12.57.09.png

  





 

3 REPLIES 3
AScha.3
Chief III

Hi,

> Do you think I burnt something in the board? 

yes.

check : when pressing reset button , is power consumption also very high ?

yes: chip damaged.

no: your program doing something strange; use CubeProgrammer and do full chip erase.

-

>At the same time I'm not interested in learning stm coding language

Hey, its just C ! Almost same as in Arduino (C and C++) , biggest difference is :

- no simple start everything in 5 minutes by loading an example, that almost doing what you want.

- a lot of learning necessary, about the cpu you want to use and the HAL libs - but then you control it really yourself, not just what the Arduino libs can provide.

If you feel a post has answered your question, please click "Accept as Solution".

Thank for the info. 
I have a question, being new to nucleo board and wanting to use arduino framework gives me many doubts.
When I set the gpio pins as OUTPUT and then I set them HIGH, is it correct that I expect to have 3.3V at the pin or the timers could affect the behaviour? Meaning for every pin I have to modify the timer setting because arduino lib don't handle timers properly? 

Hi,

>When I set the gpio pins as OUTPUT and then I set them HIGH, is it correct that I expect to have 3.3V at the pin 

yes. 

>the timers could affect the behavior

If you try to use the same pins for timer output, pwm or etc, - yes. One of them will "win" your race.

 

>because arduino lib don't handle timers properly? 

What is "properly" ? What you expect...or what the lib doing...? (read Arduino doku, what its doing then. I dont know.)

 

See, thats the "problem" with Arduino : you can do much things very fast, just using some simple instruction like :

>> analogWrite(ledPin, fadeValue); << and its doing, what you want. fine. But you dont know, what its really doing or using and what will happen , if you write some >> analogRead(...pin)<< on same pin...

Thats what i want to tell you, with Arduino you can get very fast some nice result, without need to learn or read anything about the things you use (i did it also), perfect to test something or to copy a toy.

But if you want something more "special", thats not covered by examples or the "standard" libs - then you get a big problem: almost impossible, except you learn and read a lot, until you can write the lib on the cpu you use -

but then you'll be at the same level as it is necessary to write a program yourself using the CPU in the IDE, only that would be clearer and ultimately the easier way.

If you feel a post has answered your question, please click "Accept as Solution".