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



Teraz jest 16 kwi 2024, o 07:54


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 
Autor Wiadomość
PostNapisane: 29 kwi 2019, o 20:41 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 lut 2013
Posty: 148
Lokalizacja: KTT
Pomógł: 1

No właśnie. Czy to ma coś ze sobą wspólnego? Trochę ciężki temat i mam nadzieję, że uda mi się go dobrze opisać.
Ale od początku...
Buduję i testuję mały miernik/monitor sieci elektrycznej. Chodzi między innymi o pomiar napięcia i prądu (pewnie kilku innych rzeczy w przyszłości). Używam ATmegi328 i wykorzystuję kilka wejść ADC do pomiaru parametrów - tak jak widać na schemacie. Sygnały analogowe doprowadzone są z innej płytki, na której są umieszczone układy analogowe, m.in. przetworniki TrueRMS. Jednak układ analogowy zostawmy na razie w spokoju - sygnały z niego na mierniku są stabilne i nie pływają.
Obrazek
Na tym samym porcie co ADC w mega328 jest interfejs I2C, do którego podłączony jest wyświetlacz OLED. Podejrzewam, że to on wprowadza pewne zakłócenia, które powodują, ze wskazania ADC "pływają" (nie to, że skaczą ale pływają - zmieniają się cyklicznie w okresie ok 4s o aż o 50-60 ADC). Zauważyłem, że wskazania ADC zachowują się różnie w zależności od tego co wyświetlam na OLEDzie. Jeśli wyświetlam surowe wskazania ADC, to wyniki są bardziej stabilne, niż jak wyświetlam więcej informacji (np. przeliczone napięcie, prąd itp.). Nawet ustawiam różne szybkości I2C i też ma to wpływ na ADC - niestety nie mogę uzyskać dużej poprawy.
Najgorsze jest to, że zastosowanie uśredniania i filtru dolnoprzepustowego niewiele pomaga. Próbowałem zwiększać liczbę próbek, zmieniać preskaler ADC ale niewiele to daje.
Jeśli chodzi o inicjalizację ADC, to także próbowałem kilka wariantów (z obsługą przerwań i bez).
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


W związku z tym moje pytanie. Czy mogę to jakoś zaradzić temu zjawisku i uzyskać stabilne wskazania? Czy miał może ktoś podobne problemy i udało mu się to jakoś rozwiązać? Bedę wdzięczny za jakieś sugestie.

_________________
Gordon



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 kwi 2019, o 05:27 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 sty 2016
Posty: 1148
Lokalizacja: Kraków
Pomógł: 93

A próbowałeś nie robić pomiarów podczas wysyłania danych na wyświetlacz?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 kwi 2019, o 09:47 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 lut 2013
Posty: 148
Lokalizacja: KTT
Pomógł: 1

Marhef napisał(a):
A próbowałeś nie robić pomiarów podczas wysyłania danych na wyświetlacz?

Wysyłanie na wyświetlacz ustawiam od 1 do 10 razy na sekundę - używam timerów programowych do realizacji opóźnień.
Robienie pomiarów ustawiam w okolicach 10 do 100 razy na sekundę. Także pomiary są robione głównie wtedy gdy nic nie wysyłam na wyświetlacz.
Niestety niewiele to daje. Nawet jak uda mi się ucelować w miarę stabilne wyniki (przy zastosowaniu uśredniania z wielu pomiarów), to i tak jak zmieniam sposób prezentacji wyników na OLEDzie to wszystko się rozjeżdża.

------------------------ [ Dodano po: 3 minutach ]

zubik napisał(a):
Ciężki temat, jednym z możliwych sposobów na ominięcie problemu może być usypianie mikrokontrolera na czas pomiarów. Spróbuj też różnych konfiguracji połączenia masy wyświetlacza.

------------------------ [ Dodano po: 1 minucie ]

Obawiam się że będziesz musiał zrezygnować z obsługi i2c na porcie adc. Może lepszy będzie OLED na spi?

Próbowałem trybu Noise Reduction, jednak nic to nie daje. Jak procesor jest uśpiony i robi pomiar, to przy wystąpieniu innego przerwania np. od timera chyba też się wybudza.

Chyba jednak trzeba będzie przerzucić się na SPI i dać spokój z I2C :?
W wolnej chwili spróbuję to poprzepinać i zostawić wejscia ADCx tylko dla sygnałów analogowych.

_________________
Gordon



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 kwi 2019, o 10:01 
Online
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27224
Lokalizacja: Szczecin
Pomógł: 1041

gordon10 napisał(a):
Chyba jednak trzeba będzie przerzucić się na SPI i dać spokój z I2C

Ale kolega jednak bajki pisze troszkę - bez urazy ...

Tzn że co I2C zakłóca ADC zaś SPI nie ? ;) no pomyśl sam chwilę nad tym co piszesz

Zamiast zrobić mega prosty test o którym pisał ci kolega wyżej - czyli zrób pomiary i sprawdź w ogóle bez podłączania LCD ... i uruchamiania magistrali I2C ...

co za problem wywalać sobie pomiary np przez RS232 do terminala ?

Szybciej znajdziesz babola w swoim kodzie do pomiarów - zamiast zmieniać magistrale w nieskończoność z I2C na SPI ... później z SPI na 1wire ... później z ... aż ci zabraknie tych magistral.

Szukasz błędu nie w tym miejscu w którym trzeba ...

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 kwi 2019, o 10:21 
Online
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27224
Lokalizacja: Szczecin
Pomógł: 1041

zubik napisał(a):
Toż nawet nota zaleca aby nie używać portu adc gdy są potrzebne dokładne pomiary. Teraz tego nie znajdę ale pamiętam że są takie zalecenia.


Ale po to szczególnie w nowszych prockach , a tu jest nowszy bo m328 , odłączać port cyfrowy od pinu i już można mieć b.dobre pomiary ...

Tym bardziej, że z tego co kolega autor pisze - to ma jakieś bardzo dziwne "pływania" jak to nazywa ...

Więc sprawdzenie tego przez RS232 to po prostu - krótki test i wiadomo o co chodzi

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 kwi 2019, o 10:50 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 lut 2013
Posty: 148
Lokalizacja: KTT
Pomógł: 1

mirekk36 napisał(a):
zubik napisał(a):
Toż nawet nota zaleca aby nie używać portu adc gdy są potrzebne dokładne pomiary. Teraz tego nie znajdę ale pamiętam że są takie zalecenia.


Ale po to szczególnie w nowszych prockach , a tu jest nowszy bo m328 , odłączać port cyfrowy od pinu i już można mieć b.dobre pomiary ...

Tym bardziej, że z tego co kolega autor pisze - to ma jakieś bardzo dziwne "pływania" jak to nazywa ...

Więc sprawdzenie tego przez RS232 to po prostu - krótki test i wiadomo o co chodzi

Pierwsze co zrobiłem to odłączyłem cyfrówkę na używanych wejściach ADC
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Muszę spróbować wysyłać wyniki po RS232.

_________________
Gordon



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 kwi 2019, o 10:56 
Online
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27224
Lokalizacja: Szczecin
Pomógł: 1041

gordon10 napisał(a):
Pierwsze co zrobiłem to odłączyłem cyfrówkę na używanych wejściach ADC

To widziałem i to jest b.dobre posunięcie przy tym procku

teraz czas na test po RS232

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 kwi 2019, o 11:16 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 lut 2013
Posty: 148
Lokalizacja: KTT
Pomógł: 1

gordon10 napisał(a):
teraz czas na test po RS232

Dokładnie. Nawet w wolnej chwili podepnę te sygnały do ATB (nawet pojedynczo) i zobaczę jak się to zachowuje.

_________________
Gordon



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 kwi 2019, o 21:36 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 lut 2013
Posty: 148
Lokalizacja: KTT
Pomógł: 1

Podłączyłem sygnał U_rms do ATB na wejscie ADC0. Wyniki wyswietlam na LCDku. Wskazania nadal skaczą w dość sporym zakresie, ale nie pływają (a to duża różnica). Teraz przy zastosowaniu zwykłej średniej z 16 próbek uzyskuję bardzo stabilny wynik.
Jednak jeszcze sporo prób przede mną... ale już coś drgnęło :) Póki co dziękuję za wszelkie sugestie.

_________________
Gordon



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 4 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