logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak sterować syntezą SAA1057 do TRX na UKF z krokiem 12,5 kHz?

marcin-k 13 Kwi 2007 03:12 7686 32
Najlepsze odpowiedzi LABEL_AI_GENERATED

Jak krok po kroku wysłać do SAA1057 słowo konfiguracyjne i częstotliwość, żeby ustawić syntezę FM z krokiem 12,5 kHz?

Do SAA1057 wysyłasz dwa poprawnie złożone słowa 16-bitowe: słowo konfiguracyjne i słowo częstotliwości; praktycznie wysyła się konfigurację, potem częstotliwość, ale synteza wymaga po prostu dwóch poprawnych słów [#3783223] [#3808771] Przy transmisji dane podawaj od najbardziej znaczących bitów, a stan na DATA musi być stabilny przed opadającym zboczem CLOCK; zegar nie musi być szybki [#3809604] [#3806355] Dla ustawień, o które pytałeś, padły gotowe wartości: FM 12,5 kHz = 1110010010000101, FM 10 kHz = 1100010010000101, AM 1,25 kHz = 1010010010000101, AM 1 kHz = 1000010010000101 [#3818585] Pierwszy bit jest zawsze 1, drugi wybiera FM/AM (1=FM, 0=AM), trzeci wybiera krok (0=1 kHz lub 10 kHz, 1=1,25 kHz lub 12,5 kHz), a pozostałe bity ustawiają inne parametry, w tym prąd/wzmocnienie pętli [#3818585] Jeśli chcesz tylko VHF z krokiem 12,5 kHz, wybierz FM i wyślij słowo konfiguracyjne 1110010010000101, a potem słowo z właściwą częstotliwością [#3818585] [#3808771]
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA
  • #1 3782529
    marcin-k
    Poziom 15  
    Posty: 255
    Ocena: 38
    koledzy czy ktoś może mi wytłumaczyć łopatologicznie jak sterować tą syntezą chcę zrobić sobie trx-a na ukf z krokiem 12,5khz jak ją mam sterować program mogę sobie napisać sam ale nic nie wiem jak ją ustawić co mam pierwsze wysłać jakie czasy mają być przy wysyłaniu jakie stany na pinach programujących w czasie wysyłania danych i w ogóle wszystko co tyczy się tej syntezy pdfa z syntezą ściągłem sobie ale niestety jest po angielsku a ten język znam śladowo.
  • REKLAMA
  • #3 3783223
    M. S.
    Poziom 34  
    Posty: 2107
    Pomógł: 259
    Ocena: 680
    Program ten jest rozbudowany i nadaje się bardziej do doświadczeń. Sterowanie tą syntezą wymaga podania konfiguracji a póżniej częstotliwości. Trzeba sięgnąć do noty katalogowej aby "sformułować" dane do konfiguracji.

    U mnie synteza "zasilana" jest czymś takim:

    $regfile = "ATtiny2313.DAT"
    $crystal = 1000000
    Dim X As Byte
    Dim Wpis As Word
    
    Config Portb.7 = 1
    Config Portb.6 = 1
    Config Portb.5 = 1
    Config Pinb.3 = 0 : Portb.3 = 1
    Config Pinb.4 = 0 : Portb.4 = 1
    
    Dat Alias Portb.7
    Ena Alias Portb.6
    Clk Alias Portb.5
    Config Lcd = 16 * 2
    Config Lcdpin = Pin , Db4 = Portd.2 , Db5 = Portd.3 , Db6 = Portd.4 , Db7 = Portd.5 , E = Portd.1 , Rs = Portd.0
    Cursor Off
    
    
    Wpis = &B1000000111000101     '33221 To jest konfiguracja syntezy (AM) krok 1kHz
    Cls : Lcd Wpis : Wait 1
    Gosub Saa
    Wpis = 27180                  'To jest początkowa watrość częstotliwości 27,18MHz
    Cls : Lcd Wpis
    Gosub Saa
    
    Do
    
    Debounce Pinb.4 , 0 , Zwieksz , Sub
    Debounce Pinb.3 , 0 , Zmniejsz , Sub
    Loop
    
    End
    
    Zwieksz:
    Wpis = Wpis + 10
    Cls : Lcd Wpis
    Gosub Saa
    Return
    
    Zmniejsz:
    Wpis = Wpis - 10
    Cls : Lcd Wpis
    Gosub Saa
    Return
    
    Saa:
    Dat = 0
    Ena = 0
    Clk = 0
    Waitms 5
    Ena = 1
    Waitms 5
    Clk = 1
    Waitms 5
    Clk = 0
    Waitms 5
    For X = 15 To 0 Step -1
    
       Dat = Wpis.x               'Tu wartość Wpis wysyłamy do syntezy bit po bicie.
    
       Waitms 5
       Clk = 1
       Waitms 5
       Clk = 0
       Waitms 5
    Next X
    
    Ena = 0
    Waitms 5
    Clk = 1
    Waitms 5
    Clk = 0
    Waitms 5
    Ena = 1
    Waitms 5
    Dat = 1
    Clk = 1
    Waitms 100
    
    Return


    Dla kroku 12,5kHz trzeba zmienić konfigurację. Czyli to
    Wpis = &B1000000111000101     '33221 To jest konfiguracja syntezy 
  • #5 3785552
    161MDS01
    Poziom 24  
    Posty: 827
    Pomógł: 52
    Ocena: 36
    marcin-k napisał:
    może jeszcze jakieś linki z opisem tej syntezy

    Ale jakie linki przecież wszystko masz w programie...
    PS.do M.S. gdy kompiluje program wyskakuje błąd error1 dla lini 26, 27 czyli dla polecenia DEBOUNCE- czyli program informuje że nie rozpoznaje polecenia...POZDRAWIAM




    Daniel
  • #6 3785905
    sq6ade
    Poziom 40  
    Posty: 6855
    Pomógł: 482
    Ocena: 286
    Jako fan ASM i '51 proponuje prosty programik jednorazowo ładujący zadeklarowane w programie dane:
    
    
    ;Ładowanie SAA1057
    
    sjmp go
    
    ; Porty
    
    dlen	equ	097h	;p1.7
    clb	equ	096h	;p1.6
    data	equ	095h	;p1.5
    
    ; stałe > tu trzeba wpisać dane słowa A i B
    
    word_a_lsb	equ	00000000b ;młodsze 8 bitów słowa A
    word_a_msb	equ	00000000b ;starsze 8 bitów słowa A	
    
    word_b_lsb	equ	00000000b ;młodsze 8 bitów słowa B	
    word_b_msb	equ	10000000b ;starsze 8 bitów słowa B (najstarszy bit musi być 1 ! )
    
    
    go:	clr dlen
    	setb clb
    	clr data
    	nop
    	nop
    	nop
    	nop
    	nop
    	;	
    	setb dlen
    	nop
    	nop
    	clr clb	
    	mov a,#word_a_lsb
    	acall load_8
    	mov a,#word_a_msb
    	acall load_8
    	nop
    	nop
    	nop
    	clr dlen
    	nop
    	setb clb
    	;
    	nop
    	nop
    	nop
    	nop
    	nop
    	;
    	setb dlen
    	nop
    	nop
    	clr clb	
    	mov a,#word_b_lsb
    	acall load_8
    	mov a,#word_b_msb
    	acall load_8
    	nop
    	nop
    	nop
    	clr dlen
    	;
    	sjmp $		;koniec
    
    
    load_8:		mov r7,#8
    next:		rrc a
    		mov data,c
    		acall takt
    		djnz r7,next
    	                ret
    
    takt:			;takt zegara
    	setb clb
    	nop
    	nop
    	nop
    	nop
    	clr clb
    	ret
    END	


    Asemblacji i testów można dokonać za pomocą EMU8051.exe z tego linka:
    http://mediaallin.com/air/download/download_p..._semestr/podstawy_techniki_cyfrowej/emu51.zip
  • #7 3786076
    M. S.
    Poziom 34  
    Posty: 2107
    Pomógł: 259
    Ocena: 680
    No tak.

    Program pierwotnie powstał na 8051 i w AVR porty sie nie zgadzają.
    Tak to jest jak grzebie się w starych zasobach.

    Poprawnie będzie tak:

    Debounce Pinb.4 , 0 , Zwieksz , Sub
    Debounce Pinb.3 , 0 , Zmniejsz , Sub


    Dołożyć zatem trzeba na początku konfigurację końcówek wejściowych (inaczej nie będą podciągnięte do Vcc):

    Config Pinb.3 = 0 : Portb.3 = 1
    Config Pinb.4 = 0 : Portb.4 = 1


    Przepraszam.

    PS Powyższy program poprawiłem.
  • REKLAMA
  • #8 3786639
    androot
    VIP Zasłużony dla elektroda
    Posty: 1801
    Pomógł: 54
    Ocena: 635
    Ja w swoim napisalem tak:

    ; ****************************************
    ; Obsluga magistrali 3-wire A, B, R0, R1
    ; ****************************************

    wyslij:

    ; Zapis konfiguracji

    clr P1.4 ; DLEN = 0
    clr P1.5 ; CLB = 0
    clr P1.6 ; DATA = 0

    acall opz0
    setb P1.4 ; DLEN = 1
    acall opz0
    acall CLK

    mov A, #11000101b ; Data_word, FM, REFH, CP3, CP2, CP1, CP0, SB2
    acall wrbajt
    mov A, #01000101b ; SLA, PDM1, PDM0, BRM, T3, T2, T1, T0
    acall wrbajt

    acall opz0
    clr P1.4 ; DLEN = 0
    acall CLK

    acall opz1 ; 1ms

    ; Zapis czestotliwosci podzialu

    clr P1.4 ; DLEN = 0
    clr P1.5 ; CLB = 0
    clr P1.6 ; DATA = 0

    acall opz0
    setb P1.4 ; DLEN = 1
    acall opz0
    acall CLK

    mov A, R0 ; R0 = DPH
    acall wrbajt
    mov A, R1 ; R1 = DPL
    acall wrbajt

    acall opz0
    clr P1.4 ; DLEN = 0
    acall CLK
    acall opz1 ; 1ms

    mov DPH, R0
    mov DPL, R1

    ret

    wrbajt:
    mov B, #08h

    wrbajt1:
    rlc A
    mov P1.6, C ; DATA
    acall CLK
    djnz B, wrbajt1
    ret

    CLK:
    acall opz0
    setb P1.5 ; CLB = 1
    acall opz0 ; ___/~~~\
    clr P1.5 ; CLB = 0
    nop
    ret



    opz0 to petla kilka µs
  • #9 3798947
    marcin-k
    Poziom 15  
    Posty: 255
    Ocena: 38
    Koledzy a jak bym chciał tak czy to będzie działać np. ustawiam syntezę na AM od 512 KHz do 32 MHz wybieram krok 1.25 KHz buduję generator od 15,07 MHZ do 16,07 MHz ten sygnał będę powielał X 10 wyjdzie mi przy pośredniej 10,7 MHz zakres od 140-150 MHz krok powinien wtedy wyjść 12,5 KHz i moje pytanie to w jakiej kolejności i co mam wysłać do syntezy tak łopatologicznie
  • REKLAMA
  • #11 3799133
    161MDS01
    Poziom 24  
    Posty: 827
    Pomógł: 52
    Ocena: 36
    sq6ade napisał:
    Powielanie sygnału z syntezy to nie jest eleganckie rozwiązanie. Odradzam.

    Dokładnie tak jak mówisz Krzysiu...Za dużo ptaszków a co za tym idze powielanie będzie razem z ptaszkami...POZDRAWIAM




    Daniel
  • #13 3799741
    sq6ade
    Poziom 40  
    Posty: 6855
    Pomógł: 482
    Ocena: 286
    Na stronie nr. 6 noty aplikacyjnej masz bardzo rzeczowe rysunki przebiegów. To powinno wystarczyć.
  • #14 3800061
    M. S.
    Poziom 34  
    Posty: 2107
    Pomógł: 259
    Ocena: 680
    Ustaw syntezę na FM. Sygnał z generatora podaj na wejście FM. Krok ustaw na 12,5kHz i masz co potrzebujesz. Synteza katalogowo chodzi do ok. 120MHz. W praktyce podobno wyciąga więcej. Ewentualnie można spróbować z TSA6057.
  • #15 3806355
    Andrzej L.
    Poziom 33  
    Posty: 1515
    Pomógł: 282
    Ocena: 489
    Jak widać standardowy problem :) Nie dogada się programista z kimś od cyfrówki ;) Jako, że nie umiem pisać programów kiedyś tam zacząłem się bawić w ręczne programowanie syntezy SAA 1057 i nawet się udało :)
    Podchodziłem do tego tematu ze 2 lata. Przy pierwszym podejściu odpuściłem. Wykonałem układ na isostatach i próbowałem programować tą kość wg protokołu rozpisanego w nocie do tej syntezki.
    Jednak wtedy nic mi nie wyszło z tego, bo nie wziąłem pod uwagę drgań styków przy przełączaniu, które to drgania powodowały, że zamiast jednego impulsu dostawałem ich całą paczkę. W efekcie tego synteza nie reagowała kompletnie na nic, bo całość danych które pojawiały się na linach była kompletnie niezgodna z protokołem dla SAA1057.
    W przypadku gdy słowo programujące zawiera choć jeden bit mniej lub więcej niż przewidziano dla SAA1057 wtedy nici z transmisji.
    Po mniej więcej rocznej przerwie zmuszony brakiem umiejętności pisania programów (póki co to mój kamień młyński u szyi) znowu odgrzebałem stary temat.
    Tym razem zacząłem od tego, że rozebrałem tuner diory z syntezą na SAA1057
    Istniejący tam kwarc (lub cewkę 7x7) - taktujący procesor programujący tą syntezę - wywaliłem, a w jego miejsce wstawiłem wielką indukcyjność złożoną z wszelakich dławików jakie znalazłem na stanie :) Zebrało się tego z jakieś 200mH, obstawiłem kondenstarami, które jeszcze nie powodowały zrywania drgań.
    Spowodowało to, że taktowanie procesora spadło z mniej więcej 4MHz do jakiś 300Hz.
    Przy takim taktowaniu cały proces postawienia syntezy na zadanej częstotliwości od momentu włączenia zasilania tunera trwał jakieś 5-10 minut.
    Dzięki temu zapięty diodami świecącymi na linie DLEN, DATA, CLOCK mogłem spokojnie zaobserwować co tam sobie procesor wysyła do syntezy :D
    Na linię danych wpiąłem sobie switcha i zacząłem kombinować i zwierać do maszy pojedyncze bity (jak była wystawiana "1" to ją ściągałem do "0") w słowie programującym podział wewnętrznego dzielnika syntezy.
    Dzięki temu przestawiałem syntezę na inne częstotliwości - wynikłe z przestawionego podziału moimi wstawionymi na siłę w słowie "0".

    Idąc tym tropem dodałem w końcu do mojego "ręcznego" programatora bramki schmitta z ukłądem RC niwelujące dragania styków.
    Na linii DLEN zostawiłem sobie isostata, który po wciśnięciu generował mi potrzebny do transmisji bitów słowa wg protokołu stan "H" a linię DATA i CLOCK obsadziłem switchami. Wszystko oczywiście odkłócone od drgań styków.
    Tak skombinowanym układem przy dojściu do wprawy postawienie syntezy na dowolnej częstotliwości (z ustalonych przez twórców tej kostki zakresów), z krokiem 1kHz, 1,25 kHz lub 10kHz, 12,5kHz z wyborem wzmocnienia pętli, itd. Zajmowało mi to od włączenia zasilania jakieś 40sekund. W te 40 sekund wliczona jest transmisja dwóch słów. Słowa kontrolnego ustawiającego czy AM czy FM, krok, wzmocnienie pętli i słowa drugiego o podziale programowalnego dzielnika.

    Jak chcesz to Ci mogę zeskanować moje wypociny z tamtego okresu.
    Na tej podstawie może łatwiej będzie Ci napisać sobie program.
    W czasie testów "ręcznych" stwierdziłem, że jest kilka zależności czasowych, których wcale nie trzeba przestrzegać przy programowaniu syntezki.
    Z protokołu jasno wynikało, że stan stabilny na linii danych musi być już zanim wystąpi impuls zegarowy na linii CLOCK.
    Z moich doświadczeń wyniknęło, że wystarczy aby tylko przed opadającym zboczem tego zegarowego impulsu był na na linii danych stabilny stan logiczny. A częstotliwość taktu zegara może być nieskonczenie niska. Jeden impuls zegarowy może trwać i 10 minut :D
    Czyli można dojść w programowaniu do połowy słowa, wyjść na miasto, wrócić po kilku godzinach i dokonczyć przesyłanie słowa :D

    Na tej podstawie wykombinowałem sobie później układ ręcznego programowania syntezy TSA6057 po linii I2C
    Bez problemu też się to programuje :)
    Jednak dla mnie SAA1057 rządzi, gdyż umożliwia większy zakres wszelakich ustawień. TSA6057 jest torchę okrojony.

    SAA1057 wyrabiał mi do około 150MHz i powyżej padał.
    Można więc celem ominięcia ograniczenia odpalić sobie zakres AM w syntezie z krokiem 1,25kHz.
    Zapiąc sobie tam przeskaler przez 10 i teoretycznie do tych 320MHz (nie sprawdzałem do ilu wyrabia w praktyce AM) powinno to śmigać jak nam tylko preskaler wyrabia.
    Będzie piękny krok 12,5kHz
    Gdyby chodziło o krok 10kHz to odpalamy AM z krokiem 1,25kHz, wstawiamy preskaler przez 8 (kosta LB3500) i do tych 270MHz spokojnie śmigamy.
  • #16 3806535
    sq6ade
    Poziom 40  
    Posty: 6855
    Pomógł: 482
    Ocena: 286
    Andrzej L. napisał:
    Jak widać standardowy problem :) Nie dogada się programista z kimś od cyfrówki ;)

    To jest tak blisko siebie że zlewa się w całość :D
    Andrzej L. napisał:

    Jako, że nie umiem pisać programów kiedyś tam zacząłem się bawić w ręczne programowanie syntezy SAA 1057 i nawet się udało :)

    Czytając twój post dziwię się że programowanie wisi Tobie u szyi jak kamień :D
  • #17 3806754
    M. S.
    Poziom 34  
    Posty: 2107
    Pomógł: 259
    Ocena: 680
    Cenna jest uwaga dorycząca zastosowania preskalera w celu zwiększenia możliwości kostki 1057.
    Co do opisanego sposobu ręcznego porozumiewania się z syntezą to można stwierdzić, że chyba szybciej można się nauczyć programować uC. Polecam zatem to forum - dział mikrokontrolery. Myślę, że tak zdeterminowanej osobie koledzy chętnie pomogą w szybkim osiągnięciu celu. Wtedy stosowanie syntezy będzie bardzo proste i szybkie, szczególnie, że oprogramowanie już istnieje. Wystarczy zatem kupić uC, złożyć za kilka złotych programator (lub kupić gotowy), podłączyć to do komputera wyposażonego w kompilator języka programowania uC.
    Jako, że kolega nie siedzi w temacie proponuję uC Atmela (np. ATMEGA8), kompilator najprostszego języka świata - BASIC'a (do pobrania na stronie http://www.mcselec.com/index.php?option=com_docman&task=cat_view&gid=99&Itemid=54
    - Bascom Demo v. 1.11.8.3 i zaopatrzenie się w programator STK200/300.
    Świat zmieni się nie do poznania!

    P.S. Sam tak zaczynałem 2,5 roku temu.
  • REKLAMA
  • #18 3806906
    androot
    VIP Zasłużony dla elektroda
    Posty: 1801
    Pomógł: 54
    Ocena: 635
    SAA1057 nie nadaje sie do pracy z preskalerem, poniewaz nie ma wyjscia do sterowania podzialem preskalera (np. /64 /65) dodatkowo krok przestrajania zwiekszy sie o krotnosc podzialu.

    Co do "recznego" sterowania SAA przez ISOSTATY, to ja majac tyle czasu na bawienie sie w podpinanie przelacznikow i dokladanie bramek schmitta wolalbym siegnac po mikrokontroler za 3zl i jakis poradnik w PDF jak zaczac pisac w assemblerze...
  • #19 3807182
    M. S.
    Poziom 34  
    Posty: 2107
    Pomógł: 259
    Ocena: 680
    Cytat:
    SAA1057 nie nadaje sie do pracy z preskalerem, poniewaz nie ma wyjscia do sterowania podzialem preskalera (np. /64 /65) dodatkowo krok przestrajania zwiekszy sie o krotnosc podzialu.


    W niczym to nie przeszkadza.
    Po pierwsze podział będzie stały wg schematu generator - preskaler - synteza, czyli przełączanie nie wchodzi w grę.
    Po drugie - stopień podziału oczywiście się zmieni, lecz stosując preskaler dzielący przez 10 i krok syntezy 1,25kHz otrzymamy krok 12,5kHz - czyli zakładany.
    Swoją drogą SAA1057 posiada preskaler dzielący przez 10, który niestety nie wyrabia się przy bardzo dużych częstotliwościach.
    Bez preskalera na AM'ie max. częstotliwość wynosi 32MHz. Z preskalerem / 10 osiągnie zatem ok. 320MHz.
  • #20 3808505
    marcin-k
    Poziom 15  
    Posty: 255
    Ocena: 38
    Koledzy wracając do wątku głównego to proszę o podanie łopatologicznie co wysłać jako pierwsze , drugie itd. Np. jeśli chcę ustawić syntezę na zakres Am krok 1 k wzmocnienie pętli na zakres średni to co wysyłam binarnie jako pierwsze drugie itd. lub gdy chcę zmienić na krok 1,25khz co wysyłam ,albo wybrać zakres Fm krok 12.5 khz zakres pętli średni co binarnie i w jakiej kolejności wysyłam tylko tyle resztę sobie sam wykombinuje a jak się uda to wsad wrzucę na forum chciałbym w ten sposób
    (1) 01110101….wysyłam rozkas 1
    (2) 01110000… wysyłam zakres Am
    (3) 10000001….wysyłam krok jakiś tam
    (4) 0000111…..i jeszcze coś
    Mniej więcej w takiej formie skrótowo z góry dziękuję
  • #21 3808771
    sq6ade
    Poziom 40  
    Posty: 6855
    Pomógł: 482
    Ocena: 286
    Nie jest ważne które słowo wysyłasz pierwsze. Po wysłaniu 2 właściwie ułożonych słów 16bitowych synteza powina zadziałać.A później jednorazowo możesz też wysyłać tylko jedno słowo jeśli będzie potrzebna zmiana jakiegoś parametru.
  • #22 3808791
    marcin-k
    Poziom 15  
    Posty: 255
    Ocena: 38
    ale jak chodzi mi głównie o znaczenie poszczególnych bitów np,
    0001011111 (pierwsze zero lub 1 to np krok następne 0 lub 1 to wzmocnienie pętli następne am-fm itd... jeśli wysyłam całe słowo to co konkretnie za co odpowiada od najstarszego do najmłodszego lub odwrotnie
  • #23 3808864
    sq6ade
    Poziom 40  
    Posty: 6855
    Pomógł: 482
    Ocena: 286
    Rekordy binarne są zwykle tak przedstawiane że z lewej strony są bardziej znaczące bity a z prawej mniej znaczące. W aplikacji saa też tak jest. Na rejestr syntezera najpierw wchodzą najbardziej znaczące bity.
  • #24 3808954
    marcin-k
    Poziom 15  
    Posty: 255
    Ocena: 38
    to wiem ale co znaczą w sensie dosłownym poszczególne bity jak wysyłam słowo 00111.... to patrząc od lewej 1-wsze zero to np.am-a 1 to fm 2-gie 0 to np krok 1khz a 1 to krok 1.25khz 3-cia jedynka to coś tam i tak dalej. oto mi głównie chodzi
  • #25 3809604
    M. S.
    Poziom 34  
    Posty: 2107
    Pomógł: 259
    Ocena: 680
    Cytat:
    1000000111000101 '33221 To jest konfiguracja syntezy (AM) krok 1kHz


    Teraz zobacz do noty katalogowej i pozamieniaj odpowiednie bity.
    Ustawienia są podane tabelarycznie więc angielskiego nie trzeba wiele umieć, a dwa lub trzy słowa można zanleść w słowniku. Bity, których nie zidentyfikujesz pozostaw niezmienione.
    Napisz co ci wyszło to się to sprawdzi. Pamiętaj, że słowo konfiguracyjne zaczyna się od "1" a słowo z częstotliwością od "0" więc synteza ich nie pomyli.
  • #26 3812902
    marcin-k
    Poziom 15  
    Posty: 255
    Ocena: 38
    czyli mam pierwsze słowo 1000000111000101 '33221 To jest konfiguracja syntezy (AM) krok 1kHz
    a jak będę chciał krok 1.25 to co mam wysłać i to samo przy fm-ie z krokami 10 i 12 khz jakie słowo wysłać chodzi mi o podanie wszystkich kombinacji słów do ustawiania tej syntezy
  • #27 3813270
    M. S.
    Poziom 34  
    Posty: 2107
    Pomógł: 259
    Ocena: 680
    Dobre. Odliczając 1 bit pozostaje 15 czyli liczba kombinacji to 32768.
    Jak już tak ciężko idzie ci z tą notą to mapisz jakie ustawienie potrzebujesz.
  • #29 3818585
    M. S.
    Poziom 34  
    Posty: 2107
    Pomógł: 259
    Ocena: 680
    FM 10 kHz - 1100010010000101
    FM 12,5kHz - 1110010010000101
    AM 1 kHz - 1000010010000101
    AM 1,25kHz - 1010010010000101

    Mam nadzieję, że ręka mi się nie omskła na klawiaturze.
    Prąd syntezy czasem trzeba korygować. Są to 4 bity po pierwszych trzech.
    Pierwszy bit jest zawsze 1
    Drugi 1-FM, 0-AM
    Trzeci - krok 0- 1kHz lub 10kHz; 1 - 1,25kHz lub 12,5kHz
    Reszta to inne ustawienia, które też być może będzie trzeba zmienić.

Podsumowanie tematu

LABEL_AI_GENERATED
Dyskusja dotyczy sterowania syntezą częstotliwości SAA1057 w celu budowy transceivera UKF z krokiem przestrajania 12,5 kHz. Użytkownicy omawiają sposób programowania układu, podkreślając konieczność wysyłania dwóch 16-bitowych słów (łącznie 32 bity) z uwzględnieniem leading zero jako osobnego sygnału inicjującego transmisję. Wskazano, że pierwsze słowo to konfiguracja syntezy (zawierająca m.in. wybór AM/FM, krok częstotliwości, wzmocnienie pętli), a drugie słowo to ustawienie częstotliwości. Przykładowe wartości binarne dla różnych trybów i kroków zostały podane, np. dla FM 12,5 kHz: 1110010010000101, dla AM 1 kHz: 1000010010000101. Omówiono również kwestie sprzętowe, takie jak konieczność odpowiedniej konfiguracji pinów mikrokontrolera, eliminacja drgań styków przy ręcznym programowaniu oraz sugestie użycia mikrokontrolerów Atmel (np. ATtiny2313, ATmega8) z językiem Bascom do sterowania syntezą. Poruszono temat preskalera w SAA1057, który dzieli przez 10 i pozwala osiągnąć wyższe częstotliwości (do ok. 320 MHz), jednak bez możliwości zmiany podziału. Zwrócono uwagę, że powielanie sygnału z syntezy w celu uzyskania kroku 12,5 kHz jest niezalecane ze względu na zakłócenia. Wskazano na konieczność konsultacji noty katalogowej, gdzie znajdują się szczegółowe tabele bitów konfiguracyjnych. Całość podsumowano zaleceniem wysyłania najpierw słowa konfiguracyjnego (z pierwszym bitem "1"), a następnie słowa częstotliwościowego (z pierwszym bitem "0"). Dyskusja zawiera także fragmenty kodów w assemblerze i Bascomie oraz link do dokumentacji sterownika SAA1057.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA