Pesquisar este blog

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:


quarta-feira, 4 de dezembro de 2013

Oscilador Senoidal Valvulado

GERADOR DE ÁUDIO VALVULADO COM 6BQ7

Continuando com minhas experiências com osciladores de áudio, chegou a vez de montar um gerador de áudio valvulado. Achei um esquema na internet usando a 12AT7 e por ponte de Wien. Resolvi adaptar o esquema para usar a 6BQ7 que tem um ganho (mu) um pouco menor, mas como não necessitamos de ter um ganho alto e o oscilador fica limitado a ter um ganho de 3, ela deveria servir. Ela é um duplo triodo muito usada nos amplificadores da Meteoro, com base noval e filamentos de 6,3V. Além disso vou usar uma tensão de alimentação menor do que a do esquema original.

O esquema original é esse:
Nesse projeto a frequência é ajustável e variável de acordo com a posição do potenciômetro duplo de 1 Mohm. Como eu não tinha um desses, resolvi fazer o oscilador com valor fixo. A fórmula da frequência é:
Freq = 1 / (2 x pi x R x C)  desde que as duas resistências e os dois capacitores da malha de realimentação positiva sejam iguais.Essa malha (ou loop) de realimentação vai ter um ganho de 1/3 (atenuação por 3) na frequência escolhida.

Minha adaptação, usando as peças que eu tinha:
Esquema do meu circuito

Já na malha de realimentação negativa (a que define o ganho para compensar a atenuação) temos que ter um ganho de 3 para compensar a atenuação de 1/3 na malha positiva de forma a ter um ganho geral de 1. Mas para o oscilador começar a funcionar, inicialmente precisamos ter um ganho geral maior do que 1, e portanto um ganho maior do que 3 na malha de realimentação negativa. Usando a velha dica da lâmpada incandescente que inicialmente tem uma baixa resistência quando desenergizada e que aumenta a medida que ela esquenta, achei uma lâmpada de 130 V e uns 3 W de potência. Ela inicialmente tem o filamento frio com 369 ohms, então a resistência do potenciômetro de ajuste tem que ter mais do que duas vezes esse valor (na verdade bem mais pois a resistência da lâmpada vai aumentar bastante). No esquema original usaram um de 5k, o que adotei como valor a ser usado.

A lâmpada


A montagem foi feita numa plaquinha de fibra de vidro com ilhóses e terminais que eu faço em casa e permite uma rápida soldagem e muitas e muitas modificações (virtualmente indestrutível). Tudo fixado a um chassis de chapa de alumínio, com furos e locais pra fixação de soquetes, bornes, barras sindal, e conectores. O transformador de força também foi feito por mim pra uma versão de um pequeno amplificador valvulado.


Para minha surpresa, o circuito funcionou logo de primeira (ajustando o potenciômetro de 5k) e obtive essa linda senoide de 480 Hz (conforme calculado) de 1 Vrms e uma pequena distorção. Fazendo a medição do valor do potenciômetro, ele ficou em 1220 ohms, de forma que a lâmpada deve ficar com um valor de metade disso (610 ohms energizada).


O valor calculado da frequência segue abaixo:
Freq = 1 / (2 x 3,14159265 x 10000 x 33 x 10^-9) = 482 Hz
O osciloscópio estava com varredura vertical em 1 V por quadrícula e 1 ms por quadrícula horizontal.

quinta-feira, 14 de novembro de 2013

Medidor de corrente de catodo em valvulados

BIASMETER - medidor de polarização para válvulas

