Wątek przeniesiony 2019-08-25 22:09 z przez Shalom.

Jednoczesny odczyt wielu sygnałów analogowych

Odpowiedz Nowy wątek
2019-08-25 21:29
0

Mam procesor z przetwornikiem AC i dwunastoma wejściami.
Potrzebuję jednak próbkować dwanaście sygnałów jednocześnie w celu określenia poza ich wartością także ich wzajemne korelacje.
Dodatkowo moment przejścia przez zero i czas oraz kolejność tych przejść.

Może ma ktoś pomysł jak to rozwiązać dla procesorów typu ATXMega?

Pozostało 580 znaków

2019-08-25 22:29
0

Rzuć kilka liczb, jaki to sygnał, jaka częstotliwość itd...

Pozostało 580 znaków

2019-08-25 22:46
0

Częstotliwość 50Hz, sinusoida nie regularna.

Do której harmonicznej chcesz to mierzyć - czyli mówiąc to samo ale inaczej do jakiej częstotliwości granicznej. Jakie delta t można uznać za "jednoczesne". Zbyt zmęczony jestem aby to szukać dla Ciebie, ale to baza do zaprojektowania - AnyKtokolwiek 2019-08-25 23:03

Pozostało 580 znaków

2019-08-25 23:09
0

Myślę, że do 2kHz wystarczy, też już jestem zmęczony.
Jednoczesność, o to jest pytanie.
Zasadniczo najważniejszym parametrem jest przejście przez zero. Jeśli ćwiartka sin przy tej częstotliwości ma 5ms to czy 5us będzie realnym dt?

Pozostało 580 znaków

2019-08-25 23:15
0

Z reguły ze zwykłego wejścia nie przeczytasz nic poza cyfrowym (chyba że tylko binarnie Cię interesuje). 1 ADC nie da rady, chyba że jakiś multiplekser użyjesz. Z reguły do wielu kanałów wejściowych lepiej użyć jakiegoś dodatkowego modułu. Np.: MCP3008 ma 8 kanałów 10-bitowych; ADS1115 4 kanały 16-bitowe; MCP3428 4 kanały 16-bitowe (reklamuje się jako low-noise).

MCP3008 ma możliwość porównywania kanałów ale było sporo szumu (oscylacje na poziomie około 5-10%) jak na Raspberry Pi testowałem (może być związane z samym RPi, ale do sinusoidy starczy), reszty nie testowałem.

Co do próbkowania nie jestem pewien, ale MCP3008 chyba z 40kHz ma.


░█░█░█░█░█░█░█░█░█░█░█░

Pozostało 580 znaków

2019-08-25 23:19
0

Spoko, można by to tak rozwiązać, układem zewnętrznym tylko pojawia się pytanie, czy znowu procesor nadrzędny da radę to obsłużyć.
ATXMega być może tak, ale co z resztą obliczeń FFT i innych parametrów? Może nie starczyć czasu.
A miała być taka prosta apka, skończy się pewnie znów na RPI co najmniej.

edytowany 1x, ostatnio: furious programming, 2019-08-25 23:20

Pozostało 580 znaków

2019-08-25 23:29
0

@ELSPECT: jeśli chcesz je tylko odczytać to generalnie czytasz za pomocą I2C więc nie potrzebujesz nic kombinować. Jeśli chodzi o dodatkowe obliczenia to trochę osobny problem. Generalnie atmega to max 32MHz (32mln operacji) więc jeśli masz mało sygnałów i nie będziesz korzystać z floatów to jest szansa ale raczej brałbym coś większego w stylu Raspberry PI albo wysłać dane na PC i tam zrobić obliczenia.

Generalnie lepiej opisz co chcesz dokładnie zrobić bo jeśli da się nie liczyć FFT to może da rade (jeśli tylko przejście przez zero razem z kolejnością to może da rade, ale nie wiem czy aż 12 naraz).

Dolicz że jeszcze pewnie będziesz musiał dodać jakąś logikę na czyszczenie sygnału. Ja jak zliczałem sygnał ~10-15Hz to mi przez zero przechodziło dużo częściej niż 10Hz ze względu na jakieś szumy o wysokiej częstotliwości


░█░█░█░█░█░█░█░█░█░█░█░
edytowany 5x, ostatnio: krwq, 2019-08-25 23:37

Pozostało 580 znaków

2019-08-25 23:35
0

Potrzebuję wartości bezwzględnych każdej z sinusoid oraz wartości przesunięć fazowych pomiędzy nimi.

Pozostało 580 znaków

2019-08-25 23:39
0

@ELSPECT to myśle że da rade bez FFT, ale nie obiecuje że aż 12 naraz bo nie wiem ile operacji dasz rade zrobić po odjęciu I2C itp


░█░█░█░█░█░█░█░█░█░█░█░

Pozostało 580 znaków

2019-08-26 12:10
1

Hej! Niestety widzę, że nie masz za bardzo pojęcia co chcesz zrobić. Mówisz o czasie 5us i jednocześnie wspominasz coś o Raspberry Pi? Przecież to się kompletnie nie nadaje do systemów pomiarowych czasu rzeczywistego! Chcesz do tego równolegle mierzyć wartości analogowe na 12 kanałach + wykrywać przejście przez zero i jeszcze coś tam przeliczać? Takie rzeczy są możliwe, ale przy użyciu dobrze zaprogramowanego procesora sygnałowego, a nie MIKROKONTROLERA (tym jest ATXMega!) z kalkulatora za 10zł. Radzę najpierw zacząć od lektury odpowiednich książek z zakresu energoelektroniki (coś czuję, że chcesz badać pracę jakiegoś prostownika lub próbować budować namiastkę falownika), a później zabierać się stopniowo za pracę. Pewnych rzeczy nie przeskoczysz. Pozdrawiam

Pozostało 580 znaków

2019-08-26 15:01
0

Do tej pory robiłem to zewnętrznym procesorem sygnałowym dedykowanym taktowanym 4MHz. Doszedłem więc do wniosku, że skoro daje radę 4MHz to i da radę ATX 32MHz ostatecznie RPi, więc nie tragizuj. To w gruncie rzeczy jest przecież prosta matematyka.

na RPi nie masz gwarancji pracy w czasie rzeczywistym - koledzy próbują to wytłumaczyć. To nie tylko chodzi o wysoki troughput, tylko o zagwarantowane reagowanie na zachodzące zjawiska w z góry określonym czasie - AnyKtokolwiek 2019-08-26 15:06

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0