rafcio_bed Kwiecień 4, 2019 Udostępnij Kwiecień 4, 2019 Dzień dobry. Zacząłem przygodę z programowaniem STM32 (troszkę liznąłem Arduino) Zakupiłem zestaw startowy do kursu. Gdy chcę ustawić zegary to mam problem z HSE. Wszystko wcześniej jest OK. W HSE wpisuję wartość z kwarcu na płytce, i nie chce zapamiętać wpisanej wartości. Ciągle wraca na 0.0 lub 0.0000010 jak mam to wykonać aby zapisała się tam "8" Input Frequency 8MHz? I Main PLL mam ciągle 8 i nie chce się zmienić na 4. Płytka mam dokładnie taką jak w kursie STM32F411E-DISCO. Proszę o pomoc. Cytuj Link do komentarza Share on other sites More sharing options...
Gieneq Kwiecień 5, 2019 Udostępnij Kwiecień 5, 2019 Dnia 4.04.2019 o 11:23, rafcio_bed napisał: W HSE wpisuję wartość z kwarcu na płytce, i nie chce zapamiętać wpisanej wartości. @rafcio_bed a co dokładnie Ci się nie zapisuje? Masz na myśli, że wartość nie wpisuje się w pole tekstowe w GUI? Przed chwilą sprawdzałem na wersji CubeMX 5.1.0, którą instalowałem kilka dni temu na Win 10 i wszystko poprawnie się zapisuje. Cytuj Link do komentarza Share on other sites More sharing options...
rafcio_bed Kwiecień 6, 2019 Udostępnij Kwiecień 6, 2019 Wpisuje wartość tak aby było 8MHz i gdy kliknę gdziekolwiek wartość zmienia się na 0.0 lub 0.0000010 Nie chce zapamiętać wartości 8 ani żadnej innej tylko te zera. Cytuj Link do komentarza Share on other sites More sharing options...
Treker (Damian Szymański) Kwiecień 6, 2019 Udostępnij Kwiecień 6, 2019 @rafcio_bed tak jak napisał @Gieneq, sprawdziliśmy temat na najnowszej wersji Cube, odtworzyliśmy ten sam przykład i u nas w GUI informacja zapisuje się bez problemu. To raczej coś po Twojej stronie (może jakiś błąd instalacji, niekompatybilność programów itd). A jak wygląda u Ciebie kwestia z innymi polami? Czy informacje wpisywane w inne pola też znikają? Cytuj Link do komentarza Share on other sites More sharing options...
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Produkcja i montaż PCB - wybierz sprawdzone PCBWay! • Darmowe płytki dla studentów i projektów non-profit • Tylko 5$ za 10 prototypów PCB w 24 godziny • Usługa projektowania PCB na zlecenie • Montaż PCB od 30$ + bezpłatna dostawa i szablony • Darmowe narzędzie do podglądu plików Gerber Zobacz również » Film z fabryki PCBWay
rafcio_bed Kwiecień 6, 2019 Udostępnij Kwiecień 6, 2019 Witam. Tylko w tym jednym polu był problem. Reinstall programów i zadziałało 🙂 Przepraszam za kłopot. 2 Cytuj Link do komentarza Share on other sites More sharing options...
Treker (Damian Szymański) Kwiecień 6, 2019 Udostępnij Kwiecień 6, 2019 @rafcio_bed super, najważniejsze, że problem rozwiązany 🙂 Cytuj Link do komentarza Share on other sites More sharing options...
PrimeSoul Wrzesień 30, 2019 Udostępnij Wrzesień 30, 2019 (edytowany) Cześć, Natrafiłem na identyczny problem jak koledzy wyżej, tj. przy korzystaniu z plug-in'u CubeMX'a do ac6 nie da się ustawić taktowania z HSE. Po wpisaniu do pola HSE 8, konwertuje liczbę na 8 Hz, tzn. 0.00..8. Jak wpisać 8 000 000, wtedy akceptuje wartość jako 8 MHz tylko po to, by po przejściu do innej karty lub kliknięciu innego pola od razu skonwertować powrotnie na 8 Hz. Przy czym problem jest o tyle gorszy, że po reinstallu nic się nie zmieniło, dalej plug-in zachowuje się tak samo. Korzystanie z zewnętrznego CubeMX'a rozwiązuje problem, ale jest dosyć... upierdliwe, bo za każdym razem muszę ręcznie ścieżki zmieniać, a przy plug-in'ie szło to z automatu. Da się coś z tym zrobić? Dodam, że plug-in najnowszy, ściągnięty ze strony ST. EDIT: Cofam to, co pisałem o zewnętrznym CubeMX'ie. Owszem, można tam ustawić zegar, ale z kolei wyrzuca błąd przy generowaniu projektu. Więc problem zaczyna być bardzo uciążliwy. EDIT2: Ok. Problem z CubeMX'em zewnętrznym rozwiązany. Nie pasował mu polski znak w ścieżce (cóż, taki użytkownik... ). Pozostaje więc jedynie kwestia plug-in'u. Pozdrawiam Edytowano Wrzesień 30, 2019 przez PrimeSoul 1 Cytuj Link do komentarza Share on other sites More sharing options...
jaceksz73 Styczeń 24, 2020 Udostępnij Styczeń 24, 2020 (edytowany) Proszę o wyjaśnienie taktowania magistrali APB1. W części #6 napisane jest: "Uwaga! Dla magistrali APB1 ograniczenie do 50MHz istnieje tylko dla części obsługującej peryferia. Timery znajdujące się na APB1 Timer Clocks mogą być taktowane częstotliwością 100MHz!". Natomiast w części #8 napisane jest: "Zaglądając na początek artykułu o zegarach dowiemy się, że timer 4 znajduje się na magistrali APB1, a więc będzie taktowany częstotliwością 50MHz (TIM_CLK)." Jak to jest z tym taktowaniem? Przy ustawieniu 50/100MHz co jest taktowanie wolniej a co szybciej? Edytowano Styczeń 24, 2020 przez jaceksz73 Cytuj Link do komentarza Share on other sites More sharing options...
PrimeSoul Styczeń 24, 2020 Udostępnij Styczeń 24, 2020 (edytowany) 1 godzinę temu, jaceksz73 napisał: Proszę o wyjaśnienie taktowania magistrali APB1. W części #6 napisane jest: "Uwaga! Dla magistrali APB1 ograniczenie do 50MHz istnieje tylko dla części obsługującej peryferia. Timery znajdujące się na APB1 Timer Clocks mogą być taktowane częstotliwością 100MHz!". Natomiast w części #8 napisane jest: "Zaglądając na początek artykułu o zegarach dowiemy się, że timer 4 znajduje się na magistrali APB1, a więc będzie taktowany częstotliwością 50MHz (TIM_CLK)." Jak to jest z tym taktowaniem? Przy ustawieniu 50/100MHz co jest taktowanie wolniej a co szybciej? Najszybsza metoda to zerknięcie do strony konfiguracji zegara w CubeMXie. Masz tam po prawej stronie taktowanie poszczególnych magistral, w tym APB1 i wskazana dla niej wartość. Poniżej albo powyżej powinna znajdować się wartość dla timerów tej samej magistrali, najczęściej pomnożona przez 2. Przy czym w tej chwili piszę mając w głowie STM32F407VG, bo akurat ostatnio miałem go w ręku, a nie zestaw do kursu, który leży gdzieś w szafce, czekając na lepsze czasy ;). A szczegółowe informacje znajdziesz na 100% w nocie katalogowej mikrokontrolera / reference manualu / manualu do Cube'a (przyda się opcja Ctrl + F, bo to nie są lekkie lektury...). STMy mają to do siebie, że tych zegarów jest sporo i większość można całkiem spoko indywidualnie sobie poustawiać, w tym zegary timerów. Edytowano Styczeń 24, 2020 przez PrimeSoul 1 Cytuj Link do komentarza Share on other sites More sharing options...
jaceksz73 Styczeń 25, 2020 Udostępnij Styczeń 25, 2020 W CubeMX jest dokładnie tak jak piszesz. W dokumentacji do F411 jest dokładnie tak samo. Ale pytanie pozostaje: dlaczego w odcinku #6 i odcinku #8 są podane chyba sprzeczne informacje? I drugie pytanie co jest taktowane wolniej a co szybciej. W dokumentacji jest napisane: "Max. interface clock (MHz)" to jest wolniej taktowane i "Max. timer clock (MHz)" to jest szybciej taktowane. Ale co to dokładnie jest? Cytuj Link do komentarza Share on other sites More sharing options...
PrimeSoul Styczeń 25, 2020 Udostępnij Styczeń 25, 2020 (edytowany) 11 godzin temu, jaceksz73 napisał: W CubeMX jest dokładnie tak jak piszesz. W dokumentacji do F411 jest dokładnie tak samo. Ale pytanie pozostaje: dlaczego w odcinku #6 i odcinku #8 są podane chyba sprzeczne informacje? I drugie pytanie co jest taktowane wolniej a co szybciej. W dokumentacji jest napisane: "Max. interface clock (MHz)" to jest wolniej taktowane i "Max. timer clock (MHz)" to jest szybciej taktowane. Ale co to dokładnie jest? Max. timer clock to maksymalna częstotliwość sygnału zegarowego podawana na timery "przylepione" do danej magistrali. Więcej niż ta wartość nie osiągniesz. Max. interface clock to maksymalna częstotliwość taktowania wszystkich pozostałych peryferiów "przylepionych" do tej magistrali, np. USART, I2C itp. Podejrzewam, że w złożonych projektach może mieć to znaczenie, ale w hobbystycznych rozwiązaniach z reguły tylko taktowanie timerów, tudzież jakichś middleware'ów nas tak naprawdę interesuje. Natomiast jeśli chodzi o tutorial, to trudno mi powiedzieć, co autor miał na myśli. Jeśli magistrala jest taktowana z 50MHz maksymalnie, to timery na niej przeważnie mogą hulać do 100MHz, o ile nie ustawi się inaczej w konfiguracji zegara (np. bez podwojenia). Edytowano Styczeń 25, 2020 przez PrimeSoul 1 Cytuj Link do komentarza Share on other sites More sharing options...
Bobalke Wrzesień 10, 2020 Udostępnij Wrzesień 10, 2020 Mam uwagę co do opisu rejestru Internal Clock Division (CKD). W kursie opisano go jako "Internal Clock Division - jeszcze jedno miejsce, gdzie można dokonać dzielenia sygnału taktującego timer." Spróbowałem dziś użyć tego rejestru do wydłużenia okresu licznika na STM32F103C8 i niezależnie od ustawienia okres był ten sam - wynikający z rejestrów AutoReload Register (ARR) i Prescaler (PSC). Postanowiłem nieco zgłębić zasadę działania liczników i w dokumencie https://www.st.com/resource/en/application_note/dm00042534-stm32-crossseries-timer-overview-stmicroelectronics.pdf znalazłem informację, że rejestr ten służy do czegoś kompletnie innego - jest preskalerem do licznika, ale... tego liczącego ile impulsów ma trwać dead time w trybach input capture. Oznacza to, że informacja w kursie jest błędna. W tym samym dokumencie znaleźć można na stronie 11 wzór do wyznaczania okresu (częstotliwości) licznika: Update_event = TIM_CLK/((PSC + 1)*(ARR + 1)*(RCR + 1)) Jest niemal identyczny do tego w kursie: INT_FREQ = TIM_CLK/(ARR+1)(PSC+1)(CKD+1) Jedyną różnicą jest... nazwa jednego rejestru, gdzie w kursie występuje właśnie CKD, a powinno RCR (Repetition Counter). Brzmi jak niewinny błąd, ale w moim przypadku akurat robi to sporą różnicę, bo RCR nie wykorzystam do wydłużenia okresu sygnału PWM, bo RCR nie jest preskalerem. Zaznaczę od razu, ze użycie innego mikrokontrolera nie powinno grać roli, gdyż dokument odnosi się do całej rodziny STM32 1 Cytuj Link do komentarza Share on other sites More sharing options...
Emerid Styczeń 21, 2021 Udostępnij Styczeń 21, 2021 (edytowany) Dlaczego przy wprowadzaniu TIM10 pojawia się też komenda inicjalizacji zegara portu H? __HAL_RCC_GPIOH_CLK_ENABLE(); Chciałbym też zauważyć, iż w rozwiązaniu zadania domowego nie zrealizowano 2s przerwy między cyklem zapalania i gaszenia LED. Edytowano Styczeń 21, 2021 przez Emerid Cytuj Link do komentarza Share on other sites More sharing options...
Treker (Damian Szymański) Styczeń 22, 2021 Udostępnij Styczeń 22, 2021 @Emerid dzięki za zgłoszenie tematu - zapisuję obie kwestie do weryfikacji. Ten kurs jest już całkiem stary (ma 5 lat) i właśnie debatujemy wewnętrznie co dalej z nim zrobić, bo z jednej strony można go odświeżyć (głównie ze względu na zmiany w IDE), ale z drugiej strony można tutaj zrobić znacznie większą rewolucję 🙂 Cytuj Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
Dołącz do dyskusji, napisz odpowiedź!
Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!