Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Generator na Si5351A
#11
Od czasu pierwszej publikacji zrobiłem kilka poprawek w kodzie mojej biblioteki. Zaimplementowałem też uproszczony algorytm ustawiania częstotliwości zaproponowany przez SP6VWX.

Wykonałem proste testy szybkosci działania tych procedur uśredniając czas z 10000 wywołań dla różnych częstotliwości. Wyniki uzyskane na moim Arduino Nano z ATmega328P @ 16MHz są następujące:
algorytm uproszczony - 1.94ms
algorytm dokładny - 4.47ms

Ponieważ użyłem standardowej biblioteki Wire do obsługi I2C, magistrala chodzi z zegarem 100kHz. Aby ustawić zegar na 400kHz (według noty katalogowej maksimum obsługiwane przez Si5351) trzeba uciec sie do niewielkiej sztuczki zaraz po inicjacji Wire:
Kod:
#define TWI_SPEED 400000L
Wire.begin();
TWBR = ((F_CPU / TWI_SPEED) - 16) >> 1;            // Set I2C speed to 400kHz

Skraca to czas potrzebny na ustawienie częstotliwości wyjściowej Si5351 o mniej więcej 1ms:
algorytm uproszczony - 0.90ms
algorytm dokładny - 3.43ms
Przemek SQ9NJE
http://www.sq9nje.pl
Odpowiedz


Wiadomości w tym wątku
Generator na Si5351A - przez SQ9NJE - 16-05-2014, 23:27

Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości