Skocz do zawartości

Problem z pomiarem ADC na F103RB


kuba_z_lubina

Pomocna odpowiedź

Cześć!,

mam problem z modułem ADC- po przejściu wszystkich kroków zgodnie z instrukcją (konfiguracja środowiska, wklejenie kodu z akapitu "kod programu korzystającego z ADC") moduł ADC mojej płytki zwraca pomiary o wartościach około 2050, zamiast spodziewanych 1490. Właściwie za każdym razem po załadowaniu programu od nowa pierwszy pomiar jest zgodny z oczekiwaniami a reszta już nie. Tak samo po wciśnięciu przycisku RESET jeden, czasami dwa pomiary wynoszą 1490, a potem ADC z powrotem zwraca 2050. Zauważyłem że manipulowanie częstotliwością taktowania i preskalerem ma wpływ na zwracany wynik, mianowicie im niższą częstotliwość ustawię, tym wartość zwracana jest niższa. 

Korzystam z modelu F103RB (modelu z archiwalnego kursu STM32). 

Byłbym bardzo wdzięczny za pomoc.

Link do komentarza
Share on other sites

@kuba_z_lubina pytanie wydzieliłem z kursu STM32L4, bo Twój problem wynika z tego, że używasz płytki z innym mikrokatorem, który może wymagać innych ustawień - to taka ogólna uwaga, bo zdecydowanie odradzam wykonywania ćwiczeń z kursów na płytkach, które nie były przeznaczone do tego kursu. Takich problemów możesz napotkać dużo więcej, nie bez przyczyny zdecydowaliśmy się, aby w końcu zmienić rodzinę F1 na L4 🙂 

Źródło pytania: https://forbot.pl/forum/topic/20129-kurs-stm32l4---9---przetworniki-analogowo-cyfrowe-adc

Powiedz więc dokładnie co i gdzie masz podłączone i dodaj archiwum zip z całym Twoim projektem - jest szansa, że wtedy ktoś będzie mógł zweryfikować ten temat 🙂

Link do komentarza
Share on other sites

Podczas konfiguracji urządzenia wykonywałem po kolei czynności: 

1. Uruchomiłem debugger

2. Uruchomiłem USART2 w trybie asynchronicznym

3. Skonfigurowałem pin PA5 jako wyjście o nazwie LD2

4. Dodałem przekierowanie komunikatów przez printf

5. Włączyłem opcję "vrefint channel" dla modułu ADC1

u mnie nie pojawił się błąd w zakładce "clock configuration" taki jak w kursie, pewnie dlatego że nie zmieniałem częstotliwości taktowania. 

6. wkleiłem kod z kursu który kalibrował ADC (tutaj usunąłem drugi parametr, bo mój mikrokontroler nie posiada różnych trybów), oraz kod który dokonuje pomiaru napięcia i wypisania go. 

po wykonaniu tych kroków tera term pokazał takie wartości: (dwie pierwsze ~1500, potem ~1970):

image.thumb.png.6a085da768022b02aa1fb3be43e89e54.png

Mam wrażenie, że skopałem coś z tym ustawieniem częstotliwości (nie mogę ustawić 80MHz jak na kursie- max 72MHz).

Załączam poniżej archiwum zip z projektem i dziękuję za odpowiedź!

kurs9.zip

Link do komentarza
Share on other sites

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!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.