-
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.