Ola pessoal

 estou tentando montar um VFO com LM7001 achei algum projetos com code
 na internet mas nada com arduino que e o que ainda consigo programar com alguma dificuldade
 achei este projeto da imagem na internet mas e para Atmega8 e code e diferente
 algumas partes eu ate entendi mas outras não
 gostaria de saber se tem como modificar este code para Atmega328 do arduino
 ou e mais pratico escrever outro ?

 o code
 ‘*******************************************************************************
‘ 80M VCO
‘ PLL LM7001
‘ ATMega8
‘ 16×2 LCD
‘ 10MHz IF Freq
‘*******************************************************************************
$regfile = “m8def.dat”
$crystal = 8000000
$swstack = 32
$hwstack = 32
$framesize = 32
Declare Sub Send_command(byval Pmode As Word , Byval Value As Word )
Declare Sub Init_pll
Declare Sub Incr_pll
Declare Sub Decr_pll
Declare Sub Store_pll
Declare Sub Dsp_freq
‘*******************************************************************************
‘ config pin
‘*******************************************************************************
Config Lcdmode = Port
Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5
Config Lcd = 16 * 2
Config Portd = Output
Config Portd.5 = Output
Config Portd.6 = Output
Config Portd.7 = Output
Config Pinb.0 = Input
Config Pinb.1 = Input
Config Pinb.2 = Input
Cen Alias Portd.7
Clk Alias Portd.6
Dat Alias Portd.5
‘*******************************************************************************
‘ Variable
‘*******************************************************************************
Dim I As Word
Dim J As Byte
Dim Pmode As Word
Dim Button As Byte
Dim Freq As Word
Dim Efreq As Eram Word At &H10
Dim Sfreq As Word
Dim Dfreq As Word
Dim Sdfreq As String * 5
‘*******************************************************************************
‘ main program
‘*******************************************************************************
Initialization:
   Waitms 100
   Reset Cen
   Reset Clk
   Reset Dat
   Set Portb.0
   Set Portb.1
   Set Portb.2
   Deflcdchar 0 , 32 , 32 , 32 , 32 , 32 , 32 , 31 , 32
   Deflcdchar 0 , 31 , 31 , 32 , 17 , 27 , 27 , 31 , 31                         ‘ antenna symb
   Deflcdchar 1 , 31 , 31 , 31 , 30 , 29 , 11 , 23 , 31                         ‘ memory
   Deflcdchar 2 , 14 , 16 , 12 , 2 , 30 , 9 , 9 , 9                             ‘ S/N
   Deflcdchar 4 , 32 , 32 , 32 , 32 , 32 , 32 , 31 , 32                         ‘ S1
   Deflcdchar 5 , 32 , 32 , 32 , 32 , 1 , 31 , 31 , 32                          ‘ S2
   Deflcdchar 6 , 32 , 32 , 32 , 7 , 31 , 31 , 31 , 32                          ‘ S3
   Deflcdchar 7 , 1 , 7 , 31 , 31 , 31 , 31 , 31 , 32                           ‘ S4
   Cls : Cursor Off
   Locate 1 , 1 : Lcd “80m RX SSB V1.0 “
   Locate 2 , 1 : Lcd “Jalapindai 2010 “
   Waitms 10
Main:
‘   Pmode = 704
‘   Pmode = 896
   Cls
   Locate 1 , 1 : Lcd ”             KHz”
   Locate 2 , 1 : Lcd ” jalapindai.com “
   Call Init_pll
   Call Dsp_freq
   Do
      Button = Pinb And &H07
      Select Case Button
         Case 3 : Call Store_pll
         Case 5 : Call Decr_pll
         Case 6 : Call Incr_pll
      End Select
   Loop
   Goto Main
 End
‘*******************************************************************************
‘ Init PLL
‘*******************************************************************************
Sub Init_pll
   Freq = Efreq
   If Freq = 65535 Then
      Freq = 10000
   End If
   Call Send_command(704 , Freq)
   Call Dsp_freq
   Locate 1 , 1 : Lcd Chr(1)
   Locate 1 , 2 : Lcd Chr(0)
End Sub
‘*******************************************************************************
‘ Incr_PLL
‘*******************************************************************************
Sub Incr_pll
   Incr Freq
   If Freq > 14500 Then
      Freq = 14500
   End If
   Call Send_command(704 , Freq)
   Call Dsp_freq
   Locate 1 , 1 : Lcd ” “
End Sub
‘*******************************************************************************
‘ Decr_PLL
‘*******************************************************************************
Sub Decr_pll
   Decr Freq
   If Freq < 10000 Then
      Freq = 10000
   End If
   Call Send_command(704 , Freq)
   Call Dsp_freq
   Locate 1 , 1 : Lcd ” “
