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

[Bascom] Sterowanie syntezą PMB2306T.

h1000 30 Maj 2008 00:29 2410 9
REKLAMA
  • #1 5196211
    h1000
    Poziom 14  
    Szukam informacji jak uruchomić syntezę pmb2306T w Bascomie. Chodzi o ustawienie jednej częstotliwości 150MHz przy RI 12.8 MHz.
    Jeśli ktoś wie niech wytlumaczy co to za dziwny standard 3-wire

    Poprawiłem tytuł:
    https://www.elektroda.pl/rtvforum/topic1015361.html
    [c_p]
  • REKLAMA
  • #3 5200805
    h1000
    Poziom 14  
    Jak sformatować te dane aby wysłać je po spi
    przez at90s1200 więc spi = soft

    0111 1100 0011 0101 -konfiguracja
    0000 0000 0000 0010 0000 0011 -podział128
    0000 0000 0001 0111 0111 0010 -podział 1500
  • REKLAMA
  • REKLAMA
  • #5 5201342
    h1000
    Poziom 14  
    Przeglądając noty katalogowe stwierdzam że ów dziwactwo upodobała sobie firma Infineon.
    Może jednak ktoś się odezwie kto potrafi to rozgryźć.

    Komuś się to już udało na PICu soft jest w asamblerze, ja niestety go nie znam :)

    http://www.eta.chalmers.se/~pgp/vcxo/vcxo.html
  • #6 5228579
    bombulator
    Poziom 11  
    Na pewno jest to SPI, też mam ich sporo z demobilu.
    Chętnie bym je wykorzystał, lecz brak softu :(
  • #7 5228948
    don diego
    Poziom 32  
    bombulator napisał:
    Na pewno jest to SPI

    3-wire to nie jest SPI, nie mylmy pojęć. SPI posiada dwie linie danych, 3-wire jedną.
  • REKLAMA
  • #8 5230438
    h1000
    Poziom 14  
    Mam do dyspozycji at90s2313, attiny2313, atmega8.
    Ma ktoś pomysł jak wysłać 8 bajtów do tego nieszczęsnego pmb2306
    Mam tego kilka sztuk więc poważnie mi na tym zależy.
  • #9 5235029
    bombulator
    Poziom 11  
    Tu jest zarys, jak wysłać dane, niestety z prescalerem zewnętrznym

    ' **********************************************************************
    ' **        Program name: Testboard - Version : 1.3    21.03.2004     **
    ' **        Compiler : BASCOM AVR, ( V1.11.7.4)                       **
    ' **        ATMEGA16 LCD-Board 2x16                                   **
    ' **        PMB2306 & 2312 Prescaler                                  **
    ' **        Referenz HF = 12.8 MHz                                    **
    ' **        Referenz Prozessor = 11.0592 MHz                          **
    ' **                                                                  **
    ' **                                                                  **
    ' **                                                                  **
    ' **        Written by:  Sepp Bartl                                   **
    ' **********************************************************************
    
    
       $regfile = "M16def.DAT"                                  'use the ATMEGA16 file
       $crystal = 11059200
       '$sim
    '-------------------------------------------------------------------------------
    '-------------------------------------------------------------------------------
    '                 define Pins
          Config Pind.5 = Input                                 'Clock PLL
          Clk Alias Portd.5                                     'Clock PLL
    
          Config Pind.6 = Input                                 'Data PLL
          _data Alias Portd.6                                   'Data PLL
    
          Le Alias Portd.7                                      'Latch_Enable PLL
          Ddrd.7 = 1                                            'LE = Output
    
          Le = 0
    '-------------------------------------------------------------------------------
    '-------------------------------------------------------------------------------
    
    '  Temporary Variables
          Dim Temp As Long                                      'math in send_prog_teiler
          Dim Temp2 As Long                                     'math in send_prog_teiler
          Dim Dataw As Word                                     'shiftoutword
    '-------------------------------------------------------------------------------
    '-------------------------------------------------------------------------------
           '  PLL1_Setup:
          Dataw = &B1111110000000000                            'PLL-Setup MSB
          Shiftout _data , Clk , Dataw , 1 , 8 , 10             'shiftout 8 bits
          Dataw = &B1111110100000000                            'PLL-Setup LSB
          Shiftout _data , Clk , Dataw , 1 , 8 , 10             'shiftout 8 bits
          Gosub Le_pulse
    
          Dataw = &B0000010000000000                            'Referencecounter 1024   MSB
          Shiftout _data , Clk , Dataw , 1 , 9 , 10             'shiftout 9 bits
          Dataw = &B0000000110000000                            '=12.8MHz/12.5 khz +2-Bit Adresse  LSB
          Shiftout _data , Clk , Dataw , 1 , 9 , 10             'shiftout 8 bits
          Gosub Le_pulse
    '-------------------------------------------------------------------------------
    '   Main
       Do
    
       'do something and send a new Frequency with Send_prog_teiler
       'this is only an example not a complete programm
       'for more information read the datasheet from PMB2306
    
       Loop
    '-------------------------------------------------------------------------------
    
    '  Send_prog_teiler PMB2306
    
       Send_prog_teiler:
    
          Temp = Temp2                                          'Temp2 = Counter (Example 1265.0375MHz/12.5 kHz = 101203)
    
          Temp = Temp2 Mod 64                                   'Math for A-Counter
          Dataw = Temp
          Shift Dataw , Left , 9
          Shiftout _data , Clk , Dataw , 1 , 7 , 10             'shiftout 7 bits A-Counter
          Temp = Temp2
          Shift Temp , Right , 6                                '1 to 6 for Prescaler :64
          Dataw = Temp                                          'Math for N-Counter
          Shift Dataw , Left , 2
          Shiftout _data , Clk , Dataw , 1 , 14 , 10            'shiftout 14 bits N-Counter
          Dataw = &B1000000000000000
          Shiftout _data , Clk , Dataw , 1 , 2 , 10             'shiftout 2 bits Adress
          Gosub Le_pulse
       Return
    
    '-------------------------------------------------------------------------------
    '-------------------------------------------------------------------------------
       Le_pulse:
          Le = 1
          Le = 0
       Return
    '------------------------------------------------------------------------------- 
  • #10 5265376
    h1000
    Poziom 14  
    Jak zrealizować sterowanie aby program na podstawie odczytu stanu Pinb.2
    wysłał jednorazowo dane do syntezy, a dopiero po zmianie stanu na przeciwny ponownie jednorazowo wysłał dane do syntezera
    i ponownie cierpliwie czekał na kolejną zmianę stanu Pinb.2

    Do
    Waitms 100
    If Pinb.2 = 0 Then : Gosub Nadawanie : End If
    If Pinb.2 = 1 Then : Gosub odbieranie : End If
    Loop
REKLAMA