sexta-feira, 5 de dezembro de 2014

Coleção de Microprocessadores

Coleção de Microprocessadores


No passado eu colecionei fascículos de uma enciclopédia da antiga Rio Gráfica Editora - Microcomputador Curso Prático, que depois se tornaram dois volumes muito interessantes e ricamente ilustrados. Num dos artigos, sobre a história dos microprocessadores, havia um quadro evolutivo (até então) dos principais microprocessadores usados, quadro do qual eu tirei uma foto que é a abaixo:




Tem gente que coleciona computadores velhos, mas isso demanda muito espaço e dinheiro (tá eu tenho alguns computadores velhos ... :o)  ), então é mais fácil e barato colecionar apenas as CPUs usadas nos computadores antigos.  Dos que serviam para computadores pessoais, eu consegui os mais importantes e que contam  a história da microcomputação dos anos 1970 e 1980. Vejam a foto das minhas CPUs:


Bom, seguindo a ordem do quadro da enciclopédia, mostro as fotos das minhas CPUs e descrevo alguns equipamentos onde elas foram usadas:


Esse era o Motorola MC6800, um processador de 8 bits. Foi usado no MITS Altair 680.  O MC6800 foi projetado em 1974, mesma época do processador a seguir.


O Intel 8080 foi o segundo microprocessador de 8 bits da Intel. Esse processador influenciou toda uma família de CPUs, incluindo o Z80 da Zilog e os seus sucessores na Intel.  O 8080 foi usado no MITS Altair 8800, um dos primeiros computadores pessoais e também nos videogames Arcade, incluindo o jogo Space Invaders. Com o 8080 foi desenvolvido o sistema operacional CP/M.



Acima tenho dois 6502, que foram as CPUs dos Apple 1, Apple II, Commodore PET e eram as CPUs mais baratas na época (por isso a Apple o escolheu). Aqui no Brasil foi usado no TK2000.
A CPU menor 6507 era uma versão encolhida do 6502 e foi o processador dos videogames ATARI 2600. 




O processador seguinte da Intel foi o 8085, que era compatível com o 8080 em software, mas melhor em hardware. O 8085 foi usado no TRS-80 model 100, um precursor dos micros portáteis.



A evolução da Motorola se deu com o MC6809. Esse processador foi usado pelos TRS - Color Computer (aqui CP400).



Talvez o mais famoso dos processadores de 8 bits, o Zilog Z80 foi o processador usado em muitos computadores da época: TRS-80 (clone CP300), Sinclair ZX80, ZX81 (e os clones nacionais TK82C, TK83, TK85, Ringo, CP200), ZX Spectrum (TK90X e TK95), CP500, os MSX (aqui Hotbit e Expert) e em diversos videogames (Gameboy com LR35902 da Sharp similar ao Z80, Master System, Mega Drive). Por ser compatível com o 8080 em software, podia usar o CP/M e até no Apple II foi usado com uma placa com Z80.




Entrando na era dos 16 bits, a Intel lançou a família 8086. Na foto eu tenho os 8088 que foram os processadores dos IBM Personal Computers (PC, XT) e que levaram a Intel à liderança de mercado até os dias de hoje. O Chip com o quadrado dourado é um 8087, coprocessador matemático usado com os 8088 e 8086.  O NEC V20 era uma versão mais avançada do 8088, tinha uma performance melhor e podia emular o funcionamento do 8080. Eu tenho um laptop Toshiba T1000 com um 80C88, versão CMOS do 8088.



A Motorola também desenvolveu de processadores de maior desempenho e lançou esse chipão de 64 pernas, o MC68000 de 16 e 32 bits. Junto na foto, o MC68008 com 48 pernas, uma versão mais simples do 68000.  O 68000 foi o processador dos Apples Lisa e MacIntosh, Atari ST, Amiga e também muito usado em Workstations Unix. Foi o processador do videogames Mega Drive (junto com o Z80). O 68008 foi usado no Sinclair QL (Quantum Leap).


Esses dois processadores não estão no quadro da enciclopédia, mas eu tenho esses chips da RCA e da Harris, que são o processador CDP1802 ACE de 8 bits e tecnologia CMOS, o que faz com que eles tenham um baixo consumo de energia. Por isso foram usados em sondas espaciais e num computador chamado COSMAC ELF que saiu na revista Popular Electronics.

quarta-feira, 15 de outubro de 2014

Irrigador automático programável

Sistema para Irrigação Automática de Plantas

Precisei bolar um sistema para regar automaticamente alguns pés de pimenta que plantei, enquanto estiver viajando, já que as pimenteiras precisam ser regadas todos os dias. Isso é um equipamento baseado em timers que ligariam uma bomba elétrica por determinado tempo e somente depois de um intervalo voltariam a ser acionados. Esses equipamentos existem comercialmente, mas são muito caros e não seriam difíceis de serem montados. 
O circuito em si não tem nada de novo, apenas um microcontrolador PIC com alguns botões para programar os tempos, um relé para ligar o motor da bomba e um display para enxergar as coisas (programação de tempos, contagem, etc).
A bomba escolhida foi dessas de fontes decorativas, que trabalham submersas na água e tem alimentação diretamente na rede elétrica (127Vac ou 220Vac). Comprei uma com vazão de 220 litros por hora com pressão para até 0,5 metro de diferença. Ela tem também um ajuste de vazão e saída para mangueira de 5 mm interna.  Comprei também alguns Ts (divisores de ar para aquários) com torneirinha que ajudam a regular a quantidade de água que vai para cada derivação nas mangueiras siliconadas de diâmetro 5 mm externo.

Acima o esquema elétrico. O display é um desses de 16 x 2 linhas comum, o relé é um de 5V ou de 12V (dependendo de onde o ligamos na fonte) As chaves podem ser do tipo push-buttons normalmente abertas, eu usei chaves alavanca spdt que fica NA,  onde a primeira serve como duplo comando (reset e botão 1) e as demais apenas para um comando. Usei uma placa universal, portanto não desenhei um layout para uma placa de circuito impresso. 

Acima uma foto do controlador timer com a bomba de água, as mangueiras e os divisores de ar. Essa configuração me permite 6 saídas de água. 

Detalhe dos divisores de ar e das 6 saídas de água.

O controlador dentro de uma caixa de plástico Patola PB112, mostrando o menu inicial (setup: configura o tempo de acionamento da bomba, o intervalo entre as regas e se inicia regando)

Display indicando que a bomba está acionada (led aceso). Na tomada devemos ligar o plugue da bomba de água. 

O código Hexa para o PIC (16F628) é o seguinte:
:10000000B20147290408A70006108610861083163F
:100010000610861086100F30860583122708B21846
:100020002E283A30A100FC30DF203330A6004220D9
:100030001030A1006830DF2042206430DE20223002
:10004000A600422028302D200C302D2001302D20FC
:1000500006302D20B21427082E283214A600321C98
:100060003C288610033C031C412841200730A10096
:10007000D030DF20031408003214FE3C031942295B
:100080008614321C321006140F3086052608F0390B
:1000900086040610A60E321842283230DE200314E1
:1000A0000800B31329080319B3170530A800273037
:1000B000A300103067200330A300E8306720A301BD
:1000C00064306720A3010A30672024086E28A2004C
:1000D0002508A1002408A0000B212008A000A803E7
:1000E0000319B313290803197828280203180800F4
:1000F0002008031DB313B31B0800303E3D29A300A5
:10010000360884008417340980058413A308031972
:100110004229F030A50022088038A400F030A50361
:100120000319A5000319A303031942299728AE2038
:10013000030120183408A21F3408A2080319030180
:10014000A40FA42880068B28A52800008E288317DA
:100150008001840AFF3E031DA828422921082004AB
:100160000319A00A8030201AA1062019A106A018A0
:10017000A106210DA00DA10D422983161C141A08F9
:1001800083169B0A4229030183169A001C155530D9
:100190009D00AA309D009C149C18CC281C119B0A21
:1001A0004229A301A200FF30A207031CA307031CDE
:1001B00042290330A100DF30DF20D328A101E83E2F
:1001C000A000A109FC30031CE828A0070318E528BB
:1001D000A0076400A10FE5282018EE28A01CF22833
:1001E0000000F2280800A2000130FB28A20006301F
:1001F000FB28A2000530A80023082102031D0229C4
:1002000022082002043003180130031902302805A7
:10021000031DFF304229A501A4011030A600210DC5
:10022000A40DA50D2208A4022308031C230FA50278
:10023000031821292208A40723080318230FA50760
:100240000310A00DA10DA60B0F2920084229103084
:10025000A800A101A001A70CA60C031C35292208A7
:10026000A00723080318230FA107A10CA00CA50CBD
:10027000A40CA80B2B2924084229840031088A00E9
:10028000300882008313031383126400080083166E
:10029000FE3085008601831207309F0020308400E5
:1002A0006030A820A03084005030A8202030840086
:1002B0003030A720FE3003200130032049300320D6
:1002C000723003207230032069300320673003202E
:1002D00061300320643003206F300320723003202C
:1002E0002030032061300320753003207430032058
:1002F0006F3003206D30032020300320FE300320B8
:10030000C0300320613003207030032065300320AB
:100310007230032074300320653003202030032026
:100320003130032020300320703003202F30032091
:10033000203003206D300320653003206E30032011
:100340007530032064008518A829FA30D120D629F9
:10035000C20A0319C30A6030A000EA30A1004308B2
:10036000A3004208F920031DD32983169B018312A1
:10037000BD20C900831601309B008312BD20BE0042
:10038000831602309B008312BD20BF00831603300A
:100390009B008312BD20BA00831604309B00831299
:1003A000BD20BB00732C6430DE20A2290630B600CD
:1003B0000830B4006430A2000A307F2083169B010D
:1003C0008312BD20C900831601309B008312BD201B
:1003D000BE00831602309B008312BD20BF0083162F
:1003E00003309B008312BD20BA00831604309B00AB
:1003F0008312BD20BB00FE300320013003205330A8
:1004000003206530032074300320753003207030E2
:100410000320203003203D3003203E3003202030D5
:100420000320623003206F300320743003206130DA
:1004300003206F3003202030032031300320FE30B2
:100440000320C0300320493003206E300320693080
:1004500003206330032069300320613003203D30E6
:1004600003203E30032020300320623003206F3011
:10047000032074300320613003206F3003202030CC
:1004800003203230032064008518492AFA30D12035
:10049000502A640005194F2AFA30D120732C432AC0
:1004A000BE01BF01FE300320013003205430032081
:1004B000653003206D300320703003206F3003203F
:1004C0002030032069300320723003207230032073
:1004D000693003206730032061300320633003203C
:1004E000613003206F30032020300320FE300320D2
:1004F000C0300320A9013E08A4003F08A500023037
:10050000B000B1015120203003207330032065304A
:10051000032067300320753003206E3003206430E1
:1005200003206F300320733003206430D120640037
:100530008519BF2AFA30D1200A30BE070318BF0A36
:10054000FE300320C0300320A9013E08A4003F086C
:10055000A5000230B000B1015120203003207330DB
:1005600003206530032067300320753003206E3090
:100570000320643003206F300320733003206400B5
:100580000519E62AFA30D120BE0A0319BF0AFE3047
:100590000320C0300320A9013E08A4003F08A500A5
:1005A0000230B000B101512020300320733003200D
:1005B0006530032067300320753003206E30032040
:1005C000643003206F3003207330032064008518EB
:1005D0000C2BFA30D120BE01BF01FE300320C03009
:1005E0000320A9013E08A4003F08A5000230B00086
:1005F000B1015120203003207330032065300320E7
:1006000067300320753003206E30032064300320F0
:100610006F300320733003206400051A1E2BFA305C
:10062000D120831601309B0083123E08C42083161C
:1006300002309B0083123F08C4201F2B972ABA0167
:10064000BB01FE300320013003205430032065300D
:1006500003206D300320703003206F3003202030E2
:100660000320693003206E3003207430032065308E
:1006700003207230032076300320613003206C3079
:1006800003206F3003203A300320FE300320C030B7
:100690000320A9013A08A4003B08A5000230B000DD
:1006A000B1015120203003206D3003206930032038
:1006B0006E30032075300320743003206F30032028
:1006C000733003206430D120640085197C2BFA300C
:1006D000D1203A08A0003B08A100A3013B30F6203E
:1006E000031D772B3C30BA070318BB0A7B2B0A305B
:1006F000BA070318BB0AAE2364000519932BFA301E
:10070000D1203A08A0003B08A100A3013B30F6200D
:10071000031D8F2B0530BA070318BB0A922BBA0AA8
:100720000319BB0AAE23640085189B2BC830D12067
:10073000BA01BB01AE236400051AAD2BC830D1202D
:10074000831603309B0083123A08C42083160430BA
:100750009B0083123B08C420112C642B3A08A00094
:100760003B08A1003C30A200A3010B21B8002108E6
:10077000B9003808A6003908A7003C30A200A30140
:100780002721C0002508C10040083A02BC004108EA
:10079000031C013E3B02BD00FE300320013003205C
:1007A00054300320653003206D3003207030032067
:1007B0006F30032020300320693003206E30032087
:1007C000743003206530032072300320763003201C
:1007D000613003206C3003206F3003203A30032057
:1007E000FE300320C0300320A9013808A4003908D6
:1007F000A5000230B000B101512068300320203044
:100800000320A9013C08A4003D08A5000230B00067
:10081000B10151206D300320693003206E30032078
:100820000800FE30032001300320493003206E30E1
:1008300003206930032063300320693003206130D6
:1008400003202030032061300320673003207530FF
:100850000320613003206E300320643003206F30AA
:100860000320203003203F300320FE300320C0301F
:10087000032033300320203003203D30032020307C
:10088000032073300320693003206D3003202030B3
:1008900003202030032034300320203003203D305B
:1008A0000320203003206E300320613003206F309E
:1008B000032064008519662CFA30D1200130C9006C
:1008C00083169B0183124908C420D6296400051AA7
:1008D000722CFA30D120C90183169B01831249087A
:1008E000C420D629592C0630B6000830B400643034
:1008F000A2000A307F2064004908013C031D812CBE
:100900001C25C201C3014208A0004308A1003B0806
:10091000A3003A08F320031D1A2D42083A02C6002C
:100920004308031C013E3B02C7004608A0004708DD
:10093000A1003C30A200A3010B21B8002108B9009E
:100940003808A6003908A7003C30A200A3012721DF
:10095000C0002508C10040084602BC004108031C35
:10096000013E4702BD00FE30032001300320463027
:100970000320613003206C30032074300320613089
:1009800003206E300320643003206F3003202030BA
:10099000032020300320203003202030032020308B
:1009A0000320203003202030032020300320FE309D
:1009B0000320C0300320A9013808A4003908A5008D
:1009C0000230B000B10151206830032020300320F4
:1009D000A9013C08A4003D08A5000230B000B10107
:1009E00051206D300320693003206E300320C40194
:1009F000C5014408A0004508A100A3013B30F32035
:100A0000031D162D06150130A300F330D22064001B
:100A1000051A0D2DFA30D120D62906110130A30078
:100A2000F330D220C40A0319C50FF92CC20A0319E6
:100A3000C30F832C1C25812C0630B6000830B4006F
:100A40006430A2000A307F20051400000615C201A0
:100A5000C3014208A0004308A1003F08A3003E08CC
:100A6000F320031D8A2DFE3003200130032049307E
:100A70000320723003207230032069300320673076
:100A80000320613003206E300320643003206F3078
:100A900003202E3003202E3003202E3003202E3052
:100AA00003202E3003202E3003202E300320FE3072
:100AB0000320C0300320A9014208A4004308A50078
:100AC0000230B000B10151202030032073300320E8
:100AD0006530032067300320753003206E3003201B
:100AE000643003206F300320733003202030032054
:100AF00020300320203003200330A300E730D22031
:100B000064008518862DFA30D120D629C20A03192F
:100B1000C30F292D051000000611080063008E2D5B
:02400E00613F10
:00000001FF

