Forum: Mikrocontroller und Digitale Elektronik Stm32F103C8 (Bluepill) Pin B4 und B5


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Tomas pk. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,
gibt es beim Stm32F103 an Pin 4 eine Besonderheit?
Obwohl ich den als AUsgang konfiguriert habe, funktionieren er nicht wie 
gewünscht um Enable vom LCD zu steuern.

Muss da noch ein register gesetzt werden?

von Tomas pk. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ich sehe gerade der muss remapped werden:-(
Wie macht man das ohne HAL?

von Stefan ⛄ F. (stefanus)


Bewertung
1 lesenswert
nicht lesenswert
Tomas pk. schrieb:
> Ich sehe gerade der muss remapped werden:-(

Wie kommst du darauf? Welche komplexe I/O Schnittstelle willst du denn 
auf diesen beiden Pins fahren? Es geht ja nur entweder GPIO oder SPI, 
aber dann reden wir von PA15 und PB3 bis PB5).

Wie dem auch sei, das Remappen tut man durch beschreiben des AFIO->MAPR 
Registers.

Siehe dazu http://stefanfrings.de/stm32/stm32f1.html#bluepill

: Bearbeitet durch User
von Tomas pk (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Nix aufwendiges.
Selbst ein LED Blinken ist ohne nicht möglich.
Ales anderen B Ports gehen, nur eben B4 nicht

von Johannes S. (jojos)


Bewertung
0 lesenswert
nicht lesenswert
Nicht jeder Pin ist gpio nach reset. Siehe Datasheet Seite 32.

von Planloser (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Tomas pk. schrieb:
> Ich sehe gerade der muss remapped werden:-(
> Wie macht man das ohne HAL?
1
    uint32_t x = AFIO->MAPR;
2
    x &= ~AFIO_MAPR_SWJ_CFG;
3
    x |=  AFIO_MAPR_SWJ_CFG_JTAGDISABLE;
4
    AFIO->MAPR = x;

für "JTAG-DP Disabled and SW-DP Enabled".

von Pille (Gast)


Bewertung
0 lesenswert
nicht lesenswert
1
// DISABLE JTAG, Enable SWD
2
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
3
  GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); // Disable JTAG/SWD so pins are available

Pille

von Stefan ⛄ F. (stefanus)


Bewertung
1 lesenswert
nicht lesenswert
Ach so jetzt schnalle ich, was er will. Also nichts remappen, sondern 
JTAG deaktivieren. Das ist auf der selben Seite beschrieben: 
http://stefanfrings.de/stm32/stm32f1.html#swjdisable

Entspricht im Prinzip den beiden vorherigen Vorschlägen.

von Tomas pk. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ahhh, super danke. So funktionierts:-)
1
// Enable clock for alternate functions
2
  RCC_APB2ENR.B0:=1;
3
4
// Disable both SWD and JTAG to free PA13, PA14, PA15, PB3 and PB4
5
       AFIO_MAPR.B25:=1;

von Stefan ⛄ F. (stefanus)


Bewertung
1 lesenswert
nicht lesenswert
Tomas pk. schrieb:
>  AFIO_MAPR.B25:=1;

Was ist das für eine Programmiersprache?

von Stefan ⛄ F. (stefanus)


Bewertung
0 lesenswert
nicht lesenswert
Johannes S. schrieb:
> Nicht jeder Pin ist gpio nach reset. Siehe Datasheet Seite 32.

Nein, die SWJ Schnittstelle ist die eine Ausnahme, auf die Tomas 
gestoßen ist.

von Tomas pk. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Stefan ⛄ F. schrieb:
> Tomas pk. schrieb:
>>  AFIO_MAPR.B25:=1;
>
> Was ist das für eine Programmiersprache?

Pascal
 bzw Pascal von Mikroe

von Johannes S. (jojos)


Bewertung
0 lesenswert
nicht lesenswert
Stefan ⛄ F. schrieb:
> Nein, die SWJ Schnittstelle ist die eine Ausnahme,

Nö, das ist nicht falsch sondern allgemeiner formuliert. Was ist mit 
PB9? Das ist auch kein normaler gpio. Es ist nicht üblich das alle IO 
sich gleich verhalten und das sollte man im Datenblatt prüfen. Die PCx 
sind 'schwächer' als andere IO, nicht alle sind 5V tolerant, andere µC 
können den Reset umprogrammieren. Auch tückisch sind echte I2C Pins mit 
open drain ohne Pull Up (haben die LPC z.B.). Und auch beim AVR Mega32 
war ein FAQ 'warum funktioniert mein PortC nicht richtig?'.
Nur auf SWJ/JTAG zu achten reicht nicht.

von Stefan ⛄ F. (stefanus)


Bewertung
1 lesenswert
nicht lesenswert
Johannes S. schrieb:
> Was ist mit PB9?

Ja was denn? Ich würde sagen, es ist nach dem Reset ein normaler GPIO 
Pin.

> Nur auf SWJ/JTAG zu achten reicht nicht.

Sicher. Wenn du dir meine Webseite angesehen hättest, dann wäre dir 
aufgefallen, dass ich dort auf alle von dir genannten Ausnahmen 
hinweise.

Außer auf PB9. Was habe ich versäumt?

: Bearbeitet durch User
von Johannes S. (jojos)


Bewertung
-1 lesenswert
nicht lesenswert
Das ist nur ein Input und der beeinflusst das Bootverhalten, darf also 
auch nicht einfach als normaler gpio betrachtet werden.

von NichtWichtig (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Wie immer: RTFM

:-)

von Stefan ⛄ F. (stefanus)


Bewertung
2 lesenswert
nicht lesenswert
Johannes S. schrieb:
> Das ist nur ein Input und der beeinflusst das Bootverhalten, darf also
> auch nicht einfach als normaler gpio betrachtet werden.

NichtWichtig schrieb:
> Wie immer: RTFM

Wo denn? Ich habe gerade zum 3. mal ins Datenblatt und ins 
Referenzhandbuch geschaut und keine besonderen Hinweise zu PB9 gefunden.

Nach meinem Kenntnisstand wird der Bootloader durch die Pins Boot0 und 
Boot1 (=PB2) gesteuert. Den PB2 kann man trotzdem als normalen 
vollwertigen GPIO nutzen.

: Bearbeitet durch User
von Johannes S. (jojos)


Bewertung
2 lesenswert
nicht lesenswert
Stefan ⛄ F. schrieb:
> Wo denn? Ich habe gerade zum 3. mal ins Datenblatt und ins
> Referenzhandbuch geschaut und keine besonderen Hinweise zu PB9 gefunden.

kannst du auch nicht, hatte noch ein zweites DaBla zu einem STM32L offen 
und bei dem war es so :)
Trotzdem bleibt für mich das DaBla die Referenz, die Tabelle 5 ist jetzt 
nicht so unübersichtlich.

: Bearbeitet durch User
von Stefan ⛄ F. (stefanus)


Bewertung
2 lesenswert
nicht lesenswert
Johannes S. schrieb:
> kannst du auch nicht, hatte noch ein zweites DaBla zu einem STM32L offen
> und bei dem war es so :)

Ach so. Kann passieren.

von Tomas pk. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Zum Thema Programmiersprache.
Bei dem Pascal könnt man auch mit
AFIO_MAPR
oder direkt
RCC_APB2ENR oder direkt AFIOEN_bit
und
SWJ_CFG1_bit

nehmen.
falls noch jemand damit arbeitet

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.