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. Olá Cláudio, boa tarde.
    O circuito com o PIC12C509 não precisa de alimentação, via 10K, no pino 4 e o potenciômetro para ajustar a velocidade de trabalho fica no pino 2. Este potenciômetro de 22K varia a tensão no pino 2.
    Ao substituir o PIC509 pelo PIC12F629, a única mudança que faço no circuito é acrescentar o resistor de 10k no pino 4.
    Vou fazer as mudanças no ASM depois te informo.
    Em tempo: Quanto ao TRISIO foi exatamente o que fiz e aí compilou legal.
    Att,
    João.

  2. Caro Cláudio, bom dia.
    Fiz um teste agora com o PIC12F629 no circuito, alimentando o pino 4 via resistor de 10K, não funcionou.
    Tirando o resistor de 10K e inserindo o PIC12C509, funciona normalmente.
    Att,
    João.

    1. Olá João! O trisio é um registrador que determina a direção da port. Coloque em letras maiúsculas para funcionar (TRISIO). Parece que o problema está na palavra de configuração (__config).
      O original trabalha com oscilador externo ‘RC’ usando um potenciômetro para ajustar a frequência de trabalho. Mas você citou que retirou o resistor de 10k e colocou o pic12c509 e funcionou. Não está usando mais o potenciômetro?

      Notei também que os pullups internos ficaram ligados. Mude a porção de código:
      movlw 0×00 ;setup the options bits
      movwf OPTION_REG

      para:

      movlw 0×80 ;setup the options bits ; desligando os pullups
      movwf OPTION_REG

      Mude também a palavra de configuração :

      __CONFIG _MCLRE_OFF & _CP_ON & _WDT_OFF & _ExtRC_OSC ;ORIGINAL

      ou:
      __CONFIG 0X3FC6 ; PARA OSCILADOR COM RESISTOR/CAPACITOR

      para:

      __CONFIG _MCLRE_OFF & _CP_ON & _WDT_OFF & _EXTRC_OSC_NOCLKOUT ;p/ 12f629

      Tente compilar e ver se funciona.

      Cláudio

  3. Caro Cláudio, bom dia.
    Consegui compilar. O HEX ficou igual ao seu.
    Fiz um teste no simulador do Proteus alimentando o pino 1 com 5,1v e o 4 via resistor 10k. o pino 3 é a saida para o speek. o pino 5 não usa. O pino 2 alimentei via resistor de 10k. Pelo circuito o pino 2 é alimentado via potenciômetro de 22K, para variar a velocidade. Então inseri um fixo de 10K só para testar.
    Resultado: Não emitiu nenhum sinal.
    O que pode ter saído errado na conversão?
    Att,
    João

  4. Olá Cláudio, boa noite.
    Agora está resumido em um erro e uma reportagem, conforme abaixo:
    Error[113] C:\TESTE\PIK.ASM 117 : Symbol not previously defined (trisio)
    Message[302] C:\TESTE\PIK.ASM 122 : Register in operand not in bank 0. Ensure that bank bits are correct.
    Esse TRISIO QUE ESTÁ COMPLICANDO TUDO!!!
    Não entendi o “x” nem quanto a cor “azul”??
    Mas reescrevi alguns “x” e os números de erros realmente reduziram.
    O que é esse trisio. O problema está relacionado com trisio.
    Att,
    João

  5. Olá Cláudio, boa noite.
    segue a lista dos erros que surgiram na compilação:
    Error[113] C:\TESTE\PIK.ASM 118 : Symbol not previously defined (×00)
    Error[112] C:\TESTE\PIK.ASM 118 : Missing operator
    Message[302] C:\TESTE\PIK.ASM 119 : Register in operand not in bank 0. Ensure that bank bits are correct.
    Error[115] C:\TESTE\PIK.ASM 160 : Duplicate label (“ASPACE” or redefining symbol that cannot be redefined)
    Error[115] C:\TESTE\PIK.ASM 168 : Duplicate label (“DIT” or redefining symbol that cannot be redefined)
    Error[115] C:\TESTE\PIK.ASM 186 : Duplicate label (“DAH” or redefining symbol that cannot be redefined)
    Os tres erros “código 115” aparecem porque não marquei o “case sensitive”.
    Att,
    Pretti

    1. Olá João!
      Estes erros tem que ver com grafia do ‘x’. Digite de novo se não estiver em cor azul.

      Gerou este hex abaixo:
      :020000040000FA
      :100000004028500049004B002000560031002E00CF
      :040010003100340087
      :10008000030185008316EF30850000308100831264
      :10009000073099000330A0010505033920048207C9
      :1000A0006728772867286300772877286728630000
      :1000B00067287728672860287728772867286028A6
      :1000C000A001A201A2097630862022084C2805163C
      :1000D000A201A2093B3020158620000005128519D7
      :1000E000A015393086202208013800004C2805165A
      :1000F000A201A209B5302011862000000512851941
      :10010000A01539308620220802384C28A1000508A5
      :08011000A205A10B87280034B1
      :084000000000000000000100B7
      :02400E00C63FAB
      :00000001FF

      Verifica se é funcional.
      Cláudio

Comments are closed.

Back To Top