O funcionamento é simples, ao ligarmos o controlador na tomada, ele inicia mostrando a opção para entrar no menu de opções e se nada for feito, ele entra em modo de operação automaticamente após alguns segundos (para o caso de faltar energia). No menu podemos selecionar o tempo de rega, com o botão 2 aumentando o tempo de 1 em 1s e o botão 3 aumenta em 10s. O botão 1 limpa o tempo e o botão 4 aceita o tempo. A seguir escolhemos o tempo de intervalo, o botão 2 aumenta de 1 minuto e o botão 3 aumenta 10 min e depois passa para horas (o botão 2 passa a aumentar de 5 minutos). De novo o  botão 1 limpa o tempo e o botão 4 aceita o intervalo. Finalmente se tem a opção para iniciar os ciclos com uma rega inicial ou não.  O botão reset sempre reinicializa o controlador, enquanto o botão 4 interrompe o ciclo e volta para o menu. No menu temos a opção para iniciar o ciclo.  Os tempos programados são guardados na memória EEPROM do PIC e portanto são recuperados mesmo com falta de energia.



segunda-feira, 15 de setembro de 2014

Hi End Show 2014

Visita ao Hi End Show de 2014


Este último fim de semana visitei o Hi End show 2014 novamente no hotel Maksoud Plaza, e posto aqui algumas fotos dos equipamentos que achei mais interessantes.


Acima um amplificador de potência da Dan Dagostino, com um lindo medidor de potência analógico na frente e dissipadores de calor de cobre nas laterais com furos para melhor ventilação.



Um toca fitas de rolo que tocava músicas nas audições de alguns equipamentos.


O pequeno amplificador valvulado da CAV (China) com dock station e dois canais estéreo de 2W.


Acima a gigantesca caixa acústica da Diasound (produzida no Brasil em Goiás), maior do que eu.


O amplificador estéreo valvulado integrado da Audionote aberto e com dois grandes transformadores de saída à mostra. Circuito muito bem construído.


Outro amplificador valvulado da Audionote, com grandes válvulas triodo na saída.


Um dos belos amplificadores valvulados da Triode (Japão) à venda na mostra.


E o pequeno amplificador valvulado Ruby da Triode, com válvulas EL84 (6BQ5) nas saídas. Uma jóia, como o próprio nome indica.


sábado, 31 de maio de 2014

Amplificador Compactron

Amplificador valvulado com a 6AS11 Compactron - 1W de potência em single ended


Resolvi alterar o amplificador com a 6AS11 pra usar um transformador de força e usar uma fonte de alta tensão convencional de forma a aumentar a potência de saída do amplificador, assim como usar uma malha de realimentação para melhorar a estabilidade e aumentar a resposta em frequência.
Também fiz uma nova montagem, agora usando um chassis de alumínio e os componentes soldados certinhos em mini plaquinhas com ilhoses.
Segue o novo esquema:























Nesse esquema existem as tensões medidas no circuito e assim podemos também ter uma ideia das correntes em cada válvula. A polarização do pentodo ficou em 5,9V, o que nos deixa com uma corrente de catodo de 27mA dos quais uns 22mA de corrente de placa e o restante pela grade de screen, em modo ultra linear.
Com esse circuito consegui obter 8Vpp a 1kHz sem muita distorção sobre uma carga de 8 ohms resistiva. Isso dá uma potência de 1W.  Esse valor cai bastante quando o sinal for abaixo dos 200Hz, o transformador de saída é pequeno (3/4 polegada) e não consegue uma potência significativa sem distorção. Na faixa superior a resposta é bem razoável, chegando a 10kHz.

Cabe ressaltar que ainda deixei de usar um triodo que sobrou na 6AS11 (ela tem dois triodo e um pentodo), o que permitiria fazer mais um estágio de ganho e talvez colocar um controle de tom. Pra um mini amplificador de guitarra, com apenas uma válvula seria possível montar um amplificador quase completo.

Vejam fotos do circuito montado:

















E abaixo alguns oscilogramas, pra quem quiser ver o que acontece com a saturação progressiva da válvula e a distorção resultante (diferente do clipping de um amplificador transistorizado):






sexta-feira, 16 de maio de 2014

Injetor de Sinais


Injetor de Sinais microcontrolado

Mais um projeto simples para gerar sinais de áudio para teste, dessa vez usando um microcontrolador pequeno e barato, o PIC 12F629, que tem apenas 8 pinos em encapsulamento DIP. Desses 8 pinos, 6 são usados para acesso às portas de entrada e saída. A ideia é usar 5 portas de saída para gerar níveis que serão convertidos em sinal analógico por uma rede resistiva ponderada. A porta restante será usada como entrada para um botão que selecionará as frequências do sinal geral. Escolhi gerar 60Hz, 400Hz, 1kHz e 1,5kHz (máximo) selecionados apertando o botão sequencialmente e em círculo (volta aos 60Hz após 1500Hz).
Com 5 bits de faixa dinâmica podemos gerar 32 níveis analógicos que formarão o sinal analógico, como as saídas do PIC geram somente sinais lógicos TTL, ao final da conversão teremos um nível DC positivo somado ao sinal, que deverá ser acoplado ao dispositivo em teste por um capacitor de saída para retirar o nível DC. Os 32 degraus podem ser suavizados usando-se mais uma rede RC como filtro, mas que vai atenuar o sinal final.
A técnica para gerar as senóides aqui não foi a de DDS, apenas vario o tempo entre cada amostra (20 amostras com valores tabelados) de forma a aumentar ou diminuir o período do sinal. O 12F629 tem muito pouca memória pra se implementar DDS.
Como conversor D-A (digital-analógico) optei por usar resistores com ponderação ao invés de usar uma rede R-2R porque não seriam muitos bits a converter, então são poucos valores a ponderar. Como cada bit deve ter o dobro da ponderação do bit menos significativo subsequente, os resistores escolhidos foram: 510 ohms, 1kohms, 2kohms, 3,9kohms e 8,2kohms.  Haverá um pequeno erro na ponderação, mas a aplicação não é para testes e medições de distorção harmônica, apenas para ter um sinal mais perto de senoidal do que quadrado (usado na maioria dos injetores de sinal simples).

O esquema é o seguinte:

Todo o circuito pode ser montado em uma pequena plaquinha universal e acomodado em uma caixinha.
As frequências podem sofrer um pequeno desvio devido ao fato de o PIC ser configurado com o oscilador interno que não é muito preciso, mas obtive valores bem próximos dos desejados (medidos com um frequêncimetro rudimentar de 3 dígitos embutido no meu laboratoriozinho digital):




Finalmente uma foto do sinal no "osciloscópio" do Gameboy. Esse sinal é de 1kHz obtido da saída 2 (após o filtro RC) com 1Vpp.  Na saída 1 é possível obter um sinal com 4Vpp.

E aqui a montagem final numa plaquinha universal:


Um vídeo com os sinais gerados e visualizados no osciloscópio, onde é possível ver os degraus da onda:
http://youtu.be/NWpha4t2pMU

Pra finalizar o firmware pra ser gravado no PIC:
:100000002828A301A200FF30A207031CA307031C9A
:1000100023280330A100DF300F200328A101E83E90
:10002000A000A109FC30031C1828A00703181528FC
:10003000A0076400A10F152820181E28A01C222844
:1000400000002228080083130313831264000800B1
:10005000073099008316083085008312850103302C
:10006000BC003030B800B901203085003908A1004B
:1000700038080F20243085003908A10038080F20E7
:10008000313085003908A10038080F203430850050
:100090003908A10038080F20363085003908A10042
:1000A00038080F20373085003908A10038080F20A4
:1000B000363085003908A10038080F20343085001B
:1000C0003908A10038080F20313085003908A10017
:1000D00038080F20243085003908A10038080F2087
:1000E000203085003908A10038080F201330850022
:1000F0003908A10038080F20063085003908A10012
:1001000038080F20033085003908A10038080F2077
:10011000013085003908A10038080F208501390811
:10012000A10038080F20013085003908A1003808E7
:100130000F20033085003908A10038080F20063051
:1001400085003908A10038080F20133085000630DB
:100150003802BA000030031C013E3902BB003B08E4
:10016000A1003A080F20B52034286400851DB92865
:10017000080064008519C628C8300120BC0A640044
:100180003C08053C031DC6280130BC0064003C0847
:10019000013C031DCF283230B8000330B9006400A1
:1001A0003C08023C031DD7287730B800B901640031
:1001B0003C08033C031DDF282D30B800B901640062
:1001C0003C08043C031DE7281D30B800B9010800B5
:0401D0006300E828B8
:02400E008C3FE5
:00000001FF

domingo, 9 de março de 2014

Circuito para testar motores de passo


Eu precisava de um circuito para testar alguns pequenos motores de passo para um novo projeto e resolvi bolar um com velocidade ajustável e escolha do sentido de rotação. Pra facilitar incorporei o circuito de driver para motores unipolares (os bipolares necessitam de ponte H).
O resultado foi esse circuito simples usando um PIC12F629 como gerador da sequência de pulsos, onde um botão controla sequencialmente o período dos pulsos, inciando em 20ms, para 10ms, indo para 100ms e decrescendo em passos de 10ms. O outro botão apenas altera o sentido de rotação.  Os transistores do circuito driver são BC337 para 500mA, portanto não aguentariam motores de maior porte e torque.  A tensão para alimentação do circuito é de 5V e para os motores pode variar até uns 30V.

Segue o esquema, o firmware e duas fotos da montagem numa placa padrão.





















O firmware para o 12F629:
:100000002828A301A200FF30A207031CA307031C9A
:1000100023280330A100DF300F200328A101E83E90
:10002000A000A109FC30031C1828A00703181528FC
:10003000A0076400A10F152820181E28A01C222844
:1000400000002228080083130313831264000800B1
:1000500007309900831628308500831285011430FB
:10006000B9001030850039080120143085003908A6
:100070000120043085003908012006308500390848
:10008000012002308500390801200330850039083D
:100090000120013085003908012011308500390820
:1000A00001206400851D5D280A30B902640039080A
:1000B0000A3C031D5D286430B9006400851E612878
:1000C000622831281130850039080120013085006F
:1000D00039080120033085003908012002308500ED
:1000E00039080120063085003908012004308500D8
:1000F00039080120143085003908012010308500AE
:10010000390801206400851D8E280A30B902640078
:1001100039080A3C031D8E286430B9006400851E2E
:0A012000922831286228630093281A
:02400E00843FED
:00000001FF


Adendo:
Eu havia colocado o pequeno potenciômetro na plaquinha, mas que estava sem uso. na verdade eu já tinha pensado em fazer um controle analógico tanto para a velocidade como para estabelecer qual o sentido de rotação. Então aqui uma versão com o potenciômetro:

Neste circuito o microcontrolador agora é um PIC12F675 que possui conversor analógico-digital. O programa então foi modificado para ler a posição do potenciômetro (na verdade ele converte a tensão do cursor do potenciômetro) e conforme o valor convertido ele define qual a velocidade e o sentido. A conversão é feita para 8 bits, então temos valores de 0 a 255. Se o valor lido for maior do que 127, então o sentido será um e se o valor for menor do que 128, o sentido será contrário. O valor determina a largura dos pulsos para os passos do motor. Assim quanto mais perto do centro, mais largo deve ser o pulso (faz-se o cálculo 256-valor ou o próprio valor, dependendo do sentido). A largura mínima será de 1ms, a máxima de 127ms.  A chave serve para que o uC efetive a leitura da posição do potenciômetro e movimente o motor no sentido e velocidade desejados.  Há uma mudança no pino de saída para uma das fases em relação ao primeiro esquema. 
O firmware para o 12F675:

:100000003C280F39A0000310A00DA00D1F08E039F7
:10001000200401389F000030A100323023209F14BB
:100020009F181028A1011E083728A301A200FF3045
:10003000A207031CA307031C37280330A100DF30ED
:1000400023201728A101E83EA000A109FC30031CD1
:100050002C28A00703182928A0076400A10F29282D
:1000600020183228A01C36280000362808008313E8
:10007000031383126400080083161830850083126E
:100080000C309F00831638309F0083128501143096
:10009000BA00203085003A081520243085003A083F
:1000A0001520043085003A081520063085003A08EE
:1000B0001520023085003A081520033085003A08E3
:1000C0001520013085003A081520213085003A08B6
:1000D00015206400851D882803300120B9006400C4
:1000E00080303902031C7F2864003908FF3C031D5F
:1000F0007B28FE30B9003908FF3CBA00892864002B
:100100003908003C031D86280130B9003908BA00BF
:100110004928213085003A081520013085003A0829
:100120001520033085003A081520023085003A0872
:100130001520063085003A081520043085003A085D
:100140001520243085003A081520203085003A0813
:1001500015206400851DC82803300120B900640003
:10016000803039020318BE2864003908003C031DA2
:10017000BB280130B9003908BA00492864003908A1
:10018000FF3C031DC528FE30B9003908FF3CBA000A
:0601900089286300C92864
:02400E00843FED
:00000001FF

quarta-feira, 12 de fevereiro de 2014

Computador Nestor Nova Eletrônica

NESTOR o computador pessoal da década de 80


Em meados de 1984, saiu numa edição da saudosa revista Nova Eletrônica, um projeto de computador pessoal para ser montado pelos leitores e que foi segmentado nos diversos números seguintes.  Naquela época o microprocessador mais famoso era o Zilog Z80, de oito bits e que podia rodar os programas escritos para o microprocessador 8080A da Intel (esse era o tataravô do atuais processadores da Intel). O Z80 era usado em vários computadores pessoais da época: TRS-80 da Radio Shack (aqui tinha clones da Dismac e outros fabricantes), no super ultra vendido ZX-81 (aqui clonado pela Microdigital no TK-82C, TK-85 e TK-83; pela Prológica com o CP-200 e Ritas com seu Ringo470) e pelo melhor de todos: o ZX-SPECTRUM (aqui TK-90X e TK-95), além de CP500, Itautec I7000, Sistema 700, etc. O Z80  era usado até nos Apple II, num cartão especial para rodar programas em sistema operacional CP/M e assim usar o dBase II e processador de texto Wordstar.  A base instalada do Z80 era enorme e muita gente tinha conhecimentos de sua programação.

Foi natural então que a revista (editora Editele) escolhesse esse microprocessador para seu projeto.  Surgiu assim o NESTOR, que era um computador bem básico com um teclado de 24 teclas, e displays de leds de 7 segmentos para apresentar os dados e endereços, bem como apresentar algumas mensagens com caracteres alfabéticos rudimentares.  Apesar  do Z80 poder endereçar até 64 kbytes (uma miséria hoje em dia), o Nestor original só tinha 1 kbyte de RAM formada por dois cis 2114 e um programa monitor de 2 kbytes gravado em uma memória EPROM 2716. Um punhado de cis TTL completavam o computador para realizar a seleção de blocos de memória, formar as portas de entrada e saída, controlar os displays de leds e ler o teclado. Tudo isso rodando a um clock de 3,58MHz (cristal de TV) e alimentado por uma fonte de 5Vdc/1A.

Nas edições seguintes, foram informados o layout da placa (dupla face - o que dificultava bastante a confecção caseira) e a listagem do programa monitor que deveria ser gravado na EPROM. Mais adiante surgiram a interface para cassete, de forma que os programas digitados pudessem ser gravados em fitas cassete e depois recuperados, e um circuito para gravação de EPROMs.

Não precisa dizer que ele não aceitava programas escritos em linguagem de alto nível (tipo C, pascal, basic, cobol, fortran, etc). Os programas precisavam ser entrados em formato hexadecimal em cada endereço. Isto é, programação em linguagem de máquina no seu nível mais baixo (mais baixo que isso, só entrando em binário), assim o programador precisava escrever os mnemônicos num papel e depois traduzi-los para os códigos hexadecimais de cada instrução (op codes) para poder entrar. Ou usar um programa assembler (montador tradutor) em outro computador para fazer isso.
Mesmo assim, um computador desses era um valioso instrumento de aprendizado, pois o Z80 era ensinado em todas escolas de eletrônica. Todo mundo queria aprender assembly (linguagem de máquina) do Z80.  Além de ser também um grande aprendizado para entender a estrutura lógica do hardware de computadores digitais.
Pois bem, eu comprei todas as revistas que saíram sobre esse computador, comprei as peças (inclusive teclas), cis, gravei EPROM (tive que digitar toda a listagem) e fiquei esperando um dia conseguir construir esse computador. O problema maior era fazer a placa. A placa era de face dupla, a face superior veio desenhada na revista, mas a face inferior tinha o desenho também, mas com uma grande besteira da revista, pois no layout foram inseridos quadrados em cor marrom (sobre as trilhas pretas) separando os blocos do computador. Ou seja, o layout era inútil para reprodução, sem falar que o alinhamento das duas faces é muito difícil.
Assim, fiquei quase 30 anos no meu sonho, com minhas pecinhas bem guardadas.

Ano passado, o pessoal do grupo Clube do TK no Yahoo, do qual faço parte e só tem sujeito da minha faixa etária e que era vidrado nos computadores pessoais de antigamente (tipo TK, MSX, Color Computer, Amiga, etc etc), reviveu a ideia de montar o Nestor. E o grande Victor Trucco redesenhou e reprojetou o Nestor, com ajuda do Fabio Belavenuto no software. Obviamente meus olhos brilharam e meu sonho de 30 anos podia se tornar realidade. Ele batizou o computador de NESTOR+, pois tinha uns melhoramentos: agora o computador teria 32kbytes de RAM num ci 62256, o processador foi atualizado para um Z80 CMOS (o Z80A original de 4MHz era NMOS), a interface cassete foi embutida na placa principal (que ficou menor).
Imediatamente muita gente se inscreveu querendo o Nestor+.  No começo do ano pudemos saber que o protótipo funcionava e que iriam produzir uma  série limitada de placas.  Pra adquirir, havia duas opções: montado e em kit. Obviamente optei pelo kit, pois queria ter o prazer de montá-lo eu mesmo.
Essa semana me chegou o kit com todas as peças (não vou usar as minhas peças guardadas há tanto tempo, até poderia usar algumas, pelo menos o Z80 e os TTLs, mas não as memórias e nem as teclas).
Agora, minhas próximas postagens no blog, serão sobre a montagem do Nestor+.
Comecei a fazer a checagem da placa, verificando se todas as conexões e trilhas estão ok, com o multímetro em modo de continuidade (apitando quando ok). Já achei dois problemas, mas foram resolvidos.
Próximo passo: começar a soldagem dos componentes.
Abaixo algumas fotos do Nestor original e do Nestor+.

A capa da revista com a foto do Nestor da época, note as teclas antigas e em pouco número para os padrões de hoje:

Foto do Nestor+ montado pelo Victor Trucco, com placa mais compacta e outra disposição dos componentes e teclas pequenas, e a grande memória RAM de 32 kbytes:

O meu kit: