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:
Segue abaixo o arquivo HEX (chaves negativas/Pic 12f629):
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!!!
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
Hi Mesmert!
Im sorry! I don’t know about Normal Learning or Secure Learning. Only Simple Learning method.
Cláudio
Hello Claudio
I want to write the Disc and Seed value. Is this possible?
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
***** 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
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
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