segunda-feira, 12 de outubro de 2026

Garbage Collector (2)

 Cartão de 80 colunas na porta de joystick para MSX

Este projeto é baseado no terminal de vídeo com AVR que foi projetado pelo Daryl Rictor e se tornou popular pelas melhorias implementadas pelo Grant Searle. Posteriormente David Curran (Tynemouth Softare) que implementou a comunicação I2C, na qual o presente projeto se baseia. 

A saída de vídeo foi simplificada e compatibilizada com a norma RS170, e o circuito foi acomodado numa placa de 1x1 polegada.



O protocolo I2C é implementado em software (bitbang) no MSX, e foram necessárias algumas sessões de debug para identificar um problema relacionado a 'clock stretching' - um aspecto que normalmente não é implementado, principalmente quando se quer obter o maximo de performance. Infelizmete neste caso foi necessário, o que fez a taxa de comunicação cair pra aproximadamente 2170 bytes / segundo. 




O maior limitante na velocidade, contudo, é que o acesso é feito via PSG, que utiliza registros diferentes para os pinos de saída e os de entrada das portas de joystick o que demanda uma escrita a no registrador de endereço toda vez que se alterna entre leitura e escrita dos bits.



O código que envia os dados ocupa menos de 300 bytes depois de compilado, sendo pequeno o suficiente para ser colocado em qualquer lugar da memória e ser usado como display auxiliar pra debug. 

O programa de teste é baseado numa rotina em assembly que, uma vez carregada, permite escrever na tela auxiliar uma string passada como parâmetro para uma função USR(). 


 

 



domingo, 27 de setembro de 2026

Garbage Collector (1)

Emulador de Eprom em cartucho (32k) para MSX 


 

Essa ferramenta foi criada pra facilitar o desenvolvimento cruzado de software. O projeto original, apesar de usar um ESP32C3, não utilizava comunicação wireless. Perdi muito tempo com esse projeto até identificar um bug no mecanismo USB-CDC do ESP32C3 que fazia com que os bytes fossem descartados. Esse problema não foi resolvido até hoje pelo fabricante. 

O software original funcionava muito bem, tendo sido testado com uma USB_UART externa, e oferecia várias funcionalidades como o armazenamento da última ROM enviada, que poderia também ser usada na auto-inicialização. 



Antes de abandonar o projeto de vez, deixei funcional usando micropython e um monte de vibecoding. Otimizei o máximo que deu, mas a performance ainda é baixa, e foi necessário colocar um display pra saber o IP que deve ser acessado. 


Partiu pro próximo!

domingo, 5 de julho de 2026

Estudo para o ESP-32_CP400 em caixa Patola PB-087

 Fiquei interessado no projeto do ESP32_CP400 e fiz um estudo pra ver se uma versão com componentes "through-hole" caberia numa caixa Patola PB-087 , cujas dimensões são 96 mm de profundidade, 72 mm de largura e 30mm de altura na parte mais gordinha.

Eis a caixa:



 

Para o estudo, segui o projeto original, que apesar de não ter o diagrama inteiro, tem imagens da placa contendo mais alguns conectores 3.5mm, sendo dois para o gravador cassete, um para o áudio e um para uma interface RS232. Consegui colocar tres conectores, mas deve ser possível colocar um quarto, seja mudando o tipo de conector, seja eliminando a chave liga-desliga pra dar lugar ao conector do áudio, saindo ao lado do conector VGA. 

 Placa do projeto original: 


Estudo:







 

 

 

segunda-feira, 18 de maio de 2026

Diagrama do controlador do YPVS original Yamaha

Este diagrama foi levantado a partir do módulo original mais ou menos em 2004 a partir de alguns módulos que meu irmão me pedia para consertar. Eu cheguei a postá-lo em alguns fórums, que infelizmente foram mortos pelos grupos de Whats App.





domingo, 15 de maio de 2022

