terça-feira, maio 10, 2022

Computador Baseado no 6809

 Concluí a montagem de um computador usando o microprocessador MC6809, baseado no projeto de Grant Searle. Compartilho aqui alguns detalhes.


Resultado final. A caixa à direita é o meu terminal.


Fiz as seguintes alterações em relação ao projeto original:

  • No lugar de um simples resistor de pull-up usei um circuito DS1833 para gerar o sinal de reset.
  • Não coloquei o conversor para RS232, deixei a interface serial com nível TTL, com a opção de usar um divisor resistivo para reduzir o sinal de Tx para 3,3V.
  • Ao invés de ligar o CTS diretamente a terra, coloquei um resistor de pull-down e disponibilizei o sinal no conector da serial para permitir fazer controle de fluxo.
  • Usei uma EEProm 27E512 ao invés da EPROM 27128, por ser o componente que tinha disponível. Um desperdício, já que usei apenas um quarto da capacidade, deixando o dois sinais de endereço mais significativos em nível baixo.
A técnica de montagem foi a mesma dos micros anteriores com 1802 e 6502: placa padrão com conexões feitas com fio wire-wrap soldado. Bem trabalhoso e sujeito a quebras dos fios quando movimentados demais durante a montagem. Reforça o desejo de adquirir habilidade com o Kicad e fazer PCIs para este tipo de montagem.



Uma decisão infeliz foi não colocar um regulador de tensão e tentar alimentar direto com os 5V de um carregador de celular. Os carregadores que eu testei deram menos de 5V, o que fez o DS1833 manter o processador ressetado. Precisei voltar atrás nesta decisão e usei um "mini regulador de tensão DC ajustável", um minúsculo regulador chaveado de baixo custo, alta eficiência e que fornece até 1,8A contínuos (segundo as especificações). O único defeito neste regulador é que o trimpot dificulta o ajuste preciso da tensão (um multi voltas ia bem aqui).



Ao invés de uma caixa de MDF/acrílico feita em laser cutter, optei por uma caixa padrão de plástico da Patola. Os rasgos na parte traseira ficaram meio toscos mas gostei do resultado final. No painel frontal coloquei uma chave liga/desliga e um botão de reset com LED (aceso quando o computador está ligado).

Para os testes usei um terminal que estou desenvolvendo com o RP2040 Zero. Este terminal permite ligar um teclado USB e um monitor VGA. Ainda falta muita coisa para eu ficar contente com ele, mas vocês podem acompanhar o projeto no meu github.

O computador roda uma versão do Microsoft BASIC. Ainda não experimentei rodar alguns programas da minha coleção mas parece ser bem rápido.

2 comentários:

@marcelolarios disse...

Grande DQ! Esse prompt me fez lembrar to TK 85. Alguma outra semelhança?
Recentemente quiz fazer um no mesmo estilo do TK, algo que se liga e já se pode codificar, direto na linguagem.
Achava o hardware do TK muito legal, com uma caixa estilosa e os botões chiclete multi-funções.
Esse projeto seu tem futuro!
Abraços,
Marcelo

Daniel Quadros disse...

Olá Marcelo! Então, não tem muita semelhança (fora rodar BASIC). Este computador requer um terminal para entrada e saída (o que estou desenvolvendo com uma Raspberry Pi Pico). O TK8x já inclui um teclado e saída para TV. O circuito do ZX81 (que é a base do TK85) pode ser achado na internet mas é bastante complexo se for fazer com componentes normais. O ZX81 usava um chip semi custom (uma ULA), eu tenho um equivalente feito com CPLD e "algum dia" vou montar um ZX81 na protoboard. Uma alternativa para um computador que entra direto no BASIC é usar uma Raspberry Pi com o RISC OS Pico: https://dqsoft.blogspot.com/2017/03/risc-os-pico-uma-experiencia-retro-no.html