zaterdag 19 mei 2012

Ombouw 27mhz cb 27mc van 11m naar 10m

Natuurlijk doet iets het nooit meteen, de wet van Murphy gaat altijd op.
Maar na een avond zitten knutselen werkt iig de ontvangst,  het zendgedeelte  is nog even wat uitzoekwerk.
Maar dat komt vast wel goed.
In eerste instantie deed de schakeling het helemaal niet, achteraf logisch. maar ja dat is achteraf.
Ik had al pech met de low budget ic voet van de tsa, volgende keer koop ik toch wat duurdere nu zijn er
twee pootjes gebroken van de tsa, gelukkig de ref freq en wat minder pootje 1, maar met een drupje tin tussen 1 en 2 was dat ook op te lossen. Ook in het voetje zijn twee pinnetjes totaal verbogen. Het werkt nu maar het kan wel een bron van storingen zijn.
Ik had alles aangesloten maar de pll lockte niet. ik dacht eerst te weinig input. dus een buffertje er tussen.
ook dat bood geen oplossing, dan maar rechtstreeks op de uitgang van het vco. software aanpassen.
Bij het deeltal 8192 (8192*1.25 = 10.24mhz) optellen, maar ook deed werkte niet. tsa in fm mode gezet.
schakeling iets veranderd. maar ook dat  werkte niet.
Ik heb nog een pos150 vco liggen, die werkt tussen de ongeveer tussen de 70 en 130 mhz, zou ik ooit gebruiken voor een hf ontvanger met een mf van 70mhz. De pos150 maar aan de tsa dan dat werkte toen d prima, nu dus niet. Das vreemd toch maar eens kijken naar de software.
de tsa programmeer ik met busout tsa6057,0,[data,data,data,data]. zonder een start en stop.
dit gewijzigd in

bstart
busout tsa6057
busout 0
busout data
busout data
busout data
busout data
bstop.




ja!! de pos150 lock op 70.45 mhz.das handig een meetzendertje voor 4m,
Software weer terug naar 16mhz / am mode ook daar een lock. maar als ik de freq verander gebeurt er  niks. Das vreemd. Toen dacht ik o ja stom van me had ik ooit niet ergens gelezen bij een xtal van 8mhz of meer aan de microprocessor om de i2c bus in slowmode te zetten. om dat sommige i2c ic's anders bijna of
geheel niet werken.  Declare Slow_Bus On is zou dus de oplossing kunnen zijn commando toegevoegd
en alles werkt idd prima. Wat me wel opvalt is dat de pll een beetje sloom is. Je hoort hem bijsloffen
als je 10khz verschuift. Eerst maar eens de ontvangst afregelen zien hoe hoog we kunnen komen zonder
de nodige aanpassingen. De pll lockt in ieder geval wel tussen het hele frequentie gebied. das alweer een meevaller. Morgen maar weer eens kijken.

donderdag 17 mei 2012

Ombouw 27mhz cb 27mc van 11m naar 10m

Het schiet aardig op, hier wat foto's,

      





Verder vond ik op internet de CB2HAM groep met zeer veel info te vinden op
http://groups.yahoo.com/group/CB2HAM

zaterdag 5 mei 2012

Ombouw 27mhz cb 27mc van 11m naar 10m

Hier het schema van de pll met aansturing. Ik heb niet gelet op de i2c aansluitingen data en clock.
deze kunnen dus fout zitten in het schema.Hetzelfde geldt voor het display.
De vraag is ook of de tsa genoeg input krijgt om te locken, mocht dit niet zo zijn dan moet
er nog een buffertje tussen.
Nu nog uitzoeken hoe we het geheel moeten aansluiten in de 27mhz transceiver.

Schema is inmiddels aangepast en correct

dinsdag 1 mei 2012

Ombouw 27mhz cb 27mc van 11m naar 10m

Hier alvast een stuk van de source, het progje werkt op basis van interrupts,
voor de rotary encoder op port b0,b1 en voor de switches op port b4-b7.
Ik zal binnenkort het schema tekenen. Het zend gedeelte en het programmeren van de tsa6057
ontbreek nog. Verder gebruik ik een ds1307 voor het opslaan van gegevens,
dit ic heeft geen beperkte levensduur voor het lezen en schrijven naar het geheugen, dit in tegenstelling tot
het interne geheugen van de pic. En je hebt de mogelijkheid om een klokje toe te voegen.
Er zullen nog wel kleine dingen inzitten. Maar het werkt in eerste instantie.

Device 18F2620
Xtal 20                                  

' i2c
SDA_Pin    = PORTA.0          
SCL_Pin    = PORTA.1 
   
'lcd op port c      
LCD_DTPin PORTC.0
LCD_ENPin PORTC.4
LCD_RSPin PORTC.5

All_Digital = TRUE
 0 en rb1 Input encoder b4-b7 input

TRISB = %11110011

' portb pullups aan verplicht bij int on change

PortB_Pullups On

'interrupts rb0,rb1 falling, rb4-7 on change

INTCON.3 = 1
INTCON.4 = 1
INTCON2.6 = 0
INTCON2.7 = 0  
INTCON2.5 = 0
INTCON3.3 = 1

' i2c adressen

Symbol tsa6057      = %11000100
Symbol ds1307       = %11010000  

' variabelen

Dim rotaryold   As Byte
Dim rotary      As Byte
Dim freq        As Word
Dim Stap        As Byte
Dim stapold     As Byte
Dim lcdfreq     As Dword
Dim band        As Byte
Dim bandold     As Byte
Dim addr        As Byte
Dim zend        As Byte

'lcd init

DelayMS 100
Cls

' haal freq uit ds1307 eerste keer kan er rotzooi in zitten

Call startup

' lus voor schakelaars en encoder via sleep

main:

bandold  = band
stapold = Stap

rotaryold = PORTB & $3
rotary=rotaryold

While  rotary = 3

   INTCON.0  = 0
   INTCON.1  = 0
   INTCON3.0 = 0

   nap 7

' verwerk portb waarden rot encoder

   rotary = PORTB & $3

' verwerk portb waarden switches (wil niet in select case intcon.0)

   band = PORTB & %11000000
   band = band >> 6             '6 verschuiven voor 0-3
   If band = 3 Then band = 0
  
   zend = PORTB & 100000
   zend = zend >> 5
  
   Stap = PORTB & 010000
   Stap = Stap >> 4
   Stap = Stap + 4

' indien int door b4-b7 kijken welke switch

   Select Case INTCON.0
       Case 1   
          If bandold <> band Then Call chband
          If stapold <> Stap Then Call chstap
          If zend = 0 Then Call zenden
       End Select
Wend

' rustand rot enc 3, draaien we omlaag dan 2-1-3 omhoog 1-2-3 na int = dus oml een 1 en omh een 2

Select Case rotary
    Case 0
        GoTo main
    Case 1
        If rotaryold = 3 Then Call omlaag
    Case 2
        If rotaryold = 3 Then Call omhoog
End Select

GoTo main


startup:
' bepaal stand band schakelaar.

band = PORTB & %11000000
band = band >> 6
If band = 3 Then band = 0

' haal freq uit ds1307

addr = band * 2 + $20
BusIn ds1307,addr,[freq]

' indien ds leeg dan rotzooi in mem, nog aanpassen

Select Case band
          Case 0
              If freq > 480 Then freq = 400
          Case 1   
              If freq > 600 Then freq = 400
          Case 2                       
              If freq > 200 Then freq = 180
End Select

Stap = PORTB & 010000
Stap = Stap >> 4
Stap = Stap + 4

Select Case Stap
     Case 4
        Call chk10stap
     Case 5
        Call chk12stap
End Select
                               
Call showfreq
Return

omlaag:
freq = freq - Stap
Select Case band
    Case 0
       If freq > 480 Then freq = 480
    Case 1
       If freq > 600 Then freq = 600
    Case 2
       If freq > 200 Then freq = 200
End Select
Call progds
Return

omhoog:
freq = freq + Stap
Select Case band
    Case 0
       If freq > 480 Then freq = 0
    Case 1
       If freq > 600 Then freq = 0
    Case 2
       If freq > 200 Then freq = 0  
End Select
Call progds
Return

progds:
addr = band * 2 + $20
BusOut ds1307,addr,[freq]
Call showfreq
Return


showfreq:

lcdfreq = freq * 250
lcdfreq = lcdfreq / 10

Select Case band
   Case 0
      lcdfreq = 285000+lcdfreq
      Print At 2,14,"10m"
   Case 1
      lcdfreq = 505000+lcdfreq
      Print At 2,14," 6m"
   Case 2
      lcdfreq = 700000+lcdfreq
      Print At 2,14," 4m"
End Select
Print At 1,1,"Frq ", Dec2 lcdfreq / 10000,".",Dec4 lcdfreq // 10000," Mhz"
Print At 2,1,"Stp ", Dec2 (Stap * 25) / 10,".",Dec1 (stap*25) // 10," Khz"
Return

chstap:
Select Case Stap
    Case 4
        Call chk10stap
    Case 5
        Call chk12stap
End Select
stapold = Stap
Return
           
chk10stap:
freq = freq / 4
freq = freq * 4
Stap = 4
Call progds
Return

chk12stap:
freq = (freq + 4) / 5
freq = freq * 5 
Stap = 5
Call progds
Return


chband:
addr = band * 2 + $20
BusIn ds1307,addr,[freq]
Select Case band
          Case 0
              If freq > 480 Then freq = 400
          Case 1   
              If freq > 600 Then freq = 400
          Case 2                       
              If freq > 200 Then freq = 180
End Select
Call chstap
bandold = band
Return

zenden:   
Return