HT1380 + SPI hardware

Software e Hardware para uC Holtek

Moderadores: andre_luis, 51

HT1380 + SPI hardware

Mensagempor Nightcrawler » 29 Mai 2007 20:38

Pessoal, fiz um projetinho com HCS08, HT1380 e um display, pra testes. Encontrei um monte de exemplo de comunicação com HT1380, emulado uma SPI por software. Montei uma lib pra ele e funcionou direitinho. Mas quando fui testar a SPI por hardware, não teve jeito. O mcu recebe tudo 0 ou tudo 1. Tentei com clock ativo em 1, clock ativo em 0, ler na subida do clock, na descida, com clock a 500KHz, 100KHz, 1KHz e não teve jeito. O estranho q é por software funciona e por hardware não. Alguém pode me da uma ajuda???
Diego
Avatar do usuário
Nightcrawler
Byte
 
Mensagens: 450
Registrado em: 11 Out 2006 14:20
Localização: Santa Maria - RS

Mensagempor Nightcrawler » 30 Mai 2007 12:35

Ninguém usou esse CI com comunicação SPI por hardware??
Diego
Avatar do usuário
Nightcrawler
Byte
 
Mensagens: 450
Registrado em: 11 Out 2006 14:20
Localização: Santa Maria - RS

Mensagempor Nightcrawler » 30 Mai 2007 23:47

Bueno, quebrei a cabeça um pouco pra descobri, e como sempre foi apenas um detalhe. O envio dos dados se inicia pelo bit LSB.
O datasheet desse componente é bem fraquinho e encontrei mais informações nesse pdf -> http://www.cika.com/soporte/TechComm/CTC-013_HT1380.pdf
Agradeço a ajuda do Proex.
Diego
Avatar do usuário
Nightcrawler
Byte
 
Mensagens: 450
Registrado em: 11 Out 2006 14:20
Localização: Santa Maria - RS

Mensagempor RobL » 31 Mai 2007 21:18

Dei uma lida no arquivo indicado e nunca tinha visto a observação feita em nenhum manual, ou seja, nem no da Holtek nem da Dallas Maxim no 1302 de que o pulso de clock tenha que estar em zero para trazer o reset a zero.
O que está claro é que sempre após transmitir 16 bits ou transmiir 8bits e receber 8bits, a lógica interna tem que ser reinicializada, trazendo o reset a zero lógico exceto em burst mode.
No caso de escrita bits a mais que os 16 bits serão ignorados. Já no caso de leitura bits de clock a mais que os 16bits farão repetir o mesmo byte a cada 8 clocks (vou verificar isso em breve).
Como em todas minhas aplicações ao descer o reset o clock está em zero não sei se por isso nunca deu problema. Mas anotei essa observação, a qual tenho certa dúvida sobre essa necessidade, pois ao descer o reset todo o processo em andamento será abortado e a lógica interna reincializada.
Já ao subir o reset, o fato do clock estar alto, não sei dizer se daria problema de fato, pois o manual afirma ser válido somente as transições. Se de fato for, tanto faz o estado do clk no momento de subir ou descer o reset.
Isto poderia confundir o programador no caso de usar SPI por software, e contar uma subida de clock como válida ao subir o reset o que não seria válido.
Já no caso de um SPI por hardware não vejo problema dede que o byte seja posto no registro a transmitir após a subida do reset (SS) o clk estará em zero desde que o periférico tenha sido inicializado.
Estou simulando um SPI por hardware com o HT-1380 para AVR mas não testei na real ainda. Até agora parece que vai funcionar sem problemas.
RobL
Dword
 
Mensagens: 1546
Registrado em: 20 Fev 2007 17:56


Voltar para Holtek

Quem está online

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

cron

x