MANIPULADOR ELETRÔNICO K8 – PARA OS AMANTES DO CW , ADAPTADO P/ VERSÃO COM PIC12F629 OU 12F675

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!!!

110 comments on “MANIPULADOR ELETRÔNICO K8 – PARA OS AMANTES DO CW , ADAPTADO P/ VERSÃO COM PIC12F629 OU 12F675

  1. 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

    1. 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

    2. 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

  2. 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

  3. 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.

  4. 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.

    1. 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

Comments are closed.

Back To Top