Página 1 de 1

Pico de corrente I/O Atmega8L

MensagemEnviado: 25 Ago 2020 10:35
por Vicente
Olá, estava acionando um transdutor 40kHz ligado num pino I/O com 0 e 5V, via resistor de 1R e, a capacitância do transdutor é de 2,7nF. Acontece que, medindo encima do resistor, ocorrem picos de 200mA e -200mA, isso é cinco vezes maior que o DC limite de 40mA, só que esses picos duram somente 50ns... Será que o Atmega pode funcionar bem nessas condições? Notei que variando esse resistor, por exemplo 2R, a corrente permanece a mesma então poderia suprimir esse resistor? porque sem ele não consigo mais medir esses picos...

Re: Pico de corrente I/O Atmega8L

MensagemEnviado: 25 Ago 2020 11:01
por cfreund
Aconselhável dimensionar esse resistor para não extrapolar a capacidade da porta. Se n for possível, utilize algum 74hc ou transistor.

Re: Pico de corrente I/O Atmega8L

MensagemEnviado: 25 Ago 2020 11:47
por tronico
Concordo com o cfreund. Além de não exceder o limite de corrente da porta há também o limite de corrente de alimentação do próprio micro. Talvez funcione em bancada, mas e em produção ou daqui a algum tempo ...

Re: Pico de corrente I/O Atmega8L

MensagemEnviado: 25 Ago 2020 12:07
por MOR_AL
Um transdutor de 40kHz gera pulsos de 12,5us. Pulsos de 50ns podem possuir outras causas:
1 - Falta de filtragem próximo aos pinos de alimentação dos CIs.
2 - Filtragem pobre próximo aos pinos de alimentação dos CIs.
3 - Ponteira do osciloscópio desajustada para altas frequências.
4 - Se a medição for diferencial, a medição sofre mais interferência ainda.
5 - Grandes trechos da alimentação aos CIs.
6 - Grandes trechos da saída do CI (provavelmente um microcontrolador) e a entrada do transdutor.
7 - Proximidade de fontes geradoras de ruído.


1 - Procure eliminar (ou reduzir sua influência ao máximo) esses 7 itens.
2 - Trance os fios de alimentação e de sinal (uma volta por polegada). Positivo com terra e sinal com terra.
3 - Procure fazer medições entre o sinal e o terra. Evite medições diferenciais.

Por acaso você não está medindo um circuito montado em ProtoBoard, ou matriz de contatos, né?

MOR_AL

Re: Pico de corrente I/O Atmega8L

MensagemEnviado: 25 Ago 2020 23:06
por Vicente
O transdutor é praticamente um capacitor, aplicando uma tensão a corrente tende a ir as alturas no início da curva de carga, assim como na descarga onde ele, carregado, é praticamente curto-circuitado, descarregando a corrente também nas alturas, só que negativa... não tem como fugir disso...
A dúvida é se o pino do Atmega poderia suportar esses picos. No datasheet o pino suporta 40mA em regime constante, só que esses 200mA duram muito pouco, somente 50ns. Quero evitar colocar um resistor de alto valor pra atenuar esses picos...

Re: Pico de corrente I/O Atmega8L

MensagemEnviado: 26 Ago 2020 09:07
por eletroinf
Pode ser que não dê problema, mas tu estás ultrapassando os limites de capacidade do microcontrolador.
Eu não utilizaria nem próximo de 100 % do limite máximo.

Re: Pico de corrente I/O Atmega8L

MensagemEnviado: 26 Ago 2020 13:21
por cfreund
Vicente escreveu:No datasheet o pino suporta 40mA em regime constante


Essa informação de capacidade esta no quadro "Absolute Maximum Ratings". Faz bem não chegar perto deles.

Veja:

