Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Sterowanie syntezą LM7001 z Arduino
#2
Witaj,

Arturze, najpierw zaglądnij do tego dokumentu, strona 5. Strona 6 mówi co powinna zawierać wysyłana ramka danych oraz jak liczyć częstotliwość wyjściową.

Cytat:...Wiem, że wysyłamy bit po bicie, natomiast nie doszukałem się 'zgrania' linii CL z liniami Data...

Tak, wysyłamy bit po bicie. W tym programie generowanie impulsu na linii CL robione jest w funkcji Zegarek.
Cała ramka sterująca układ wysyłana jest w podprogramie Synteza. Analizując więc pętlę tego podprogramu wysyłającą 13 bitów słowa z freq:

- pętla for, której wartością iteracyjną jest zmienna A,
- sprawdzamy A-ty bit w słowie z freq
- jeżeli jest 1 to ustawiamy Data=1, jeśli 0 to linia Data=0
- skok do podprogramu Zegarek, w którym:
> czekamy 10us,
> ustawiamy linię CL=1,
> czekamy 10us,
> ustawiamy linię CL=0,
> czekamy 10us,
> wychodzimy z podprogramu Zegarek.
- kolejny obieg pętli, ze zmienną A zwiększoną o wartość 1

Takim oto sposobem wysyłamy 13 bitów słowa z freq. W dalszej części podprogramu Synteza wysyłane są pozostałe bity słowa sterującego syntezę.

Jak już piszesz swoją wersję sterowania syntezą, to możesz użyć sprzętowego SPI do wysyłania.
Całe słowo sterujące syntezy ma długość 24 bitów, więc pełne 3 bajty. Sprzętowe SPI zapewni prawidłowe timmingi przebiegów. Nie trzeba się będzie bawić w programowe opóźnienia, a i program powinien być bardziej czytelny.
73 Paweł
Odpowiedz


Wiadomości w tym wątku
Sterowanie syntezą LM7001 z Arduino - przez SP7EZG - 22-02-2017, 8:08

Skocz do:


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