End Sub
‘*******************************************************************************
‘ Store PLL
‘*******************************************************************************
Sub Store_pll
   If Sfreq <> Freq Then
      Efreq = Freq
      Sfreq = Efreq
   End If
   Locate 1 , 1 : Lcd Chr(1)
   Waitms 50
End Sub
‘*******************************************************************************
‘ Display PLL
‘*******************************************************************************
Sub Dsp_freq
   Dfreq = Freq – 8000
   Sdfreq = Str(dfreq)
   Sdfreq = Format(sdfreq , “0.000”)
   Locate 1 , 8 : Lcd Sdfreq
   Waitms 50
End Sub
 ‘*******************************************************************************
‘ Send Command
‘*******************************************************************************
Sub Send_command(byval Pmode As Word , Byval Value As Word)
   Set Cen
   Waitus 20
‘   Shiftout Dat , Clk , Cmode , 3 , 24 , 10
‘bit 0 to 13 (N value)
   For I = 0 To 13
      If Value.i = 1 Then
         Set Dat
      Else
         Reset Dat
      End If
      Waitus 10
      Set Clk
      Waitus 10
      Reset Clk
      Waitus 10
   Next I
‘bit 14-23 (mode)
   For I = 0 To 9
      If Pmode.i = 1 Then
         Set Dat
      Else
         Reset Dat
      End If
      Waitus 10
      Set Clk
      Waitus 10
      Reset Clk
      Waitus 10
   Next I
   Waitus 20
   Reset Cen
End Sub

 Vlw abs Iuri

Exibições: 3466

Responder esta

Respostas a este tópico

Oi IL, bo m dia.

Veja se este link ajuda.

Rui

http://compcar.ru/forum/showthread.php?t=4665

Se quiser traduzir o russo para o português >

http://labdegaragem.com/forum/topics/lendo-material-em-ingl-s

LM7001 é um chip PLL já descotinuado.

http://ra4a.narod.ru/Microkontroller/lm7001.pdf

Ele é um sintetizador digital usado para gerar frequências . Pode ser usado em VFO ( oscilador de frequência variável) ou Sintonizadores de Rádio . 

Vejo que o codigo acima está em Visual Basic.Se quiser monto um chip Variador de frequencia sendo o limite de 4MHZ

(O microcontrolador trabalha com 16mhz e roda em 4 ciclos de clock).

Tudo que precisa é comprar uma placa adaptadora de smd para dip (custa 6 reais numa determinada loja).

Eu programo para você um chip microcontrolador que terá opção de ser usado como um (PLL) operado como VCO

(Oscilador dependente de Tensão usando a entrada ADC de 10 bits) ,ou até mesmo entrada serial UART

Ou seja,(4MHZ / 1023) = 3.910 HZ (~3,91 KHZ)

Você me paga apenas frete + mais um valor simbólico pelo serviço.

Não vai adiantar escrever detalhes aqui,pois a tecnologia usada não é popular.

Opa galera boa tarde !
 

  Bom eu escolhi o LM7001 pelos seguintes motivos tenho muitos guardados, ainda se encontra facil no mercado
  Outro ponto interessante o preço ~4R$ eu poderia usar um MC145157 ou um modulo DDS
  Mas ai o preço já aumenta bem !

  a parte de VFO e tranquilo e ele me atende bem dos 500KHz ao 30MHz modo AM e dos 60MHz aos 155Mhz modo FM
  Como falei minha dificuldade e a programação vou usar um cristal com a frequencia maxima que ele admite 8MHz
  Bom eu não tenho vergonha de falar que sempre apanhei para estes tipos de comunicação ISP SERIA I2c etc
  Pensei ate em achar algum adaptador de paralela para serial dai comandar ele via paralela mas não rola
  Pelo que entendi nele e que uso o cristal como base de frequencia configuro o modo de operação e a divisão desejada
  e ele vai controlar o diodo varicap ou varactor e vai pegar uma amostra do ocilador para comparar com a frequencia de  

  base e se tudo estiver certo vai travar fechando o loop
  A questão e como mandar esse trem de dados via serial ?
  
   RV obrigado pela dica eu já tinha visto esse link e um receptor mas não tem lcd

   E parece que o cara usa pelo hiperterminal ou algo do tipo
   O que eu quero fazer e um radio multibanda tx rx 1MHz aos 30MHz ls us am e rx 110MHz aos 150MHz fm e am 
   Uma mistura de ararinha com papagaio diabolico
   Vou usar um encoder tipo potenciometro esses usados em som
   E é mais ou menos isso a e em modo rx o VFO tera a frequencia alterada por causa do oscilador de FI

   abçs Iuri

ola para dar certo com o m8 è assim.  o arduino nâo le esta escrita esta escrita esta em assemble

o programa bascom que le esta linguagem o arduino è linguagem  c

$regfile = "m8def.dat"

$crystal =  1000000

config lcdpin= porta tal edcetar ok

8000000 ´è cristal do m16  40 pinos e 32mhz

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço