Archive for May 2013

AVR Testador de Componentes

 

posted by Wagner Lipnharski @ 6:29pmFriday 8 March 2013.

Recentemente na Alemanha um colega desenvolveu um testador de transistores, usando um AtMega8 e seis resistores.  Ele media o ganho e polarização e indicava num LCD.  Semanas foram passando e ele percebeu que poderia também medir resistores, diodos, tensões, e inclusive capacitores.

A coisa cresceu e chamou a atenção de muita gente boa em software e hardware.  Foi criado um thread no forum alemão, e muita gente palpitou e a coisa evoluiu.  Como foi feito na modalidade “open source”, alguns outros colegas aproveitaram e fizeram as suas próprias alterações e implementações.  Surgindo então algumas diferentes versões na net.

Como não poderia deixar de ser, os chineses copiaram a idéia, produziram PCBs montados e os vendem no eBay por valor em torno de $15, o que no fundo é bom e barato.
Abaixo, fotos copiadas do eBay e da net, só para fins ilustrativos, o usuário montou a plaquinha do testador embaixo do LCD, e pode-se ver o teste do resistor de 10 ohms, ligado aos pinos 3 e 1 do conector de teste.
Acima e abaixo, a plaquinha visível, onde dá para ver todos os componentes usados, incluindo transistores que fazer o power on e auto power off após um certo de tempo de inatividade.  Esses componentes de controle de power podem ser eliminados, desde que se use uma chavinha on/off para desconectar a bateria de 9V.
O diagrama desse testador é bem simples, veja a imagem abaixo e o link para o arquivo PDF do diagrama expandido.  Veja que o lado esquerdo contém os transistores e componentes da seção de power on/off que podem ser eliminadas, coisa que explicarei mais a frente.

 

Clique aqui para diagrama expandido.

 

Esse final de semana continuo esse blog, postando versão de software mais moderna com mais funções, e mudanças no circuito, a permitir melhores e mais poderosas funções.  Aguarde.

Zoom na tela do Windows 7

As vezes é aquela letrinha, ou aquele desenho, figura, ou pequeno detalhe na imagem, que é muito pequena na tela do monitor, e que se gostaria de ver aumentada (zoom) na tela do Windows.

Nas versões antigas do Windows se usava algum utilitário especial para fazer o tal “zoom” da imagem.

Na versão Windows 7, por acidente, ontem eu descobri que isso é nativo, chama-se “Magnifier”.

Pressione Tecla Windows e a tecla “+” simultaneamente… aha!- então sucessivos “Tecla Windows” e “+” ou “-” para controlar a quantidade de zoom requerida.

Ao mesmo tempo irá abrir uma telinha pequena do (Magnifier Options) controle da “lupa”, para acabar com o zoom, clique o “X” daquela telinha, ou o “X” da tela do zoom.

O tamanho da tela do zoom pode ser manuseado, pode-se arrastar as laterais para qualquer tamanho, inclusive full-screen.

AtMega128 vs At89s8252 firmware

Pois é, estou desenvolvendo um firmware para uma máquina nova, usando o AtMega128 (Atmel) 16MHz com 256kBytes SRAM externa, 1MB Eeprom externa, etc, mas cada nova rotina deve ser testada, e para isso tem que gravar a Flash do AtMega toda vez… tá bom, a flash dele suporta 10 mil regravações, mas é um saco pensar nisso.   O AtMega128 que estou usando é um TQFP64 soldado na placa de teste, tá bom, é só dessoldar e meter outro, mas, é um saco pensar nisso.

Na época do 8051, usava-se eprom externa, que beleza.  Tinha que apagar, gravar, os cambal, demorava mais, até um dia eu fazer uma engenhoca com SRAM e um código minusculo em eprom.  Na verdade fiz um bootloader, na época que nem se pensava nesse nome.  O código mínimo fazia o 8051 rodar a UART na velocidade mais alta possível aceita pelo PC e esse despejava o novo código a rodar via serial, o 8051 recebia, gravava na SRAM externa e ao final ele mesmo virava um flip-flop e substituia a eprom pela SRAM e o novo código entrava no ar.   Muito rápido e funcional.

Não dá para fazer isso com os AtMega, exceto com um novo chip AVR32 que permite rodar código de memória externa.

A grande vantagem de usar o AtMega128, com 128kBytes de Flash, é que me deixa respirar.   Escrevendo tudo em assembly, é claro, pois *não existe* nenhuma outra linguagem de programação que se possa considerar séria… rsrs… eu sempre me preocupo em reduzir código, reutilizar código, se o mesmo trecho será usado mais de uma vez – passa a ser subrotina, etc e tal.  Essa “neura” consome tempo, e sempre se pensa em fazer um grande código com uma memória flash minuscula.  Não é à toa que tudo o que eu já escrevi na vida, e tem coisa muito complexa, nunca passou de 7kBytes.   Mas agora, com 128kBytes de flash à disposição, eu respiro e a coisa mudou de cor e cheiro, agora eu não mais me preocupo em economizar espaço, nem de Flash, nem de SRAM, e agora eu deito e rolo, me preocupo sim com velocidade de processamento, e tenho medido tudo para garantir que nada mantenha o AtMega ocupado fora do razoável.

Para ter uma idéia, ainda estou na dúvida sobre controlar os displays de sete segmentos, 20 no total, com refresh de 100Hz do AtMega, usando chips 74HC595 e transistores, ou o Max7219, que faz o serviço de refresh sozinho, mas, a rotina do refresh para o HC595 toma só 3.5 microsegundos. Isso é nada, certo?  Simples, eu não faço o bit-bang de mandar bit a bit, eu uso o dispositivo interno do AtMega chamado SPI, é um tipo de serial que pode transmitir a velocidades altíssimas, de no máximo Clock/2, ou seja, 16MHz/2 = 8Mbps, eu soco o byte no registrador da SPI e ela faz o serviço sujo.  Ou seja, 3.5us a cada 10ms, é um overhead de somente 0.035%, com isso garanto que o AtMega estará 99.965% do tempo livre para outras coisas.

Então, com a nova liberdade de flash do AtMega128, hoje eu entendo porque muita gente não gosta de Assembly e prefere C, pois não precisa se preocupar muito com a maneira que o código final ficará, o tamanho dele, a performance, etc.  É mais fácil, mais livre e menos preocupante.

Agora, veja só.   Esse novo firmware que estou escrevendo, parti do scratch, reescrevendo algo que foi escrito para o At89S8252, um 8051 da Atmel, em 1997.  Já está 98% pronto, escrevi em torno de 5 mil linhas de código em assembly e comentários, em menos de 2 semanas, e está ocupando menos de 5kBytes de código, contra os 7k do 8051.

É estranho, que mesmo não me preocupando em economizar espaço, o que escrevo hoje fica menor que o anterior, e então penso, ou o mesmo tipo de código para o 8051 ocupa mais memória que os AVRs, ou depois de 16 anos eu aprendi naturalmente a escrever de forma mais produtiva e inteligente.  Creio que ambos.

O custo de um AtMega128 compensa, pois passa-se a ter 6 e meia portas de 8 bits, (mais de 50 pinos de I/O), 8 ADCs, alguns podendo ser programados para entrada complementar, duas USARTs, PWM de pancada, 128k de Flash, 4k de SRAM interna, 4k de eeprom interna e permite usar SRAM ou I/Os externos como o 8051 o fazia, e acessa-se esses I/Os ou memória externa como uma extensão da interna, maravilha, além de uma carrada de outros dispositivos internos disponíveis.  Ou seja, o AtMega128 vem carregado com tudo que pode, exceto USB e Ethernet.

Eu iniciei nos AVRs brincando com o At90S2313, depois passei para o AtMega8 e naturalmente sai matando o AtMega128.

Tudo bem que uma série de novos chips da concorrência rodam a mais de 50MHz e possuem muita flash, principalmente os novos ARMs da vida.

Mas é muito gostoso trabalhar com um AVR rodando a 16MHz (16 MIPS) e ver a coisa zunir bits à torto e direito.

AVRibe, o protótipo fácil.

Olha só, eu faço muito teste em breadboard, desse tipo abaixo, barra simples, dupla, tripla, o que precisar.  Já fiz muita coisa nesses boards, digital, analógica, e principalmente com microcontroladores.

Mas sempre que uso um microcontrolador, comumente um AVR (Atmel) tipo At90S2313 ou AtMega8, ou AtMega48 ou AtMega88, é um tal de espeta o chip e liga todos os fios e conector enjambrado para fazer a conexão com a gravação ISP, antes de qualquer outra coisa.  Precisava algo mais prático.
Então resolvi fazer uma plaquinha “esperta” de desenvolvimento, que dou o nome de “AVRibe” (averibe) que contenha todo o necessário para o AVR rodar mesmo sem o uso do breadboard, e a idéia é espetar a “AVRibe” no breadboard só mesmo para ter os pinos de I/O e tensões ali disponíveis.
Ficou muito bom e recomendo algo assim para todos.
No do At90S2313 até instalei um segundo jumper de seleção de 5V e 3V, e para gerar os 3V soldei ao AVRibe uma bateria CR123A de 3V e que dura uma eternidade.   Eu quase não uso 3V, mas os displays de Celular da Nokia, tipo 3310, e alguns outros chips, como memória serial, etc, usam 3V e é um saco, então preparei o AVRibe do 2313 para tal.
Na plaquinha tem o soquete para o microcontrolador, cristal, regulador de 5V (7805), jumper de power, referência de 2.5V, LEDs indicativos e conector macho para o jack de uma simples fontezinha 9V 500mA.  Claro que não podia faltar os 6 pinos do conector ISP para conectar o gravador USBASP.
No AVRibe abaixo, com o AtMega8, a construção foi a mesma do At90S2313, porém sem a bateria de 3V, mas contendo jack de power, regulador 7805, uma referência de 2.5V (LM385-2V5), botão de reset e jumper de power (servindo como switch), capacitores, bobininha de filtro para o AVCC, etc.  Note que eu uso barrinha de pinos na parte de baixo, para espetar no breadboard, e uso dois pinos a mais, um de cada lado, para também levar o 2.5V de referência e o segundo para reforçar o terra, e obviamente 6 pinos para o ISP de gravação via USBASP.
Com certeza absoluta eu deveria ter feito isso há muito tempo atrás.
Ah sim, essa coisa branca enrolada nos fios coloridos, é a própria capa do cabinho de onde os fios foram retirados, que foi cortada helicoidalmente com uma tesolurinha, como descascar uma laranja… fica bom para juntar os fios, não fica?

Descascador de Fio – A missão !!!

Bem, um dia a gente passa por essas coisas.  Mesmo tendo alguns alicates descascadores de fio e usa-los, me apareceu uma dor no cotovelo direito, e que, ficou muito claro que foi causada pelo golpe, mesmo fraco, de descascar dezenas de fios para usar no breadboard.  O golpe no cotovelo é fraco, mas na minha idade isso causa problemas de nervos, musculos, junta, sei lá.

Resolvi comprar o que sempre quiz, um alicate que descasque o fio sozinho, na verdade eu queria um elétrico, mas seria muita frescura.  Só busco aliviar a dor no cotovelo e não quero outra.
Procurei, mas infelizmente todos os bons alicates custam muuuito caro, coisa de mais de 150 dólares… ui, doeu o cotovelo e o bolso.
Encontrei na Harbor Freight um baratinho de $9.99, mas que, obviamente, não funciona.  Mas tem tudo para funcionar, mas o projeto é uma desgraça e ele funciona ao contrário, morde demais onde não precisa e corta o fio, apesar de ser intitulado “automático”.
Okay, é automático para fios de maior bitola, fios 16 para baixo, mas para fios 22 e 24, esquece, corta e descasca ao contrário, uma zorra.
Já estava com o alicate no carro para devolver na HF, quando me deu o estalo de descobrir o problema e acertar a mecânica dele, pois afinal de contas ele tem todas as partes de um alicate bom e caro, mas faltam algumas coisas, como por exemplo, o ajuste de espessura de fio, e um melhor sistema de segurar o fio a descascar.
Fiquei brincando com ele e analisando o funcionamento, por uns 10 minutos e entendi o que estava faltando, bem como a forma de resolver.
Tá bom, precisou fazer dois furos na furadeira de coluna, arrancar uma peça fora que não serve para nada, e inserir dois parafusos e adaptar uma molinha.  Pronto, agora tem regulagem de espessura de fio, não mais corta o fio e não arregaça tudo, descasca igualzinho à um profissional bem mais caro.
Subo a foto e as mudanças amanhã.
Abaixo o original da HF:
Então eu fiz um furo inclinado no dedido à direita e inseri um parafuso limitador de curso, assim eu ajusto no parafuso a folga que eu quero na lamina descascadora e isso evita cortar o fio.   Eu deveria ter feito o furo 1 a 2mm para a esquerda, usei uma porquinha para aumentar a área de contato, mas ficou bom, veja abaixo.  Note que o ajuste dessa folga no parafuso é unicamente feito para fios finos, AWG24 ou menor, portanto, até daria para fazer um ajuste bom e colar o parafuso o parafuso em definitivo com Locktite ou algo assim.
Removi a chapinha de pressão atrás, fiz um outro furo no dedão oposto, inseri um parafusinho (allen preto), e usando o próprio parafuso que segurava a chapinha removida, prendi a tal mola que força o fechamento dos dedos.  Veja:
A mola não pode ser muito forte, mas o suficiente para que o dedo esquerdo segure firme o fio a descascar.   Então agora o parafuso amarelo do outro lado, o que supostamente deveria ajustar a tensão da ferramenta, perdeu o uso, só não o removi porque o dia que precisar dele ou da mola ou do pino interno, sei onde estão.
A mola está meio torta porque inicialmente pensei que ela estaria um pouco dura demais, e dei uma esticadinha de leve, esticou de mais… torci um tiquinho para dar a tensão correta.  O alicate ficou funcionando bem, mas um dia eu ainda vou mudar aqueles dentes do dedo esquerdo que seguram o fio, aquilo machuca a capa do fio, são muito afiados.
Wagner

AVR Assembly – Adição com valor imediato

posted by Wagner Lipnharski @ 1:58pm, Thursday 4 April 2013.

O instruçtion set da familia AVR não possui uma instrução de adição em um registrador com um valor imediato.

Por exemplo, você queira somar o valor fixo “6″ no registrador R18, pela lógica seria a instrução ADDI R14, 0×06, ou, ADI R14, 0×06, mas essa instrução não existe, mas existe a instrução ADD R18, Rnn. Para faze-la, se tem que carregar o valor 0×06 em outro registrador, por exemplo, LDI R20, 0×06, e então efetuar a soma ADD R18, R20.

Mas lembrar que somar +6 é o mesmo que subtrair -6, pois “menos com menos resulta em mais”.

Então, ADDI R18, 0×06 é quase o mesmo que SUBI R18, -0×06, e essa instrução existe.

Outro exemplo, 7+1 é o mesmo que 7-255, o resultado sempre será 8.

