Forum: Mikrocontroller und Digitale Elektronik STM32F3 - Problem mit GPIOs Rise/Fall viel zu langsam - 250 µs


von Passierschein A38 (Gast)


Lesenswert?

Hi,

habe hier ein extrem seltsames Problem mit einem STM32F3.
Die Anstiegs und Abfallzeiten an den I/Os sind VIEL zu langsam.
Oder genauer gesagt, von 0 bis ca. 2.4V ist es normal schnell. Sind ein 
paar Nanosekunden, aber danach braucht es dann plötzlich über 250 
MikroSekunden(!) bis 3.3V erreicht werden. Umgekehrt beim Schalten auf 
low  braucht es bis ca. 0.85V nur ein paar Nanosekunden, danach dann 
wieder über 250µs bis 0V erreicht werden.

Hardware: ST Nucleo-F303ZE (d.h. ein fertiges Eval-Board, sollte OK 
sein)
Und noch ein zweites Board! Es kann also eigentlich kein Hardware-Defekt 
sein.

Nein, liegt auch nicht am Oszi, habe es mit zwei verschiedenen getestet.
10X Tastkopf.
Auch Gegenprobe mit einem STM32F7 gemacht - da funktionierts normal mit 
sehr ähnlichem Code.
Habe schon von direkt BSRR/BRR Register setzen auf HAL Funktionen 
umgestellt, aber das hat auch nix gebracht.


  HAL_Init();
  SystemClock_Config();
  MX_GPIO_Init();

// Pin als Ausgang konfiguriert:

  GPIO_InitStruct.Pin = GPIO_PIN_8;
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;  // Push Pull
  GPIO_InitStruct.Pull = GPIO_NOPULL;
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;  // Low auch probiert, 
macht keinen Unterschied
  HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);


// Am Pin wackeln:

  while(1)
  {
    HAL_Delay(1);
    HAL_GPIO_WritePin(GPIOC, GPIO_PIN_8, GPIO_PIN_RESET);
    HAL_Delay(1);
    HAL_GPIO_WritePin(GPIOC, GPIO_PIN_8, GPIO_PIN_SET);
    HAL_Delay(1);
  }

Ja habe auch andere GPIOs probiert - gleiches Problem.

Hat jemand eine Idee woran das liegen könnte?
Danke schonmal - ich werd hier langsam verrückt ;-)

von foobar (Gast)


Lesenswert?

An den Pins ist nichts angeschlossen?

von Curby23523 N. (Gast)


Lesenswert?

Passierschein A38 schrieb:
> Habe schon von direkt BSRR/BRR Register setzen auf HAL Funktionen
> umgestellt, aber das hat auch nix gebracht.

Dann lass das lieber sein ;).

Wie verhalten sich andere Pins? Sind Kondensatoren oder andere Bauteile 
angeschlossen?

von Dicker Tal Künstler (Gast)


Lesenswert?

Passierschein A38 schrieb:
> Ja habe auch andere GPIOs probiert - gleiches Problem.
>
> Hat jemand eine Idee woran das liegen könnte?

Da hängt vermutlich (aufgrund des Eval-Boards) irgendeine Last
dran. Suche dir im Schalplan oder im Eval-Manual (Tabelle)
die Pin Belegung raus, es wird ja sicher ein paar Pins
geben die nicht belegt sind. Die dürfen dann "normal schnell"
schalten.

Passierschein A38 schrieb:
> von 0 bis ca. 2.4V ist es normal schnell

Zeigt dass die Spec eigentlich eingehalten wird, d.h. die
Schaltschwelle wird in sehr kurzer Zeit erreicht bzw. über-
schritten, was danach passiert ist dann nicht mehr relevant
für die Spec. Es garantiert dir ja niemand dass du nominell
3.3 V in 10 Nanosekunden geliefert bekommst. Nur die Zeit
von 0.x Volt (low) auf Vcc-0.x Volt (high) ist spezifiziert.
Und umgekehrt natürlich ...

von Passierschein A38 (Gast)


Lesenswert?

Hmmm nein an den Pins hängt sonst nichts, die sind komplett frei.

Öha... doch ein "Messfehler" sorry ;-)
Aber ein interessanter Messfehler.

Habe einen 1:1 Tastkopf (geringere Bandbreite) herausgekramt - DAMIT 
sieht das Signal jetzt normal aus.
(Sollte so spät wohl nicht mehr basteln, beim F7 hatte ich mit kürzerer 
Pause umgeschaltet, da ging das Signal nur bis ca. 2.5V hoch und sah 
daher relativ normal aus, hatte ich nicht bemerkt - verhielt sich aber 
eigentlich genau so)

Jetzt ist natürlich die Frage, warum wird die Flanke bis 2.4V sehr 
schnell und darüber abrupt extrem langsam dargestellt?
Die Oszis sind beide nicht die besten (ein Analoges und ein USB Oszi), 
mein gutes was ich normalerweise verwende steht leider gerade woanders.

von Curby23523 N. (Gast)


Lesenswert?

Auch dein Tastkopf hat eine Kapazität (die sich aufladen kann/muss). 
Vielleicht ein billiger Tastkopf mit Defekt?

von Passierschein A38 (Gast)


Lesenswert?

Curby23523 N. schrieb:
> Auch dein Tastkopf hat eine Kapazität (die sich aufladen
> kann/muss).
> Vielleicht ein billiger Tastkopf mit Defekt?


Kapazität ist klar, aber die Kurve zeigt nur im langsamen Bereich das 
typische RC-Verhalten, davor ist es wie gesagt sehr schnell, der 
Übergang ist abrupt.

Der Tektronix Tastkopf hat 500 MHz Bandbreite - an meinem normalen Oszi 
läuft der gut also denke nicht dass der defekt ist.
Der andere mit dem es geht ist so ein Billigteil von "Testec", glaube 
mit 100 MHz Bandbreite.

von Joe F. (easylife)


Lesenswert?

Sind da evtl. 3.3V Zenerdioden als ESD Schutz im Spiel? Die werden 
bereits unter 3.3V langsam leitend. Je näher die Spannung an 3.3V, desto 
mehr Strom fließt -> Anstiegs-Kurve flacht ab.

von Martin (Gast)


Lesenswert?

Gleich mal den Tastkopf ab. :)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.