Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 7 lut 2025, o 19:12


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 8 ] 
Autor Wiadomość
PostNapisane: 18 sie 2015, o 22:23 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

Witam Koledzy,

Bawię się od kilku dni płytką z STM32F0 Discovery. Wlutowałem w płytkę kwarc 16 MHz, później uruchomiłem sobie taktowanie z zewnetrznego rezonatora i odpaliłem USART z pomocą Kolegów z forum. Problem jest taki, że znalazłem bibliotekach std, a dokładniej mówiąc w pliku stm32f0xx.h, definicje preprocesora

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Zmieniłem więc tą linijkę na:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


dalej zmieniłem również odpowiednio mnożnik petli PLL aby było 48Mhz i wszystko się zgadza. Ku mojemu zdziwieniu okazało się że termian sypie krzakami. Kombinowałem na różne sposoby aż w końcu odpaliłem oscyloskop i podejrzałem co mam na wejściu OSC_IN.

Oto zaskakujący wynik:

Obrazek

Jak widać na wejściu jest 8Mhz... Czyżby ktoś sprzedał mi lewy kwarc czy może ja nie rozumiem działania wewnętrznego generatora? Proszę o pomoc w rozgryzieniu tej zagadki.

------------------------ [ Dodano po: 7 minutach ]

Wylutowałem ten kwarc i wsadziłem w zestaw ATB. Na oscyloskopie mam f=16MHz.... Czyżby STM rezonował z tym kwarcem na innej częstotliwości?

Ten sam kwarc w ATB:

Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 sie 2015, o 23:00 
Offline
Użytkownik

Dołączył(a): 15 lut 2012
Posty: 224
Lokalizacja: Opole
Pomógł: 24

O ile dobrze pamiętam jest tam (system_stm32fx) co najmniej jeden ifdef , w którym trzeba pozmieniać komentarze.

Zauważyłem, że czasami kompilator olewa funkcje napisane przez nas i korzysta z tych funkcji w pliku system_stm32fx przez co wyskakują takie dziwne rzeczy.

Tutaj masz przykład dla F1:

Plik C
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Plik H

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Jak zobaczysz sobie do plików startowych startup_stm32fxxxx.S to zobaczysz formułkę, która przy starcie procka wywołuje funkcję SystemInit i olewa twoją funkcję.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 sie 2015, o 12:23 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

Może link ten tu pomoże. ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 sie 2015, o 13:15 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

anshar napisał(a):
Może link ten tu pomoże.


Nie mam problemu z ustawieniem zegara. To jest akurat proste. Mam problem z hardwarem na płytce i już chyba wiem o co chodzi. Chodzi o zworke SB18 która podaje na OSC_IN sygnał 8MHz z procka obsługujacego stlnka :) Sprawdzę to dziś wieczorem i się podzielę z wami :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 sie 2015, o 18:48 
Offline
Użytkownik

Dołączył(a): 25 cze 2015
Posty: 123
Pomógł: 4

Nefarious19 napisał(a):
Chodzi o zworke SB18 która podaje na OSC_IN sygnał 8MHz z procka obsługujacego stlnka Sprawdzę to dziś wieczorem i się podzielę z wami


Dokładnie, trzeba przeczytać instrukcję do płytki, STlink wysyła na OSC_IN zegar 8Mhz, jeżeli zworka nie zostanie zdjęta to kwarc nie będzie działać, ot będzie tylko balastem dla sygnału z stlinka.

Do każdej discoverki/nukleo jest fajna instrukcja od ST, opisane wszystkie zworki co gdzie i jak. Wystarczy przeczytać ;).

_________________
"O sygnałach bez całek" Czesław Frąc



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 sie 2015, o 21:38 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

ramrusazer napisał(a):
Do każdej discoverki/nukleo jest fajna instrukcja od ST, opisane wszystkie zworki co gdzie i jak. Wystarczy przeczytać ;).


Dla STM32f0 można to znaleźć tutaj.

(strona 18)
Oscillator onboard
. From X2 crystal (not provided). For typical frequencies and its
capacitors and resistors, please refer to the STM32F051R8T6 Datasheet.
Configuration needed:
– SB16, SB17 SB18 OPEN
– R22, R23, C13, C14 soldered

Idąc dalej tym tropem:
STM32F051R8T6 Datasheet (strona 15) można przeczytać, że domyślnie jest wybrany wewnętrzny oscylator RC 8MHz po resecie. Można wybrać zewnętrzne taktowanie na rezonatorze kwarcowym 4-32MHz, ale jest ono monitorowane, sprawdzane czy nie wystąpił błąd. Czyli wynika z tego, że gdy coś jest nie teges zostaje przy wewnętrznym oscylatorze RC.
Wygląda na to, że bardzo ważne jest dobranie tych kondensatorów C13 i C14 (CL1 i CL2, strona 63) jak również Rext (strona 64). Odsyłają rówież do AN2867 “Oscillator
design guide for ST microcontrollers" gdzie można znaleźć informacje jak się dobiera te elementy, piszą również o tym, że nie każdy rezonator kwarcowy się nadaje, jest nawet lista rekomendowanych producentów (strona 26). Ufff od samego pisania, można się zakręcić. ;)

A nie wystarczyłoby zamiast R22 i R23 wlutować po prostu zworki, a C13 i C14, by nie bawić się w ich obliczanie, wlutować dla przykładu 2x 10pF (uwzględniając pojemność ścieżek itd)?
Jak Wy sobie z tym poradziliście? Naprawdę liczyliście te pojemności i rezystancje?
Po co podawany jest sygnał 8MHz z STLINK'a na wejście OSC_IN skoro pracuje na wewnętrznym oscylatorze HSI skalibrowanym na 8MHz (w/g noty +/- 1%) właśnie?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 sie 2015, o 12:10 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

Zamiast się bawić w dobieranie elementów wystarczy zewrzeć zworkę SB16 i wykorzystać właśnie sygnał z STLINK'a. Czy to wystarczy do poprawnej (stabilnej) pracy z USART?

Nefarious19 napisał(a):
Sprawdzę to dziś wieczorem i się podzielę z wami :)

Udało się?


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 sie 2015, o 11:30 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

O to co trzeba rozlutować:

Obrazek

Teraz wszystko działa, oto dowód:


Obrazek


Bardzo dziękuje Koledze Anshar za pomoc. Napisał mi wiadomość na PW bez której pewnie jeszcze z tydzień bym dochodził do tego że warto zaglądać szczegółowo do dokumentacji płytki ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 8 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO