eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaSTM32F4, problem z PLL (asm)
Ilość wypowiedzi w tym wątku: 10

  • 1. Data: 2016-12-23 16:17:29
    Temat: STM32F4, problem z PLL (asm)
    Od: Marcin Kulas <h...@k...net>

    Witam.

    Odzywam się bardzo rzadko, bo czasu coraz mniej na hobby,
    ale tym razem muszę, bo zaraz nie będę miał czego rwać z głowy.

    Do tej pory grzebałem w 8-bitowych AVR-ach i je rozumiałem.
    Postanowiłem liznąć ARM-a. Padło na Cortex M4, konkretnie
    płytkę Discovery z STM32F429ZI. Interesuje mnie wyłącznie
    assembler i od tej strony się do tego zabrałem, chcąc poznać
    rdzeń i dostępne peryferia.

    Problem:

    Podczas inicjacji MCU chcę ustawić SYSCLK=168MHz.
    Konfiguruję PLL następująco:

    wejście = HSE, kwarc 8MHz
    PLL_M = 4
    PLL_N = 168
    PLL_P = 2
    PLL_Q = 7

    Na razie rdzeń zasilam prosto z HSE, a na MCO1 i MCO2 wypluwam
    sobie wyjście PLL/4 oraz (dla porównania) SYSCLK/4.

    SYSCLK wynosi 8MHz, co nie budzi wątpliwości, natomiast PLL
    nie potrafię zmusić, by zachowywała się zgodnie z dokumentacją.
    Przy powyższych dzielnikach mam za nią ok. 46.4MHz:
    http://hit.kropka.net/adhoc/ST32F4_halp/PLL_4_168_2_
    7.png

    Co dziwniejsze, jeśli ustawię PLL_M=8 i PLL_N=336, na wyjściu
    powinienem mieć taką samą częstotliwość, a nie mam:
    http://hit.kropka.net/adhoc/ST32F4_halp/PLL_8_336_2_
    7.png

    Takie same rezultaty mam na STM32F446ZE, więc błąd jest
    po mojej stronie, nie układu. Od tygodnia go szukam i nie
    mogę zrozumieć, co robię źle. Prośba o wskazanie, jeśli komuś
    się będzie bardzo nudziło. Powoli zaczynam w siebie wątpić.

    Źródła, na których się męczę:
    http://hit.kropka.net/adhoc/ST32F4_halp/

    Oczywiście Datasheet, Errata, Reference Manual i Programming Manual
    zajmują u mnie cały drugi monitor. Zwykle takie podejście działało.
    Tym razem poległem i nie wiem nawet na czym. Będe wdzięczny za pomoc.

    --
    [ ,,Bądź uczynny, pomagaj innym - a wtedy wszyscy wokół pomyślą, ]
    [ że to co dla nich robisz, jest twoim zasranym obowiązkiem." ]


  • 2. Data: 2016-12-23 17:37:01
    Temat: Re: STM32F4, problem z PLL (asm)
    Od: w systemie siła 'PO/EU <N...@g...pl>

    też dopiero zaczynam, ale może jednak użyć stm cube i zobaczyć co
    wygeneruje?


  • 3. Data: 2016-12-23 17:58:58
    Temat: Re: STM32F4, problem z PLL (asm)
    Od: a...@m...uni.wroc.pl

    Marcin Kulas <h...@k...net> wrote:
    > Witam.
    >
    > Odzywam si? bardzo rzadko, bo czasu coraz mniej na hobby,
    > ale tym razem musz?, bo zaraz nie b?d? mia? czego rwa? z g?owy.
    >
    > Do tej pory grzeba?em w 8-bitowych AVR-ach i je rozumia?em.
    > Postanowi?em lizn?? ARM-a. Pad?o na Cortex M4, konkretnie
    > p?ytk? Discovery z STM32F429ZI. Interesuje mnie wy??cznie
    > assembler i od tej strony si? do tego zabra?em, chc?c pozna?
    > rdze? i dost?pne peryferia.
    >
    > Problem:
    >
    > Podczas inicjacji MCU chc? ustawi? SYSCLK=168MHz.
    > Konfiguruj? PLL nast?puj?co:
    >
    > wej?cie = HSE, kwarc 8MHz
    > PLL_M = 4
    > PLL_N = 168
    > PLL_P = 2
    > PLL_Q = 7

    Z datasheeta o PLL_N:

    : Caution: The software has to set these bits correctly to ensure that
    : the VCO output frequency is between 192 and 432 MHz.

    > Na razie rdze? zasilam prosto z HSE, a na MCO1 i MCO2 wypluwam
    > sobie wyj?cie PLL/4 oraz (dla por?wnania) SYSCLK/4.
    >
    > SYSCLK wynosi 8MHz, co nie budzi w?tpliwo?ci, natomiast PLL
    > nie potrafi? zmusi?, by zachowywa?a si? zgodnie z dokumentacj?.
    > Przy powy?szych dzielnikach mam za ni? ok. 46.4MHz:
    > http://hit.kropka.net/adhoc/ST32F4_halp/PLL_4_168_2_
    7.png

    To by odpowiadalo VCO 185.6 -- pewnie mniej nie potrafi.

    > Co dziwniejsze, je?li ustawi? PLL_M=8 i PLL_N=336, na wyj?ciu
    > powinienem mie? tak? sam? cz?stotliwo??, a nie mam:
    > http://hit.kropka.net/adhoc/ST32F4_halp/PLL_8_336_2_
    7.png

    To jest normalne ustawienie jak chcesz 168 MHz.

    --
    Waldek Hebisch


  • 4. Data: 2016-12-23 18:16:53
    Temat: Re: STM32F4, problem z PLL (asm)
    Od: Marcin Kulas <h...@k...net>

    a...@m...uni.wroc.pl wrote:
    > Z datasheeta o PLL_N:
    >
    >: Caution: The software has to set these bits correctly to ensure that
    >: the VCO output frequency is between 192 and 432 MHz.

    U mnie VCO output powinien mieć 336MHz.

    >> http://hit.kropka.net/adhoc/ST32F4_halp/PLL_4_168_2_
    7.png
    > To by odpowiadalo VCO 185.6 -- pewnie mniej nie potrafi.

    Pytanie, dlaczego nie wskakuje na właściwe tory?
    Nawet zalecają przy PLL_M:

    Caution: The software has to set these bits correctly to ensure that the
    VCO input frequency ranges from 1 to 2 MHz. It is recommended to select
    a frequency of 2 MHz to limit PLL jitter.

    >> Co dziwniejsze, je?li ustawi? PLL_M=8 i PLL_N=336, na wyj?ciu
    >> powinienem mie? tak? sam? cz?stotliwo??, a nie mam:
    >> http://hit.kropka.net/adhoc/ST32F4_halp/PLL_8_336_2_
    7.png
    > To jest normalne ustawienie jak chcesz 168 MHz.

    Ale u mnie nie daje oczekiwanego rezultatu. Co skopałem?

    --
    [ ,,Bądź uczynny, pomagaj innym - a wtedy wszyscy wokół pomyślą, ]
    [ że to co dla nich robisz, jest twoim zasranym obowiązkiem." ]


  • 5. Data: 2016-12-23 19:11:17
    Temat: Re: STM32F4, problem z PLL (asm)
    Od: a...@m...uni.wroc.pl

    Marcin Kulas <h...@k...net> wrote:
    > a...@m...uni.wroc.pl wrote:
    > > Z datasheeta o PLL_N:
    > >
    > >: Caution: The software has to set these bits correctly to ensure that
    > >: the VCO output frequency is between 192 and 432 MHz.
    >
    > U mnie VCO output powinien mie? 336MHz.
    >
    > >> http://hit.kropka.net/adhoc/ST32F4_halp/PLL_4_168_2_
    7.png
    > > To by odpowiadalo VCO 185.6 -- pewnie mniej nie potrafi.
    >
    > Pytanie, dlaczego nie wskakuje na w?a?ciwe tory?
    > Nawet zalecaj? przy PLL_M:
    >
    > Caution: The software has to set these bits correctly to ensure that the
    > VCO input frequency ranges from 1 to 2 MHz. It is recommended to select
    > a frequency of 2 MHz to limit PLL jitter.

    Faktycznie, te ustawienia wygladaja OK.

    > >> Co dziwniejsze, je?li ustawi? PLL_M=8 i PLL_N=336, na wyj?ciu
    > >> powinienem mie? tak? sam? cz?stotliwo??, a nie mam:
    > >> http://hit.kropka.net/adhoc/ST32F4_halp/PLL_8_336_2_
    7.png
    > > To jest normalne ustawienie jak chcesz 168 MHz.
    >
    > Ale u mnie nie daje oczekiwanego rezultatu. Co skopa?em?

    Sprawdzales czy w rejestrze RCC_PLLCFGR jest to co do niego
    wpisales? No i jak wpisujesz: ja uzywam procedure biblioteczna
    ktora wpisuje dane do RCC_PLLCFGR w jednym kawalku.

    PS: U mnie na F1 Discovery (STM32F407VGT6) w RCC_PLLCFGR jest
    0x07405408.


    --
    Waldek Hebisch


  • 6. Data: 2016-12-23 21:20:30
    Temat: Re: STM32F4, problem z PLL (asm)
    Od: Marcin Kulas <h...@k...net>

    a...@m...uni.wroc.pl wrote:
    > Sprawdzales czy w rejestrze RCC_PLLCFGR jest to co do niego
    > wpisales?

    Wydawało mi się, że tak, ale sprawdziłem ponownie i...
    już widzę swój błąd.

    Jak to zwykle bywa przy copy&paste, został mi tam ORR
    reset value z tym co ustawiam, zamiast totalnie nadpisać
    i, co gorsza, nie wyłapałem tego banału.

    > No i jak wpisujesz: ja uzywam procedure biblioteczna
    > ktora wpisuje dane do RCC_PLLCFGR w jednym kawalku.

    A ja wynajduję koło przy pomocy krzesiwa i popełniam
    własne błędy, tracąc potem swój i innych ludzi czas
    na ich rozwiązywanie. :)

    > PS: U mnie na F1 Discovery (STM32F407VGT6) w RCC_PLLCFGR jest
    > 0x07405408.

    U mnie (STM32F429ZIT6) 0x07402a04.
    Będę się trzymał VCOin=2MHz póki co, skoro manual zaleca.

    No nic, "Errare tumanum est."
    Wielkie dzięki!

    --
    [ ,,Bądź uczynny, pomagaj innym - a wtedy wszyscy wokół pomyślą, ]
    [ że to co dla nich robisz, jest twoim zasranym obowiązkiem." ]


  • 7. Data: 2016-12-23 22:27:32
    Temat: Re: STM32F4, problem z PLL (asm)
    Od: w systemie siła 'PO/EU <N...@g...pl>

    a mozna zapytać w czym to się pisze asemem stm32?


  • 8. Data: 2016-12-24 13:41:25
    Temat: Re: STM32F4, problem z PLL (asm)
    Od: w systemie siła 'PO/EU <N...@g...pl>

    o kur... mendziejewiczowy ekspert...


  • 9. Data: 2016-12-27 09:27:53
    Temat: Re: STM32F4, problem z PLL (asm)
    Od: "J.F." <j...@p...onet.pl>


    Użytkownik "Marcin Kulas" napisał w wiadomości grup
    dyskusyjnych:s...@k...net...
    a...@m...uni.wroc.pl wrote:
    >> Sprawdzales czy w rejestrze RCC_PLLCFGR jest to co do niego
    >> wpisales?

    >Wydawało mi się, że tak, ale sprawdziłem ponownie i...
    >już widzę swój błąd.

    >Jak to zwykle bywa przy copy&paste, został mi tam ORR
    >reset value z tym co ustawiam, zamiast totalnie nadpisać
    >i, co gorsza, nie wyłapałem tego banału.

    Takie glupie to nie jest, bo tam jest pare bitow ktore trzeba
    zachowac, przynajmniej dokumentacja tak sugeruje, wiec prawie dobrze
    zrobiles.
    Trzeba tylko jedngo AND wczesniej.

    J.


  • 10. Data: 2016-12-27 11:27:38
    Temat: Re: STM32F4, problem z PLL (asm)
    Od: Marcin Kulas <h...@k...net>

    J.F. wrote:
    > Takie glupie to nie jest, bo tam jest pare bitow ktore trzeba
    > zachowac, przynajmniej dokumentacja tak sugeruje, wiec prawie dobrze
    > zrobiles. Trzeba tylko jedngo AND wczesniej.

    No właśnie nie, bo reset value rzutuje jedynie na ustawienie
    PLL_Q, PLL_N i PLL_M. Pozostałe bity są zerami. Być może w innych
    MCU jest nieco inaczej.

    --
    [ ,,Bądź uczynny, pomagaj innym - a wtedy wszyscy wokół pomyślą, ]
    [ że to co dla nich robisz, jest twoim zasranym obowiązkiem." ]

strony : [ 1 ]


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: