Página 1 de 2
Gravar senhas na Flash HCS08

Enviado:
12 Abr 2010 23:39
por gobatto
Boa noite pessoal!
Estou com um pequano problema e gostaria que alguem me ajudasse.
Tenho um desafio em ter de gravar 100 senhas de 16bits na flash do HCS08. Quanto o processo de gravar e separar o dado de 16bits em 2 de 8 bits... sem problemas.
O que nao estou conseguindo... e simplesmente o fato de arranjar uma logica em poder gravar essas 100 senhas na flash e, o mais importante, poder comparar a senha digitada com a senha gravada em flash.
Se nao me entenderam, explico melhor. Tenho o encoder da holtek (HT12E), este é um encoder de 2^12, o qual esta num transmissor remoto.
Logo neste IC pode-se enviar endereco e dado, estou trabalhando somente com dado. Mas o dado eh codificado tao somente pelo usuario, por este motivo preciso fazer com que o receptor, na opcao cadastrar, receba esse dado e grave na flash, para nao perde-lo ao faltar energia.
Entao, sao 100 senhas que o micro vai ter de armazenar (isso somente no modo prog por exemplo) e quando receber novamente essa mesma senha, vai ter de comparar com o que esta na flash e se caso tiver, liberar a porta.
Sei que parece algo simples, mas eu nao estou conseguindo achar o caminho!!!
Agradeco se alguem puder me ajudar.

Enviado:
13 Abr 2010 08:05
por KrafT
Os HCS08 não podem rodar o programa na flash e gravar nela simultaneamente. Logo, para poder gravar na flash tem que jogar o programa para a RAM, o que pode ser feito por rotinas prontas, como o doonstack.asm:
http://www.freescale.com/files/microcon ... AN3942.pdf
Eu tentei utilizar esse recurso, mas eventualmente o CRC-16 que utilizei para validar esses dados não batia, então por falta de tempo para ver aonde estava o erro, passei a utilizar um EEPROM I2C externa.
Como o documento indicado acima é de 12/2009 talvez voce não passe pelos mesmos problemas que eu.
No item 3.1 tem um exemplo para o JM60, talvez voce deva ajustar a inicialização para que o clock da flash fique na faixa permitida (150 a 200kHz).

Enviado:
13 Abr 2010 08:19
por gobatto
Ola Kraft,
Na verdade nao tenho problemas com a gravacao na flash, pois antes de iniciar uma nova gravacao na flash eu faco um reset.. depois inicio a gravacao e tb uso o doonstack.asm e nao tive problemas ate agora.
Mas a minha questao, eh de como funciona a logica para comparar o dado recebido com o que esta na flash (ja gravado)? Ou seja, digamos que eu ja tenho arquivado as 100 senhas, desde o endereco E000 ate E200, isso significa que ja ocupei todo o espaco destinado para as 100 senhas.
Pois bem, agora o usuario vai entrar com senha, eh onde estou me perdendo, comparar a senha digitada com o que esta na flash.

Enviado:
13 Abr 2010 09:49
por KrafT
Bom se fosse em C eu faria um FOR varrendo toda e Flash das senhas e comparando com a variavel desejada. Em asm vale a mesma lógica.
Caso ache um registro igual retorna 1 e se não retorna 0.
Voce tem a senha do usuario em uma variavel já?
E ler a Flash voce consegue?

Enviado:
13 Abr 2010 10:22
por gobatto
Puxa... essa eh uma boa ideia Kraft... veja so..as vezes coisas sao tao simples que nos mesmos complicamos..,neste caso eu compliquei.
Referente as sua duas perguntas:
1- sobre a senha do usuario: a senha digita (ou as senhas) vou armazena-las em uma variavel sim, para depois varrer a memoria e comparar.
2- para ler a flash, consigo ler sem problemas, so nao testei ainda na questao de varrer toda a faixa destinada para armazenagem das senhas.
Nao testei, pelo fato de estar conseguindo achar a logica correta, ou melhor, fazer um software legivel e que nao produzisse um codigo muito grande.
Eu fiz um software, mas o codigo que ele gerou foi de 6k, isso eh absurdo, pois se colocar no QG8 nao teria problema, mas no QD4 seria um grande problema. E outra, o software ficou muito ruim na questao de legibilidade.
No entanto, para torna-lo mais legivel e pratico separei ele todo por arquivos, assim faco uso de variaveis extern e chamadas de funcoes externas tb. Isso fica bem legivel e otimizo o codigo.

Enviado:
13 Abr 2010 10:41
por fabim
gobatto.
Este HT12 é muiiito velho, e na não é mais utilizado hoje em dia.
Existe coisa não tão nova, mais bem usual e simples, e que se precisar eu te arrumou o programa em C, que até ja esta aqui no forum la no PIC, e você faz a adaptação para o QC08...
HT6P20B

Enviado:
13 Abr 2010 10:49
por KrafT
Poisé.. O software está em C ou em asm?

Enviado:
13 Abr 2010 11:47
por gobatto
Ola Fabim!
Concordo com voce que ja esta velho,mas ainda eh muito utilizado. Referente ao HT6P ele eh 2^24... TAMBEM VOU USAR ESTE...
Fabim se voce puder me passar o programa em C lhe agradeco, pois ja procurei no forum e nao encontrei.
Ficaria grato mesmo se conseguisse para mim, depois eu adapto para o HCS sem problemas.
[]'s

Enviado:
13 Abr 2010 11:50
por gobatto
Kraft!
O software esta todo em C!

Enviado:
14 Abr 2010 11:57
por gobatto
fabim escreveu:gobatto.
Este HT12 é muiiito velho, e na não é mais utilizado hoje em dia.
Existe coisa não tão nova, mais bem usual e simples, e que se precisar eu te arrumou o programa em C, que até ja esta aqui no forum la no PIC, e você faz a adaptação para o QC08...
HT6P20B
Fabim,
verifiquei no forum do pic, mas nao encontrei o programa em C que tu me falaste. Apenas encontrei em asm, mas como faz muito tempo que nao trabalho com asm, nao consegui pegar a filosofia da coisa.
Se puderes consegui-lo para mim, voce pode me passar no meu e-mail!

Enviado:
14 Abr 2010 14:16
por msamsoniuk
no livro do fabio pereira de hc908 ou hcs08 nao tem isso nao? se nao me falha a memoria, eu fiz o meu gravador de flash no hc908 baseado no livro dele e lah ele ensina a apagar a flash toda ou blocos.

Enviado:
14 Abr 2010 15:09
por gobatto
boa tarde Marcelo,
eh como eu postei no inicio... o problema nao eh a gravacao e nem como se faz a leitura do codigo, pois isso ja esta tudo pronto e funcionando muito bem obrigado.
A questao eh a logica para varrer a memoria e ver qual o proximo endereco onde sera gravado o novo codigo + logica para comparar codigo recebido com o codigo ja cadastrado.
E poder fazer tudo isso com um programa bem legivel e que tenha um codigo nao muito grande. Nao posso passar de 2K.

Enviado:
14 Abr 2010 21:28
por mastk
Ola gobatto, agora deixou a duvida mais clara, sim eh possivel fazer isso, mas se quer codigo pronto, por favor, se coloque no meu lugar e dos outros foristas, eh pedido ofensivo...

Enviado:
14 Abr 2010 21:55
por fabim
gobatto escreveu:fabim escreveu:gobatto.
Este HT12 é muiiito velho, e na não é mais utilizado hoje em dia.
Existe coisa não tão nova, mais bem usual e simples, e que se precisar eu te arrumou o programa em C, que até ja esta aqui no forum la no PIC, e você faz a adaptação para o QC08...
HT6P20B
Fabim,
verifiquei no forum do pic, mas nao encontrei o programa em C que tu me falaste. Apenas encontrei em asm, mas como faz muito tempo que nao trabalho com asm, nao consegui pegar a filosofia da coisa.
Se puderes consegui-lo para mim, voce pode me passar no meu e-mail!
áááá muléque sem vergonha, vem aqui que vou te curar com a havaiana de PAU. E logo te dou um jeito com o trabisseru de preda, eu disse predaaaaaaaaaaaaaaaaaaa.
http://www.asm51.eng.br/phpbb/viewtopic ... ght=ht6p20
Fala sério?@ tu não doi lá encima e procurou a junção de letras "HT6P20" né ?

Enviado:
14 Abr 2010 22:39
por mastk
Fabim aos meus olhos
Ainda assim, ele quer uma rotina para gerenciar as senhas...