domingo, 24 de dezembro de 2006

Interface SPI + I2C simplificada

Com um mínimo de hardware (apenas 3 CIs) é possível implementar uma interface para suportar 2 portas SPI e mais um barramento I2C.

A interface, mapeada em I/O, utiliza um pino livre do próprio decodificador interno do MSX (IC5 no HotBit e IC29 no Expert).

As portas funcionam no modo "bitbang", mas para otimizar a velocidade, foram usados alguns artifícios:
  • Os bits de entrada estão localizados nas posições 0 e 7 da palavra lida. Assim, para ler um bit, bastam duas instruções de rotação de registrador com "carry";
  • Um "latch" endereçável de 8 registradores de 1 bit (LS259) permite escrever um bit com uma rotação e e uma soma com "Carry";
Esta interface permite ligar vários dispositivos interessantes, como:

SPI:
  • Cartões de memória de Playstation;
  • Cartões MMC/SD (em modo SPI);
  • Joysticks de Playstation;
  • Relógios de tempo Real;
  • Displays LCD de celular;
  • Relógios de tempo real (DS1302,...);
  • Memórias seriais (94x46,...);
I2C:
  • Memórias seriais (24Cxx);
  • relógios de tempo real (PCF8583);

2 comentários:

Unknown disse...

cara , seu potencial e alto, mas acho que devia usar para alguma plataforma mais nova...
Parabens..

Alexandre disse...

discordo. o 8 bit tem mt para onde crescer.
gostei da ideia do cartao psx (hehe quase o m ia saindo rs) eu baixei o portar.txt do martin no$cash, mt bem detalhada. tenho um expert plus sem nada...