Passo a Passo para instalação do ambiente para uso do BluePill + FreeRTOS no Windows

 Recentemente conheci um bom livro para iniciar com o uso dos processadores STM32, baseados na placa Blue Pill  e em ferramentas open source - ARM GCC, libopenCM3 e FreeRTOS 

 


O livro contém instruções para configurar o ambiente que acredito funcionarem bem no Linux ou no MAC OS, porém no Windows existem várias lacunas e pegadinhas não cobertas pelo autor. 

Este passo a passo completa as lacunas e se desvencilha das pegadinhas. 

(Link direto) para baixar o passo a passo no GitHub

domingo, 28 de novembro de 2021

Reparo de um TRS-80 MC 10 - Parte 5

Quando achei que tudo estava pronto que eu descobri que a parte superior do micro não fechava. Ao inspecionar descobri que a placa do teclado atritava em dois pontos: No soquete que coloquei par ao 74LS76 e no 74LS32 montado sobre o 74LS151.

A solução foi remover o soquete do 74LS76 e soldar o mesmo diretamente à placa, e passar o 74LS32 para a posição "de fábrica", montado sobre o CI U12 (74LS14) que também precisou de ter o soquete removido.

Foi usado o mesmo encaminhamento dos fios existente no manual de serviço do MC-10:


Eis algumas fotos com detalhes da montagem

 




E uma geral em como ficou a placa.

Depois de fechado o gabinete, o conector de saída de A/V ficou bem centralizado com o espaço reservado para a saída original de RF




sábado, 27 de novembro de 2021

Reparo de um TRS-80 MC 10 - Parte 4

Assim que a montagem foi realizada, o circuito já produzia uma imagem legível, porém haviam algumas sombras e as cores não correspondiam ao esperado.

E toda região com contraste (por exemplo no limite do cursor) ficava com uma sombra.


Ao usar o osciloscópio para conferir  o sinal foi possível observar uma distorção na forma de onda.

 

Após algumas medições foi possível determinar que a flutuação estava presente na tensão de alimentação do MC1372.


 Comparando os diagramas do datasheet to MC1372 com o diagrama do MC-10 (o qual usei de referência para o Mod de A/V), foi possivel observar que a causa da flutuação seria a falta de um capacitor de desacoplamento do Vcc de valor mais elevado que os míseros 22nF do modulador original.


Adicionei um capacitor de 47uF e a distorção no VCC e consequentemente na forma de onda de vídeo desapareceram

Fiz mais alguns experimentos, com capacitores de 1uF a 47uF e comparei o resultado. Aparentemente qualquer coisa acima de 10uF vai funcionar bem.


Com o capacitor de desacoplamento a sombra desapareceu.


  Também dei uma experimentada nos transistores utilizando uma mãozada de modelos diferentes de transistores PNP e NPN que tinha em minha gaveta de componentes.

A conclusão é que o transistor mais crítico é o PNP, que fica primeiro. Os melhores resultados que obtive foram com o BC560 (traço branco na figura abaixo).

 A mudança do transistor NPN não surtiu nenhum efeito observável na tela do osciloscópio.


Traço branco: BC560
 

Os ajustes foram feitos "de olho" pois não encontrei documentação sobre tais ajustes,  mas em resumo:

  • O trimmer deve ser ajustado de forma que se tenha a frequência o mais próximo possível dos 3,579545MHz.
  • O trimpot "duty" ficou mais ou menos no meio do curso.
  • Os potenciômetros de nível DC e nível AC são ajustados de forma que com a TV conectada e o micro na tela verde, o pedestal de sincronismo tenha aproximadamente 300mV, e o sinal todo tenha por volta de 800mVpp. Posteriormente devo fazer mais alguns testes para conseguir descrever uma sistemática de ajuste desses trimpots.

O resultado pode ser visto abaixo:

 


Comparando com o sinal antes dos ajustes:


  E finalmente:


 Ou será que não..... ??