Decodificar HT6P20B

Circuitos eletrônicos, topologias, diagramas elétricos, etc...

Moderadores: 51, Renie, gpenga

Mensagempor fabim » 10 Mai 2007 11:51

pessoalico.

deem uma olhada no fonte para o ht6P20B>
na parte
RECEIVE: ;SINCRONISMO

Tava com logica invertida.
e pra testar se 1 e não se 0.

Enquanto ao timer 0.
esqueçam ele, Eu uso apenas para o tempo que ele fica esperando ate capturar um codigo 6p20 valido após todos os estouros ele sai.

fabim
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor fabim » 11 Mai 2007 08:22

heloooooo.
de nada viu >!>!>!>!

alguem testou o menino ?

Eu fiz uma gabi. o fonte esta funcioanando agora.


Fabim
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor Adauto sampaio » 11 Mai 2007 08:26

Aí Fabim, não testei ainda por falta de um "maledeto" cristalzinho de 8 Mhz. Acho que até amanhã consigo achar ele e daí já viu né, "meto o pau" no bichinho. Valew.

Abraços!!!

fabim escreveu:heloooooo.
de nada viu >!>!>!>!

alguem testou o menino ?

Eu fiz uma gabi. o fonte esta funcioanando agora.


Fabim
É tudo uma questão de sorte; pergunte a qualquer perdedor
Adauto sampaio
Byte
 
Mensagens: 123
Registrado em: 07 Jan 2007 16:02

Mensagempor fabim » 11 Mai 2007 08:42

hehe. testa o primeiro que eu postei, para o 12F629.
So umas modificaçõeszinhas bestas pra passar pro 16F628 e rodar com 4 mhz interno mesmo.

Ta funfando redondinho

Abraços

Fabim
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor Adauto sampaio » 11 Mai 2007 09:51

Então, eu testei esse programa adaptado, mas tem hora que quando eu aperto o botão, ele não acende a led learn. Quando acende, ele grava direitinho, funciona legal. Mas independente de acender ou não a led, se eu aperto por mais de 6 segundos, ele apaga normal (dá as duas piscadas). Vo pegar esse fim de semana pra fazer o bicho funcionar legal. Valew.
Abraços!!!

fabim escreveu:hehe. testa o primeiro que eu postei, para o 12F629.
So umas modificaçõeszinhas bestas pra passar pro 16F628 e rodar com 4 mhz interno mesmo.

Ta funfando redondinho

Abraços

Fabim
É tudo uma questão de sorte; pergunte a qualquer perdedor
Adauto sampaio
Byte
 
Mensagens: 123
Registrado em: 07 Jan 2007 16:02

Mensagempor fabim » 11 Mai 2007 16:18

áááá. sim.

Sobre ter hora que ele não acender é normal.

Sabe porque do porque.

Eu apanhei pra caramba.

Até o dia que liguei o osciloscopio em captura por 10S.

é que o receptor de 433 fica recebendo dados aleatoriamente, se na hora que ele tiver tratando dados vc por infelicidade apertar o botão ele não acende o led.

Normal.

mais de qualquer forma, para os que sabem pelo menos alguma coisa de logica de programação, a rotina de recepção funciona igual um reloginho, é so colocar em pratica de formas diferentes.

Claro que eu não iria colocar o ultimo fonte que eu criei, a prova de erros.. com WDT ligado etc.

Mais de qualquer forma esta aí minha contribuição para os que queriam saber como a roda roda.

abraços a todos

Fabim
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor comdek » 12 Mai 2007 19:32

Cara, primeiramente parabéns pelo código. :D
Dificilmente é encontrado pronto assim.

Há um tempo atrás eu desenvolvi uma central de alarme aqui pra casa, foi o começo de uma longa jornada hehehe.
A primeira versão da central usava vários 555, 7474 e mais uns que não me lembro. Infelizmente o alarme precisava de um controle remoto, senão não teria como ligar, usando chave não daria certo.
Assim comecei a estudar microcontroladores através de tutoriais achados na internet.
Comprei meu primeiro PIC16F628A e montei um gravador JDM. =D
O primeiro tutorial foi o pisca-pisca de leds (é o melhor pra começar a entender :D)
Depois de aprender o básico do CI, consegui fazer a segunda versão do alarme. Comprei um receptor de controle remoto que pulsava um relé quando acionado.
Infelizmente o alarme foi pouco usado, pois dificilmente todo mundo saia de casa ao mesmo tempo, e também esqueciam de ligar :(
Aí depois de um tempo criei a 3ª versão do alarme, que funciona até hoje :D . Nela é possível escolher 3 funções de operação: TOTAL, Anunciador e Somente Externo.
O Total, é habilitado todos os sensores (4 no total) e dispara as sirenes quando é detectado movimentos. 5 minutos de barulho e rearma automaticamente.
O Somente Externo, só é habilitado os sensores fora da casa (2), o funcionamento é o mesmo do Total.
O Anunciador é o mais usado aqui. Nele, quando alguém passa no sensor da garagem, a 2ª sirene dispara por 2 segundos e acende as 2 luzes da casa por um tempo. Mas não termina por aí, os 2 sensores internos também são usados para acender as luzes internas quando alguém vai na cozinha ou na sala, parecido com os sensores de presença, mas usando os do próprio alame.

E agora vou começar a desenvolver a 4ª versão do alarme, 3 anos depois. :D
Essa promete, hehehe.
Quero ligar a central junto com a internet banda larga, se possível sem depender de computador 24hrs, e sim ligado direto no roteador. Assim seria possível controlar toda a casa (luzes, alarme, portão) através de um computador ou um celular via WAP.

Já usei o PIC16F628 para vários projetos que já fiz e ele nunca me deixou na mão. =D
Não uso ele pra fins comerciais, e sim um hobby que nunca vou abandonar, a eletrônica.

Também estou começando a estudar processadores usados em set-top boxes. Selecionei o GSD-1500 da SKY para desenvolver um novo software para ele pra sintonizar canais livres (FTA).
Aqui o site que fiz pra acompanhar o projeto:
http://www.comdek.com.br/gsd1500/
Infelizmente tá parado por um problema de gravação da flash (29LV160), mas espero que em breve resolva esse problema. :)


De novo, parabéns pelo código e muito obrigado por disponibilizar para todos. Quero ver se consigo um receptor de 433Mhz, achei da PROLIT: http://www.prolit.com.br/manuais/manual_PLT25.pdf que é uma empresa daqui de Curitiba e assim que conseguir, testo o seu código. :)

Obrigado mesmo!!

Abraços
Comdek
COMDEK ZONE
comdek
Bit
 
Mensagens: 7
Registrado em: 18 Dez 2006 22:01
Localização: Curitiba - PR

Mensagempor fabim » 13 Mai 2007 08:07

flw.
disponha.

Estamos aqui para ajudar mesmo.

:=)..

fabim

Vou postas nessa semana para o hcsXXX.
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor Fabio_Jerena » 30 Mai 2007 14:07

