Para os amantes das transmissões em CW (o famoso ‘código Morse’ em transmissões), o incrível manipulador eletrônico criado pelo Sr. Steven T. Elliott em 1988, conhecido como “K8”, foi um salto tecnológico nestas transmissões, facilitando em muito as comunicações. Recentemente, foi me pedido sobre a possibilidade de mudar o modêlo do microcontrolador, para um mais atual, com memória flash. Veja o resultado….
Veja o esquema abaixo:
Podemos observar que o esquema, que não difere do original, exceto pela necessidade de colocar um pull up no pino 4. Foi dado opção de escolha entre o modelo 12f629 ou 12f675, bastando alterar comentando ou descomentando, no arquivo asm, e , em seguida, recompilar no MPLAB-IDE. Infelizmente, não tenho conhecimento de código ‘morse’,e portanto , ‘penei’ para entender a rotina (excelente, por sinal). Obtive a ajuda do Sr. João, profundo conhecedor da ‘arte’ do CW. O autor original também disponibilizou seu Email para eventuais dúvidas : email: steve@k1el.com or k1el@aol.com. Vários sites também poderão prover ajuda orientadoras para o uso deste dispositivo (aviso que eu não entendo).
Abaixo, segue os arquivos ASM e HEX compilados com o prefixo da estação original do autor. Servem para testes apenas.
Altere o prefixo para corresponder a sua estação no código ASM, na parte:
CALL_0 EQU M_P ;Coloque seu prefixo aqui, letra por letra (use sempre um M_ na frente da letra)
CALL_1 EQU M_Y ; não mais de 7 caracteres
CALL_2 EQU M_2
CALL_3 EQU M_M
CALL_4 EQU M_G
CALL_5 EQU M_END
CALL_6 EQU M_END
CALL_7 EQU M_END
SPEED_DEFAULT EQU WPM_15 ; E escolha aqui a velocidade padrão que usará nas comunicações
Depois recompile com o MPLAB-IDE para obter o arquivo HEX correto para sua estação.
Segue o arquivo ASM, de novembro de 2012 (obs. com bug ao enviar prefixo da estação em modo BEACON):
K8_629_ASM
Segue o arquivo HEX, de novembro de 2012, da compilação do ASM acima:
K8_629_HEX
Pasta zipada com algumas atualizações feitas em 10/03/2018, sendo corrigido o bug ao enviar prefixo da estação em modo BEACON):
K8_MAN_MORSE
Também, manipulador PIK adaptado para 12f675, de novembro de 2012 aqui.
Links técnicos:
datasheet Pic12f629
Curiosidades:
May Day
Titanic
Telegráfo e a previsão do tempo
Até o próximo artigo!!!
Caro Cláudio, bom dia.
Fiz a compilação do ASM com o MPLAB 7.0 fincando tudo cem por cento. Quanto ao uso da versão 2 e luminosidade dos displays, entendi.
Teste prático:
Sem sinal de RF no pino 3 do PIC acende o penúltimo display, indicando “0”.
Com sinal de RF (16000 Khz) no pino 3 a leitura direta é precisa. Muito bom.
Agora, Com os mesmos 16000 Khz na entrada e com a inserção da FI 8988,3 Khz está ocorrendo a somatória, quando o correto seria a subtração.
É possível dentro do ASM corrigir a fórmula para ao invés de somar, diminuir? Acredito que a mudança corrigirá o problema.
Att,
João
Olá João! Por favor, verifique no site que você baixou este programa como você deverá proceder para programar o frequencímetro em questão, para subtrair a FI. Existe um botão que poderá ser acionado para ajustar varias funções possíveis. Creio que lendo o ‘manual de operações’ fornecido junto ao site, você deverá ser bem sucedido em fazer estas alterações e conhecer outras.
Cláudio
Olá João! Creio que seja estas as informações para você programar seu frequencímetro:
tradução:
“”==================================================================
Adicionando ou subtraindo uma freqüência de offset
Se o contador é usado em um receptor de ondas curtas ou transceptor , você pode querer adicionar ou subtrair um valor de deslocamento do frequeny medido. A frequência deslocada é a mesma que a frequência intermédia , em muitos casos , porque o contador é normalmente ligado ao VFO receptores ( oscilador de frequência variável ) . Para este efeito , um modo de programação ( ou ” modo de configuração ” ) foi implementado no firmware para que você possa entrar em uma freqüência de offset sem reprogramação o firmware do PIC .
O RA5 sinal (pino 4 do PIC 16F628 ) será usado para alternar entre o modo normal de operação para modo de programação. Normalmente, o nível de RA5 é elevado porque está ligado à tensão de alimentação , através da resistência pull-up ( 10k a 22 k ) . Se você nunca vai precisar adicionar ou subtrair um deslocamento de freqüência , conecte-o permanentemente com a tensão de alimentação ( deve haver um nível definido em RA5 , infelizmente, não tem resistor pullup interno). Tornando RA5 em nivel baixo ( conectar o pino 4 e pino 5 do PIC , com uma pequena chave de fenda ), o firmware será instruído a usar a freqüência atualmente medido como o novo valor de deslocamento . Em outras palavras , você deve aplicar a freqüência de offset para a entrada do contador , espere até que o valor é exibido corretamente, e , em seguida, entrar no modo de programação , como explicado abaixo.
Modo de programação: O fluxograma programa da esquerda mostra como entrar no modo de programação , como selecionar um menu, e como executar a função associada . Para entrar no modo de programação , pressione e segure a tecla de programação ( ou conectar o pino 4 e 5 do PIC , com uma pequena chave de fenda ) , até que o PIC mostra ” Prog” no visor LED . Em seguida, solte a “chave” . Agora você está no primeiro menu do modo de programação.
Para selecionar o próximo menu , pressione a tecla por um curto período de tempo (menos de um segundo). Para executar a função selecionada , pressione a tecla por um longo tempo (mais de um segundo). As funções do menu são:
“Quit” : Sai do modo de programação sem alterar nada.
“Adicionar” : Salva a freqüência previamente medida de forma permanente , por isso vai ser adicionada nas leituras futuras.
“Sub” : Salva a freqüência previamente medida de forma permanente , por isso vai ser subtraída nas leituras futuras.
” Zero “: Define o deslocamento de freqüência zero , então o display mostrará a freqüência real medida , sem deslocamento. O valor programado anteriormente será perdido.
“Tabela” : Permite-lhe seleccionar um valor predefinido deslocamento a partir de uma tabela. A tabela em si também está localizado na EEPROM de dados do PIC , então você pode encontrar valores diferentes na mesma. Ao saltar através da mesa , as frequências são mostradas em forma numérica , como 455,0 ( kHz ) , 4,1943 ( MHz ) , 4,4336 ( MHz ) , 10,700 ( MHz ) . Depois de seleccionar uma entrada (pressão prolongada no botão) , você será levado de volta ao menu principal para selecionar ” Adicionar ” ou ” subtrair” .
” PSave ” / ” NoPSV ” : liga e desliga a função de economia de energia . No modo de economia de energia , o visor é desligado após 15 segundos sem nenhuma mudança “significativa” na freqüência , e voltará assim que as mudanças de freqüência em mais de uma dúzia de Hertz ( no 3 .. faixa de medição de 4 MHz) . Adicionados em maio de 2006 para equipamentos movidos a bateria como transceptores QRP .
Nota:
Pode haver mais itens de menu do que mostrado aqui, mas o princípio permanece o mesmo.
Os valores de deslocamento de freqüência são salvos como um número inteiro de 32 bits em EEPROM de dados do PIC ( em primeiros quatro posições de memória da EEPROM , de alto byte primeiro , de baixo byte último ) . Se você não tem gerador de sinais para produzir a freqüência de offset para a programação , ou não pode tocar a frequência BFO do seu receptor shortware homebrew , você pode inserir o valor de deslocamento com um programador PIC adequado (como WinPIC de DL4YHF ) . Use uma calculadora de bolso científica para converter a freqüência (em Hertz , positivo ou negativo) em um número hexadecimal , e digite este valor na janela de memória de dados do programador PIC EEPROM. Se você usar WinPIC , permitir que o editor HEX antes de digitar os valores na janela de memória. Alguns exemplos:
4.194304 MHz : Adicionar = 00 40 00 00 Subtrair = FF C0 00 00 (sim, tão simples)
4.433619 MHz : Adicionar = 00 43 A6 D3 Subtrair = FF BC 59 2D
0.455000 MHz : Adicionar = 00 06 F1 58 Subtrair = FF F9 0E A8
10,70000 MHz : Adicionar = 00 A3 44 E0 Subtrair = FF 5C BB 20
8,988300 MHZ : Adicionar = 00 89 26 8C Subtrair = FF 76 D9 74
8,989000 MHZ : Adicionar = 00 89 29 48 Subtrair = FF 76 D6 B8
Se o deslocamento subtraído é maior do que a frequência de entrada do contador , o resultado da subtracção é negativo . O contador de freqüência faz com que o resultado positivo antes de exibi -lo. Dessa forma, você pode usar o contador também em receptores onde f_IF = f_RX + f_LO ou f_RX = f_IF – f_LO o que significa que o aumento da frequência LO significa diminuir de frequência RX (o contador parece que vai ” correr para trás “, mas isso não é erro).
Exemplo para o DL2YEO 30 metros banda QRP transceptor : f_RX = f_LO – f_IF = 14,314 MHz – 4.194 MHz = 10,120 MHz , conforme o cálculo: ( f_LO = entrada medida , f_RX = valor de exibição , f_IF = programado offset) . Se você não precisa do digito de 10 MHz no display, defina o deslocamento de -14,194 MHz em vez de -4,194 MHz . Isso vai dar uma melhor resolução de apresentação, assim você só precisa de 4 dígitos ( f_RX = 10,120 MHz serão exibidos como 120,0 kHz, o que é suficiente porque faixa de sintonia do receptor é de apenas 20 kHz de qualquer maneira ) .
Algumas comumente usadas freqüências intermediárias podem ser chamados a partir do menu “Tabela” , então você não tem que medir ou inseri-los você mesmo . Entre em contato comigo se você é um daqueles que gostam de montagem caseiras e quer ter outras freqüências no ASM .
====================================================””
Espero que te ajude
Cláudio
Caro Claudio, boa tarde.
Os arquivos do frequêncímetro que voce mandou por e-mail não chegaram. Por favor tente novamente.
O meu arquivo .HEX do K-8 quando liga o beacon ele emite a mensagem correta, porém uma vez só. Não fica repetindo, apesar de no ASM está definido um tempo de 6 segundos. Alguma rotina está desabilitada. Voce tem uma idéia do que possa ser?
Att,
João
Olá João! Deu problema no arquivo porque estava usando ‘~’ no nome. Tente pegar o arquivo em pasta zipada aqui.
Cláudio
Boa tarde Cláudio.
É possível disponibilizar uma janela para enviar os arquivos por email?
Outra coisa. Agora referente ao K-8 que voce passou para o Valter.
Compilei o ASM que voce disponibilizou, não deu mensagem de erro. Contudo, ao testar o .HEX no simulador do PROTEUS, está ocorrendo um problema.
– Ao fechar “PB” no pino 4 o oscilador teria que emitir o CQ mais o indicativo que está registrado no ASM, que no caso é PY2MG. Só que o oscilador está emitindo o CQ mais o som em morse de duas letras “U”. A mesma coisa está ocorendo quando aciona a chave de beacon. ele fica repetindo de 6 em 6 segundos o CQ mais duas letras UU e não o indicativo PY2MG que está registrado no ASM e também no .HEX.
Fico no aguardo.
Att,
João.
Olá João! Obrigado por testar. Quanto ao email poderá enviar para claudio@picsource.com.br.
Cláudio
Caro Cláudio, boa noite.
No ano passado conversamos muito sobre manipuladores eletrônicos e voce foi fundamental na solução do assunto.
Agora, estou às voltas com um frequêcímetro de 05 displays usando o PIC16F628A. O suporte do autor me enviou um arquivo zipado contendo um .ASM, dois .HEX, um readme e dois arquivos com extensão MCP.
Os arquivos MCP abri com o bloco de notas e não entendi praticamente nada.
O arquivo readme explica que os dois .HEX foram gerados a partir do mesmo .ASM
Ao complilar o .ASM com o MPASM (do MPLAB) apresentou mensagem de erros.
Contactei o suporte do autor e fui informado que está tudo certo. Mas se na compilação apresenta mensagem de erro como é possível gerar o .HEX???
Os dois .HEX que recebi estão aqui, mas gostaria muito de ter o .ASM pois com ele, poderia acrescentar uma frequência intermediaria (FI) e aí, sim, compilaria e teria o .HEX para gravar no PIC.
No ASM existem 4 FI disponíveis em Mhz: (.455000 / .4194304 / .4433619 / .10700000).
Acredito que poderia substituir estas pelas que me interessa, que no caso são (8988,30 Mhz e 8989,00 Mhz).
Do acima exposto, solicito, se possível, uma analise técnica desses arquivos, em especial o .ASM , objetivando a correção de possíveis erros.
Fico no aguardo e desde já agradeço.
João.
Olá João! Quanto tempo! Me envie, que irei dar uma olhada se posso fazer alguma coisa ou não.
Cláudio
ola Claudio será que tem solução esse problema.
Olá Valter! Você ainda não conseguiu programar o seu pic? Mesmo com o HEX fornecido?
Cláudio
Olá Valter! Baixei os arquivos do site e testei no Mplab-Ide e com versões mais modernas apresentava um erro com o uso do label ‘CONFIG’ que estava sendo usado para rotinas comuns. Isto entrava em conflito com o ‘__CONFIG’ da palavra de configuração. Acertei colocando um ‘underline’ após o termo (‘CONFIG_’). Isto resolveu. Parou o erro e compilou. Gostaria, por favor, que quando tivesse um tempinho, pudesse testar e retornar o funcionamento. Adianto , que conforme citei anteriormente, não tenho qualificações de CW para testar e entender bem se está funcionando a contento. Link para o novo código aqui.
Obrigado
Cláudio