HCS_PIC – GERANDO PROTOCOLO HCS 200…301 VIA SOFTWARE EM PIC 12F629

Recentemente, neste blog, foi publicado a materia ‘HT6P_CLONE_PIC629’ sobre como poderiamos, via software em um microcontrolador, gerar o protocolo de um circuito integrado HT6P20B. E que dizer de um circuito integrado HCS 200 ou mesmo um 201? É possivel imita-lo em suas caracteristicas (clone) usando um simples PIC 12f629 ou menor? Veja a resposta…

Sim. Qualquer protocólo, em teoría, pode ser gerado por um programa dentro de um microcontrolador, respeitando-se capacidade, velocidade, e outros parametros. A proposta aqui, a titulo de experiência (porque não compensa o preço inferior de um HCS em relação a de um PIC), é gerar um ‘clone’ via PIC, de um HCS. Veja o esquema abaixo:

Nota-se uma montagem em 2 versões, típica de um ‘chaveirinho’ de controle remoto, com opção de usar interruptores ao positivo ou ao negativo. Estas opções podem ser escolhidas direto no programa ASM abaixo, e depois compilar no MPLAB, para obter o arquivo HEX correto a nossa escolha. Após realizar a montagem, carregar o arquivo hex e ligar, voce terá que ‘aprender’ esta montagem experimental, da mesma forma que se faz com um controle comercial. Aperte um botão e depois o botão ‘learn’ do receptor. Nunca é demais lembrar, que esta montagem somente funcionará em um receptor com a ‘mesma chave’ de encriptação. Não irá funcionar, por ex. com seu alarme de carro que usa um controle remoto hcsxxx, a menos que alguém te informou a chave usada pelo fabricante. Ou seja, para ver funcionando esta montagem, voce terá de montar, por exemplo, o receptor generico para HCS com PIC 12F629, publicado neste blog, e colocar a mesma chave que voce escolher , no receptor e no transmissor (no caso, esta montagem experimental, na parte ‘ escolha sua chave’, no programa ASM). No esquema, nota-se as resistencias de pull-up’s para versão chave negativa e pull-down para versão chave positiva, necessárias para não haver transmissões esporadicas sem se apertar os botões. O circuito deverá ser alimentado com uma fonte externa de 5 volts bem regulados. O transmissor e receptor usados foram de 433 mhz, do tipo comercial, mas outras frequências poderão ser usados. Todo o programa cabe em menos de 600 bytes da Flash do microcontrolador, sobrando muito espaço, por ex., para uma aplicação conjunta.
A parte do programa ASM, nomeada como rotina ‘EMBARALHAR’ foi obtida por se estudar toda a rotina de decriptação do receptor, encontrado nas Note Aplicattions da Microchip ,e poderá ter ‘bugs’ ainda não descobertos (até o momento está funcionando bem). Esta montagem experimental foi realizada e testada em protoboard apenas.

Segue abaixo o arquivo ASM:

HCS_PIC_ASM

Segue abaixo o arquivo HEX (chaves negativas/Pic 12f629):

HCS_PIC_629N_HEX

Referencias usadas para a o projeto:
HCS200 DATASHEET
HCS201 DATASHEET
HCS300 DATASHEET
HCS 301 DATASHEET
PIC 12F629 (675) DATASHEET
NOTE APPLICATION AN662
NOTE APPLICATION AN661
MCDEC14.ASM
*Consulte o fabricante quanto ao uso do sistema Hopping code da Microchip

Até o próximo artigo!!!

17 comments on “HCS_PIC – GERANDO PROTOCOLO HCS 200…301 VIA SOFTWARE EM PIC 12F629

  1. Hi, Claudio

    This code works only the Simple Learning. Does not support the Normal Learning and the Secure Learning. Do you works on the other learning methods?

    Thank you very much for answer my questions.

    Mesmert

    1. Hi Mesmert!
      Im sorry! I don’t know about Normal Learning or Secure Learning. Only Simple Learning method.
      Cláudio

    1. it is not working recevier modül (PIC16f629)

      SERIAL_LW EQU 0X00 ;LSB ‘SERIAL NUMBER’
      SERIAL_HI EQU 0XF6
      SERIAL_UL EQU 0X0A
      SERIAL_UH EQU 0X00 ;MSB

      K0 EQU 0XCA ;LSB ‘MANUFACTURE CODE’
      K1 EQU 0X7B
      K2 EQU 0X37
      K3 EQU 0X22
      K4 EQU 0X14
      K5 EQU 0X3D
      K6 EQU 0X0C
      K7 EQU 0X96 ;MSB

      it is working recevier modül (Pickit2 programmer HCS301 value)

      CA 7B 37 22 14 3D 0C 96 00 00 00 00 00 F6 0A 00
      00 00 00 00 00 00 00 00

      1. ***** M1 RF RECEVIER MODUL ******************
        it is not working recevier modül (PIC16f629)

        SERIAL_LW EQU 0X4F ;LSB ‘SERIAL NUMBER’
        SERIAL_HI EQU 0X1E
        SERIAL_UL EQU 0X2E
        SERIAL_UH EQU 0X00 ;MSB

        K0 EQU 0X9D ;LSB ‘MANUFACTURE CODE’
        K1 EQU 0X20
        K2 EQU 0XE8
        K3 EQU 0XB5
        K4 EQU 0X07
        K5 EQU 0XB0
        K6 EQU 0X98
        K7 EQU 0XCE ;MSB

        it is working recevier modül (Pickit2 programmer HCS301 value)

        9D 20 E8 B5 07 B0 98 CE 00 00 00 00 4F 1E 2E 00
        00 00 00 00 00 00 00 00

        ***** M2 RF RECEVIER MODUL ******************

        it is working recevier modül (PIC16f629)

        SERIAL_LW EQU 0X0A ;LSB ‘SERIAL NUMBER’
        SERIAL_HI EQU 0X20
        SERIAL_UL EQU 0X81
        SERIAL_UH EQU 0X02 ;MSB

        K0 EQU 0X4E ;LSB ‘MANUFACTURE CODE’
        K1 EQU 0X49
        K2 EQU 0X43
        K3 EQU 0X45
        K4 EQU 0X53
        K5 EQU 0X4D
        K6 EQU 0X52
        K7 EQU 0X54 ;MSB

        it is working recevier modül (Pickit2 programmer HCS301 value)

        4E 49 43 45 53 4D 52 54 00 00 00 00 0A 20 81 02
        00 00 00 00 00 00 0A 00

        1. I made the bellow link the project, other test results are below.

          http://picsource.com.br/archives/908

          !!!- it is working. S0-S1-S2-S3 LED ON-OFF (PIC16f629) !!!!

          SERIAL_LW EQU 0X4F ;LSB ‘SERIAL NUMBER’
          SERIAL_HI EQU 0X1E
          SERIAL_UL EQU 0X2E
          SERIAL_UH EQU 0X00 ;MSB

          K0 EQU 0X9D ;LSB ‘MANUFACTURE CODE’
          K1 EQU 0X20
          K2 EQU 0XE8
          K3 EQU 0XB5
          K4 EQU 0X07
          K5 EQU 0XB0
          K6 EQU 0X98
          K7 EQU 0XCE ;MSB

          !!!!!- it is not working. Only the LED (PIN2) blinking.(Pickit2 programmer HCS301 value)

          9D 20 E8 B5 07 B0 98 CE 00 00 00 00 4F 1E 2E 00
          00 00 00 00 00 00 00 00

    2. Hi Mesmert!
      Unfortunately, I don’t know how to help you about use ‘Seed’ and ‘Disc’. I am not a professional programmer, but like only a hobby. The note applications has little information about the use of ‘ seed ‘ and ‘ disc ‘. The code that was published may have bugs , despite having worked in the tests I did. I thought more in ‘didactic use’.
      I also have not Pick2kit for testing or another programmer for Hcs. If you are programmer try changing the code to accomplish what you want . But try to contact the Microchip , especially Keelogs about the code and operation.

      Cláudio

Comments are closed.

Back To Top