Cześć!
Wiem, ze jest to problem dość powszechny i jest wiele przykładów w internecie dotyczących tego wątku. Niestety mimo przeszukania całego internetu wciąz mam problemy. W pliku FPGA chcę generowac sinusa o okreslanej przeze mnie czestotliwosci i amplitudzie i wysylac go na wyjscie analogowe oraz odczytywac dane z AI.
Żądane parametry wpisuje w host VI na PC i tam tez odczytuje swojego sinusa i zapisuje do pliku.
Teoretycznie wszystko dziala, ale praktycznie absolutnie nie tak jakbym sobie tego życzyła. Plik wynikowy jest wypełniony zerami, nawet jesli na podglądowym wykresie na fpga vi widze ze tworzy sie sinus, to nie jest on przesyłany do host VI. Dlaczego? Bede bardzo wdzieczna za pomoc.
Pozdrawiam!
Generowanie sygnału sinusoidalnego i zapis do pliku
- ksyhu
- Posty: 31
- Rejestracja: 06 lis 2009 19:15
- Wersja środowiska: Nie mam LabVIEW
- Lokalizacja: Kraków
Generowanie sygnału sinusoidalnego i zapis do pliku
Krótko mówiąc nakombinowałaś z rzutowaniami. Ale do rzeczy... Na początek polecam:
http://www.ni.com/newsletter/50303/en/
https://zone.ni.com/reference/en-XX/hel ... pes_table/
Pierwsza pętla po lewej od dołu (na niej łatwiej wytłumaczyć - zakładam, że to sbRIO9636 (z poprzedniego tematu)). Fix-point ma wartość ±20,5 (przyjmuje wartości ±16 z deltą 1,90735E-6) i rzutujesz go na I16 tracąc znaczną część informacji jakie niesie pomiar. W zasadzie twoim pomiarem będą tylko części całkowite i to z zakresu ±16, Zamień kolejkę FIFO na Fix-point lub skonwertuj na double/single przed kolejką i kolejkę na DBL/SGL. Wedle potrzeb/uznania. Pętla powyżej, zawiera ten sam błąd. Czy sinus ma amplitudę mniejszą niż 1?
Przy okazji czy fifo mają odpowiednio ostawiony rozmiar? Nie gubisz danych? Odczytujesz z analog_input?
Dodatkowo polecam:
https://www.ni.com/compactriodevguide/
Niby o cRIO, ale znajdziesz tam wiele informacji. Dobrych praktyk i wzorców.
Ogólnie to co robisz powyżej da się zrobić o wiele prościej, ale trening najlepszym nauczycielem.
http://www.ni.com/newsletter/50303/en/
https://zone.ni.com/reference/en-XX/hel ... pes_table/
Pierwsza pętla po lewej od dołu (na niej łatwiej wytłumaczyć - zakładam, że to sbRIO9636 (z poprzedniego tematu)). Fix-point ma wartość ±20,5 (przyjmuje wartości ±16 z deltą 1,90735E-6) i rzutujesz go na I16 tracąc znaczną część informacji jakie niesie pomiar. W zasadzie twoim pomiarem będą tylko części całkowite i to z zakresu ±16, Zamień kolejkę FIFO na Fix-point lub skonwertuj na double/single przed kolejką i kolejkę na DBL/SGL. Wedle potrzeb/uznania. Pętla powyżej, zawiera ten sam błąd. Czy sinus ma amplitudę mniejszą niż 1?
Przy okazji czy fifo mają odpowiednio ostawiony rozmiar? Nie gubisz danych? Odczytujesz z analog_input?
Dodatkowo polecam:
https://www.ni.com/compactriodevguide/
Niby o cRIO, ale znajdziesz tam wiele informacji. Dobrych praktyk i wzorców.
Ogólnie to co robisz powyżej da się zrobić o wiele prościej, ale trening najlepszym nauczycielem.
Często prowadzę z sobą długie rozmowy i jestem przy tym tak mądry, że czasami nie rozumiem ani jednego słowa z tego, co mówię.
Re: Generowanie sygnału sinusoidalnego i zapis do pliku
Dziękuję za odpowiedź!
OK. Zamieniłam FIFO na FXP, ale nadal mój sygnał wyjściowy jest nieco kwadratowy i zaburza mi to pomiary :/
I z tym generowaniem sinusa, to zupełnie namieszałam wcześniej, to też już jest naprawione
Teraz staram się zapisywać do pliku dane dla różnych częstotliwosci (co 10Hz), niestety moja metoda nie sprawdza się. Jakieś dziwne przebiegi mi rysuje :/
Proszę o pomoc, jak można to inaczej zrobić.
Co do rozmiaru FIFO, to moje ma 1023.
Załaczam poprawiony projekt z nieudanym pomyslem na zmienianie częstotliwosci.
OK. Zamieniłam FIFO na FXP, ale nadal mój sygnał wyjściowy jest nieco kwadratowy i zaburza mi to pomiary :/
I z tym generowaniem sinusa, to zupełnie namieszałam wcześniej, to też już jest naprawione

Teraz staram się zapisywać do pliku dane dla różnych częstotliwosci (co 10Hz), niestety moja metoda nie sprawdza się. Jakieś dziwne przebiegi mi rysuje :/
Proszę o pomoc, jak można to inaczej zrobić.
Co do rozmiaru FIFO, to moje ma 1023.
Załaczam poprawiony projekt z nieudanym pomyslem na zmienianie częstotliwosci.
- Załączniki
-
- LV_FPGA.zip
- (610.3 KiB) Pobrany 447 razy