Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

STM32F407VG - ustawienie wejść na pinach

16 Gru 2011 17:56 1005 2
  • Poziom 19  
    Witam,
    zastanawia mnie taka sprawa, która postaram się przedstawić w formie przykładu.
    Otóż korzystam, z płytki STM32F4DISCOVERY, na której zaczynam testować rożne peryferia, które przydadzą mi się do budowy falownika.
    Pierwsze testy zacząłem przeprowadzać na TIM1. Właściwie całą konfigurację skopiowałem z podobnego projektu na STM32F103RB. Jako wyjścia alternatywne podłączone do wyjść PWM TIM1 wybrałem piny PE9..13 (zgodnie z Datasheet). Piny te ustawiłem jako wyjścia alternatywne Push Pull, o szybkości 25MHz. Otrzymałem żądany efekt w postaci 6 sygnałów PWM z deadtimami.
    Następnie chciałem sprawdzić działanie wejścia Break Input - PE15. I tu zaczął się problem jak skonfigurować dane wejście. Na początku ustawiłem je jako Floating Input, niestety to nie zadziałało.
    Jako, że podobny problem (ustawienie wejścia na pinie który pracuje podpięty pod jakieś peryferium) miał kolega w wątku:
    https://www.elektroda.pl/rtvforum/topic2141553-30.html

    Następnie ustawiłem "wejściowy" pin PE15 jako wyjście Alternatywne Open Dren i ku mojemu zdziwieniu wszystko działa poprawnie. Zrobiłem podobny test i ustawiłem moje wejście jako wyjście typu Push Pull i również wszystko działało poprawnie (podłączałem je do GND lub VCC przez rezystor 1k ponieważ bałem się zwarcia pinu).

    Czy ktoś może mi wyjaśnić dla czego wejście które jest podłączone do Timera trzeba ustawić jako wyjście alternatywne, lub gdzie ja porostu źle interpretuje daną konfigurację? W STM32F103 ustawiało się jej normalnie jako Floating Input i wszystko działało. Nie znalazłem żadnego wyjaśnienia w dokumentacji.

    Konfiguracja pinów:
    Kod: c
    Zaloguj się, aby zobaczyć kod
  • Pomocny post
    Poziom 12  
    Jeśli dobrze zrozumiałem problem: Ustawiając rejestr OTYPER nie ustawiasz pinu jako wyjście, tylko konfigurujesz wyjście, prawdopodobnie włączają się jakieś wewnętrzne rezystory, skonfiguruj resetr GPIOx->PUPDR (pullup) oraz TIMx->BDTR bit BKP (wyzwalanie stanem niskim lub wysokim).

    pzdr
  • Poziom 19  
    Być może w ten sposób to trzeba to rozumieć brzmi rozsądnie.
    Konfiguracji wyzwalania stanem wysokim (bit BKP ustawiony) dokonałem już wcześniej. W układzie który będę projektował będzie zewnętrzny rezystor podciągający, a Brak Input będzie reagowało na stan niski, który ewentualnie będzie wywoływał zewnętrzny tranzystor z optoizolatora pracujący w układzie Open Dren.