Notes: 1. “Max” means the highest value where the pin is guaranteed to be read as low
2. “Min” means the lowest value where the pin is guaranteed to be read as high
3. Although each I/O port can sink more than the test conditions (20mA at Vcc = 5V, 10mA at Vcc = 3V) under steady state
conditions (non-transient), the following must be observed:
PDIP, TQFP, and QFN/MLF Package:
1] The sum of all IOL, for all ports, should not exceed 300mA.
2] The sum of all IOL, for ports C0 - C5 should not exceed 100mA.
3] The sum of all IOL, for ports B0 - B7, C6, D0 - D7 and XTAL2, should not exceed 200mA.
If IOL exceeds the test condition, VOL may exceed the related specification. Pins are not guaranteed to sink current greater
than the listed test condition
4. Although each I/O port can source more than the test conditions (20mA at Vcc = 5V, 10mA at Vcc = 3V) under steady state
conditions (non-transient), the following must be observed:
PDIP, TQFP, and QFN/MLF Package:
1] The sum of all IOH, for all ports, should not exceed 300mA.
2] The sum of all IOH, for port C0 - C5, should not exceed 100mA.
3] The sum of all IOH, for ports B0 - B7, C6, D0 - D7 and XTAL2, should not exceed 200mA.
If IOH exceeds the test condition, VOH may exceed the related specification. Pins are not guaranteed to source current
greater than the listed test condition

Re: Pico de corrente I/O Atmega8L

MensagemEnviado: 02 Set 2020 21:18
por Fábio Pereira
Olá Vicente,

Você não achou no mínimo estranho que você trocou o resistor por um outro com o dobro do valor e a corrente medida (conforme seu relato) foi a mesma? Um transdutor de 40kHz opera com pulsos 25us de duração (ou 12.5us Ton e 12.5us Toff se for uma onda quadrada). De onde está vindo então este pulso de 50ns? O que está acontecendo no seu circuito por acaso é similar ao que está na figura abaixo?
Imagem

Se sim, o que você está vendo é o resultado da transição lógica brusca (edge) de 0 para 5V ou vice-versa. As resistências, capacitâncias e indutâncias parasitas provocam estas oscilações. Este efeito (conhecido em inglês como ringing) provoca o overshoot (picos de tensão positiva) e os undershoot (picos de tensão negativa) que estão se traduzindo nas correntes que você mencionou.

Em primeiro lugar, ringing é extremamente comum e vai estar normalmente presente em circuitos digitais de alta velocidade. É claro que se overshoot ou undershoot é muito elevado, ele pode acabar causando danos. Normalmente as portas lógicas possuem diodos schottky que protegem o pino contra transientes >VDD ou <0.

O próprio transdutor deve contribuir para o ringing (lembre-se de que um transdutor pode traduzir tensão em movimento mecânico como também traduzir o movimento mecânico em tensão), como você mesmo citou, ele parece se comportar como um capacitor.

Transdutores piezoelétricos (que imagino seja o que você está utilizando) drenam normalmente uma corrente muito baixa e poderiam (em tese) ser acionados diretamente pelo pino de I/O. Mas como os demais já citaram, é normalmente mais "saudável" utilizar um driver externo como um transistor ou MOSFET. Lembre-se de que normalmente os MOSFETs possuem diodos schottky internos que o protegem destes transientes de comutação, mas transistores bipolares normalmente não possuem qualquer proteção.

Vale lembrar que este efeito ringing é um dos grandes causadores de interferência EMI, já que trata-se de pulsos de frequência muito alta. É por isso que se tenta evitar (quase impossível) ou minimizar a sua ocorrência.

Alguns microcontroladores incluem funcionalidades de "current-drive" e "slew-rate control" que permitem selecionar diferentes capacidades de corrente de saída ou "taxas de subida", o que ajuda a minimizar bastante o ringing. Outra técnica utilizada é o resistor série (sim, aquele resistor de 1R que você está querendo retirar!).

Então para resumir, um resistor com valor mais elevado vai ajudar a minimizar o ringing e deve ser o suficiente no caso de transdutores piezoelétricos (desde que a corrente "ON" do transdutor seja menor que a corrente de saída do I/O (nesse caso a corrente típica de saída, o máximo absoluto, conforme citado, é um valor extremo). Para ter a consciência tranquila, um driver com um BC547 ou 2N7000 resolve o caso.

T+

Re: Pico de corrente I/O Atmega8L

MensagemEnviado: 03 Set 2020 13:34
por MOR_AL
Vicente escreveu:Olá, estava acionando um transdutor 40kHz ligado num pino I/O com 0 e 5V, via resistor de 1R e, a capacitância do transdutor é de 2,7nF. Acontece que, medindo encima do resistor, ocorrem picos de 200mA e -200mA, isso é cinco vezes maior que o DC limite de 40mA, só que esses picos duram somente 50ns... Será que o Atmega pode funcionar bem nessas condições? Notei que variando esse resistor, por exemplo 2R, a corrente permanece a mesma então poderia suprimir esse resistor? porque sem ele não consigo mais medir esses picos...


Bom!
Sua pergunta já foi respondida, ok?
Agora, para podermos nos situar e tentar descobrir o porquê dos pulsos de corrente com tão pouco período, você poderia postar dois detalhes:

1 - Uma foto do circuito montado, juntamente com os terminais de alimentação, sinais, sensor e ponteiras do osciloscópio. Este último mostrando o problema. Se possível, edite a imagem com identificação dos fios, filetes de alimentação e sinal e onde você está medindo tais pulsos.

2 - O desenho do diagrama esquemático. Talvez possamos identificar algum problema e recomendar alguma alteração.

Sinceramente, ainda continuo achando que seu problema tem a ver com um ou mais itens listados anteriormente por mim.

MOR_AL

Re: Pico de corrente I/O Atmega8L

MensagemEnviado: 05 Set 2020 01:44
por Vicente
Bom dia, não é isso não, não tem o ringing e, aparentemente não há a componente indutância, somente o transitório RC. Os 40kHz não influenciam essa situação onde a atenção está somente no período de transição 0-5V onde ocorre o pico. Esse termo "pico" tá gerando confusões quando o que ocorre é uma curva parecendo uma senóide que atinge 200mA e dura 50ns, correspondendo à carga da capacitância. Essa capacitância de 2,7nF com o resistor de 1R gera um tau de 2,7ns. Se considerar uns 10 taus p/ carga completa, aproxima-se dos 50ns...

Re: Pico de corrente I/O Atmega8L

MensagemEnviado: 05 Set 2020 02:21
por Vicente
Imagem

Re: Pico de corrente I/O Atmega8L

MensagemEnviado: 05 Set 2020 02:33
por Vicente
Aqui o pico de corrente. O osciloscópio está "encima" do resistor (garra num terminal e a ponta noutro). Está com 120mV / 1R = 120mA, dentro de uns 100ns.

https://transitorio4632.blogspot.com/20 ... -post.html

No esquema estou utilizando o pino 17, acionando o resistor + transdutor.

Re: Pico de corrente I/O Atmega8L

MensagemEnviado: 05 Set 2020 14:29
por MOR_AL
Vicente escreveu:Aqui o pico de corrente. O osciloscópio está "encima" do resistor (garra num terminal e a ponta noutro). Está com 120mV / 1R = 120mA, dentro de uns 100ns.

https://transitorio4632.blogspot.com/20 ... -post.html

No esquema estou utilizando o pino 17, acionando o resistor + transdutor.


Ok! Sua medição não está correta.
Duas observações.
1 - Não coloque a garra jacaré em um ponto elétrico diferente do terra, ou ground (GND). A garra jacaré TEM que ficar no terra, ou zero volt.
2 - É obvio que o pulso medido até poderia estar correto. Sendo uma carga capacitiva, a corrente inicial é um pico com posterior decaimento, que sendo apenas uma carga capacitiva, sem resistência em série ou em paralelo, tal decaimento iria para zero de tensão ou de corrente. Caso houvesse um componente resistivo em série com o capacitor, a corrente ficaria limitada pela soma da resistência de carga com a de 1 ohm. A corrente cairia para zero e a tensão permaneceria no máximo.
Com a carga resistiva em paralelo com a capacitância, o valor de pico da corrente inicial ficaria limitada pelo resistor de 1 ohm, decaindo até o valor limitado pela soma do 1 ohm e da resistência de carga. Já a tensão na carga iniciaria em zero e terminaria com o valor do divisor resistivo (1 ohm e a carga).

Caso deseje medir a corrente na carga, mantenha o resistor de 1 ohm, mas meça de modo diferente. Use duas ponteiras. AMBAS COM A GARRA JACARÉ NO TERRA e bem próximo do resistor. Uma das duas ponteiras entre o resistor de 1 ohm e a carga. A outra JUNTO ao resistor de 1 ohm.
Coloque o osciloscópio (de duplo traço) com a mesma escala e posição inicial. Mas acho que você não vai poder medir muita coisa em cc, talvez em ca você meça, mas se o seu osciloscópio tiver a função Canal A menos o Canal B a verdadeira corrente poderá ser observada.

Em tempo: Você deve ter retirado o circuito de gravação do AVR depois de te-lo gravado, né?

MOR_AL