eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronika › STM32 pracuje z połową prędkości
Ilość wypowiedzi w tym wątku: 12

  • 1. Data: 2021-01-25 23:20:27
    Temat: STM32 pracuje z połową prędkości
    Od: Atlantis <m...@w...pl>

    Kolejna dziwna sytuacja.
    Projekt na STM32F107RCT6 złożony, więc powoli zabieram się za
    uruchamianie poszczególnych peryferiów. Na pierwszy rzut UART. Coś
    wysyła - ale dochodzą krzaki. Sprawdzam analizatorem logicznym i
    faktycznie - przebiegi niby prawidłowe, ale impulsy dwa razy dłuższe niż
    powinny.

    Sprawdzam więc miganie diodą - dwa razy wolniej, niż powinna. Wygląda
    więc na to, że procesor pracuje dwa razy wolniej, niż by to wynikało z
    przyjętych założeń.

    Do taktowania wykorzystałem kwarc SMD, który miał pracować z prędkością
    8 MHz. Na obudowie ma napis "8.000" i pochodzi z zaufanego źródła (TME)
    a poza tym takie same kwarce wykorzystywałem już w paru projektach i
    zawsze działały prawidłowo.

    Kod konfiguracyjny wygenerowany STM32CubeMX, podając właściwą
    częstotliwość kwarcu.

    Co mogło pójść nie tak?


  • 2. Data: 2021-01-26 00:33:04
    Temat: Re: STM32 pracuje z połową prędkości
    Od: "Grzegorz Niemirowski" <g...@g...net>

    Atlantis <m...@w...pl> napisał(a):
    > Kolejna dziwna sytuacja.
    > Projekt na STM32F107RCT6 złożony, więc powoli zabieram się za uruchamianie
    > poszczególnych peryferiów. Na pierwszy rzut UART. Coś wysyła - ale
    > dochodzą krzaki. Sprawdzam analizatorem logicznym i faktycznie - przebiegi
    > niby prawidłowe, ale impulsy dwa razy dłuższe niż powinny.
    > Sprawdzam więc miganie diodą - dwa razy wolniej, niż powinna. Wygląda więc
    > na to, że procesor pracuje dwa razy wolniej, niż by to wynikało z
    > przyjętych założeń.
    > Do taktowania wykorzystałem kwarc SMD, który miał pracować z prędkością 8
    > MHz. Na obudowie ma napis "8.000" i pochodzi z zaufanego źródła (TME) a
    > poza tym takie same kwarce wykorzystywałem już w paru projektach i zawsze
    > działały prawidłowo.
    > Kod konfiguracyjny wygenerowany STM32CubeMX, podając właściwą
    > częstotliwość kwarcu.
    > Co mogło pójść nie tak?

    Sprawdź jaka jest prędkość na HSI, które też ma 8 MHz.

    --
    Grzegorz Niemirowski
    https://www.grzegorz.net/


  • 3. Data: 2021-01-26 10:05:23
    Temat: Re: STM32 pracuje z połową prędkości
    Od: MKi <...@...com>

    W dniu 2021-01-25 o 23:20, Atlantis pisze:
    > Kolejna dziwna sytuacja.
    > Projekt na STM32F107RCT6 złożony, więc powoli zabieram się za
    > uruchamianie poszczególnych peryferiów. Na pierwszy rzut UART. Coś
    > wysyła - ale dochodzą krzaki. Sprawdzam analizatorem logicznym i
    > faktycznie - przebiegi niby prawidłowe, ale impulsy dwa razy dłuższe niż
    > powinny.
    >
    > Sprawdzam więc miganie diodą - dwa razy wolniej, niż powinna. Wygląda
    > więc na to, że procesor pracuje dwa razy wolniej, niż by to wynikało z
    > przyjętych założeń.
    >
    > Do taktowania wykorzystałem kwarc SMD, który miał pracować z prędkością
    > 8 MHz. Na obudowie ma napis "8.000" i pochodzi z zaufanego źródła (TME)
    > a poza tym takie same kwarce wykorzystywałem już w paru projektach i
    > zawsze działały prawidłowo.
    >
    > Kod konfiguracyjny wygenerowany STM32CubeMX, podając właściwą
    > częstotliwość kwarcu.
    >
    > Co mogło pójść nie tak?

    Częstotliwość kwarcu możesz sprawdzić oscyloskopem ;)

    Jestem zawsze nieufny co do kodu wygenerowanego przez CubeMX.
    Ja bym debuggerem sprawdził po wszystkich funkcjach inicjujących
    stan rejestrów decydujących o zegarze:
    RCC->CR
    RCC->CFGR
    i zweryfikował, czy naprawdę jest w nich to, co powinno być.

    Na przykład w rejestrze RCC->CFGR jest bit PLLXTPRE, który
    ustawiony dzieli częstotliwość HSE przez 2. A jak dasz jako
    wejście PLL rezonator wewnętrzny (HSI) to tego dzielenia nie ma.
    Więc zmieniając HSE z HSI można się zdziwić.

    W kodzie HAL powinna być zdefiniowana stała HSE_VALUE.
    Sprawdź, czy ma poprawną wartość (8000000). Z niej są wyliczane
    dalsze dzielniki.

    Pozdrowienia,
    MKi


  • 4. Data: 2021-01-26 10:26:32
    Temat: Re: STM32 pracuje z połową prędkości
    Od: MKi <...@...com>

    I jeszcze mi się przypomniało:
    W HAL powinna być funkcja SystemCoreClockUpdate()
    której działanie polega na ustawieniu zmiennej
    globalnej SystemCoreClock - na częstotliwość
    SYSCLK.
    Możesz tę funkcję wywołać na początku programu
    po funkcjach inicjujących i sprawdzić,
    czy w SystemCoreClock jest to co powinno być.
    Ta funkcja działa przy założeniu,
    że HSE_VALUE jest poprawne.

    Pozdrowienia,
    MKi


  • 5. Data: 2021-01-26 11:03:23
    Temat: Re: STM32 pracuje z połową prędkości
    Od: Zbych <a...@o...pl>

    Atlantis wrote on 25.01.2021 23:20:
    > Sprawdzam więc miganie diodą - dwa razy wolniej, niż powinna. Wygląda
    > więc na to, że procesor pracuje dwa razy wolniej, niż by to wynikało z
    > przyjętych założeń.
    >
    > Do taktowania wykorzystałem kwarc SMD, który miał pracować z prędkością
    > 8 MHz. Na obudowie ma napis "8.000" i pochodzi z zaufanego źródła (TME)
    > a poza tym takie same kwarce wykorzystywałem już w paru projektach i
    > zawsze działały prawidłowo.
    >
    > Kod konfiguracyjny wygenerowany STM32CubeMX, podając właściwą
    > częstotliwość kwarcu.
    >
    > Co mogło pójść nie tak?

    W twoim przypadku tradycyjnie:
    1. ojej, nie zauważyłem że nie przylutował się lub pomyliłem kondensator
    lub urwałem przewód w obwodzie oscylatora i procek pracuje na wbudowanym RC
    2. ojej, załadowałem inny kod niż mi się wydawało
    3. ojej, źle ustawiłem typ procesora w okienku.
    4. ojej, ale tej dokumentacji dużo, nie będę czytał o konfiguracji
    zegara, tylko poszukam kogoś ze szklaną kulą na grupie dyskusyjnej.


  • 6. Data: 2021-01-26 11:52:32
    Temat: Re: STM32 pracuje z połową prędkości
    Od: a...@h...invalid (Arnold Ziffel)

    Zbych <a...@o...pl> wrote:

    > W twoim przypadku tradycyjnie:
    > 1. ojej, nie zauważyłem że nie przylutował się lub pomyliłem kondensator
    > lub urwałem przewód w obwodzie oscylatora i procek pracuje na wbudowanym RC
    > 2. ojej, załadowałem inny kod niż mi się wydawało
    > 3. ojej, źle ustawiłem typ procesora w okienku.

    Mało to razy coś się odlutuje, źle kliknie albo inaczej pomyli? Tylko ten
    się nie myli, kto nic nie robi.

    > 4. ojej, ale tej dokumentacji dużo, nie będę czytał o konfiguracji
    > zegara, tylko poszukam kogoś ze szklaną kulą na grupie dyskusyjnej.

    Zakładam, że czytał, tylko utknął i skończyły mu się pomysły. Od tego jest
    przecież grupa.

    --
    Na podwórku rozmawiają 2 koguty:
    - Czy ty z ta kura to chodzisz na poważnie czy tylko dla jaj?


  • 7. Data: 2021-01-26 12:03:14
    Temat: Re: STM32 pracuje z połową prędkości
    Od: "Grzegorz Niemirowski" <g...@g...net>

    Arnold Ziffel <a...@h...invalid> napisał(a):
    >> 4. ojej, ale tej dokumentacji dużo, nie będę czytał o konfiguracji
    >> zegara, tylko poszukam kogoś ze szklaną kulą na grupie dyskusyjnej.
    > Zakładam, że czytał, tylko utknął i skończyły mu się pomysły. Od tego
    > jest przecież grupa.

    Akurat to o szklanej kuli jest słuszne bo nie została wklejona ani jedna
    linijka kodu, nie mówiąc już o zawartości rejestrów konfiguracyjnych i
    statusowych.

    --
    Grzegorz Niemirowski
    https://www.grzegorz.net/


  • 8. Data: 2021-01-26 13:21:47
    Temat: Re: STM32 pracuje z połową prędkości
    Od: Zbych <a...@o...pl>

    Arnold Ziffel wrote on 26.01.2021 11:52:
    > Zbych <a...@o...pl> wrote:
    >
    >> W twoim przypadku tradycyjnie:
    >> 1. ojej, nie zauważyłem że nie przylutował się lub pomyliłem kondensator
    >> lub urwałem przewód w obwodzie oscylatora i procek pracuje na wbudowanym RC
    >> 2. ojej, załadowałem inny kod niż mi się wydawało
    >> 3. ojej, źle ustawiłem typ procesora w okienku.
    >
    > Mało to razy coś się odlutuje, źle kliknie albo inaczej pomyli? Tylko ten
    > się nie myli, kto nic nie robi.

    I jak ktoś na grupie ma to wykryć? Przejrzyj historię postów Atlantisa -
    ludzie się produkują, rzucają pomysłami a on na koniec napisze, że
    pomylił wsad albo niedolutował (vide post sprzed 4 dni)

    >> 4. ojej, ale tej dokumentacji dużo, nie będę czytał o konfiguracji
    >> zegara, tylko poszukam kogoś ze szklaną kulą na grupie dyskusyjnej.
    >
    > Zakładam, że czytał, tylko utknął i skończyły mu się pomysły. Od tego jest
    > przecież grupa.

    I gdzie jest opis miejsca w którym utknął?

    Atlantis ma naprawdę długą historię debugowania problemów na grupie i
    zazwyczaj sprowadza się to do:
    1. czy podłączyłeś oscyloskop do kwarcu i sprawdziłeś przebiegi? no
    niebardzo.
    2. czy przeszedłeś w debugerze kod inicjalizacyjny dystrybucji zegara
    krok po kroku i sprawdziłeś czy nie zwraca błędów? też nie.
    3. Czy sprawdziłeś jaka częstotliwość zegara jest brana do obliczeń
    prędkości UARTu? a skąd.

    PS. żeby nie było, to nie mam nic przeciwko takim postom. Ale czy
    naprawdę ciężko jest ogarnąć kilka podstawowych kroków, zwłaszcza jeśli
    się popełnia podobne błędy?


  • 9. Data: 2021-01-26 17:01:16
    Temat: Re: STM32 pracuje z połową prędkości
    Od: Cezar <c...@t...pl.invalid>

    On 26/01/2021 12:21, Zbych wrote:

    > PS. żeby nie było, to nie mam nic przeciwko takim postom. Ale czy
    > naprawdę ciężko jest ogarnąć kilka podstawowych kroków, zwłaszcza jeśli
    > się popełnia podobne błędy?

    Mnie tam Atlantis nie przeszkadza ... nawet popkorn wyciągam czasami.
    O wiele gorszy był Identyfikator_cośtam_cośtam ... ten to się dopiero
    naprodukował śmieci.

    c.



  • 10. Data: 2021-01-26 19:43:48
    Temat: Re: STM32 pracuje z połową prędkości
    Od: Atlantis <m...@w...pl>

    On 26.01.2021 10:05, MKi wrote:

    > Jestem zawsze nieufny co do kodu wygenerowanego przez CubeMX.
    > Ja bym debuggerem sprawdził po wszystkich funkcjach inicjujących

    Pewnie masz rację. Ciągle nie wiem co było przyczyną, ale lekarstwem
    okazało się być ponowne wygenerowanie projektu, od podstaw.

strony : [ 1 ] . 2


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: