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

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA w 2025? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 22 maja 2025, o 21:03


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
    Autor Wiadomość
     Tytuł: STM32 i ADC
    PostNapisane: 28 lut 2018, o 19:53 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 13 paź 2011
    Posty: 581
    Pomógł: 17

    Witam mam kilka pytań dotyczących ADC w STM32F429I
    Przedstawię kilka nurtujących mnie pytań i mam nadzieję na otrzymanie odpowiedzi ;-)
    W każdym z omawianych przypadków będę korzystał z przerwań.

    Czy jeśli tak ustawię ADC:
    1.End of Conversion Selection = EOC Flag end of all conversions
    (rozumiem, to tak, że program osbłuży przerwanie dopiero jak pomierzy napięcia z wszystkich kanałów)? dobrze to rozumiem?

    Obrazek
    To czy jest jakiś sposób, żeby dostać wartości ADC z dwóch kanałów?, albo jeśli jest EOC Flag end of all conversion, to obojętnie jak ustawilibyśmy inne parametry to nie ma możliwości dostania wyników z dwóch różnych kanałów

    2.Scan conversion mode = Disable
    Obrazek

    Czy jeśli ustawię scan conversion mode na disable, to czy jest jakiś sposób, żeby dostać wyniki z 2 różnych kanałów, albo również jest to niemożliwe?
    Czytałem ten dokument, ale niewiele to pomogło
    http://www.st.com/content/ccc/resource/ ... 258017.pdf



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: STM32 i ADC
    PostNapisane: 28 lut 2018, o 21:31 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 13 paź 2011
    Posty: 581
    Pomógł: 17

    dambo dzięki za pomoc ;-)
    Jeszcze jedno pytanie
    Gdy ustawię sobie DMA Continous request na disable
    Obrazek

    To jak mogę wznowić pomiary?

    Jeśli w main dam sobie coś takiego:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    to w tablicy wyniki będę miał wyniki z 2 kanałów.
    Wszystko OK,
    ale jak wykonać kolejny pomiar za np. sekundę?
    Jeśli wykonam coś takiego:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    To wyniki się nie uaktualniają ;(



    Ostatnio edytowano 28 lut 2018, o 22:14 przez xamrex, łącznie edytowano 1 raz

    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: STM32 i ADC
    PostNapisane: 28 lut 2018, o 21:46 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 13 paź 2011
    Posty: 581
    Pomógł: 17

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

    To działa :<



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: STM32 i ADC
    PostNapisane: 28 lut 2018, o 23:10 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 13 paź 2011
    Posty: 581
    Pomógł: 17

    Męczę się z tym i męczę.. i ani razu mi się nie udało się (jedyny sposób jaki udało mi się wymyślić, to włączenie i wyłączenie DMA) ale wolałbym jakieś ładniejsze rozwiązanie
    Chce uruchomić po prostu DMA ale nie w trybie ciągłym. Tylko na żadanie.

    Dam znać jak się coś uda wymyślić ;-)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: STM32 i ADC
    PostNapisane: 28 lut 2018, o 23:35 
    Offline
    Użytkownik

    Dołączył(a): 01 lis 2013
    Posty: 301
    Pomógł: 32

    Witaj,

    Kolego wpisz sobie w wyszukiwarce google taką frazę: poradnik stm32 v1_9 pdf. Pierwszy wyszukany link przekieruje Cię do odpowiedniego wątku na forum elektrody. Z 4 postu wątku pobierz sobie dokument pdf o takiej nazwie jaką wpisałeś do wyszukiwarki - waży jakieś 13MB.

    Od strony 227 masz opis przetwornika ADC, trybów pracy wraz z przykładami. Masz tam opisane przypadki, które Cię interesują. Naprawdę warto go przeczytać.....


    Autor postu otrzymał pochwałę

    _________________
    Pozdrawiam,
    sq8mvy, Paweł



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: STM32 i ADC
    PostNapisane: 1 mar 2018, o 10:23 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 05 mar 2016
    Posty: 85
    Pomógł: 5

    a wystarczy do dokumentacji zajrzeć a nie tam do jakiegoś hala , i tym podobnych durnych poradników

    Regular Mode
    Tryb skanowania wybiera się, ustawiając bit SCAN w rejestrze ADC_CR1.
    Po ustawieniu tego bitu ADC skanuje wszystkie kanały wybrane w rejestrach
    ADC_SQRx (dla zwykłych kanałów) lub w rejestrze ADC_JSQR (dla kanałów wstrzykiwanych).

    Pojedyncza konwersja jest przeprowadzana dla każdego kanału grupy.
    Po każdym zakończeniu konwersji następny kanał w grupie jest automatycznie konwertowany. Jeśli ustawiony jest bit CONT,
    regularna konwersja kanałów nie kończy się na ostatnim wybranym kanale w grupie,
    ale jest kontynuowana od pierwszego wybranego kanału.

    Jeśli bit DMA jest ustawiony, kontroler bezpośredniego dostępu do pamięci (DMA) jest używany do
    przesyłania danych przekształconych ze zwykłej grupy kanałów (przechowywanych w rejestrze ADC_DR)
    do SRAM po każdej regularnej konwersji kanału.

    Bit EOC jest ustawiony w rejestrze ADC_SR:
    - Na końcu każdej regularnej sekwencji grup, jeśli bit EOCS jest wyczyszczony do 0
    - Pod koniec każdej regularnej konwersji kanałów, jeśli bit EOCS jest ustawiony na 1

    Dane skonwertowane z wtryskiwanego kanału są zawsze przechowywane w rejestrze ADC_JDRx


    Discontinuous mode
    Ten tryb można włączyć, ustawiając bit DISCEN w rejestrze ADC_CR1.
    Można go użyć do konwersji krótkiej sekwencji n konwersji (n ≤ 8),
    która jest częścią sekwencji konwersji wybranych w rejestrach ADC_SQRx.
    Wartość n jest określona poprzez zapis na bitach DISCNUM [2: 0] w rejestrze ADC_CR1.

    Po wystąpieniu zewnętrznego wyzwalacza rozpoczyna (n) następnych
    konwersji wybranych w rejestrach ADC_SQRx, dopóki nie zostaną wykonane wszystkie konwersje w sekwencji.
    Całkowita długość sekwencji jest określona przez bity L [3: 0] w rejestrze ADC_SQR1.


    Data Mangament & DMA
    Ponieważ przekonwertowane regularne wartości kanałów są przechowywane w unikalnym rejestrze danych,
    przydatne jest użycie DMA do konwersji więcej niż jednego zwykłego kanału.

    Pozwala to uniknąć utraty danych już zapisanych w rejestrze ADC_DR.

    Gdy tryb DMA jest włączony (bit DMA ustawiony na 1 w rejestrze ADC_CR2),
    po każdej konwersji standardowego kanału generowane jest żądanie DMA.
    Umożliwia to przeniesienie skonwertowanych danych z rejestru ADC_DR do docelowej
    lokalizacji wybranej przez oprogramowanie.

    Pomimo tego, jeśli dane zostaną utracone (przekroczenie), bit OVR w rejestrze ADC_SR jest ustawiony i
    generowane jest przerwanie (jeśli ustawiony jest bit zezwolenia OVRIE). Transfery DMA są następnie wyłączane,
    a żądania DMA nie są już akceptowane.
    W takim przypadku, jeśli zostanie wysłane żądanie DMA, regularna konwersja w toku jest przerywana,
    a kolejne regularne wyzwalacze są ignorowane. Następnie należy wyczyścić flagę OVR i bit DMAEN w
    używanym strumieniu DMA oraz ponownie zainicjować zarówno DMA, jak i ADC,
    aby żądane skonwertowane dane kanału zostały przesłane
    do właściwej lokalizacji pamięci.
    Tylko wtedy można wznowić konwersję i transfer danych, włączyć ponownie.
    W przypadku iniekcji konwersji kanałów nie występują błędy przekroczenia.
    Gdy OVR = 1 w trybie DMA, żądania DMA są blokowane po przesłaniu ostatnich ważnych danych, co oznacza,
    że ​​wszystkie dane przesłane do pamięci RAM można uznać za ważne.

    _________________
    I'M



    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: 6 ] 

    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