Odpowiedz 
 
Ocena wątku:
  • 0 Głosów - 0 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
Sterowanie syntezą LM7001 z Arduino
SQ8MVY Offline
Paweł
****

Liczba postów: 724
Dołączył: 30-07-2011
Post: #2
RE: Sterowanie syntezą LM7001 z Arduino
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ł
(Ten post był ostatnio modyfikowany: 22-02-2017 11:41 przez SQ8MVY.)
22-02-2017 10:17
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
Odpowiedz 


Wiadomości w tym wątku
RE: Sterowanie syntezą LM7001 z Arduino - SQ8MVY - 22-02-2017 10:17

Skocz do:


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