TBBlue

Em 01 de março de 2016

A seguir apresento um pequeno tutorial sobre a preparação e funcionamento da placa TBBlue.

1 - Preparando o FPGA


Para o TBBlue funcionar é necessário uma plaquinha chinesa chamada de EP2C5T144 Mini, que pode ser facilmente obtida no eBay e alguns sites como a DealExtreme.


Ela vem programada com um auto-teste, então encaixando uma fonte de 5V (atenção fonte regulada), um grupo de LEDs na placa pisca a cada 1 segundo.

A placa, além da própria pastilha FPGA, tem um oscilador de 50Mhz e uma pequena memória que contém a programação, portanto ele precisa de uma gravação inicial.

Para esta gravação é necessário o software Altera Quartus que está disponível gratuitamente para Windows e Linux. No momento ele está na versão 15.1, mas recomendo a 13.0sp1 que é a versão que foi utilizada durante o desenvolvimneto. Inclusive é uma boa idéia manter esta versão para futuramente recompilar o código-fonte e fazer suas próprias experiências. Baixe também este arquivo e descompacte em alguma pasta, ele contém o .POF necessário nos próximos passos, na pasta "/Vtrucco". Esta é a versão 1.06 do firmware.

Ligue o USBBlaster na USB e e cabinho dela no conector "AS" da plaquinha (é o conector mais próximo da borda). Não esqueça que a plaquinha precisa estar também ligada na fonte 5V citada acima para a gravação acontecer.


Com tudo pronto, execute a versão correta do Quartus de acordo com a sua máquina (32 ou 64 bits).


Para a gravação, selecionamos o quarto icone da barra, conforme mostrado em vermelho na imagem.


Na nova janela, trocamos o "mode" para Active Serial Programming e então o botão "Add File" e selecionamos o .POF que foi descompactado em alguma pasta.


Marque as caixas "Program/Configure" e "Verify" e de um "Start". A barra de progresso aumentará e depois de alguns segundos mostrará a mensagem de sucesso.




A programação está ok, mas antes da plaquinha servir como CPU para o TBBlue é necessária uma pequena modificação. Na parte de tras da placa, localize os resistores R1, R2, R9 e R10, além do capacitor C14. Eles estão indicados com círculos vermelhos na foto.


Eles devem ser retirados. O jeito mais fácil é colocar uma gotinha de solda em cada um dos lados e apenas encostar o ferro de solda quente. Eles saem facilmente, sem nenhum esforço. Curiosamente algumas dessas placas já não vem de fábrica com os resistores R1, R2, R9 e R10 montados, então nesse caso é só remover o C14.


Ao final do processo, a placa deve ficar como na foto acima.

2 - Encaixando o FPGA


Note que no bem no centro da placa do TBBlue existe um conector quadrado, então basta alinhar todos os pinos e encaixar a plaquinha até o fim. Perceba que a placa tem lado certo para ser encaixada. Siga pelo retangulo impresso no próprio TBBlue, colocando a parte "grande" da placa chinesa virada para a direita. Observe as fotos abaixo.




3 - Preparando o Cartão SD

O cartão pode ter qualquer tamanho, bastando estar formatado em FAT32. Na área de arquivos no fim deste artigo, baixe e descompacte o conteúdo para o cartão SD, na raiz. Ele contém todos os arquivos e a configuração inicial para o boot do TBBlue.

4 - Usando o TBBlue

Com o cartão no slot da placa, ligue um monitor apropriado e conecte a fonte no TBBlue (conector traseiro da placa, não no conector da plaquinha chinesa. A tela inicial de boot mostra algumas teclas úteis que podem ser usadas somente com teclado externo PS/2, já que todas são teclas de função "F".


F1 - Hard Reset
Reinicia completamente a máquina, equivalente a desligar e ligar a fonte de alimentação. Neste ponto a tecla Espaço pode ser acionada para entrar em modo de configuração.

F2 - Scandoubler Sim/Não
Com o scandoubler ativo pode ser usado um monitor VGA como o de um PC comum (31KHz). Se a opção for desativada, o suporte é apenas para os monitores padrão da época, 15Khz.

F3 - Alterna 50/60 Hz
Muda a frequência vertical do monitor entre 50 ou 60 Hz. Alguns monitores não se dão bem com a frequencia de 50Hz utilizado no ZX Spectrum, nesse caso pode usado a 60Hz para visualizar a imagem corretamente.

F4 - Soft Reset
Reseta a CPU Z80 e inicia novamente a partir do endereço 0000.

F5 - Pausa CPU
Pausa a CPU Z80. Pode ser usada inclusive por jogos que não tenham opção de pausa originalmente. PORÉM, pode travar e resetar se a programação do jogo depender de interrupções, então faça alguns pequenos testes no jogo em questão para ver se o recurso pode ser usado.

F7 - Alterna Scanlines
Liga ou desliga o recurso das scanlines no vídeo. Inclui uma linha com as cores "rebaixadas" a cada linha com cor "normal", causando um efeito similar a monitores de tubo (CRT).

F9 - Aciona Multiface
Aciona o menu da Multiface se a opção estiver ativa na configuração.

F10 - Aciona DivMMC
Para usar o ESXDOS se a opção DivMMC estiver ativa na configuração.

SHIFT - Caps Shift
Mesma função da tecla Caps Shift do teclado do ZX Spectrum

CONTROL - Simbol Shift
Mesma função da tecla Symbol Shift do teclado do ZX Spectrum

Depois desta tela de ajuda, as ROMs são carregadas e a máquina escolhida irá iniciar e pode ser usada normalmente.

5 - Configuração




Ao ligar a fonte, é possivel entrar no menu de configuração, bastando apertar a tecla Espaço.

Na primeira metade do menu, em verde, podemos escolher a máquina a ser iniciada com os direcionais e Enter para o boot. Esta configuração é salva no cartão SD, então não é preciso selecionar novamente a máquina, mesmo após desligar a fonte.

TK90X
TK95
Spectrum 48

São as máquinas standard de 48kb e não tem praticamente nenhuma diferença, além do código da ROM e podem ser usadas para carregar os programas de até 48kb. Note que existem jogos que não funcionam em modo TK90X ou TK95 (como no micro real) por incompatibilidades da ROM.

Spectrum 128
É o Spectrum compatível com programas para 128kb de memória.

Spectrum 128 +3e
Spectrum da Amstrad, com suporte a nativo a interface de drive.

ZX80
ZX81
Jupiter Ace

Máquinas pré-ZX Spectrum que poderm ser usadas normalmente. Notem que não existem interfaces de carregamento rodando no TBBlue, logo só é possível carregar programas a partir da entrada EAR, utilizando um cabo e Mp3 player/Tape/Micro tocando o arquivo WAV. Também é necessário desabilitar os periféricos não-compativeis, veja explicação mais abaixo.

Para edição dos periféricos pressione a tecla "E". Com os direcionais e com a tecla Espaço é possivel mudar as configurações. Finalize a edição com Enter e novamente Enter para bootar a máquina escolhida. Todas as opções de periféricos também são salvas no cartão SD e são recarregadas sempre que a máquina iniciar.

divMMC (SIM/NAO)
Interface de carregamento rápido a partir do cartão SD. Roda o ESXDOS e pode carregar arquivos TAP, Z80 e SNA gravados diretamente no cartão. Também cria um disquete virtual compativel com a Beta 128 quando carregado um arquivo TRD. Deve ser desabilitado para uso de ZX80/81/Jupiter Ace.

Explorer (AY/YM)
É a interface de som compatível com o Spectrum que pode ser escolhido entre os modos AY3-8910 ou YM2149. Na prática não percebo nenhuma diferença audível, mas a opção está presente para os "puristas". Deve ser desabilitado para uso de ZX80/81/Jupiter Ace.

Scandoubler (SIM/NAO)
Conforme já explicado acima, configura a saída de video para 31Khz ou 15Khz.

PS/2 (TECLADO/MOUSE)
Configuração do conector PS/2 da placa e pode ser "mouse" ou "teclado", porém na prática só é possivel utilizar essa opção quando o TBBlue estiver com teclado de membrana, liberando o conector externo para ser usado com o mouse. Nos programas basta selecionar a opção "Mouse Kempston" quando um mouse padrão PS/2 estiver conectado na porta.

Multiface
Interface que possibilita a interrupção do programa rodando para o exame da memória, busca de POKEs para vidas infinitas e demais facilidades. Existem três opções dessa interface: "Multiface One" quando a máquina seleciona for um 48k-compatível, "Multiface 128" quando selecionado o Spectrum 128 e "Multiface 3" quando o 128 +3. A seleção das interfaces é completamente automática. Deve ser desabilitado para uso de ZX80/81/Jupiter Ace.

ULA Plus (SIM/NAO)
Possibilita os jogos recolorizados em 256 cores. Maiores informações e jogos para download em https://sites.google.com/site/ulaplus/home. Deve ser desabilitado para uso de ZX80/81/Jupiter Ace.

60 Hz (SIM/NAO)
Usada para monitores que não suportem o sincronismo vertical a 50Hz.

LightPen (SIM/NAO)
Caneta ótica, que necessita de programa específico, além da construção da própria caneta, segundo o esquema abaixo.
Funciona somente com monitores CRT.
Deve ser desabilitado para uso de ZX80/81/Jupiter Ace.




6 - Botões Externos


Os botões externos tem funcionalidade similar as teclas "F" e provavelmente serão mais utilizados por quem pretende usar o teclado de membrana. Do lado esquerdo temos o botão de Soft Reset, enquanto do lado direito o botão de acionamento da divMMC e do menu da Multiface. Esses dois botões perdem suas funções se as interfaces estiverem desabilitadas no menu de configuração.

7 - Conectores traseiros

Todos as conexões ficam na parte traseira do TBBlue.


PS/2
Pode ser utilizado com mouse ou teclado no padrão PS/2. Os teclados USB que contém o padrão PS/2 internamente também são suportados com o devido adaptador.

Monitor
Pinagem padrão VGA, identico ao utilizado em PCs.

Saída de Som
Plug P2 estéreo, pode ser utilizado com caixas de som do padrão PC.

Mic/Ear
Entrada para ser utilizado como interface TAPE. São conjugadas em um plug padrão P2 estéreo, sendo um dos canais a saída Mic para gravação de audio e outro a entrada Ear. Pode ser utilizada com MP3 players, celulares, notebooks e gravadores cassetes tocando os arquivos WAV para leitura pelo TBBlue.

Joystick
Entrada para joystick similar ao Atari, podendo ser selecionado dentro dos jogos como "Sinclair Interface II" (números de 6 a 0 do teclado). Atrás desse conector existe um header com a pinagem do "Sinclair Interface I" (numeros 1 a 5) e pode ser usado como uma segunda saída de joystick.

Expansão
Saída de expansão que permite a conexão de interfaces do padrão Sinclair ZX Spectrum 48. Não existe suporte para interfaces que utilizem Bus Request do Z80, porém elas são raras. Outra incompatibilidade fica por conta de interfaces que pegam alimentação da fonte original (9V) pelo barramento. Essas interfaces geralmente tem seu próprio regulador, mas nesse caso precisarão de uma modificação para usar a linha de 5V ao invés do 9V original.

8 - Procedimento de atualização

De tempos em tempos certamente teremos atualizações no core do TBBlue e para atualizar basta colocar o arquivo TBBLUE.TBU na raiz do cartão SD e rebootar. Ele identifica e entra em modo de atualização, mostrando a versão atual e perguntando se deseja continuar.


É um procedimento seguro, porém não pode haver interrrupção sob pena de "brickar" a placa, então num mundo ideal seria bom ter um no-break à mão. Em todo caso, mesmo numa atualização mal-sucedida basta apenas retirar o FPGA e regravar .POF com o USB Blaster, não dá "defeito".

9 - Interfaces já testadas

(Quem puder colaborar com testes, agradeço)

Interface Observações Testado Por  
Joystick Kempston Victor TruccoOK
Mouse Kempston Victor TruccoOK
Multiface One Victor TruccoOK
divIDEversões 0.57c, 0.57d8 e divIDE Plus testadasVictor TruccoOK
1 BisManoel CarvalhoOK
ZX Printer (TS2040)Manoel CarvalhoOK
Videoface Romantic RobotVictor TruccoOK
Datel Genius MouseManoel CarvalhoOK
AY-MagicManoel CarvalhoOK
Joy II fabricante JG ComponentsManoel CarvalhoOK
Multiface 128necessário desativar ULA+Manoel CarvalhoOK
Microdigital Paralell PrinterDouglas HummelOK
ZX Interface IIConflito no barramento de dados, porém possivel de resolver com alterações no código-fonte do TBBlueVictor TruccoNÃO
SpectranetReinicia o micro, motivo ainda desconhecido. Ela tem regulador de voltagem próprio, então possivelmente o problema é na alimentação.Aurélio MazzeiNÃO


10 - Problemas na placa chinesa



Algumas placas FPGA chegam até os usuários com um problema crônico quanto a qualidade das soldas durante sua produção. Após a gravação, nesses casos, é comum ter telas como as mostradas abaixo, mesmo que o TBBlue chegue a funcionar por alguns minutos, antes de "travar".


Os amigos relataram que conseguiram recuperar suas plaquinhas chinesa apenas com um bom banho de álcool isopropílico, então o procedimento pode ser tentado. No entanto eu recomendo um reflow das soldas do CI principal, que consiste em resoldá-lo usando solda de boa qualidade. Certamente é preciso uma boa dose de habilidade, além de equipamentos para fazê-lo, mas existe uma maneira "intermediária" que seria usar uma estação de ar quente ou (com muito cuidado) um soprador térmico comum.

Aplica-se fluxo de solda nos terminais do CI e com o ar, derrete-se as soldas. Lembre-se de não manipular a placa durante o procedimento para não desalinhar o CI, ela deve ficar estática sobre a mesa até esfriar. Depois de alguns minutos pode-se fazer a lavagem final com álcool isopropílico para tirar o resto de fluxo da placa.

O soprador térmico pode ser usado, porém lembre que ele não tem regulagem de temperatura e nem de velocidade do ar, então cuidado para não danificar permanentemente a placa nesse caso.

Arquivos



Firmware 1.06 para todas as placas compativeis com o TBBlue


Firmware 1.05 para todas as placas compativeis com o TBBlue


.POF e arquivo de atualização versão 1.03


.POF primeira versão (1.02)


Conteúdo do cartão SD para boot do TBBlue.


Arquivo com a logomarca TBBlue em vários formatos de arquivo.


Etiquetas para o teclado e cartão SD personalizado (contribuição do amigo Clóvis Friolani)


Galeria



As fotos abaixo são de amigos que instalaram o TBBLue e deram permissão para que eu as utilizasse neste artigo.

TBBlue Gold - Manoel Carvalho







Dúvidas ou sugestões, utilize o espaço abaixo.


Voltar - Home


Comente



COMENTÁRIOS DESABILITADOS NO MOMENTO! RETORNAM EM BREVE
É expressamente proibido a reprodução total ou parcial deste texto sem a minha devida autorização por escrito.