Lembrar que -6 também pode ser escrito como 0-6, ou seja, 0xFA.

Então, pode-se escrever SUBI R18, -6 ou SUBI R18, 0xFA.

A diferença entre a suposta ADDI R18, 6 e a SUBI R18, 0xFA, é o carry bit.
Se R18 tivesse um conteúdo de 3, ao somar 6 resultaria em 9, sem carry bit, pois o resultado da soma não ultrapassou 255 e não virou o carry bit. Mas ao subrair 254 (-6 ou 0xFA) de 3, o resultado será 2, 1, 0 -1 -2 -3 ….. até chegar ao 9 esperado, na verdade -9, e o sinal negativo ai é o carry bit que ficou ligado. É só ignorar o carry bit, ou prestar a atenção e tomar a atitude correta com relação ao carry bit.

A forma de fazer o carry bit assumir o valor correto após essa “soma” feita subtração, é comparar o resultado com o valor “6″ que deveria ter sido somado.

Então após a SUBI R18, -6, a instrução Compare Imediate “CPI R18, 6″ fará o serviço correto no carry bit. Veja, como o R18 antes da subtração era “3″, somando 6 ela irá para “9″, e o carry bit deveria estar desligado, mas devido à subtração de -6, ele ficou ligado “indevidamente” para o que se destina. Ao comparar o resultado de R18 com 6, e R18 é 9, o carry bit ficará baixo, pois 9 é maior que 6. Nessa comparação de R18 com 6, o carry bit só ficará ligado quando R18 for entre zero e cinco, ou seja, menor que o valor “6″, e isso só irá ocorrer após a suposta soma com “6″, se o R18 original fosse entre 0xF9 e 0xFF, e a suposta soma com 6 fosse efetivamente gerar o carry bit.

Então, para não usar um segundo registrador para fazer a soma imediata, pode-se sim usar o SUBI R18, -6 ou SUBI R18, 0xF9, mas para acertar o carry bit, em seguida teremos que usar CPI R18, 6.

Mas, necessitando fazer uma soma de valor constante (imediato) à um numero que use mais de 8 bits, ou seja, mais um byte, pode-se fazer toda a operação de soma usando o SUBI, e o SBCI (subtract com valor imediato e com carry) e com isso resolve tudo ao contrário e obtendo o valor certo ao final. Por exemplo 3 bytes, R18, R19 e R20, somando o valor 6 e que propagasse o valor nos 24 bits, considerando que R18 seja o byte de menor ordem, ficaria assim:

SUBI R18, -6
SBCI R19, -1
SBCI R20, -1

Ao subtrair -1 de um número qualquer, ele soma um, mas a instrução SBCI irá também considerar o carry bit na subtração. Se o carry bit estiver desligado, ele irá efetivamente subtrair -1, ou seja, somar 1 no registrador R19 ou R20, no exemplo acima. O carry bit só estará desligado se a instrução anterior efetivamente criaria um carry numa soma, tipo, somar 0x00FF + 0×0004 = 0×103, mas na subi ou sbci tal carry não existiria. Então, o SBCI Rxx, -1 irá só subtrair efetivamente -1 do registrador quando o carry bit estiver desligado, e ele só está desligado quando precisa propagar o carry que não ocorreu.

Ou seja, numa subtração de número negativo, o carry bit funciona ao contrário. Se o carry estiver desligado é porque precisa somar 1 no byte à esquerda, se o carry estiver ligado é porque não precisa somar 1.
Então, é o mesmo que seria (mas não existe):

ADI R18, 6
ADCI R19, 0
ADCI R20, 0

Onde o carry bit se propaga para os bytes de mais alta ordem, e transforma, por exemplo, 00|05|FE + 6 em 00|06|04.

A restrição é que devido à definição de bits nas instruções, a instrução SUBI e SBCI só funcionam nos registradores R16 a R31

AVR Assembly – Salto sem Label

posted by Wagner Lipnharski @ 3:07pmThursday 4 April 2013.

Em AVR Assembly, as vezes você precisa fazer o program counter saltar as próximas duas instruções, para frente ou para trás, muitas vezes usados em comparações, ou contadores de tempo, e obviamente precisa usar um label para dizer para onde o program counter tem que pular.

Exemplo de uma rotina simples perdedora de tempo.
        LDI   R20, 10
A1:   DEC  R20
        BRNE A1
        …
R20 é carregado com valor 10 e é decrementado até zero antes de ir em frente.  O “BRNE A1″, diz que se após decrementar R20 na instrução “DEC R20″ resultar em R20 diferente de zero, para saltar para o label A1, que está uma instrução acima e irá decrementar novamente, mantendo o loop até R20 chegar à zero, quando o BRNE não irá saltar e ir em frente.
Mas isso requer o label A1:  na instrução DEC R20.
As vezes o uso de labels simples como esse incomoda o programador, e gostaríamos de só dizer ao assembly para saltar para tantas instruçòes para trás ou para frente, sem usar o label.
No Assembly do AVR isso é possível, usando o PC (Program Counter), e ficaria assim:
        LDI   R20, 10
        DEC  R20
        BRNE PC-1
        …
Acima se vê o “BRNE PC-1″, que significa “BRanch Not Equal”, ou seja, “Salte se o resultado anterior for diferente de zero”, para a posição do Program Counter, ou seja, “aqui”, menos uma instrução, então saltará para a instrução anterior, que é onde se quer.
Pode-se usar a faixa de 7 bits completa, ou seja, PC-127 a PC+126, e obviamente RJMP PC, BRNE PC, BREQ PC, fará a instrução saltar para ela mesma e com isso fazer o AVR entrar em loop, saindo só com uma interrupção (se ativada) ou reset.
Apesar desse truque ser muito útil, tem-se que tomar Extremo cuidado ao usa-lo.  Imagine a seguinte rotina:
        LDI   R20, 10
        SBI PortB,3
        NOP
        CBI PortB,3
        DEC  R20
        BRNE PC-4
Que fará o pino 3 da portaB subir e descer 10 vezes, com um pequeno delay de uma instrução NOP enquanto o pino estiver com nível alto, e o BRNE PC-4 fará o loop de volta para SBI PortB,3, pois é a quarta instrução para trás.
Se inserirmos ou removermos uma instrução nesse loop, mudando a quantidade de instruções entre o “SBI PortB,3″ e a “BRNE PC-4″, o valor “PC-4″ deverá ser mudado de acordo, e é comum esquecermos disso.
Exemplo, imagine que o pulso no pino 3 ficou muito curto e se quer aumentar um tililim, então mudamos a rotina para ter DUAS instruções NOP entre o nível do pino subir e descer.
        LDI   R20, 10
        SBI PortB,3
        NOP
        NOP
        CBI PortB,3
        DEC  R20
        BRNE PC-4
Se não atualizarmos o “PC-4″ para “PC-5″, o que irá ocorrer?  o salto PC-4 cairá no primeiro NOP, e não mais no “SBI PortB,3″, a rotina irá rodar, mas o pino 3 nunca subirá de nível.  Então o correto deveria ser:
        LDI   R20, 10
        SBI PortB,3
        NOP
        NOP
        CBI PortB,3
        DEC  R20
        BRNE PC-5
Também temos que prestar atenção para instruções que usam duas posições de memória, são raras, mas existem.   Digamos que ai no meio exista uma instrução grande, do tipo LDS R21, 0×1234, carregando R21 da posição de memória externa 0×1234.  Essa instrução consome 4 bytes, duas posições de memória, pois precisa de dois bytes só para conter o valor do endereço 0×1234, mais o opcode, mais o código do registrador R21.  Usando o espaço de duas posições na memória de código, essa instrução em especial deve ser contada como “duas posições” e não uma só.
Então observe que se eu trocar um dos NOPs por LDS R21, 0×1234, o PC-5 deverá ser PC-6, porque apesar de ter só cinco instruções de SBI PortB,3 ao BRNE, essas instruções ocuparam seis posições de memória, e o PC-n não conta instruções, mas converte isso para endereço físico de memória.
        LDI   R20, 10
        SBI PortB,3
        NOP
        LDS  R21, 0×1234
        CBI PortB,3
        DEC  R20
        BRNE PC-6

Tecnologia imita a Natureza

posted by Wagner Lipnharski @ 5:51pmFriday 5 April 2013.

Aqui em Orlando, atrás da minha casa existe um lago, onde muitos patos “Mallard” o visitam durante o inverno.  Não é à toa que o meu pequeno bairro chama-se “Mallard Cove”.

 As vezes eu fico fascinado com o voo desses pássaros, que me lembram algumas cenas de aviões militares.   Veja abaixo e compare a semelhança.
 
 
 
 
 

CAPACITORES

posted by Wagner Lipnharski @ 6:55pmFriday 3 May 2013.

Abaixo um texto coletado sobre capacitores, parte da net, parte traduzida, parte de livros e parte de experiência pessoal.

DEFINIÇÃO:

Rigidez dielétrica : A capacidade do dielétrico para suportar uma certa tensão sem um arco ou a ocorrência de curto-circuito. Quanto maior a força dielétrica, o capacitor suportará maior tensão elétrica.

Absorção dielétrica : Um efeito onde parte da carga armazenada em um capacitor não aparece imediatamente após a descarga, porém vaza lentamente com o passar do tempo. Alguns materiais dielétricos possuem uma espécie de efeito esponja.   É o equivalente à água que mantém a esponja úmida mesmo após você torce-la.  Absorção dielétrica não é uma característica desejável.

Resistência série equivalente (ESR) : Na prática todos os capacitores possuem uma certa resistência em série, devido a fios, materiais, etc.  Baixo ESR é uma característica desejável.

Indutância Série : Na prática capacitores possuem indutância série devido as técnicas de construção utilizadas. A indutância mínima seria o mesmo que um condutor (fio) o mesmo comprimento que o capacitor. Muitas vezes esse valor é muito maior. Com um indutor em série com o capacitor, resulta em um circuito ressonante de série. O capacitor irá ressonar nessa freqüência. Indutância série não é uma característica desejável.  Os capacitores de indutância série mais baixas são usualmente os tipos SMD cerâmicos e tântalo.

Coeficiente de temperatura : Na prática os capacitores variam um pouco o seu valor com a mudança de temperatura. Alguns variam apenas uma pequena quantidade, alguns bastante. O coeficiente de temperatura (mudança na capacitância vs mudança de temperatura) não é sempre linear.

Polaridade : Capacitores que podem ser operados com segurança com apenas uma polaridade DC são chamados capacitores “polarizados”, que podem ser operados sem considerar a polaridade são “não-polarizados”. Às vezes capacitores “polarizados” são combinados de forma especial para permitir uma limitada capacidade de lidar com polaridade reversível, e são chamados de “bipolares”.

Ripple de corrente : A quantidade de corrente AC, que um capacitor pode suportar e quantas vezes ele pode suportar. Nem todos os capacitores são classificados para a corrente de ripple. Esta especificação é aplicada principalmente para capacitores que lidam com correntes AC, ou capacitores de DC com grandes componentes de AC (freqüentemente encontrados em fontes de alimentação switching e equipamentos industriais, tais como motor drives etc).

+++++++++++++++++++++++++

MATERIAIS DIELÉTRICOS :

A maioria dos capacitores são nomeados com base no material usado em seu dielétrico.

Ar : O material dielétrico original. Receptores de rádio de tempo antigo usado variável capacitores feitos de pilhas de placas paralelas com ar entre eles. O ar é um bom dielétrico, que varia ligeiramente com a umidade e partículas em suspensão. Capacitores com dielétricos de ar são impraticáveis para valores para além de algumas centenas de picofarads devido ao seu tamanho crescente. Caps de ar são não polarizados.

Cerâmica monolítica : Materiais cerâmicos fazem um bom dielétrico. Eles podem ser usados para valores de baixas picofarads até geralmente ao redor de um microfarad. Os pequenos valores são geralmente “monolíticos”, eles são feitos de um único dielétrico (geralmente em forma de disco) metal chapeado em ambos os lados do disco, e leads anexados.  Eles também são avaliados pelo coeficiente de temperatura.

COG ou capacitores NPO (zero negativo-positivo) são o mais estável com temperatura, mas geralmente estão disponíveis apenas na gama picofarad. Eles são maiores para determinados valores de capacitância. Há capacitores de coeficiente de temperatura especial para compensação de circuitos. Esses casos são raros.

X7R capacitores têm um maior coeficiente de temperatura, mas estão disponíveis em maiores capacitâncias.  Eles são menores em tamanho que NPO. O tempco não não linear e são difíceis de ajusta-los para linearidade, mas os valores variam para mais ou menos alguns poucos percentos entre 0 a 100 graus Celsius.

Capacitores Z5U dão os maiores valores de capacitância por um menor volume.. O tempco é terrível, muitas vezes caindo para -50% do valor no-20 graus e + 100 graus Celsius (em relação a 25 ° C). Usado apenas para aplicações não-críticas como bypass em fontes de alimentação.

Cerâmica empilhados : Existem capacitores que são fabricados empilhando várias capacitores monolíticos em um único pacote. Eles possuem maior capacitância do que um disco de semelhante classificação. O desempenho ainda está relacionada ao material dieléctrico, que poderia possuir um tempco e caracteristica de tensão boa ou ruim.

Cerâmica (em geral) : Para pequenos valores e altas tensões, capacitores de cerâmicas são os melhores.  Eles são geralmente muito baixos na indutância série, e geralmente o ESR não é um problema. Esteja ciente de seus coeficientes de temperatura.  Alguns materiais cerâmicos apresentam alguns efeitos piezoelétricos, eles podem ser eletricamente sensíveis a vibrações e choques. A maioria das cerâmicas têm baixa absorção dielétrica. Caps cerâmicos são não polarizados.

Mica : Muito bom, dielétrico muito estável, feito a mica mineral, com placas chapeadas ou depositadas em ambos os lados (muitas vezes prata, daí o nome “prateado mica”).  Desempenham melhor do que as capacitores de cerâmicas na série NPO.  Capacitores de Mica são produzidos para a faixa de picofarads, e a faixa de tensão é para milhares de volts.  Capacitores de mica são não polarizados.

Tântalo : Um dielétrico capaz de produzir  alta capacitância em um espaço muito pequeno. Capacitores de tântalo são feitos de duas construções, úmido e seco. Capacitores de tântalo úmido possuem um eletrolito líquido que forma o dielétrico. Esses foram quase que totalmente substituidos por tântalo sêco.   Esses usam um material pó esférico de tântalo com um revestimento dielétrico externa.  Eles são “aglomerados” juntos para formar um material quase contínuo com valor de alta capacitância por unidade de volume. Eles têm indutância série razoavelmente baixa e muito baixo ESR.

AVISO: capacitores de tântalo são RAIVOSAMENTE polares. Invertendo a polaridade DC mesmo por um breve período de tempo fará com que eles ao calor e auto-destruição.  Ccapacitores de tântalo são mais comuns em baixas tensões e valores abaixo alguns microfarads. Tensões elevadas e grandes (> 5-10uF) valores os tornam excessivamente custosos.  Seu ESR baixo e indutância série os torna perfeitamente adequados à serviços de bypass de fontes de alimentação. A corrente de fuga é geralmente muito baixa, muito melhor do que os eletrolíticos.  Eles devem ser evitados em circuitos de acoplamento de áudio (região bipolar).

Eletrolítico : Capacitores eletrolíticos possuem esse nome por causa dos produtos químicos usados para formar o dielétrico.  Capacitores eletrolíticos têm placas enroladas com uma longa e fina tira de papel alumínio.  O dielétrico é um fino (vários átomos densamente) revestimento de óxido de alumínio (um excelente isolante).  O óxido de alumínio é formado por uma reação química entre o eletrólito e o alumínio, na presença de um campo elétrico. Este dielétrico formado dá os capacitores algumas únicas vantagens e desvantagens. Capacitores eletrolíticos podem ter grandes capacidades por espaço de unidade, uma vez que o dielétrico é muito fino. O dielétrico pode ser adaptado para suportar tensões até cerca de 450 VCC, o limite superior para caps eletrolíticos. As desvantagens do eletrolítico vêm do eletrólito, e como o dielétrico é formado. O eletrólito irá secar no tempo, fazendo com que os capacitores para gradualmente diminuir a capacitância.  Usar o capacitor além suas classificações (tensão, polaridade ou corrente de ripple) vai aumentar a pressão interna no capacitor até que libere a pressão (vent)  e perde eletrólitos  ou explode. O outro problema é que, se o capacitor eletrolítico não é usado por um longo tempo, o dielétrico se torna mais fino, diminuindo a tensão que ele pode suportar. O dielétrico precisa de um campo elétrico (carga) a fim de manter a sua força. Eletrolíticos armazenados sem uso (em armazenamento ou em equipamentos não utilizados) podem ter suas camadas dielétricas restauradas aplicando lentamente o aumento dos níveis de tensão DC. O procedimento pode levar dias. Eletrolíticos sofrem de envelhecimento acelerado em temperaturas elevadas. Uma regra é que sua vida é cortada ao meio para cada aumento de 10 graus Celsius acima do ambiente (25 ° C). Por todas estas razões, eletrolíticos têm vida limitada e o usuário pode esperar para substituí-los em algum momento no futuro.  Excessivo ruido de 60Hz (humm) em uma fonte de alimentação ou imagens de rolamento instável em um monitor são frequentemente sinais de um eletrolítico chegando ao fim da sua vida útil. Capacitores eletrolíticos têm uma quantidade substancial de escapamento e absorção dielétrica. Isso pode ser um problema em circuitos de temporização e muitas vezes limita a sua utilização. Alguns projetos (como o temporizador 555) minimizam essas falhas, usando o capacitor em tensões de funcionamento onde esse fator aparece de forma mínima. A estabilidade de temperatura de eletrolíticos é pobre e raramente especificado.

Eletrolíticos polarizados : A forma mais comum de capacitores eletrolíticos. Estes estão disponíveis nos tamanhos acima de 1uF até Farads, e disponíveis a suportar tensões de 5 a 450 Vcc.  Existem tipos especiais que trabalham em faixa extendida de desempenho, geralmente especificado para temperaturas mais altas, maior corrente de ripple, baixa ESR e maior confiabilidade. Todas estas classificações geralmente resultam em um componente fisicamente maior.  Existem eletrolíticos “selados” para aplicações em temporização, mas eles são raros.

Eletrolíticos bi-polar : Estas são uma variedade especial de capacitor eletrolítico que são usados em aplicativos que misturaram polaridade, tais como o acoplamento de aplicações de áudio. Fisicamente, eles são feitos de dois eletrolíticos polares ligados em série nos seus terminais negativos. Eles são geralmente duas vezes tão grandes quanto um eletrolítico polarizado para o mesmo valor de tensão e capacitância. Usos comuns em Crossovers econômicos em alto-falantes.

Supercaps (bateria) : Estas são capacitores eletrolíticos que são especializados para os tempos de descarga longa com cargas de corrente muito baixas. Eles são usados por aplicativos de backup de memória no lugar de baterias Ni-Cad ou lítio.

O uso principal para capacitores eletrolíticos é para alimentação, filtragem e bypass. Usos menores são para acoplamento em operação unipolar de áudio (onde um terminal é sempre mais positivo do que o outro) ou aplicações não-críticas de cronometragens.

Capacitores de filme : Capacitores de filme são os membros mais incompreendidos da família de capacitores.  Eles são nomeados após o material usado como o dielétrico. Eles vêm em duas variedades de físicas, a construção de Filme e Película, ou construção de Filme Metalizado.  Eles estão disponíveis em valores em torno de .0005uF (500pF) para vários microfarads e tensões de em torno de 10VDC a vários milhares de VCC.   Existem capacitores de filme para aplicações especiais podem ir até vários milhares de microfarads, nesse caso possuem maior tamanho e preço. A maioria das capacitores de filme tem ótima estabilidade em variações de temperatura, e com baixa absorção dielétrica. Por via de regra são capacitores não polarizados e têm boa resposta de AC.  Indutância série varia de baixo a alto, dependendo da geometria da construção. Em sua forma mais simples, eles são construídos de duas peças de alumínio, separadas por um “filme” do material dielétrico. Isso é chamado de construção de filme e papel alumínio e é o maior e mais robusto na maioria dos casos. Alguns capacitores de filme têm uma camada de metalização, geralmente de alumínio, depositada em ambos os lados do filme. Isso é chamado de película metalizada e é geralmente menor e mais caro. Ambos os tipos têm desempenho semelhante.

Filme de poliéster (Mylar) : O material dielétrico mais comum em uso. É de baixo custo e os tipos existentes são em filme e papel alumínio metalizado.  As faixas de tensões suportadas vai de 50VDC Mylar 200VDC (até 1000VDC).  Mylar sofre absorção dieléctrica (. 2%), que o torna inadequado para aplicações tais como capacitores de temporização de VCO e aplicativos de Sample and Hold. Capacitores de poliéster não tem um coeficiente de temperatura linear, sua capacitância aumenta em alta temperatura e diminui em baixas.  A forma geral da curva é semelhante a uma letra horizontal “S”. Entre 25-85 graus Celsius têm um coeficiente de temperatura crescente. Eles são úteis para áudio, acoplamento, circuitos de temporização semi-critical, controles de tom, usos gerais. Faixa de temperatura é de 125 graus Celsius.

Filme de poliestireno : Santo Graal dos capacitores de filme, poliestireno tem as características elétricas mais desejáveis. Com coeficientes de temperatura tão baixos quanto 30-40ppm (especial) e normalmente inferior a 120ppm (standard), eles têm excelente linearidade de coeficiente de temperatura na faixa de temperatura que qualquer equipamento já trabalhou nesse planeta. Absorção dieléctrica (. 02%) é o mais baixo encontrado em qualquer variedade de capacitor. Isto faz a escolha de capacitores de poliestireno o primeiro para todos os circuitos de tempo crítico, tais como clocks de VCO e FCR e todos os os circuitos de Sample/Hold. Capacitores de poliestireno não toleram temperaturas altas (máximo de 85 graus Celsius), portanto eles não estão disponíveis na forma metalizado. Descuido ao soldar podem destrui-los facilmente, e em muitos casos não são adequados à produção automatizada. Há um rumor persistente que o único fabricante no mundo que continava a produzir capacitores de filme de poliestireno cessou a produção. Ainda há estoque no mercado, mas as pessoas também são aconselhadas a armazena-los por garantia. Há alguns novos capacitores de policarbonato que se aproximam do desempenho de poliestireno.

Filme de polipropileno : Capacitores de polipropileno são usados no lugar de poliestireno. Ligeiramente maior do que o poliéster (Mylar), são eletricamente superiores e um pouco maior em tamanho. Eles têm um coeficiente de temperatura linear, negativa de-150 ppm (e especial-250 ppm para compensação de bobinas em aplicações de filtro). Se o coeficiente de temperatura negativo é desejável, eles são usados no lugar de poliestireno. Absorção dieléctrica é 0.02% e a escala de temperatura é de até 105 graus Celsius no máximo.

Película do policarbonato : Capacitores de policarbonato são outra boa opção para substituição de poliestireno. O tempco e estabilidade de temperatura não são tão bons como poliestireno. São lineares em uma faixa limitada de temperatura (25-85 graus Celsius). Além desse intervalo não são lineares (semelhante a capacitores de poliéster).  Capacitores de policarbonato suportam temperaturas muito mais altas (máximo de 125 graus Celsius) do que o poliestireno, então podem ser construidos com película metalizada.  As gamas de tensão chegam a alguns milhares de volts. Estas capacitores são mais adequadas para aplicações de sincronismo e acoplamento crítico e podem ser usados sempre que o poliestireno é a escolha preferida, com uma ligeira diminuição no desempenho. Capacitores de policarbonato têm uma quantidade moderada de sensibilidade de umidade e absorção dieléctrica é em torno de 0.08%. Capacitores de policarbonato são cerca de 12% maior do que o poliéster (Mylar).

Filme polysulfone : As mesmas especificações como policarbonato, mas com as classificações de temperatura ainda maiores. Estes são usados onde o desempenho de alta temperatura é obrigatório (máx. 150 graus Celsius) e raramente são usados para aplicações gerais. Eles têm um coeficiente de temperatura razoavelmente linear de 25 graus Celsius e acima, mas que cai ligeiramente a baixas temperaturas. Capacitores de Polysulfone possuem uma pequena sensibilidade a umidade e absorção dieléctrica é em torno de 0.08%.

Filme de Teflon : Teflon trabalha bem como poliestireno e é bom também para altas temperaturas. Eles são duas vezes o tamanho de um capacitor de poliéster (Mylar), e o preço elevado torna sua utilização incomum para todos, e servem mais apropriadamente para aplicativos mais essenciais (leia aeroespacial). A dificuldade em fazer qualquer coisa a aderir ao filme faz a metalização impraticável. Teflon é impermeável à umidade e tem absorção dieléctrica ao redor de 0.02%.