Cześć,
Dysponuje generatorem o częstotliwości sygnału 90 MHz, który mogę dzielić (preskalować).
Dysponuję również licznikiem, który liczy do liczby n gdzie \(\displaystyle{ n \in [0,2^{32}], n \in N}\).
Pytanie: jak ustawić dzielnik częstotliwości (dzielnik musi być liczbą naturalną), oraz liczbę n aby licznik wskazał liczbę n po czasie 78,125 µs.
Problem: Próbkuje sygnał o częstotliwości 50 Hz, tak aby liczba próbek wyniosła 256. Oznacza to, że częstotliwość próbkowania wynosi (50*256) 12,8 kHz.
Przykład:
\(\displaystyle{ f_1=90/9=10 MHz \Rightarrow t_1 = 100 ns}\)
\(\displaystyle{ f_2=12,8 kHz \Rightarrow t_2 = 78,125 \mu s}\)
\(\displaystyle{ \frac{t_2}{t_1}=781,25}\)
Objaśnienie do przykładu: dobrano złe wartości gdyż iloraz \(\displaystyle{ \frac{t_2}{t_1}}\) nie jest liczbą naturalną.
Proszę o pomoc
Generator i licznik - czyli zabawa z dzielnikami
- jarzabek89
- Użytkownik
- Posty: 1337
- Rejestracja: 11 lis 2007, o 21:36
- Płeć: Mężczyzna
- Lokalizacja: Gdańsk
- Podziękował: 4 razy
- Pomógł: 181 razy
Generator i licznik - czyli zabawa z dzielnikami
Jak mocno możesz preskalować generator?
Z matematycznego punktu widzenia można zrobić tak:
\(\displaystyle{ 90 000 000}\) podzielimy przez \(\displaystyle{ 703 125}\) otrzymamy \(\displaystyle{ 128}\) i licznik do \(\displaystyle{ 100}\) i mamy.
Z matematycznego punktu widzenia można zrobić tak:
\(\displaystyle{ 90 000 000}\) podzielimy przez \(\displaystyle{ 703 125}\) otrzymamy \(\displaystyle{ 128}\) i licznik do \(\displaystyle{ 100}\) i mamy.
-
- Użytkownik
- Posty: 20
- Rejestracja: 9 gru 2012, o 18:06
- Płeć: Mężczyzna
- Lokalizacja: Poznań
- Podziękował: 3 razy
Generator i licznik - czyli zabawa z dzielnikami
@jarzabek89 dzięki za odpowiedź.
Twoje rozwiązanie jest niestety błędne. Okres dla częstotliwości \(\displaystyle{ \frac {90000000}{703125}=128 Hz}\) wynosi \(\displaystyle{ 7,8125 \cdot 10^{-3}s}\)
dla częstotliwości \(\displaystyle{ 12,8 kHz}\) wyonis \(\displaystyle{ 7,8125 \cdot 10^{-5}s}\)
dla przypomnienia \(\displaystyle{ T=\frac{1}{f}}\)
więc jeżeli licznik zliczyłby 100 impulsów to minąłby czas \(\displaystyle{ 0,78125 s}\).
Twój błąd polega na tym, że częstotliwość powinna być dzielona przez 100, nie mnożona
Ktoś ma inny pomysł?
Dla ułatwienia przykład: przy \(\displaystyle{ f=90MHz}\) i prescalera \(\displaystyle{ 1}\) licznik dla \(\displaystyle{ f_p=12,8kHz}\) powinien wskazać \(\displaystyle{ 7031,25}\).
Licznik operuje na liczbach całkowitych więc przy wskazaniu \(\displaystyle{ 7031}\) błąd bezwzględny czasu próbkowania \(\displaystyle{ \Delta t_p = 2.7778 \cdot 10^{-9}}\) co odpowiada względnemu błędowi czasu próbkowania \(\displaystyle{ \delta t_p = 0.0036 \%}\) - przyzwoicie.
Nie zmienia to jednak faktu, że ww. rozwiązanie wg. mnie jest mało eleganckie
===
Licznik jest 32-bitowy - tzn.maksymalna wartość, do której może zliczać to \(\displaystyle{ 2^{32}}\)
Twoje rozwiązanie jest niestety błędne. Okres dla częstotliwości \(\displaystyle{ \frac {90000000}{703125}=128 Hz}\) wynosi \(\displaystyle{ 7,8125 \cdot 10^{-3}s}\)
dla częstotliwości \(\displaystyle{ 12,8 kHz}\) wyonis \(\displaystyle{ 7,8125 \cdot 10^{-5}s}\)
dla przypomnienia \(\displaystyle{ T=\frac{1}{f}}\)
więc jeżeli licznik zliczyłby 100 impulsów to minąłby czas \(\displaystyle{ 0,78125 s}\).
Twój błąd polega na tym, że częstotliwość powinna być dzielona przez 100, nie mnożona
Ktoś ma inny pomysł?
Dla ułatwienia przykład: przy \(\displaystyle{ f=90MHz}\) i prescalera \(\displaystyle{ 1}\) licznik dla \(\displaystyle{ f_p=12,8kHz}\) powinien wskazać \(\displaystyle{ 7031,25}\).
Licznik operuje na liczbach całkowitych więc przy wskazaniu \(\displaystyle{ 7031}\) błąd bezwzględny czasu próbkowania \(\displaystyle{ \Delta t_p = 2.7778 \cdot 10^{-9}}\) co odpowiada względnemu błędowi czasu próbkowania \(\displaystyle{ \delta t_p = 0.0036 \%}\) - przyzwoicie.
Nie zmienia to jednak faktu, że ww. rozwiązanie wg. mnie jest mało eleganckie
===
Licznik jest 32-bitowy - tzn.maksymalna wartość, do której może zliczać to \(\displaystyle{ 2^{32}}\)
- jarzabek89
- Użytkownik
- Posty: 1337
- Rejestracja: 11 lis 2007, o 21:36
- Płeć: Mężczyzna
- Lokalizacja: Gdańsk
- Podziękował: 4 razy
- Pomógł: 181 razy
Generator i licznik - czyli zabawa z dzielnikami
Moje rozwiązanie jest poprawne.
Twoje rozwiązanie jest za to niepoprawne z jednego prostego powodu. Błąd jaki zakładasz będzie tylko dla pierwszego pomiaru, dalej błąd będzie się kumulował.
Twoje rozwiązanie jest za to niepoprawne z jednego prostego powodu. Błąd jaki zakładasz będzie tylko dla pierwszego pomiaru, dalej błąd będzie się kumulował.
-
- Użytkownik
- Posty: 20
- Rejestracja: 9 gru 2012, o 18:06
- Płeć: Mężczyzna
- Lokalizacja: Poznań
- Podziękował: 3 razy
Generator i licznik - czyli zabawa z dzielnikami
Przepraszam, ale nie rozumiem jak wg. Ciebie przy częstotliwości generatora
\(\displaystyle{ 128 Hz}\) uzyskać częstotliwość próbkowania \(\displaystyle{ 12,8kHz}\).
Co do kumulowania błędu prawdopodobnie masz rację.
\(\displaystyle{ 128 Hz}\) uzyskać częstotliwość próbkowania \(\displaystyle{ 12,8kHz}\).
Co do kumulowania błędu prawdopodobnie masz rację.
- jarzabek89
- Użytkownik
- Posty: 1337
- Rejestracja: 11 lis 2007, o 21:36
- Płeć: Mężczyzna
- Lokalizacja: Gdańsk
- Podziękował: 4 razy
- Pomógł: 181 razy