Quem monta amplificadores valvulados sabe que que um ajuste importante a ser feito nas válvulas da etapa de saída é o ajuste de bias (lê-se "baiaes" ou polarização). Esse ajuste consiste em estabelecer uma tensão negativa na(s)  grade(s) da válvula(s) para que uma certa corrente de catodo desejada seja fixada. Como essa corrente deve ser estabelecida sem que haja sinal na grade, ou seja a válvula está em repouso (mas ligada), dizemos que a corrente é quiescente. Normalmente esse ajuste ocorre mais em amplificadores com etapa de saída complementar (push-pull) onde uma ou duas válvulas conduzem um pouco mais do que meio ciclo do sinal e outra válvula (ou par) conduz a outra metade do sinal e mais um pouco (operando em classe AB). Amplificadores que usam saída em Single Ended, geralmente operam em classe A e usam uma polarização automática com um resistor de catodo, portanto não necessitam de ajuste, mesmo com a troca da válvula. Já nos push-pull, pode haver também essa configuração de polarização automática (auto bias ou cathode bias) mas nesse caso as duas válvulas complementares precisam estar casadas (matched pair) para que as correntes de catodo não sejam muito díspares, de forma que não ocorra um desbalanceamento na correntes que circulam pelos enrolamentos do transformador de saída.  Com o uso de polarização fixa (isso é com uma tensão negativa aplicada à grade de cada válvula), se pode ajustar a corrente de catodo de cada válvula de forma a obter o melhor balanceamento das correntes e fixar uma corrente quiescente de catodo para cada válvula que não a force muito (dissipação de potência), tenha flexibilidade para achar o ponto de operação correto e adequado para menor distorção e melhor rendimento.
No caso de etapa de saída com triodos, a corrente de catodo vai ser igual à corrente de placa (anodo). No caso de válvulas pentodo ou tetrodo, a corrente de catodo vai ser a soma da corrente de placa e da corrente de tela (screen ou grade 2). E essas correntes podem ser ajustadas através de trimpots que ajustam a tensão negativa aplicada às grades de controle (grade 1) das válvulas.
O melhor jeito de se medir o ajuste de polarização, é medindo-se a corrente de catodo. É um método seguro, pois não há altas tensões no catodo (que geralmente está aterrado nessa configuração). Embora pra se fazer isso com um miliamperímetro envolveria a desconexão temporária do pino do catodo e inserção do miliamperímetro no caminho para o terra, fica meio inviável e trabalhoso realizar esse procedimento a cada ajuste.  Podemos medir essa corrente indiretamente, através de um resistor de baixo valor (1 ou 10 ohms) conectado entre o catodo e o terra. Dessa forma, medindo-se a tensão contínua sobre o resistor, podemos determinar a corrente que passa por ele, pela aplicação da lei de Ohm.  A tensão medida, dividida pelo valor do resistor, nos dará o valor da corrente de catodo (se for o resistor de 1 ohm, a tensão medida em mV nos dará imediatamente o valor em mA, se o resistor for de 10 ohms, o valor em mA será o valor em mV dividido por 10).  Eu acho aconselhável a quem constrói um valvulado com ajuste de polarização fixa, sempre colocar esse resistor de catodo de baixo valor, pois facilita a medição e ajuste.
No caso de amplificadores sem esse resistor, resta usar um artifício e usar um soquete de válvula especial, onde existe um resistor interno de 1 ou 10 ohms, que inserido no lugar da válvula e esta inserida nesse soquete, permite que se faça a medição com um multímetro comum (medindo-se a tensão sobre o resistor).
Ocorre que as coisas não são tão simples assim. Na etapa com elementos complementares, geralmente é difícil se obter o perfeito balanceamento e equilíbrio nas correntes, pois o ajuste feito num lado às vezes mexe com o ajuste do outro lado, de forma que o procedimento tem que ser repetido e rechecado algumas vezes. O ideal seria fazer o ajuste das correntes de todas as válvulas simultaneamente. Dessa forma seriam necessários 2 ou 4 medidores conectados ao mesmo tempo.
Amplificadores High End, de alto preço, já tem esses medidores incorporados nos gabinetes. Mas caso não tenha (a maioria dos valvulados para guitarra não tem), seria legal ter um instrumento com vários medidores.

Como basicamente seriam necessários 4 milivoltímetros, uma ideia seria projetar um milivoltímetro com 4 canais simultâneos.  Os microcontroladores de hoje possuem vários canais para conversão analógico-digital e podem perfeitamente realizar essa tarefa. bastaria ler os valores de tensão sobre os resistores de catodo e mostrar num display (de leds ou de cristal líquido).  Um bom microcontrolador e barato e fácil de encontrar é o PIC 16F819.  Assim fiz o projeto abaixo:

O código do firmware:

:10000000B201EF280408A700061086108610831698
:100010000610861086100F30860583122708B21846
:100020002E283A30A100FC30A0203330A600422018
:100030001030A1006830A020422064309F20223080
:10004000A600422028302D200C302D2001302D20FC
:1000500006302D20B21427082E283214A600321C98
:100060003C288610033C031C412841200730A10096
:10007000D030A020031408003214FE3C0319EA28F3
:100080008614321C321006140F3086052608F0390B
:1000900086040610A60E3218422832309F20031420
:1000A0000800B31329080319B3170530A800273037
:1000B000A300103067200330A300E8306720A301BD
:1000C00064306720A3010A30672024086E28A2004C
:1000D0002508A1002408A000B3202008A000A80340
:1000E0000319B313290803197828280203180800F4
:1000F0002008031DB313B31B0800303EE528A00001
:10010000A00DA00D200D383941389F000030A1000E
:100110003230A0201F151F198B281E08A10083163E
:100120001E08EA28A301A200FF30A207031CA307B0
:10013000031CEA280330A100E330A0209428A10189
:10014000F43EA000A109FE30031CA928A007031853
:10015000A628A0076400A10FA62800002018B02838
:100160002018B2280800A501A4011030A600210D16
:10017000A40DA50D2208A4022308031C230FA50229
:100180000318C9282208A40723080318230FA5076A
:100190000310A00DA10DA60BB7282008EA281030E7
:1001A000A800A101A001A70CA60C031CDD282208B1
:1001B000A00723080318230FA107A10CA00CA50C6E
:1001C000A40CA80BD3282408EA28840031088A004C
:1001D0003008820083130313831264000800403048
:1001E0009F008316C0309F00FF3085008601831278
:1001F00086018501831674308F008312FE30032040
:1002000001300320413003206A3003207530032081
:100210007330032074300320653003202030032026
:100220006430032065300320203003204230032057
:100230006930032061300320733003202030032015
:1002400020300320FE300320C03003206430032020
:100250006530032020300320563003206130032016
:100260006C30032076300320753003206C3003207F
:1002700061300320643003206F300320733003208B
:100280002030032020300320203003200730A3003B
:10029000D03093206430C000C101FE300320013013
:1002A00003204530032073300320633003206F3078
:1002B00003206C300320683003206130032020309D
:1002C000032072300320653003207330032069302F
:1002D000032073300320743003206F30032072300A
:1002E0000320FE300320C03003206430032065303B
:1002F000032020300320633003206130032074305A
:1003000003206F300320643003206F30032020303F
:100310000320203003202030032020300320203011
:10032000032020300320203003200730A300D030EA
:100330009320FE300320013003205330032065302A
:1003400003206C30032065300320633003206930C4
:1003500003206F3003206E300320653003202030EF
:1003600003206F30032070300320E730032061301A
:1003700003206F30032020300320FE300320C030E4
:10038000032028300320413003202930032031305E
:1003900003206F300320683003206D3003202030AD
:1003A000032028300320423003202930032031303D
:1003B0000320303003206F300320683003206D307D
:1003C0000320C83092206400851BEE290330A3006F
:1003D000E83093200A30C000C101FA296400051BEF
:1003E000F9290330A300E83093206430C000C10134
:1003F000FA2999290A30922001307F20B80021087B
:10040000B9000A30922002307F20BA002108BB00D8
:100410000A30922003307F20BC002108BD000A3042
:10042000922004307F20BE002108BF000A309220B5
:100430003808A6003908A7003130A200A301CF2058
:10044000CC002508CD004C08A0004D08A1004008B4
:10045000A2004108A300B320C2002108C3003A084B
:10046000A6003B08A7003130A200A301CF20CC009A
:100470002508CD004C08A0004D08A1004008A200AE
:100480004108A300B320C4002108C5003C08A60011
:100490003D08A7003130A200A301CF20CC002508E1
:1004A000CD004C08A0004D08A1004008A200410862
:1004B000A300B320C6002108C7003E08A6003F08DD
:1004C000A7003130A200A301CF20CC002508CD0029
:1004D0004C08A0004D08A1004008A2004108A3005C
:1004E000B320C8002108C900FE30032001300320DA
:1004F000493003206B300320313003203D3003208E
:10050000A9014208A4004308A5000230B000B101CF
:10051000512020300320493003206B30032032303B
:1005200003203D300320A9014408A4004508A5008C
:100530000230B000B10151202030032020300320D0
:100540002030032020300320FE300320C030032061
:10055000493003206B300320333003203D3003202B
:10056000A9014608A4004708A5000230B000B10167
:10057000512020300320493003206B3003203430D9
:1005800003203D300320A9014808A4004908A50024
:100590000230B000B1015120203003202030032070
:1005A0002030032020300320C83092206400851BB7
:0E05B000DC2AC8309220FE28FA296300DD2ADA
:02400E00303F41
:00000001FF


Esse medidor permite selecionar qual o valor do resistor usado e depois ele mostra os 4 valores de tensão ao mesmo tempo, de forma a facilitar o ajuste equânime de todas as válvulas.








quinta-feira, 24 de outubro de 2013

Decodificadores para displays de 7 segmentos

DECODIFICADOR BCD/Hexa - 7 SEGMENTOS

Em muitos circuitos eletrônicos precisamos de uma interface humana pra rapidamente entendermos os dados que resultam de uma medição, de um ajuste ou comunicação. Um dos meios mais baratos e difundidos é a utilização de displays de leds com 7 segmentos. Com esses displays podemos facilmente apresentar todos os dígitos decimais (0 a 9) e algumas letras do alfabeto. Apesar de existirem displays mais completos, com mais segmentos ou mesmo de matriz de pontos, o de 7 segmentos ainda é o mais usado e de mais fácil utilização. Para isso, geralmente precisamos de um circuito auxiliar que faça a tradução dos dados digitais para que os displays acendam os segmentos corretos e possam assim mostrar o dígito correto.
Esses circuitos são chamados de decodificadores BCD (binary coded decimal - decimal codificado em binário) para 7 segmentos. Para facilitar, esses circuitos são disponíveis em forma de circuitos integrados, sendo exemplos o CD4511 (CMOS) e os da série TTL 7446 7447  7448 (incluindo as variantes LS).
O problema desses cis é que eles só decodificam de 0 a 9 e às vezes queremos decodificar dígitos hexadecimais (acrescentando as letras A b C d E F). Antigamente existia um integrado de código DM9368 que era TTL e que fazia essa decodificação, mas hoje ele se tornou raro (difícil de encontrá-lo) e portanto deve ser caro pra comprar. Eu mesmo tenho umas 3 peças, mas vão virar peças de museu.






Aqui a tabela verdade do 9368, mostrando os dígitos headecimais:

Apesar de que hoje, quase não se usa mais circuitos integrados TTL ou CMOS das séries 74 e 4000/4500, pois praticamente quase tudo é implementado com microcontroladores, FPGA, PAL, etc, de vez em quando ainda precisamos de um decodificador desses.
Pra implementar um decodificador de BCD 7 segmentos, um circuito combinacional um pouco complexo é necessário. São várias portas lógicas interligadas e otimizadas com mapas de Karnaugh (cheguei a fazer vários exercícios de implementação desses decodificadores na escola, inclusive montando de verdade só com portas lógicas). Pra terem idéia, o diagrama de portas do 4511:

O 4511 além de tudo tem latches para manter os dados, mas ainda assim só consegue mostrar de 0 a 9.
Se fosse implementar um decodificador hexadecimal, o circuito seria assim (sem otimização por mapas de Karnaugh):

Esse circuito usa muitas portas com várias entradas, além disso eu coloquei um recurso de poder usar tanto displays de catodo comum como de anodo comum, com as portas XOR (ou exclusivo) nas saídas, de forma a poder selecionar com uma entrada se a lógica seria positiva (catodo comum) ou negativa (anodo comum).
Aqui outro esquema otimizado com os mapas de Karnaugh:

Como não vale a pena usar PAL ou FPGA pra implementar isso, resta a opção de usar microcontroladores para realizar essa "glue logic".  Microcontroladores simples com poucos pinos são muito utilizados para essas funções.
Infelizmente não achei nenhum PIC com a mesma pinagem de alimentação dos decoders comerciais, mas optei por um PIC de 14 pinos, o 16F630 (ou 16F676), que se não serve como substituto direto pino a pino para os decoders, pode simplificar bastante a falta de decoders hexadecimais:

Basta gravar o firmware abaixo, que o PIC se comporta como um decodificador hexadecimal para 7 segmentos, com a vantagem de que as saídas dele podem fornecer até 20mA de corrente para os segmentos de leds. Além disso implementei o recurso de modo de display (catodo comum ou anodo comum) que nenhum decoder comercial tem.

:100000000C288001840AFF3E031D01280728831362
:1000100003138312640008000730990083161F3011
:1000200085008701203084004030831201200F308A
:10003000B9000F300505B800640038083902031D07
:10004000222819283808B900051ABA14051EBA1052
:100050006400BA1C2D282F282E287028192838084B
:100060000F3C031C4D28362087004D2800308A00A5
:1000700038083D3E03188A0A82001F3403342D34A9
:100080002734333436343E3403343F3437343B344E
:100090003E341C342F343C34383438080F3C031CB5
:1000A0006F285820013903198512031D85166F2802
:1000B00000308A0038085F3E03188A0A8200013443
:1000C000003401340134003401340134013401348A
:1000D000013401340034013400340134013419286E
:1000E00038080F3C031C8E28772087008E280030AC
:1000F0008A0038087E3E03188A0A820020343C3485
:10010000123418340C34093401343C3400340834CB
:1001100004340134233410340334073438080F3CDA
:10012000031CB0289920013903198512031D851677
:10013000B02800308A003808A03E03188A0A8200DE
:10014000003401340034003401340034003400340D
:1001500000340034003401340034013400340034FD
:0601600019286300B1281C
:02400E00C43FAD
:00000001FF

A pinagem fica assim:

E a tabela verdade:
Mudando a entrada modo para nível baixo (0), o decodificador funciona com as saídas para displays de anodo comum, e a lógica invertida.

A seguir o firmware versão 16F676, que tem a mesma pinagem do 16F630, só que tem alguns recursos analógicos a mais (conversores A-D).

:100000000C288001840AFF3E031D01280728831362
:1000100003138312640008000730990083161F3011
:100020008500870191012030840040308312012037
:100030000F30B9000F300505B800640038083902E8
:10004000031D23281A283808B900051ABA14051EFA
:10005000BA106400BA1C2E2830282F2871281A28BC
:1000600038080F3C031C4E28372087004E280030EC
:100070008A0038083E3E03188A0A82001F3403347F
:100080002D342734333436343E3403343F3437345C
:100090003B343E341C342F343C34383438080F3C65
:1000A000031C70285920013903198512031D851678
:1000B000702800308A003808603E03188A0A8200DF
:1000C000013400340134013400340134013401348A
:1000D000013401340134003401340034013401347A
:1000E0001A2838080F3C031C8F28782087008F2897
:1000F00000308A0038087F3E03188A0A82002034C4
:100100003C34123418340C34093401343C34003497
:1001100008340434013423341034033407343808E9
:100120000F3C031CB1289A20013903198512031DC5
:100130008516B12800308A003808A13E03188A0AC3
:1001400082000034013400340034013400340034BF
:1001500000340034003400340134003401340034FD
:0801600000341A286300B228E4
:02400E00C43FAD
:00000001FF

quarta-feira, 16 de outubro de 2013

instruções dos PIC 16F

TABELA COM INSTRUÇÕES DOS MICROCONTROLADORES PIC


Download: http://www.filedropper.com/picinstr


Fiz essa planilha faz tempo e resolvi compartilhar no Blog. Ela contem as instruções em linguagem de máquina dos PICs das séries 16F (palavras de 14 bits) e 18F (palavras de 16 bits), com o mnemônico, código binário, operandos e um resumo da operação realizada. Na planilha das instruções 18F dá pra simular e verificar o funcionamento de algumas instruções (lógicas, aritméticas, e de deslocamento), com os resultados nos registradores e bits de flags do status.

Acredito que essa tabela possa ser útil pra aprendizado de programação de PIC, principalmente pra quem gosta de programar em assembly.

Caminhando um pouco para a direita da planilha, podemos ver a tabela de simulação das instruções, onde a entrada de dados nos operandos (registradores e bits de status) deve ser feita nas células com caracteres em vermelho.

Observado que esse recurso só está implementado na planilha de instruções dos 18F, mas algumas instruções funcionam da mesma forma nos 16F.  Como o conjunto de instruções dos PIC é reduzido (RISC) não é muito difícil depois de um tempo decorar e aprender rapidamente o que faz cada instrução.

segunda-feira, 14 de outubro de 2013

Etiquetas para CIs

Etiquetas com pinagem de CIs


Quando vamos fazer um circuito em protoboard usando circuitos integrados sempre precisamos ter a pinagem e funções dos pinos à mão para fazer as conexões corretamente. Isso é especialmente incomodo quando temos vários cis e temos que ficar procurando a pinagem nas datasheets e databooks. Isso torna a montagem demorada e suscetível a erros, basta uma distração e podemos queimar um ci por bobeira.
Como tinha uma caixinha com vários cis TTL (tá certo, ninguém usa mais isso, mas a idéia serve pra qualquer ci), resolvi colar umas etiquetas com as pinagens dos cis em cima deles pra facilitar a identificação dos pinos.  Inicialmente eu apenas colava um pedacinho de etiqueta adesiva e desenhava ou escrevia as funções dos pinos. Mas o papel é pequeno demais e precisa escrever com lápis com ponta fina ou caneta bem fina, senão fica tudo ilegível.
Com tempo pude desenhar no Coreldraw e depois imprimir os desenhos e pinagens dos cis e assim ficar um pouco mais legível (o problema é o tamanho das letrinhas, mas com lente de aumenta ainda vai...).
Vejam as etapas:

Primeiro desenhar e escrever no Corel na escala correta (real), aqui uma amostra dos desenhos:

A seguir fazer a impressão (melhor em papel adesivo) e recortar (dá trabalho) os pequenos "cis" de papel:

A seguir colar os papelzinhos sobre os cis de verdade:


Usando o ci etiquetado na protoboard do meu laboratório:

A idéia serve pra todos os cis com tamanho suficiente pra ter uma etiqueta colada e pode ajudar desenvolvedores e estudantes em laboratório a montar os circuitos com menor chance de erro e maior facilidade.









sábado, 14 de setembro de 2013

Hi End Show 2013

HI END SHOW 2013


Como costumo fazer nos últimos anos, dei uma passada pra ver e ouvir bons equipamentos de áudio e vídeo no HI END SHOW da revista Clube do Áudio e Vídeo, que iniciou no último dia 12 e termina hoje dia 14 de setembro (mais cedo do que nos anos anteriores). Repetindo a fórmula do ano passado, a mostra se deu no hotel Maksoud, que embora luxuoso, sofre com corredores apertados e escuros, além disso algumas salas (quartos) onde eram apresentados os equipamentos eram pequenos.
Sobre os expositores, senti a falta de equipamentos da KEF, B&W, Beyerdynamics, Sennheiser e da Audiopax (em decorrência do falecimento do Eduardo Lima no ano passado, nunca mais teremos a degustação dos Maggiore e da longa palestra dele). Em compensação, uma grata surpresa comparada aos anos passados: muitas apresentações com amplificadores valvulados, em especial dos McIntosh (MC2301), Manley (Stingray), Avance (A50), Pathos, e  outros que não estavam tocando, como Triode, Audio Research e um ampli que usava umas válvulas 6C33 (triodos, com chifrinho na parte de cima).  Como o ambiente na maioria das salas era meio escuro, as fotos de celular não ficam boas, mas tirei algumas.




Como novidades pude conhecer as TVs de ultra definição da Samsung, e em especial um equipamento (Universal Devialet Air Streamer) da marca francesa Devialet (não deu foto, muito escuro), num elegante gabinete bem slim (podia ficar na horizontal ou na vertical como um quadro),  que integrava entradas USB, ethernet, analógicas (inclusive phono, AES EBU, e saída de potência de 110W (x2) a 500W (x2) que eu não entendi onde caberia uma fonte de alimentação neles.
De caixas, muitas Sonus Faber espalhadas, Avance, Monitor Audio 

Ao contrário do ano passado, os dez reais da entrada foram bem gastos. De brinde, como sempre, uma revista CAV do ano passado, com um CD de música clássica.  E quem sabe, com sorte ganhar no sorteio do representante da McIntosh, o livro dos amplificadores McIntosh (que custa R$ 500).