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



Teraz jest 16 kwi 2024, o 16:59


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: 302
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 0 gości


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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO