Pokazywanie postów oznaczonych etykietą bascom. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą bascom. Pokaż wszystkie posty

poniedziałek, 1 sierpnia 2016

Nadajnik Pulson TA105E

Adaptacja TA105E Pulson


Krótki programik protezy na ATTINY2313 do sterowania nadajnikiem.

' Nadajnik Pulson TA105E PCB v.0510
' Sterowanie LMX1501A
' Mikrokontroler ATTINY2313 jako proteza zamiast układu OTP ST62T65C6
'
$regfile = "ATtiny2313.dat"
$crystal = 8000000                                          ' Zegar 8 MHz

Dim A1 As Word
Dim A3 As Word
Dim N2 As Word
Dim N3 As Word
Dim Mb_ref As Word                                         
    Mb_sw_ref Alias Mb_ref.15                              
    Mb_c_ref Alias Mb_ref.0                                
Dim Mb_swallow As Byte                                     
    Mb_c_prog Alias Mb_swallow.0                           
Dim Mb_prog As Word                                        
Dim Mb_n As Word                                           
Dim Mb_n_h As Byte
Dim Mb_n_l As Byte
Dim Tmp As Bit                                              ' zmienna odcinania nadawania po jednej rundzie

Declare Sub Lmx_tx
Declare Sub Le_pulse

Config Porta.0 = Output                                     ' Zalaczanie drivera i PA
Config Porta.1 = Output                                     ' CLK LMX1501A
Config Pinb.3 = Input                                       ' SW-PTT
Config Pinb.4 = Input                                       ' Lock Detect PLL 0=lock , 1=unlock
Config Portd.0 = Output                                     ' LE   LMX1501A
Config Portd.1 = Output                                     ' DATA LMX1501A
Config Portd.2 = Output                                     ' Zasilanie VCO i PLL 0=ON , 1=OFF


Tx_drv Alias Porta.0                                        ' Zalaczanie drivera i PA (5  pin ST62T65)
Lmx_clk Alias Porta.1                                       ' CLK LMX1501A            (4  pin ST62T65)
Ptt Alias Pinb.3                                            ' SW-PTT                  (24 pin ST62T65)
Lmx_lock Alias Pinb.4                                       ' Lock Detect PLL         (25 pin ST62T65)
Lmx_le Alias Portd.0                                        ' LE LMX1501A             (1  pin ST62T65)
Lmx_data Alias Portd.1                                      ' DATA LMX1501A           (2  pin ST62T65)
Tx_vco Alias Portd.2                                        ' Zasilanie VCO i PLL     (6  pin ST62T65)

Lmx_le = 0
Lmx_clk = 0
Lmx_data = 0
Tx_drv = 1
Tx_vco = 1
Lmx_lock = 1

Mb_ref = 128000 / 125
Mb_ref = Mb_ref * 2                                         ' podzial dzielnika R LMX1501A (12.8 MHz , krok 12.5kHz)

Mb_prog = 1448000 / 125                                     ' podzial calkowity dzielnikow N/A/SW LMX1501A (144.800 MHz , 12.5)

Mb_c_ref = 1                                                ' bit kontrolny rejestru R
Mb_c_prog = 0                                               ' bit kontrolny rejestru N/A



'-------------------------------------------------------------  glowna petla

Do

If Tmp = 0 Then
 If Ptt = 0 Then                                            ' jesli PTT wlaczone idz dalej
  Tx_vco = 0                                                ' wlacz zasilanie VCO
  Gosub Lmx_tx
  Waitms 20                                                 ' odczekaj 20ms na synchronizacje PLL
   If Lmx_lock = 0 Then                                     ' jeœli PLL "lock" zalacz driver i PA
    Tx_drv = 0                                              ' wlacz zasilanie drivera TX
    Tmp = 1
   Else
     Tx_vco = 1
     Tmp = 1
    End If
 End If
End If

If Tmp = 1 Then
 If Ptt = 1 Then
  Tx_drv = 1                                                ' wylacz zasilanie VCO i PLL
  Tx_vco = 1                                                ' wylacz zasilanie wzmaniaczy w.cz
  Tmp = 0
 End If
End If


Loop
End

'-------------------------------------------------------------  koniec glownej petli programu


Lmx_tx:
'
N2 = Mb_prog / 64
A1 = Mb_prog Mod 64
N3 = Mb_prog / 128
A3 = Mb_prog Mod 128
  If A3 < N3 Then
 Mb_n = N3
 Mb_swallow = A3 * 2
 Mb_sw_ref = 0
  Else
 Mb_n = N2
 Mb_swallow = A1 * 2
 Mb_sw_ref = 1
  End If

Shiftout Lmx_data , Lmx_clk , Mb_ref , 0                    ' wyslanie danych do rejestru R (16 bitow)

Gosub Le_pulse

Mb_n_h = High(mb_n)
Mb_n_l = Low(mb_n)
Shiftout Lmx_data , Lmx_clk , Mb_n_h , 0 , 3                ' wyslanie danych do rejestru N/A (3 bity)
Shiftout Lmx_data , Lmx_clk , Mb_n_l , 0                    ' wyslanie danych do rejestru N/A (8 bitow)
Shiftout Lmx_data , Lmx_clk , Mb_swallow , 0                ' wyslanie danych do rejestru N/A (8 bitow - ctrl + A)

Gosub Le_pulse

Return

Le_pulse:
 nop
 Set Lmx_le
 nop
 Reset Lmx_le
Return



Poniżej schemat poglądowy Nadajnika Pulson TA105E 

niedziela, 10 lipca 2016

EUROSAT PNC160-MULTI

Kolejny krajowy produkt nadający się do pracy APRS.



Ponieważ coraz częściej koledzy dopytują się o możliwość wykorzystania tych nadajników, postanowiłem raz kolejny ułatwić im życie :)


Kod programu napisany jest w Bascom-ie


' Ostatnia data modyfikacji: 08.09.2013
' Program do sterowania PLL LMX2316 w nadajniku Eurosat PNC160 , z uC 89C52.
' Czestotliwosc pracy: 144.800 MHz , PLL caly czas wlaczona , parkowanie PLL na 146.9875 MHz
'

$regfile = "REG51.DAT"
$crystal = 18432000                                           ' zegar 18.432 MHz

Dim Tmp As Bit                                                ' zmienna odcinania nadawania po jednej rundzie
Dim C As Byte
Dim A As Byte

Config Sda = P1.3                                           ' pin 4  , magistrala I2C , SDA (24LC04)
Config Scl = P1.4                                           ' pin 5  , magistrala I2C , SCL (24LC04)

Data Alias P3.4                                              ' pin 14 , LMX2316 pin 12 (DATA)
Clk Alias P3.5                                                ' pin 15 , LMX2316 pin 11 (CLOCK)
Le Alias P3.3                                                 ' pin 13 , LMX2316 pin 13 (LE)

Ptt Alias P2.0                                                ' pin 21  Wejscie IN1  , DB25 pin 1 (jako PTT)
In2 Alias P2.1                                                ' pin 22  Wejscie IN2  , DB25 pin 2
In3 Alias P2.2                                                ' pin 23  Wejscie IN3  , DB25 pin 3
In4 Alias P2.3                                                ' pin 24  Wejscie IN4  , DB25 pin 4
In5 Alias P2.4                                                ' pin 25  Wejscie IN5  , DB25 pin 5
In6 Alias P2.5                                                ' pin 26  Wejscie IN6  , DB25 pin 6
In7 Alias P2.6                                                ' pin 27  Wejscie IN7  , DB25 pin 7
In8 Alias P2.7                                                ' pin 28  Wejscie IN8  , DB25 pin 8
In9 Alias P3.1                                                ' pin 11  Wejscie IN9  , DB25 pin 15
In10 Alias P3.0                                               ' pin 10  Wejscie IN10 , DB25 pin 14

'                                                             ' Przy stanach niskich na liniach Pwr1 , Pwr2 , Pwr3 uzyskujemy pelna moc
Pwr1 Alias P1.0                                               ' pin 1 regulacja mocy
Pwr2 Alias P1.1                                               ' pin 2 regulacja mocy
Pwr3 Alias P1.2                                               ' pin 3 regulacja mocy

Azw Alias P1.6                                                ' pin 7  , antyzwiecha
Vbat Alias P0.5                                               ' pin 34 , VBAT H=niskie napiecie zasilania , L=napiecie OK
Pa Alias P0.3                                                 ' pin 36 , zasilanie PA H=ON L=OFF
Drv Alias P1.5                                                ' pin 6  , wzmacniacz w.cz. H=OFF , L=ON
Led_1 Alias P0.2                                              ' pin 37 , LED-1 H=OFF L=ON , zielona LED - "retransmisja"
Led_2 Alias P0.1                                              ' pin 38 , LED-2 podwojna H=OFF L=ON , zielona , "siec"
Led_3 Alias P0.0                                              ' pin 39 , LED-2 podwojna H=OFF L=ON , czerwona , "nadawanie"
Ld Alias P0.7                                                 ' pin 32 , LD  H=synchronizacja , L=brak synchronizacji
Aux1 Alias P3.6                                               ' pin 16 , AUX , DB25 pin 16  H=OFF L=ON

P2 = &B11111111
Set In9
Set In10
Reset Pwr1
Reset Pwr2
Reset Pwr3
Set Tmp
Reset Pa
Set Azw
Set Drv
Set Vbat
Set Led_1
Set Led_2
Set Led_3
Set Ld
Set Aux1

Reset Clk
Reset Le
Reset Data


Declare Sub Zegarek1
Declare Sub Zegarek2
Declare Sub Le_pulse
Declare Sub Lmx_r
Declare Sub Lmx_n1
Declare Sub Lmx_n2
Declare Sub Lmx_f


'------------------------------------------------------------   glowna petla

Do
Reset Azw
  If Tmp = 0 Then
   If Ptt = 0 Then
    Gosub Lmx_r
    Gosub Lmx_n1
    Gosub Lmx_f
    Waitms 10
    Reset Led_3
    Set Tmp
    Reset Drv
    Set Pa
   End If
  End If

 If Ptt = 1 Then
  If Tmp = 1 Then
   Gosub Lmx_r
   Gosub Lmx_n2
   Gosub Lmx_f
   Waitms 10
   Set Led_3
   Reset Tmp
   Reset Azw
   Set Drv
   Reset Pa
  End If
 End If

Set Azw
Loop
End

'-------------------------------------------------------------  koniec glownej petli programu

Lmx_r:
 Restore Dat0
 For A = 1 To 21
 Read C
  If C = 1 Then
   Gosub Zegarek1
  Else
   Gosub Zegarek2
  End If
 Next A
 Gosub Le_pulse
Return

Lmx_n1:
 Restore Dat1
 For A = 1 To 21
 Read C
  If C = 1 Then
   Gosub Zegarek1
  Else
   Gosub Zegarek2
  End If
 Next A
 Gosub Le_pulse
Return

Lmx_n2:
 Restore Dat2
 For A = 1 To 21
 Read C
  If C = 1 Then
   Gosub Zegarek1
  Else
   Gosub Zegarek2
  End If
 Next A
 Gosub Le_pulse
Return

Lmx_f:
 Restore Dat3
 For A = 1 To 21
 Read C
  If C = 1 Then
   Gosub Zegarek1
  Else
   Gosub Zegarek2
  End If
 Next A
 Gosub Le_pulse
Return

Zegarek1:
 Set Data
 nop
 Set Clk
 nop
 Reset Clk
 nop
 Reset Data
Return

Zegarek2:
 Set Clk
 nop
 Reset Clk
 nop
Return

Le_pulse:
 nop
 Set Le
 nop
 Reset Le
 nop
 Reset Data
Return


Dat0:
'   21 bitowy rejestr R
'
'   REF: 12.8MHz , krok PLL: 12.5kHz , R=1024
'   1 bit LD prec. , 14 bitowy dzielnik R = 1024 , 2 bity control C1=0 C2=0
'
'   |LD| |-test mode-|   |------------------------R--------------------------|   |ctrl|
Data 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0     
'
'
Dat1:
'   21 bitowy rejestr N    (czestotliwosc nadawcza)
'
'   TX: 144.800 MHz , krok PLL: 12.5kHz , N/A=11584
'   11584 : 32 = 362 (N) , 11584 mod 32 = 0 (A)
'
'   1 bit GO , 13 bitowy dzielnik B = 400 , 5 bitowy dzielnik A = 8 , 2 bity control C1=1 C2=0
'
'   |GO| |-----------------------B-----------------------|   |-------A-------|   |ctrl|
Data 1 , 0 , 0 , 0 , 0 , 1 , 0 , 1 , 1 , 0 , 1 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1     
'
Dat2:
'   21 bitowy rejestr N    (czestotliwosc parkowania PLL)
'
'   TX: 146.9875 MHz , krok PLL: 12.5kHz , N/A=11759
'   11759 : 32 = 367 (N) , 11759 mod 32 = 15 (A)
'
'   1 bit GO , 13 bitowy dzielnik B = 400 , 5 bitowy dzielnik A = 8 , 2 bity control C1=1 C2=0
'
'   |GO| |-----------------------B-----------------------|   |-------A-------|   |ctrl|
Data 1 , 0 , 0 , 0 , 0 , 1 , 0 , 1 , 1 , 0 , 1 , 1 , 1 , 1 , 0 , 1 , 1 , 1 , 1 , 0 , 1     
'
'
Dat3:
'   21 bitowy rejestr F
'
'   Rejestr innych funkcji PLL , 2 bity control C1=0 C2=1
'    |--------------------F----------------------------------------------|       |ctrl|
Data 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 1 , 0 , 0 , 1 , 0       


Program zawiera komentarze które powinny ułatwić dalsze modernizacje jak i przepisanie na inny procesor Atmel do ambitniejszych implementacji - tracker, pogodynka itp.

Kilka takich nadajników z powodzeniem dało się zaadoptować na pasmo amatorskie, tym razem daruję sobie szczegółowy opis.

Aktualizacja 2,09,2016

Stała się rzecz nie bywała, na mojej skrzynce wylądował email od producenta !!!

EUROSAT ELECTRONICS - http://www.eurosat.com.pl

Otrzymałem wiele informacji na temat nadajnika EUROSAT PNC160-MULTI, dotyczących budowy, działania jak i statystyk. Otrzymałem również zrzuty z analizatora.
Otrzymane informacje bez wątpienia będą przyczynkiem do dalszego śledzenia poczynań firmy na polu urządzeń RF. Nie wykluczam że w przyszłości zainteresuję się innymi nadajnikami tej firmy.

Jestem zdumiony faktem że firma sama z siebie zadała sobie trud dostarczenia informacji na temat swojego produktu osobie która ten produkt wykorzystuje do celów hobbystycznych.




sobota, 6 czerwca 2015

Nadajnik ATS100 ( REV2.4) na APRS/Pogodynkę


Ponieważ dostałem kilka pytań odnośnie przeróbki innych nadajników na pasmo amatorskie, postanowiłem raz na jakiś czas coś podpowiedzieć.
Tym razem padło na nadajnik ATS100


Ponieważ nie przypadł mi on osobiście do gustu, nie będę się nad nim szczególnie rozpisywał.
Dogłębnie uczynił to SQ6ADE - Link

Poniżej program w Bascom-ie, przeznaczony do przystosowania nadajnika na 144,800MHz.

' Program do testow nadajnika ATS100 rev.2.4
' PLL - MB15E03SL
' Mikrokontroler 89C51
' http://ssr.org.pl
'
$regfile = "REG51.dat"
$crystal = 11059000                                           ' zegar 11.059 MHz

Dim Tmp As Byte                                               ' zmienna odcinania nadawania po jednej rundzie
Dim C As Byte
Dim A As Byte

In8 Alias P0.0                                                ' pin 37  Wejscie IN8 , pullup , wyzwolenie przez podanie L
In7 Alias P0.1                                                ' pin 36  Wejscie IN7 , pullup , wyzwolenie przez podanie L
In6 Alias P0.2                                                ' pin 35  Wejscie IN6 , pullup , wyzwolenie przez podanie L
In5 Alias P0.3                                                ' pin 34  Wejscie IN5 , pullup , wyzwolenie przez podanie L
In4 Alias P0.4                                                ' pin 33  Wejscie IN4 , pullup , wyzwolenie przez podanie L
In3 Alias P0.5                                                ' pin 32  Wejscie IN3 , pullup , wyzwolenie przez podanie L
In2 Alias P0.6                                                ' pin 31  Wejscie IN2 , pullup , wyzwolenie przez podanie L
In1 Alias P0.7                                                ' pin 30  Wejscie IN1 , pullup , wyzwolenie przez podanie L

Err2 Alias P1.0                                               ' pin 40  Wy. ERROR U7 , H=napiecie na wyjsciu OK L=brak napiecia
Err1 Alias P1.3                                               ' pin 43  Wy. ERROR U5 , H=napiecie na wyjsciu OK L=brak napiecia
Ptt1 Alias P1.4                                               ' pin 44  Przycisk S1 ptt , L=zalaczone PTT
Led2 Alias P1.5                                               ' pin 1   LED LockDetect H=zgaszona , L=swieci
Azw Alias P1.7                                                ' pin 3   Antyzwiecha

Vco Alias P2.2                                                ' pin 20  Zasilanie MB15E03SL i VCO , H=wylaczone L=zalaczone
Led1 Alias P2.3                                               ' pin 21  +8V wzm. w.cz. + LED TX , H=zgaszona , L=swieci

Ps Alias P3.2                                                 ' pin 8   Standby MB15E03 pin12 , H=standby L=PLL ON
Pa Alias P3.3                                                 ' pin 9   zasilanie PA H=wylaczone L=zalaczone
Le Alias P3.4                                                 ' pin 10  MB15E03 pin 11 (LE)
Data Alias P3.5                                               ' pin 11  MB15E03 pin 10 (DATA)
Clk Alias P3.6                                                ' pin 12  MB15E03 pin 9 (CLOCK)
Ld Alias P3.7                                                 ' pin 13  Lock Detect MB15E03SL pin14 , H=brak synchro L=synchro OK

Declare Sub Mb_r
Declare Sub Mb_na
Declare Sub Zegarek1
Declare Sub Zegarek2
Declare Sub Le_pulse

P0 = &B11111111
Ld = 1
Ps = 1
Led1 = 1
Led2 = 1
Vco = 1
Pa = 1
Ptt1 = 1
Err1 = 1
Tmp = 1
Azw = 1

Set Clk
Set Data
Set Le

'-------------------------------------------------------------  glowna petla
Do
Azw = 0
If Tmp = 0 Then
 If Ptt1 = 0 Then                                             ' jesli PTT wlaczone idz dalej
  Vco = 0
  Ps = 0
  Led1 = 0
  Waitms 10                                                   ' czekaj 10 ms az zalapie VCO
  Gosub Mb_r
  Delay
  Gosub Mb_na
  Waitms 50                                                   ' odczekaj 50ms na synchro PLL
   Pa = 0
   Tmp = 1
 End If
End If
If Tmp = 1 Then
 If Ptt1 = 1 Then
  Vco = 1
  Ps = 1
  Led1 = 1                                                    ' wylacz LED PTT
  Pa = 1
  Tmp = 0
 End If
End If

Azw = 1
Loop
End

'-------------------------------------------------------------  koniec glownej petli

Mb_r:
 Restore Dat
 For A = 1 To 19
 Read C
  If C = 1 Then
   Gosub Zegarek1
  Else
   Gosub Zegarek2
  End If
 Next A
 Gosub Le_pulse
Return

Mb_na:
 Restore Dat1
 For A = 1 To 19
 Read C
  If C = 1 Then
   Gosub Zegarek1
  Else
   Gosub Zegarek2
  End If
 Next A
 Gosub Le_pulse
Return

Zegarek1:
 Reset Data
 nop
 Reset Clk
 nop
 Set Clk
 nop
 Set Data
Return

Zegarek2:
 Reset Clk
 nop
 Set Clk
 nop
Return

Le_pulse:
 nop
 Reset Le
 nop
 Set Le
 nop
 Set Data
Return

Dat:
Data 1 , 0 , 1 , 1 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1    

Dat1:
Data 0 , 0 , 0 , 1 , 0 , 1 , 1 , 0 , 1 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0      

sobota, 18 kwietnia 2015

Nokton NR4 MAXIM

Przystosowanie nadajnika VHF Nokton NR4 MAXIM do pracy APRS 144.800MHz.
Poniżej przedstawiam program dzięki któremu można wykorzystać ten nadajnik do celów amatorskich, program powstał w grupie SSR MANUFAKTURA.



Program Bascom dla Atmega16

' Nadajnik Nokton NR4 MAXIM (TX160n) v5.4
' http://ssr.org.pl
'
$regfile = "m16def.dat"
'$crystal = 14745600                                         ' 14.7456 MHz
$crystal = 8000000

Dim A1 As Word
Dim A3 As Word
Dim N2 As Word
Dim N3 As Word
Dim Mb_ref As Word                                         
    Mb_sw_ref Alias Mb_ref.15                              
    Mb_c_ref Alias Mb_ref.0                                
Dim Mb_swallow As Byte                                     
    Mb_c_prog Alias Mb_swallow.0                           
Dim Mb_prog As Word                                        
Dim Mb_n As Word                                           
Dim Mb_n_h As Byte
Dim Mb_n_l As Byte
Dim Tmp As Bit                                             

Declare Sub Lmx_tx
Declare Sub Le_pulse

Config Pina.0 = Input                                       ' ADC VCC-12V nadajnika
Config Pina.1 = Input                                       ' wejscie IN2
Config Pina.2 = Input                                       ' wejscie IN3
Config Pina.3 = Input                                       ' wejscie IN4
Config Pina.4 = Input                                       ' wejscie IN5
Config Pina.5 = Input                                       ' wejscie IN6
Config Pina.6 = Input                                       ' wejscie IN7
Config Pina.7 = Input                                       ' wejscie IN8

Config Pinb.0 = Input                                       ' wejscie IN1
Config Pinb.1 = Input                                       ' info o mocy wyjsciowej TX 0=ON , 1=OFF
Config Portb.2 = Output                                     ' LED czerwona (D3)
Config Pinb.3 = Input                                       ' wejscie IN9
Config Pinb.4 = Input                                       ' wejscie IN10
Config Portb.5 = Output                                     ' CLK LMX1501A
Config Portb.6 = Output                                     ' DATA LMX1501A
Config Pinb.7 = Input                                       ' wejscie SAB

Config Portc.1 = Output                                     ' 8V VCC 2 x TL064 (modulacja) 0=ON , 1=OFF
Config Pinc.2 = Input                                       ' wejscie AC-16V
Config Pinc.3 = Input
Config Portc.4 = Output                                     ' LED zielona (D4)
Config Portc.5 = Output                                     ' "syrena do 100mA"
Config Portc.7 = Output                                     ' do ukladu ladowania AKU

Config Portd.1 = Output
Config Portd.2 = Output                                     ' Zalaczanie drivera TX
Config Portd.3 = Output
Config Portd.4 = Output
Config Portd.5 = Output                                     ' zasilanie VCO 0=ON , 1=OFF
Config Pind.6 = Input                                       ' Lock Detect PLL
Config Portd.7 = Output                                     ' LE LMX1501A

Lmx_clk Alias Portb.5                                       ' CLK LMX1501A
Lmx_data Alias Portb.6                                      ' DATA LMX1501A
Lmx_le Alias Portd.7                                        ' LE LMX1501A
Tx_drv Alias Portd.2                                        ' Zalaczanie drivera TX
Ptt_test Alias Pinc.3                                       ' SW "TEST" na PCB
Led_red Alias Portb.2                                       ' LED D3 (czerwona)
Led_gren Alias Portc.4                                      ' LED D4 (zielona)
Lmx_lock Alias Pind.6                                       ' Lock Detect PLL
Tx_vco Alias Portd.5                                        ' Zalaczanie VCO TX
Pwr_0 Alias Portd.4                                         ' poziom mocy
Pwr_1 Alias Portd.3                                         ' poziom mocy
8v_mod Alias Portc.1                                        ' zasilanie 8V 2 x TL062
12v_adc Alias Pina.0                                        ' wejscie pomiarowe napiecia zasilania nadajnika (12V)
Pwr_ctrl Alias Pinb.1                                       ' obecnosc mocy na wyjsciu nadajnika

Lmx_le = 0
Lmx_clk = 0
Lmx_data = 0
Tx_drv = 1
Tx_vco = 1
Led_red = 1
Led_gren = 1
Ptt_test = 1
Lmx_lock = 1
Pwr_0 = 0
Pwr_1 = 0
8v_mod = 1

Mb_ref = 1040 * 2                                          
Mb_prog = 11584                                            
'Mb_prog = 13611                                            

Mb_c_ref = 1                                               
Mb_c_prog = 0                                              


Config Watchdog = 256
Start Watchdog


'-------------------------------------------------------------  glowna petla

Do

If Tmp = 0 Then
 If Ptt_test = 0 Then                                       ' jesli PTT wlaczone idz dalej
  Tx_vco = 0                                                ' wlacz zasilanie VCO
  8v_mod = 0                                                ' wlacz zasilanie 8V 2 x TL062
  Gosub Lmx_tx
  Waitms 20                                                 ' odczekaj 20ms na synchro PLL
   If Lmx_lock = 0 Then
    Tx_drv = 0                                              ' wlacz zasilanie drivera TX
    Led_red = 0                                             ' wlacz czerwona LED D3
    Tmp = 1
   Else
    Tx_vco = 1
    Tmp = 1
   End If
 End If
End If

If Tmp = 1 Then
 If Ptt_test = 1 Then
  Tx_drv = 1                                                ' wylacz zasilanie VCO i PLL
  Tx_vco = 1                                                ' wylacz zasilanie wzmaniaczy w.cz
  Led_red = 1                                               ' wylacz czerwona LED D3
  8v_mod = 1
  Tmp = 0
 End If
End If


Reset Watchdog
Loop
End

'-------------------------------------------------------------  koniec glownej petli programu


Lmx_tx:
'
N2 = Mb_prog / 64
A1 = Mb_prog Mod 64
N3 = Mb_prog / 128
A3 = Mb_prog Mod 128
  If A3 < N3 Then
 Mb_n = N3
 Mb_swallow = A3 * 2
 Mb_sw_ref = 0
  Else
 Mb_n = N2
 Mb_swallow = A1 * 2
 Mb_sw_ref = 1
  End If

Shiftout Lmx_data , Lmx_clk , Mb_ref , 0                   

Gosub Le_pulse

Mb_n_h = High(mb_n)
Mb_n_l = Low(mb_n)
Shiftout Lmx_data , Lmx_clk , Mb_n_h , 0 , 3               
Shiftout Lmx_data , Lmx_clk , Mb_n_l , 0                   
Shiftout Lmx_data , Lmx_clk , Mb_swallow , 0               

Gosub Le_pulse

Return

Le_pulse:
 nop
 Set Lmx_le
 nop
 Reset Lmx_le
Return
'

Schemat oraz oprogramowanie do pobrania - https://github.com/SQ5EKU

PCB tego nadajnika posiada również ładowarkę akumulatora żelowego, co sprawia że nadajnik jest świetną bazą dla urządzeń bezobsługowych.







Poniżej opis gniazda do zaprogramowania procka NR4 MAXIM


niedziela, 22 lutego 2015

Nadajnik APRS 144.800MHz

Nokton NR4K3 @ 144.800 MHz

Ponieważ wiele nadajników tego rodzaju jest masowo wycofywanych z użytku, a wiele z nich trafia do majsterkowiczów, po raz kolejny opiszę sposób przeróbki tego modelu do pracy na 144,800 czyli APRS.

Schemat i wsady mikrokontrolera -  https://github.com/SQ5EKU

Fabrycznie nadajnik ma zastosowany procek AT89c2051, jednak bardzo wielu kolegów sygnalizuje, że niema możliwości zaprogramowania tego typu układu.
Tym razem wychodzę na przeciw maruderom i opiszę jak Noktona przysposobić do pracy na popularnym układzie Attiny2313 z rodziny AVR.

Aby zabrać się za przeróbkę, należy roznitować puszkę z czterech nitów.

Następnie należy zdemontować gniazdo antenowe UC1.
Jeśli nasz egzemplarz jest sprawny to dostosowanie stopnia końcowego mocy sprowadza się do dolutowania dwóch kondensatorów.
Tak prosty zabieg powinien nam dostarczyć 5-7 Wat mocy wyjściowej przy zasilaniu 13,8V.
Gdyby teraz wgrać soft do obecnego procka at89c2051 - link
mielibyśmy właściwie gotowy nadajnik :)

Jeśli jednak zdecydujemy się na zastosowanie attiny2313, konieczna jest kolejna tura modyfikacji.
Należy usunąć zbędne elementy aby doprowadzić do stanu z obrazka powyżej.

Następnie usuwamy dwa kondensatory elektrolityczne oraz diodę 4148

Teraz czas zająć się sprzętowym wathdog-iem, zmiany są niezbędne ponieważ attyny2313 ma inne uwarunkowania sterowaniem wejścia reset.

Dodany rezystor 10k, kondensator 1 - 10uF, tranzystor wylutowany uprzednio przesuwamy nieco w lewo, oraz obracamy go w lewo o 45 stopni, od wolnwj nóżki prowadzimy zworę do masy, kolejny dodany element to dioda 4148.

Następnym etapem jest dolutowanie dwóch rezystorów przewlekanych. Pamiętać jednak należy aby przeciąć wskazaną ścieżkę,

jeśli lutowanie rezystora (prawa nóżka) 1k przy przecięciu ścieżki jest niemożliwe to należy go przylutować z drugiej strony pcb do ścieżki pod przelotką.

Po zaprogramowaniu mikrokontrolera, oraz zamontowaniu gniazda antenowego pozostaje delikatne rozciągnięcie cewki celem uzyskania maksymalnej mocy w.cz







O programowaniu słów kilka...

Wsady z softem do mikrokontrolerów dostępne są - LINK
Wsad dla attiny2313 przygotowany jest tak aby wgrać go do procka bez ruszania fusbitów, ustawienia domyślne tego procka to wewnętrzny zegar rc 8MHz z wewnętrznym dzielnikiem przez 8.
Daje więc nam to efektywne 1MHz co jest olbrzymią prędkością jak na tak banalne zadania dla niego w tym przypadku.


Umieściłem również wsad dla at90s2313, w tym przypadku również nie ruszamy fus bitów, jednak potrzebuje on zegara zewnętrznego a ten dostarczamy mu przez wlutowanie kondensatora 1nF na końcu ścieżki biegnącej od nóżki nr5 procesora.

Nokton z ATTINY2313 pobierał 34ma, egzemplarz z przetaktowanym at90s2313 pobierał 47ma, jasno widać jaki ma sens stosowanie wewnętrznego zegara RC.

     Oprogramowanie BASCOM-AVR

 '*****************************************
'Nokton NR4K3 @ 144,800MHz TX160V2
'Robert Munduc SQ5EKU
'Otwock 19,02,2015

'http://sq5eku.blogspot.com/
' AT90s2313 @ PLL UMA1014
'******************************************
$regfile = "2313def.dat"                                       
$crystal = 12800000
Config Sda = Portb.0                                      
Config Scl = Portb.1                                      
  Dim Tmp As Bit
  Dim Licz As Word
Config Pinb.2 = Input
'Config Pinb.3 = Output
Config Pinb.7 = Output
Config Pind.3 = Input                                     
Config Pind.4 = Output
Config Pind.5 = Output
Config Pind.7 = Input                                                                                     
Set Portd.4                                               
Set Portd.5                                               
Set Tmp                                                                                                  
Declare Sub Syntezarx
Declare Sub Syntezatx
Declare Sub Azw

If Pinb.2 = 0 Then
   Gosub Azw
     Reset Portd.5
   Wait 10
    End If

Do
 Gosub Azw
If Pind.3 = 0 Then
If Tmp = 0 Then
If Pinb.2 = 0 Then
   Gosub Syntezatx
   Reset Portd.5
 Reset Portd.4
 Set Tmp
 Licz = 0
 End If
End If
End If
If Pinb.2 = 1 Then
If Tmp = 1 Then
Gosub Syntoff
Set Portd.5
 Set Portd.4
Reset Tmp
 End If
End If
Loop
End

Syntezatx:                                                
  I2cstart                                                
  I2cwbyte &B11000100                                     
  I2cwbyte &B00001000                                     
  I2cwbyte &B00001100                                     
  I2cwbyte &B10100100
  I2cwbyte &B00101101
  I2cwbyte &B01000000
  I2cstop                                                 
  Waitms 15
Return

Syntoff:                                                  
I2cstart                                                  
I2cwbyte &B11000100                                       
I2cwbyte &B00001000                                       
I2cwbyte &B10000000                                       
I2cwbyte &B10100100                                       
I2cwbyte &B00100111                                       
I2cwbyte &B11010000                                       
I2cstop                                                   
Return                                                    
  Waitms 10
Return

   Azw:                                                   
Set Portb.7
  Waitms 2
 Reset Portb.7
 Incr Licz
 If Licz > 1500 Then
 Set Portd.4
 End If
 If Pind.7 = 1 Then
Set Portd.4
 End If
Return


Modernizacje dla wytrwałych

- Oszczędzamy prąd!
Gdy urządzenie ma pracować z akumulatora każdy mA jest na wagę złota. Zamiana stabilizatora 78l08 na taki z możliwością kluczowania, umożliwi nam wyłączenie całego generatora vco na czas bezczynności.
Stabilizator 78L08 zastępujemy LM2931  (adj)
Rezystor 100k lutujemy między 2 a 4 nogą stabilizatora
Równolegle rezystory 47k oraz 27k miedzy 4 nogą a + wyjścia stabilizatora (noga 1)
Wylutowany wcześniej kondensator zastępujemy kondensatorem  10 - 47uF.
Napięcie wyjściowe stabilizatora powinno zawierać się w przedziale 7.5V a 8.5V.
Następnie należy zamontować zworkę między 5 nogą stabilizatora a linią ptt.
Z ATTINY2313 cały Nadajnik w czasie czuwania pobierał  poniżej 15mA.

- Ograniczenie mocy
Gdy nie potrzebujemy aż tak dużo mocy warto pomyśleć o płynnej regulacji.
Montujemy PR 1k, przenosimy we wskazane miejsce rezystor 68om.
Jako bocznik PR należy wlutować rezystor 220 - 470om. I cieszymy się płynną regulacją mocy wyjściowej nadajnika.

Amoże by tak więcej mocy :)
09.04.2015
5Wat to nie wszystko na co stać nadajnik Nokton NR4K3 oraz NR4K3CA, stosując tanią przetwornicę step-up (LM2577 lub XL6009) podnosząc napięcie drivera oraz końcówki 2sc1971 do napięcia 18V, śmiało można osiągnąć 12-15 Wat, oczywiście dobierając odpowiednie wartości elementów LC na wyjściu PA.


Niema co się obawiać o kondycje tranzystora mocy, ponieważ w czasie nadawania pracuje on jedynie przez okres 1/4 sekundy na ramkę, więc praktycznie niema kiedy nawet się nagrzać. Wiedzieć należy że takie osiągi możliwe są jedynie na starych dobrych oryginalnych tranzystorach 2sc1971, na malowankach nawet nie radzę próbować!!!

Kolejnym znanym mi rozwiązaniem jest montowanie zamiast oryginalnego stopnia mocy kompaktowej hybrydy, najmocniejszy znany mi Nokton w czasie ramkowania oddaje 60 - 70 Wat.

Zabawy te jednak przeznaczone są jedynie dla obytych z techniką i posiadających dostęp do aparatury pomiarowej!

04.07.2015
Korzystając z wolnej chwili postanowiłem wykonać kolejny ekonomiczny egzemplarz, który będzie pracował w aucie 24H bez wyłączania.
Tak o to powstała wersja 25Wat.


Główną cechą tego egzemplarza jest dodanie dodatkowego stopnia mocy wraz z filtrami wyjściowymi. Część PA pochodzi z innego nadajnika PULSON 105 wycięta nożycami do blachy. Oryginalny tranzystor został zastąpiony rosyjskim.
Egzemplarz testowy maksymalnie oddawał ~40Wat, jednak wiązały się z tym pewne problemy. Głównym i najważniejszym jest kłopot z odprowadzaniem ciepła z tranzystora, eksperymentalnie moc wyjściowa docelowo został ustawiona na 25 Wat, a urządzenie w trakcie normalniej pracy ma letnią temperaturę.



04.11.2016

Nokton wersja 50 Wat


Tym razem wpakowałem do noktona  klasyczny wzmacniacz na dwóch rosyjskich tranzystorach z serii KT.
Wzmacniacz wykonany w całości z elementów z odzysku, PCB to drapanka wykonywana w trakcie lutowania kolejnych elementów.

Jak widać zostało sporo wolnego miejsca na traker APRS.

 Powyżej Nokton z trakerem na Arduino QAPRS

Nadajnik nokton NR4K3 z wzmacniaczem na tranzystorze KT920B, przy zasilaniu z 14 wolt nadajnik oddawał ponad 20 Wat.

Lekko doładowany NOKTON NR4K3 z hybrydą M67746 - Link

Nadajnik NR4K3 z wzmacniaczem na KT920B - urządzenie trafiło do SP5EB

Finalna wersja Boostera KT920B No Tune - Opis

Nadajnik z wbudowanym wzmacniaczem na rosyjskim tranzystorze KT958A, moc oddawana to około 35wat.



Zamiana 2SC1971 na RD06HVF1 - mod





I jak znam życie nie jest to ostatnia odsłona nadajników tej serii :)