quinta-feira, fevereiro 02, 2017

O Kit RC2014 - Comunicação Serial

É através deste último módulo que vamos interagir com o nosso computador, interligando-o a um PC ou terminal.


O coração desta placa é o integrado MC68B50 que é uma UART (ou, como o fabricante a chama, uma ACIA -  Asynchronous Communications Interface Adapter) bem simplista do ponto de vista de recursos e um pouco confusa em termos de interface com o microprocessador.


A interface com o Z80 contém três sinais de seleção (CS0, CS1 e CS2), um sinal de enable (E) e um sinal de seleção de registrador (RS), além da seleção entre leitura e escrita (R/W). Vejamos as ligações:
  • CS0 está ligado a M1
  • CS1 está ligado a A7
  • CS2 (que é active low) está ligado a A6
  • RS está ligado a A0
  • E é ligado a IORQ (invertido por uma porta do 74LS04)
 O resultado disso é que a leitura no endereço 10xxxxx0 de I/O lê o registrador de status, a leitura no endereço 10xxxxx1 lê o buffer de recepção. A escrita em 10xxxxx0 altera o registrador de controle e a escrita em 10xxxx1 escreve no buffer de transmissão. Os buffers são os tradicionais buffers de apenas um byte.

O registrador de controle oferece algumas opções: formato dos dados, controle de fluxo por RTS, interrupções de recepção e transmissão e divisor do clock. Este último tem apenas três opções de divisão: 1, 16 e 64, portanto nada de muitas opções de baudrate configuráveis por software sem hardware adicional. O firmware do RC2014 divide o clock da CPU por 64 para gerar 115200bps.

O registrador de status tem as informações tradicionais: caracter recebido, pronto para transmitir, erros de overrun, framing e paridade, sinais de controle de modem DCD e CTS.

O kit vem com um conector espeto para ligar o famoso "cabo FTDI" (conversor serial USB TTL), um jumper permite ligar a alimentação do cabo ao sinal 5V do barramento. Alternativamente, pode ser montado um MAX232 (não fornecido) para ligar a uma velhusca porta RS232.

A placa é plenamente satisfatória para muitos usos, mas tem duas coisas que me incomodam. Uma é o uso de poucos bits de endereço na seleção, o que faz com que um chip que precisa de apenas dois endereços ocupe uma faixa de 64. A outra é o baudrate praticamente fixo, o que reduz a flexibilidade.

3 comentários:

DVM - Delphi Virtual Machine disse...

DQ.
Ví numa foto do RC2014, que vem junto um BASIC da Microsoft.
Como foi feita essa foto? Tem algum tipo de interface com TV? Monitor? Não ficou claro como seria possível. Poderia num próximo post colocar essa possibilidade (se é que existe)?
Esse BASIC, pode se comunicar pela serial? Seria possível ligar com um conversor a um PC (acho que entendi que isso é possível)? Daria para fazer o mesmo com um Arduino (Na RX/TX dele)?
Tem como obter o conteúdo do chip que tenha esse BASIC? Vc. Leu e guardou um backup?
Grato pela atenção.
Euclides.

Daniel Quadros disse...

O kit vem com esta placa de comunicação serial para ser ligado (através de um cabo FTDI) a um PC rodando um emulador de terminal, é através dela que o BASIC recebe os comandos e envia mensagens. O fonte e conteúdo da ROM está em https://github.com/feilipu/NASCOM_BASIC_4.7

DVM - Delphi Virtual Machine disse...

Grato, DQ!