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..... ??

 

 

 

 

Reparo de um TRS-80 MC 10 - Parte 3

Esta terceira parte não é bem um reparo, mas sim um upgrade no computador, com a implementação de um mod de Vídeo e áudio.

O circuito de vídeo é retirado do datasheet do MC6847.

 

Os transistores foram substituídos por equivalentes europeus de características próximas, bem mais fáceis de se encontrar. Além disso foram incorporados 2 trimpots para ajuste do nível DC e da saída AC (além do existente para ajuste da razão entre a amplitude do sinal de luminância e da cor.

O circuito de áudio é um simples filtro passa baixa com atenuação, de forma a gerar aproximadamente 0.9Vpp de amplitude na saída, com frequência de corte em aproximadamente 6KHz.

Os dois sinais vão para um jack P2 stereo que é posicionado no local do conector RCA da saída de RF do modulador, sendo possível utilizar um cabo P2 Stero para 2 RCAs disponível comercialmente.

O conjunto foi projetado para caber numa placa de circuito impresso do tamanho da placa do modulador original, mantendo a mesma pinagem. Alguns ensaios foram realizados para acertar as dimensões. 


 O modulador de RF foi então removido


 E novos ensaios foram realizados a fim de se fazer uma verificação fina das dimensões e posicionamento dos conectores de entrada e de saída.


A placa é roteada em face simples, a fim de facilitar a confecção caseira, por exemplo através do método da transferência de toner - método usado no presente projeto.



Laminação da placa


 

Placa após laminação.


Placa após Corrosão, já furada e com uma camada fina de verniz de Breu e Álcool

E eis a placa já montada. Alguns componentes que encontrei para montagem não eram compatíveis com as bibliotecas, em especial os trimpots, o trimmer e o indutor na entrada do VCC, mas ainda assim foi possível realizar a montagem do protótipo. A versão final da placa já traz a possibilidade de utilizar-se mais de um tipo de trimpot, indutor e trimmer.

A placa foi instalada no micro, mas antes disso colei um pedaço de folha de policarbonato autoadesiva, sobra de uma placa de sinalização, a fim de isolar as soldas dos componentes da placa do modulador


 
A conexão de terra é feita através de uma malha de cabo coaxial

Na próxima parte, ajustes e funcionamento.







sábado, 30 de outubro de 2021

Reparo de um TRS-80 MC 10 - Parte 2

 Continuando com o reparo do MC-10, o próximo passo foi implementar a lógica de controle da memória para evitar o espelhamento da RAM, o que nos computadores vindos de fábrica é feito por um chip extra (U20 - 74LS32). O melhor local para esse CI extra é próximo ao decodificador (U4 - 74LS151) , porém a blindagem de metal é bem rente à placa nessa região (de U4), e por isso nos micros de fábrica este CI é soldado sobre U14.


Como meu MC-10 não veio com a blindagem, a modificação foi feita soldando o CI extra sobre U4. Alguns pinos foram removidos e outros foram dobrados, de forma a deixar a montagem o mais limpa possível.


A conexão foi feita por cima de U4, alinhando pelo terminal de GND. Os pinos 1, 7 e 13 do LS32 são soldados aos pinos  de U4 que ficam logo abaixo, ou seja 2, 8 e 14.


Em seguida o o  pino 14 do LS32 (U20) é ligado ao pino 16 de U4 (VCC), e o pino 3 (do LS32) é ligado aos seus pinos 12 e 13 (e por sua vez ao pino 14 de U4)  por um jumper de fio esmaltado. A conexão dos pinos 12 e 13 não é obrigatória. Ela foi utilizada somente para dar rigidez mecânica ao conjunto.

Assim o circuito da modificação fica:


 A última conexão é do pino 2 do LS32 ao sinal A12, que foi realizada utilizando um fio flexível.

 



sexta-feira, 24 de setembro de 2021

Biblioteca do Eagle com Chips do MC-10

 Biblioteca do Eagle com alguns chips do MC-10:

  • MC6847 (VDG)
  • MC6803 (Processador)
  • MC1372 (Modulador de RF)
  • MC14503B (Buffer/driver do teclado)
  • uPD4016  (SRAMs)
  • MB8364 (ROM - modelo de 24 pinos)
  • TMS2564 (ROM - modelo de 28 pinos)

Arquivos disponíveis (sob GPL V3) no Github.


Reparo de um TRS-80 MC 10 - Parte 1

Introdução

Eu tenho este micro desde 2013, mas recentemente peguei para fazer o conserto. Uma inspeção visual revelou os seguintes problemas: 

 


 

(1) VDG (MC6847) presumidamente com defeito (o vendedor havia me alertado disso ); 



(2) Falta do CI U12 (74LS14) , usado no circuito de reset e no decodificador de memória; 



 

(3) Faltando terminal 14 (Vcc) do CI U13 (74LS32) usado no decodificador de memória;

 



 

(4) Falta dos CIs U18 (74LS 74) e U19 (74Ls76) usado nos circuitos de sincronismo de clock entre CPU e VDG;



 

(5) Ponte retificadora substituída por diodos de sinal

 



Além disso eu não possuía uma fonte de alimentação. Este micro utiliza uma fonte de 9VAC

Reparos:

O CI com o terminal de alimentação quebrado (U13) foi removido, e em seu lugar foi colocado um soquete, e um novo CI foi instalado (74LS32).


 
 
Os CIs faltantes foram instalados: U12 (74LS14),
 


 
e também U18 (74LS74) e U19 (74LS76)




 Dois dos diodos de sinal estavam em curto. Na falta de uma ponte retificadora com a pinagem equivalente, foram utilizados 4 diodos 1N4007.

 



 

Para a fonte de alimentação AC, foi utilizadoa uma fonte DC com transformador com conector compatível. A fonte foi aberta com o auxílio de um martelo de borracha. O retificador foi removido e os fios soldados diretamente aos terminais do transformador. A tensão em aberto ficou em 12VAC.

A fonte de alimentação foi conectada ao MC-10  as tensões de +5V, +12V e -12V foram verificadas e estavam OK.



 

Os primeiros testes com o computador alimentado tiveram o objetivo de verificar se o VDG (6847) estava mesmo com problemas.
O 6847 é um CI relativamente simples de se verificar. Se ele tiver +5V e sinal de clock, ele deve gerar algum sinal de vídeo no pino 28. Como não havia sinal, o CI foi removido e foi instalado um soquete no lugar:


 
E um novo VDG (6847) foi instalado. 
 

 
 Com isso o micro começou a dar sinais de vida:




O próximo passo foi pesquisar os sinais de vida do processador. A alimentação e o sinal de Clock estavam em ordem. Todas as linhas de dados e endereços foram checadas para ver se tinham sinais lógicos bem definidos (um sinal estãvel numa tensão intermediária costuma ser provocado por CI queimado ou trilha interrompida). O unico sinal que não variava era o R/W. Mas este sinal foi monitorado logo após o Reset, e notou-se que este sinal estava sendo ativado, denotando que o microprocessador deveria estar escrevendo algo na memória.
 Outro sinal de que o microprocessador estava funcionando normalmente, foi a presença de vários pulsos nos pinos de Enable do CI que lê o teclado.





Prosseguindo na investigação dos sinais no circuito, passou-se ao decodificador de memória, composto pelo CI U4 (74LS155) e os CIs U12, U13 e U20. Foi observado que o sinal no pino 14 de U4 ficava por volta dos 3,6Volts, e que o pino 10 que endereça as memórias nunca era ativado.

Neste momento foi observado que o CI U20 não existia na placa. e que existem diferenças nos esquemas do MC-10 disponíveis na Internet (um dos esquemas não possui este CI 20).





O próximo passo consistiu em colocar-se um fio Jumper entre os pinos 2 e 14 do CI U4 como num dos esquemáticos encontrados.



E com isso momento o Micro passou a funcionar normalmente.




Realizando algumas pesquisas, descobriu-se que o CI U20 era montado pela Tandy em PiggyBack sobre o CI U12. A finalidade dessa porta lógica adicionada é evitar que a memória seja espelhada em uma determinada região, o que faz o BASIC retornar uma quantidade de memória incorreta para a máquina (que só tem 4K) .
 
 

Epílogo

Talvez minha máquina tenha sido montada originalmente dessa maneira, ou talvez o CI 20 tenha sido removido pelo dono anterior durante o troubleshooting, mas de qualquer forma o próximo passo vai ser instalar o CI U20.

Outra modificação necessária vai ser a de Vídeo composto, uma vez que originalmente o micro estava com o modulador de RF com a freqência central desajustada e a qualidade da imagem após o retoque (sem a devida instrumentação) para trazer a frequência da portadora para o valor correto resultou numa imagem com bastantes artefatos.