logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Bascom AVR: Jak zmierzyć przesunięcie fazowe sygnału prostokątnego 8kHz?

piwek9 07 Sty 2017 17:55 2439 48
  • #1 16180611
    piwek9
    Warunkowo odblokowany
    Witam serdecznie .
    Nie pisałem w Bascom kilka lat, a właściwie nie pisałem kilka lat w niczym
    Mam problem niby prosty ale jednak nie mogę go przeskoczyć.
    potrzebuję zrobić pomiar przesunięcia fazy , sygnał to prostokąt 8kHz . nabazgrałem coś takiego ale nie działa prawidłowo.
    Mogę prosić o jakąś podpowiedź
    Bardzo dziękuję .
    Kod: VB.net
    Zaloguj się, aby zobaczyć kod
  • #2 16180768
    Konto nie istnieje
    Poziom 1  
  • #3 16180892
    piwek9
    Warunkowo odblokowany
    Ten błąd już wyłapałem, chciałbym aby mierzyć czas
    INT0 start
    INT1 stop lub odwrotnie
    ale nic nie wychodzi pomiar pływa choć przesunięcie jest widoczne na oscyloskopie 90 st.
    testowałem już setki rozwiązań , ciągła porażka .
    Może idę w złym kierunku, liczyć jakąś zmienną ?
    brak mi pomysłów
    Dziękuję serdecznie za odzew .
  • #4 16182027
    Konto nie istnieje
    Poziom 1  
  • #5 16182259
    piwek9
    Warunkowo odblokowany
    Chyba znalazłem problem, powoli sobie zaczynam przypominać po latach, jednak analfabetyzm wsteczny zrobił swoje .Jestem na etapie nauki .Proszę o opinie czy dobrze kombinuję :
    mam kwarc 8Mhz
    pomiar robię na 8 kHz
    8 000 000 / 8 = 1 000 000 /8 000 =125
    Licznik zdąży zliczyć do 125 ?
    a chcę liczyć przesunięcie +- 90 st. więc lipa ?
    Może większy kwarc lub inny procek ?
    dziś na 1 Khz coś sensownego pokazywał , 57 wyświetlał stan timer1 a podawałem na INT0 i INT1 prostokąt i czytałem start na narastającym zboczu, stop na opadającym .Zmiana prescalera na 1 przy 8Khz pokazywał głupoty .

    Kod: VB.net
    Zaloguj się, aby zobaczyć kod
  • #6 16182288
    Konto nie istnieje
    Poziom 1  
  • #8 16182367
    Konto nie istnieje
    Poziom 1  
  • #9 16182391
    piwek9
    Warunkowo odblokowany
    Częstotliwość jest stała, zmienia się jedynie amplituda, i przesunięcie w fazie .
    Mógłbyś napisać w kodzie co i jak o ile to nie problem , nie chcę zwalać roboty na kogoś , ale męczę się od 2 tygodni i dopiero dziś coś ,cokolwiek zaczęło wychodzić .
    Przeliczenia do sensownego wyświetlania to już nie problem
    Pozdrawiam serdecznie .
  • #10 16182608
    Konto nie istnieje
    Konto nie istnieje  
  • #11 16183489
    piwek9
    Warunkowo odblokowany
    Korzystając z podpowiedzi , namalowałem coś takiego :
    Dla wygody dopisałem generator PWM w możliwością przesuwania fazy, ułatwiło mi to prace na płycie testowej . Pomiar działa Ok jest jeszcze problem z prawidłowym wyświetlaniem wyniku,na razie brak mi pomysłu jak sobie z tym poradzić , zastanawiam się jak wymyślić sensowny start pomiaru w odpowiedniej chwili, bo problemy z odczytem zaczynają się jak przesunięcie przeskoczy o 270st. Może nie tak może popracuję na właściwym układzie. Obecnie opieram się na przesuwniku na PWM i chyba go nie dopracowałem jeszcze . Tak czy siak przedstawiam swoje wypociny i proszę o opinię i Podpowiedzi co jeszcze zmienić .
    Kod: VB.net
    Zaloguj się, aby zobaczyć kod
  • #12 16183523
    Konto nie istnieje
    Konto nie istnieje  
  • #13 16183608
    piwek9
    Warunkowo odblokowany
    Więc mam po prostu niedopracowane Zmienna i zmienna1 , ale to pomijam bo to napisane tak tylko dla wygody testowania. Generalnie Chyba będzie działać . Rozdzielczość 2 st. chyba mi wystarczy, nie wiem jeszcze jak zwiększyć rozdzielczość ale, ale .
    Chyba będzie działać ?
    testowałem od 5 do 10 khz jakoś się sprawia .
    Za wcześnie się chyba wychylam problem zaczyna się jak przesunie się faza przed zbocze fali rozpoczynającej pomiar . Może trzeba zrobić pomiar co 2 impulsy ? nie wiem jak to ogarnąć .
    W momencie rozpoczęcia pomiaru mam przesunięcie 90 st fala przesuwa się w prawo lub lewo , może odwrócić fazę jeszcze o 270st i rozpoczęcie pomiaru będzie rozpoczynać się od przesunięcia 360 st , czy to coś da ?
    Jakoś nie mogę sobie tego zobrazować .
  • #14 16183831
    kamyczek
    Poziom 38  
    To jeden z tych tematów ,który wygląda prosto ale w rzeczywistości nie jest taki banalny jak by się wydawało . Przede wszystkim to musi kolega napisać czy przebiegi dostarczone są z zewnętrznego generatora i jaki mają sygnał przypuszczam że sinus z generatora zewnętrznego . Inaczej się mierzy przesunięcie jak się generuje sygnał inaczej jak otrzymuje się dwa sygnały wejściowe normalny i przesunięty . To typowy układ pomiarowy technologii mieszanej analogowo-cyfrowy. Na moje oko założenia w programie są zupełnie nie trafione .
  • #15 16183854
    Konto nie istnieje
    Poziom 1  
  • #16 16183896
    piwek9
    Warunkowo odblokowany
    Przebiegi to prawie idealny prostokąt, chociaż wolał bym by pomiar robić na sinus.
    Częstotliwość będzie stała ,testowałem tylko z kilkoma częstotliwościami , by się upewnić czy program wyrabia .
    Może i racja jutro protestuję z właściwym sygnałem zobacz co się dzieje, generowanie i mierzenie sygnału na jednym procesorze może i nie najlepszy pomysł , ale gdy przesuniecie mieści się w przedziale od 0 do 90 wskazana są prawidłowe , jak przeskoczy kąt przesunięcia drastycznie się zwiększa , nie mogę wyłapać tego momentu ale z obserwacji oscyloskopu wynika że pokazuje dobre przesunięcie . teraz jak sensownie wyświetlić przesunięcie na plusie i minusie
    Może zliczać do 2 i wtedy pomiar , nie chce niepotrzebnie obciążać procka .
    Jak policzyć do ilu zliczy timer przy częstotliwości 8Khz ?
  • #17 16183912
    Konto nie istnieje
    Poziom 1  
  • #19 16183974
    Konto nie istnieje
    Poziom 1  
  • #20 16183992
    kamyczek
    Poziom 38  
    Podstawowa sprawa licznikiem to można sobie zmierzyć czas opóźnienia i to tyle . Nie znasz dokładnie okresu przebiegu to wartość nie mówi zbyt wiele ... Przede wszystkim to piszemy sobie wzory co od czego i jak zależy z tego wynika to co musimy pomierzyć żeby zrobić obliczenia . Przesunięcie fazowe to jedna z tych wartości ,którą najłatwiej zmierzyć oscyloskopem lub miernikiem RLC . Jeśli mamy ją mierzyć w układzie na podstawie przebiegów oscyloskopowych tj np. podłączając do generatora obwód RLC i biorąc sobie przebieg z generatora i zza obwodu to ja się cieszę jak mam to zrobić oscyloskopem ...
  • #21 16184000
    Konto nie istnieje
    Poziom 1  
  • #22 16184072
    kamyczek
    Poziom 38  
    No to temat się znacznie upraszcza , pozostaje tylko dopieścić metodę pomiaru dla potrzeb autora bascom i atmega pewnie wystarczy żeby zaspokoić potrzeby autora tematu .
  • #23 16184130
    piwek9
    Warunkowo odblokowany
    Dopieścić m dobre słowo , lubię dopieszczać , ale Bascoma to nie potrafię zbytnio , pocę się już 2 tygodnie i dopiero dziś po sugestiach kolego coś wydłubałem.
    A może jak bym przepuścił SIN-us przez 2 klucze otwierane z przesuniecie 90 st. zrobił pomiar napięcia , napisał tablicę X i Y i na tej podstawie stwierdzał przesunięcie ? ale następny temat nie do przejścia pomiar napięcia zmiennego na ADC . Już to ćwiczyłem okazuje się że gdy brak przesunięcia trzeba mierzyć napięcie zmienne 0.4V VPP jak faza się przesunie wtedy jest co mierzyć i można by pokosić się o wyprostowanie tego napięcia ale co z niższym napięciem ?
    Chyba nie da się zmierzyć na ADC tak niskiego napięcia zmiennego, mi pływa jak szalone , nie potrafię ,
  • #24 16184155
    kamyczek
    Poziom 38  
    Niektóre zagadnienia są łatwiejsze w realizacji oscyloskopowo lub analogowo trzeba sobie więc przesunąć o -90 stopni i będzie łatwiej mierzyć przesunięcie bo wszystko będzie na plusie ;)
  • #25 16184209
    piwek9
    Warunkowo odblokowany
    Przesunąć to żaden problem, zauważyłem że im niższa częstotliwość to łatwiejszy pomiar .
    Przesunięcie od 0 do 180 st. tan kod mierzy doskonale , teraz przetestowałem z pływająca częstotliwością od 4 do 8 khz ,zachowuje się bardzo przyzwijcie, sygnał był przesunięty 90st , wyświetlał 88st do 90 st .
    Problem że mierzy co 2 st. nie mogę zrozumieć dlaczego , nie powiem tyle mi wystarczy ale ciągnie do poprawy kodu lecz brak weny.
  • #26 16184226
    kamyczek
    Poziom 38  
    Czym większa częstotliwość sygnału tym mniejszy dzielnik dla licznika to jedno . Rozdzielczość pomiaru jest proporcjonalna do stosunku częstotliwości taktowania mikrokontrolera a odwrotnie proporcjonalna do częstotliwości przebiegu. Jednym słowem żeby się trzymać cały czas w jakimś zakresie dokładności i rozdzielczości w pomiarze trzeba zmieniać częstotliwość w takim kroku jak dzielnik licznika...
  • #28 16184282
    kamyczek
    Poziom 38  
    Oczywiście że można tylko najlepiej zacząć od wyprostowania go i uśrednienia układem rc . Rozdzielczość to 1024 kroki dla zakresu od 0 do VREF jednak najmłodszy bit to bym sobie podarował i bazował na 512 krokach ...
  • #29 16184743
    Konto nie istnieje
    Poziom 1  
  • #30 16184795
    piwek9
    Warunkowo odblokowany
    Tak też robię przerabiam na prostokąt i napisze jak sprawuje się pomiar. Ale lubię eksperymentować i mieć jakaś alternatywę stąd też pytania może głupie i trochę dziwne, może się kiedyś zdarzyć że w procesorze zostanie wolne tylko ADC a będzie potrzebny taki pomiar .
    Czy np. wzmocnienie małych napięć i pomiar międzyfazowy nie dał by informacji o przesuwani się fazy ?
REKLAMA