Eu criei sinais pra desabilitar o "reset" do gerador automático de clock nos eventos de leitura e de escrita na porta SPI, mas me esqueci de que os sinais que acionam o 74HCT595 e o 74HCT165 ficaram DEPOIS do circuito de desabilitação, ou seja depois dos flip-flops sincronizadores. Assim, não é possível nem ler o byte que foi transferido anteriormente, nem carregar um novo byte para ser transferido depois.
Quanto ao sinal "LD165", que vai para o 74HC165, é fácil de resolver, pois basta conectar este sinao à linha /WR0, ou seja, antes do flip-flop. Já o sinal "RCK595" temque ser tirado de um outro ponto, pois este é invertido em relação ao sinal /RD0. Assim este sinal vai ser retirado do evento do STOP do gerador de clock automatico (pino 8 do contador 393).
Com estas configurações vai ser possível o funcionamento como se fosse um "hardware" SPI tradicional, ou seja
OUT (porta dados), valor
serialização automática do valor
e em seguida IN (porta de dados)
O circuito atual pode ser visto abaixo, já com as modificações incorporadas.

clique na imagem para ampliar
Daniel! Não pergunta como e cheguei aqui no seu blog, mas a história é longa! :)
ResponderExcluirUma pergunta que não quer calar, como um blog tão interessante com um projeto mais interessante ainda não tem um comentário se quer de visitantes?
Meu caro, meus parabéns!
Luciano/msxpró :)
Salve Luciano. Muito obrigado...
ResponderExcluirO Blog está servindo por enquanto mais como um diário do projeto. Pra não gerar expectativas, eu decidi não divulgar enquanto não tivesse algo funcional, pois nem sempre a gente consegue terminar todas as coisas que começa.
Mas o trabalho continua.
[]s
Ei Danjovic, parabens pelo seu trabalho!!! Mas uma curiosidade: Porque voce nao usa um microcontrolador ao inves desse batalhao de ttl?
ResponderExcluirA proposito: Voce faz essas plaquinhas face-simples no Eagle? Usa roteamento automatico ou manual? Quer dar umas dicas pra colocar la no taba labs? :oD
Salve Alexandre.
ResponderExcluirEu pensei de início em usar um microcontrolador, mas para sincronizá-lo com um Z80 a 8MHz, eu precisaria de responder em apenas 312nS, ou então inserir "wait states". Como um dos objetivos é transferir dados à máxima velocidade possível do Z80, eu preferi deixar o microcontrolador de lado por enquanto. Além disso os chips usados são fáceis de se encontrar e são baratos.
Eu roteio manualmente as placas, usando o Eagle mesmo, mas se o projeto é mais complexo, eu costumo fazer antes alguns rascunhos em papel, pra decidir a melhor localização dos componentes.