Pessoal, ainda estou tentando ler esse encoder mas por enquanto sem sucesso, não sei se eu não entendi direito a carta de tempos dele...
Eu estou fazendo o seguinte, meu PIC 16F628A está trabalhando à 4MHz (período de 1us), quando eu recebo um pulso no pino RB0 (interrupção externa) e configurado para Interrupção Externa por borda de descida eu seto o timer0 para contar até 200 (inicio ele em 55 e com um pré-scaler de 32, contando até 200 ele contará até 6400 que é 80% do tempo que leva entre duas bordas de descida no startbit (24 ciclos para um clock de 3KHz) , então na Interrupção de estouro do timer0 eu seto um flag de ocorrência do startbit, dessa forma quando ocorrer a borda de descida do startbit eu posso iniciar a leitura dos bits pois já sei se o startbit ocorreu ou não.
Para ler os bits logo depois dessa borda de descida zero o timer1 e programo para interromper numa borda de subida, quando ocorrer guardo o valor do timer1 (tempo_low) e zero ele novamente e programo para interromper na borda de descida, quando esta ocorrer leio o valor do timer1 e guardo (tempo_high), comparo esses dois tempos e sei se o bit é 0 ou 1 (se tempo_low maior que tempo_high vale 1 e no inverso vale 0), fazendo isso 28 vezes para ler tb o anti-code que são os últimos 4 bits finais...
Minha dúvida é o seguinte, logo depois do anti-code já se inicia o startbit novamente ou acontece alguma coisa nesse meio tempo (que até agora eu ainda não entendi aquele bendito desenho do datasheet (Transmission Timing), pela carta de tempos eu adotei os ciclos de clock como sendo o período referente à uma freqüência de 3KHz, ou seja, para o número zero são 333 us em low e 666us em high, é isso mesmo?
Eu não tenho oscilosópio para mexer com isso e é um inferno ficar só imaginando as coisas sem poder realmente "ver" o que está acontecendo, alguem sabe algum meio de simular isso no Proteus, eu estou usando ele para conferir meu projeto, mas não tenho muita técnica para debugar e avaliar programas com o próprio Proteus (eu ia tentar usar o Pulso pw (não lembro o nome direitinho) porem devido estilo do gráfico eu não consigo misturar os bits com o startbit devido escala no tempo...)
Obrigado pessoal!!!
Fábio Jerena
Fabio_Jerena
Nibble
 
Mensagens: 52
Registrado em: 08 Mar 2007 08:59

Mensagempor maack » 31 Mai 2007 15:31

Olá Jerena, também tive problemas com o maledito ht6p20b. Não sei como um CI que é quase um padrão de mercado tem datasheet tão mal explicado, principalmente em relação as temporizações. Eu precisei decodificar o ht6p20b com um 16f84 (clk 4Mhz), não dispondo do TMR0, pois este já estava comprometido. Adotei uma abordagem um pouco diferente para a decodificação, ao invés de medir duty cicle para "1" e "0", eu fiz uma medida do startbit, se esta medida for válida, o programa inicia a recepção. Durante a recepção eu leio o valores exatamente na metade do bit, ou seja, após a borda de descida ao final de cada bit eu aguardo o um tempo equivalente a um ciclo e meio de clock para então efetuar a leitura, se o valor lido for "Alto" o bit corresponde a "0", caso contrário correponde a "1". O meu código está escrito em C com temporizações para um fosc 2.2khz. Embora a metodologia que utilizei seja baseada em "força bruta", o programa funciona bem. Se vc quiser posso lhe enviar por e-mail.

Até mais!
maack
 
Mensagens: 2
Registrado em: 13 Dez 2006 14:15

hardware

Mensagempor tecman » 10 Jun 2007 19:11

alguem tem algum hardware exemplo para este fonte com o 628
tecman
Byte
 
Mensagens: 342
Registrado em: 01 Nov 2006 09:02

Mensagempor HC908 » 02 Fev 2008 18:19

ai esta amigo uma rotina bem simples para decodificar o HT6P20B da holtek. qualquer duvida é so escrever . A função retorna verdadeiros se os dados forem recebido corretamente. no primeiro momento ele aguarda o "pilot period". dados são gravado na variavel de DATA.

Obs. Resistor do oscilador 2M2, ou seja frequencia de 2khz

Código: Selecionar todos
#define RFIn   RB0           //entrada do sinal de RF
#define NBIT            28   // numero de bits
INT32 DATA=0;

int1 decoder(void)
{
byte x=0;
int16 time_aux=0;
DATA=0;
   while(!RFIn)
   {   
      time_aux++;
      delay_us(10);
   }

   if((time_aux>1149) || (time_aux<=1151))
   {
   
           for(x=0;x<NBIT;x++)
           {
               while(RFin);
               delay_us(250);
   
               if(RFIn)
                {
                  return FALSE;
               }
   
               delay_us(500);
               if(!RFIn)
               {
                  data|=0x8000000;
                  data>>=1;   
               }else data>>=1;
               delay_us(500);
               if(!RFin)
               {
                  return FALSE;
               }
            
            
           }
           return TRUE;
   }      
   else return FALSE;

}
HC908
Byte
 
Mensagens: 248
Registrado em: 26 Mar 2007 09:55

Mensagempor Roledo » 04 Dez 2008 21:12

Fala Fabim,

Montei esse decoder mas nao deu certo. Ele nao grava o codigo. acende o led depois de 6 seg apaga mas nao gravou nada.

Sabe me dizer como faço pra debugar no hardware?

Valeu,
Atenciosamente,

Ronaldo Roledo.
"A palavra não ensina ninguém, um exemplo mais de cem."
Avatar do usuário
Roledo
Bit
 
Mensagens: 13
Registrado em: 19 Out 2008 01:24
Localização: Sorocaba - SP - Brasil

Mensagempor EvandroPic » 04 Dez 2008 23:02

o Fabim foi expulso... :o
nunca mais apareceu...
EvandroPic
Byte
 
Mensagens: 120
Registrado em: 28 Out 2008 15:28

Mensagempor Roledo » 05 Dez 2008 00:16

Serio?

Porque expulsaram?
Atenciosamente,

Ronaldo Roledo.
"A palavra não ensina ninguém, um exemplo mais de cem."
Avatar do usuário
Roledo
Bit
 
Mensagens: 13
Registrado em: 19 Out 2008 01:24
Localização: Sorocaba - SP - Brasil

AnteriorPróximo

Voltar para Circuitos Diversos

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x