Witam.
Jestem w trakcie budowania amatorskiego falownika trójfazowego jednak dotknął mnie problem generacji trzech przebiegów sinusoidalnych. Prawdopodobnie mój algorytm generacji jest o kant rozbić. Dlatego zwracam się do Was z prośbą o jego weryfikacje, ewentualne naprowadzenie na dobrą drogę.
Sprzęt który generuje przebiegi to Atmega 128 taktowany zegarem 12MHz
Na chwilę obecną algorytm wygląda tak: Mam trzy tablice sinusa za cały okres wygenerowane w Excelu Każda z tablic ma przesuniętą fazę względem siebie o 120 stopni, oraz składa się z 36 próbek. Próbki są przeskalowane względem 8 bitowego rejestru OCR i dla PWM = 0% próbka ma wartość 0 dla PWM 50% próbka przyjmuje wartość 127 itd. Timer 1 ładuje próbki do rejestrów OCR3A, OCR3B, OCR3C z tablic Zakładając częstotliwość wyjściową 50Hz, częstotliwość timera jest równa 36 próbek * 50Hz = 1800Hz.
Timer 3 jest ustawiony w trybie korekcji fazy - 8bit , oraz częstotliwości 2930Hz
Czy takie podejście jest poprawne ?
Jestem w trakcie budowania amatorskiego falownika trójfazowego jednak dotknął mnie problem generacji trzech przebiegów sinusoidalnych. Prawdopodobnie mój algorytm generacji jest o kant rozbić. Dlatego zwracam się do Was z prośbą o jego weryfikacje, ewentualne naprowadzenie na dobrą drogę.
Sprzęt który generuje przebiegi to Atmega 128 taktowany zegarem 12MHz
Na chwilę obecną algorytm wygląda tak: Mam trzy tablice sinusa za cały okres wygenerowane w Excelu Każda z tablic ma przesuniętą fazę względem siebie o 120 stopni, oraz składa się z 36 próbek. Próbki są przeskalowane względem 8 bitowego rejestru OCR i dla PWM = 0% próbka ma wartość 0 dla PWM 50% próbka przyjmuje wartość 127 itd. Timer 1 ładuje próbki do rejestrów OCR3A, OCR3B, OCR3C z tablic Zakładając częstotliwość wyjściową 50Hz, częstotliwość timera jest równa 36 próbek * 50Hz = 1800Hz.
Timer 3 jest ustawiony w trybie korekcji fazy - 8bit , oraz częstotliwości 2930Hz
Czy takie podejście jest poprawne ?
