Guia CNC Brasil - Tudo sobre CNC, Router, Laser, Torno e 3D Print
ELETRÔNICA / ELÉTRICA => Eletrônica Básica => Microcontroladores => Tópico iniciado por: Rudolf Waller em 17 de Julho de 2007, 12:31
-
Oi pessoal,
Estou abrindo este tópico para trocarmos idéias sobre DSPs em geral, independente do fabricante ou família.
Sejam bem vindos :)
Abraços,
Rudolf
-
Rudolf
O tempo de conversão analógica do freescale 8323 de 1,7us se refere a todas de uma vez, ou é o tempo de cada uma das entrada?
-
Grande Jose Carlos,
O tempo de conversão analógica do freescale 8323 de 1,7us se refere a todas de uma vez, ou é o tempo de cada uma das entrada?
Se for como o 8014 (tenho quase certeza que é), ele possui 2 (dois) ADCs, canais A0 a A3 e B0 a B3. Este tempo é da conversão de um sinal analógico. Este DSP possui uma maneira chamada conversão paralela ou simultânea que 2 canais são convertidos neste 1,7us, pois possui 2 ADCs. Isso dá uma média de 850ns por conversão :o
De todos os periféricos desta família de DSPs, o ADC e o timer são os mais potentes. Imagina que a cada x tempo as entradas analógicas são convertidas e geram uma interrupção no final. Somente quando acontece esta interrupção é que há software, no restante é puro hardware :)
Abraços,
Rudolf
-
De todos os periféricos desta família de DSPs, o ADC e o timer são os mais potentes. Imagina que a cada x tempo as entradas analógicas são convertidas e geram uma interrupção no final. Somente quando acontece esta interrupção é que há software, no restante é puro hardware
Pera ai não entendi..A cada 1,7 us o software roda? por quanto tempo?
Me pareceu que não preciso indicar no programa para que a conversão ocora, me parece que o DSP fica convertendo automaticamente sem a nescecidade de uma instrução de conversão.
-
Grande Jose Carlos,
Pera ai não entendi..A cada 1,7 us o software roda? por quanto tempo?
Acho que não me expressei bem :)
Vamos supor que você precise fazer uma leitura exatamente a cada 1ms. O timer gera um disparo no ADC exatamente a cada 1ms que, depois de 1,7us, gera uma interrupção que o seu software vai ler e tratar. Feito o tratamento, sai da interrupção e retorna ao fluxo normal do programa. Você não se preocupa nem de gerar a base de tempo (1ms) nem de disparar o ADC. Apenas vai receber uma interrupção dizendo que está tudo pronto e mastigado 8)
Me pareceu que não preciso indicar no programa para que a conversão ocora, me parece que o DSP fica convertendo automaticamente sem a nescecidade de uma instrução de conversão.
Ambos os 3, dependendo do que você quer :) O ADC tanto pode começar a conversão do(s) canal(is) a partir de um comando seu, como pode ser disparado pelo timer (e aí entra um monte de maneiras de fazer isso) ou até fazer converções continuamente até que a leitura esteja acima (ou abaixo) de um determinado valor que você configurou. Este último modo é particularmente útil para detecção de passagem por zero, por exemplo. Assim que há esta passagem acontece uma interrupção.
Abraços,
Rudolf
-
Rudolf
É possivel fazer um PID com a entrada analógica e o duty do PWM. Eu to testando aqui, mas o duty parece só aceitar um valor fixo.
Sé não for possivel fazer com o duty é possivel variar a frequencia do PWM com o PID entre a analogica?
Abraços,
Felix
-
Grande José Carlos,
É possivel fazer um PID com a entrada analógica e o duty do PWM. Eu to testando aqui, mas o duty parece só aceitar um valor fixo.
Se você tá usando o Processor Expert, ficaria:
setReg(PWM_PWMVAL0,NovoValor);
PWMC1_Load();
O segundo comando serve para validar a alteração do ciclo de trabalho, evitando a queima do motor se algum valor for gravado no registrador PWM_PWMVAL0 devido a bug.
Sé não for possivel fazer com o duty é possivel variar a frequencia do PWM com o PID entre a analogica?
O céu (e a imaginação) é o limite :)
Abraços,
Rudolf
-
Rudolf
Estou vendo uma coisa, o programa está ficando grande demais usando o Processor Expert e dando as instruções em C.
É possivel eu programar em assembly sem usar o Processor Expert. Tenho que tentar diminuir o numero de instruções que está muito grande..
abraços:
felix
-
Grande Felix,
Estou vendo uma coisa, o programa está ficando grande demais usando o Processor Expert e dando as instruções em C.
Sim, é normal (o tamanho e o susto :) ). O PE cria diversos arquivos de inicialização dos beans. Depois só as suas rotinas é que vão enchendo o DSP, e normalmente isso acontece bem devagar.
É possivel eu programar em assembly sem usar o Processor Expert. Tenho que tentar diminuir o numero de instruções que está muito grande..
Se for o caso, sugiro programar em C. O compilador C é muito eficiente.
De qualquer maneira, o CodeWarrior free permite código até 16Kb. Qual o tamanho atual do código? O que é a aplicação que você tem em mente?
Ah! Como está o nível de otimização do compilador C?
Abraços,
Rudolf
-
Rudolf
Eu não verifiquei o tamanho da aplicação. A aplicação é um driver de motor de passo com 1600 passos por volta, o problema é que eu quero fazer um projeto para aumentar o torque do motor em velocidades mais elevadas.
Eu estou trabalhando em nivel avançado..
Minha preocupação é que pelos meus calculos tenho que rodar o programa em 8 us e o numero de instruções tem que ser linitado para que isso ocorra. por isso é que acho melho partir para assembly onde terei como mensurar as instruções do programa.
-
José Carlos Felix,
Sua aplicação (driver de micropasso) será comercial ou será aberta?
-
José Carlos Felix,
Sua aplicação (driver de micropasso) será comercial ou será aberta?
Fabio acho que se eu realmente estiver certo em meu projeto, abri-lo seria dar chance de outra pessoas ou até mesmo empresas de comercializa-lo.
Pretendo comercializar com um custo muito baixo em relação aos driver comerciais de micro passo.
O mais interesante não vai ser o micro passo e sim o torque continuo..
-
OK - boa sorte na sua empreita então!
-
Grande Felix,
Eu não verifiquei o tamanho da aplicação. A aplicação é um driver de motor de passo com 1600 passos por volta, o problema é que eu quero fazer um projeto para aumentar o torque do motor em velocidades mais elevadas.
A eterna busca do Santo Graal :) Acho que cada um de nós tem uma idéia de como isso poderia ser feito. Espero que você consiga :)
Eu estou trabalhando em nivel avançado..
Não entendi o que você quis dizer...
Minha preocupação é que pelos meus calculos tenho que rodar o programa em 8 us
Não entendi. Rodar o programa em 8us... Qual programa? Como você chegou nestes 8us? Se for para chutar, acho que 8us é a taxa de conversão do A/D. É isso? Se for, o tempo de execução da rotina de interupção tem que ser menor do que 8us, pois tem que sobrar tempo para o restante do programa.
Se você acha que tá difícil, quem sabe não seja melhor partir para um DSP muito mais rápido, ou até um controlador de 32bits, como o ColdFire, por exemplo? Outra maneira é colocar mais de 1 DSP para fazer a tarefa. Quanto ao ColdFire, a versão gratuíta do CodeWarrior para o ColdFire é limitada em 128Kb. Dá prá fazer bem mais coisas :)
Por enquanto só posso oferecer sugestões vagas. Sinta-se à vontade se você quiser detalhar melhor o significado destes 8us, tá? (pode ser em PVT).
e o numero de instruções tem que ser linitado para que isso ocorra.
Uma das propriedades das interrupções é se você quer que ele salve todos os registradores ou se você mesmo vai fazer isso. Dá prá acelerar bastante a entrada e a saída da interrupção ;)
por isso é que acho melho partir para assembly onde terei como mensurar as instruções do programa.
Legal!
Qualquer coisa estamos por aqui :)
Abraços,
Rudolf
-
Grande Felix,
Pretendo comercializar com um custo muito baixo em relação aos driver comerciais de micro passo.
Se eu puder dar uma sugestão (aonde não fui chamado), que tal reservar uma (boa) parte do lucro para instituições assistenciais?
Tem bastante gente à nossa volta que vive em condições bem precárias...
Abraços,
Rudolf
-
rudolf
Não entendi. Rodar o programa em 8us... Qual programa? Como você chegou nestes 8us? Se for para chutar, acho que 8us é a taxa de conversão do A/D. É isso? Se for, o tempo de execução da rotina de interupção tem que ser menor do que 8us, pois tem que sobrar tempo para o restante do programa.
É isso que eu estou achando estranho, veja só um PIC 16F877 converte uma entrada analógica em 4 ciclos de maquina (que no caso é de 200ns) isso dá 800ns mas é claro que depende de como voce dá a instrução de leitura, se voce ficar em lup para espera a conversão deve dar por volta de 1us cada conversão, logo o DSP tem que fazer isso muito mais rápido por isso acho que ele converte todas os 8 entradas em 1,7us.
O TMS320F2810 tem um tempo de conversão de 80ns (as 8 deveria dar teoricamente 640ns) para cada entrada analógica, o 8323 não pode ser tão lerdo assim..
Eu espero usar 250 instruções por ciclo de scam do programa isso deveria dar uns 4,17us (este ciclo que eu estou falando são as instruções que ficam executando constantemente no programa, fora as configurações e instruções que não fazem parte do controle )
Não encontrei como programar ele em Assembler sem usar o PE. acho que não dá ??
-
Grande Felix,
É isso que eu estou achando estranho, veja só um PIC 16F877 converte uma entrada analógica em 4 ciclos de maquina (que no caso é de 200ns) isso dá 800ns mas é claro que depende de como voce dá a instrução de leitura, se voce ficar em lup para espera a conversão deve dar por volta de 1us cada conversão, logo o DSP tem que fazer isso muito mais rápido por isso acho que ele converte todas os 8 entradas em 1,7us.
Segundo o datasheet, os 8 canais são convertidos em 5,3us.
O TMS320F2810 tem um tempo de conversão de 80ns (as 8 deveria dar teoricamente 640ns) para cada entrada analógica, o 8323 não pode ser tão lerdo assim..
80ns? :o Parece até coisa de gente grande :)
Se você tem tanta pressa na conversão, posso lhe sugerir que entre em contato com o Núncio Perella (n-perrella@ti.com), engenheiro de aplicações da Texas. Acho difícil você conseguir tempos de conversão mais rápidos do que isso.
Se você preferir continuar com os controladores da Freescale, tem a família Coldfire (32bits) e tenho certeza que tem DSP mais rápidos do que o 8323.
Eu espero usar 250 instruções por ciclo de scam do programa isso deveria dar uns 4,17us (este ciclo que eu estou falando são as instruções que ficam executando constantemente no programa, fora as configurações e instruções que não fazem parte do controle )
Pela sua conta, 250 instruções dão 4,17us. Isso quer dizer que a taxa de amostragem não pode ser inferior a 4,17us. 1,7us dá e sobra. Pensando no 2810 da Texas, 150MIPS (teóricos) dá 6ns por instrução, ou 13 instruções a cada 80ns (acho difícil usar esta taxa) ou, por outro lado, 1,5us a cada 250 instruções (e a taxa de amostragem seria de 1,5us).
A minha sugestão é que reveja detalhadamente o procedimento para o controle de torque. Levante o mais realisticamente possível a taxa de conversão que você precisa. Mesmo que seja estupidamente alta, com certeza tem um controlador que lhe atende. Se tudo mais falhar, existem conversores A/D MUITO RÁPIDOS que podem ser utilizados juntos com controladores/processadores violentamente rápidos (estou digitando agora num PC movido a Semprom de 2,8 GHz, e não é o mais rápido que existe).
Tudo muito lindo, se não fosse a nossa realidade. Tudo tem um preço e uma dificuldade de se conseguir componentes em quantidade de produção (pequena ou não). E tudo tem um custo/benefício. De um lado um driver fantástico feito por você que mantem o torque (já estou assumindo que funciona), por outro lado, um motor bem maior que é mais barato que o seu driver, já que o custo do seu projeto pode ter ido à extratosfera...
Sempre achei complicado estas contas de padeiro :)
Não encontrei como programar ele em Assembler sem usar o PE. acho que não dá ??
Você pode compilar um arquivo escrito 100% em assembly ou fazer rotinas e/ou partes de rotinas em assembly usando o comando "asm".
Abraços,
Rudolf
-
Rudolf
Segundo o datasheet, os 8 canais são convertidos em 5,3us.
Caramba eu não encontrei isso no datasheet, voce pode me indicar em que pagina está estes dados? O que eu encontrei é que a conversão é feita em 6 ciclos..
Quanto aos tempos até que o 8323 dá sim pra faze pois tudo deve rodar assim : roda as instruções e ajustas os parametros (250 instruções), depois chama uma rotina de leitura e le as analogicas , volta da rotina com os dados e repete tudo de novo.
Para o free tudo deve dar 9us, já com o texas tudo deve dar uns 2us. Acho que é mais ou menos isso..
Eu não espero ler as AD direto sem para elas serão lidas quando o programa atingir um ponto onde é pedido a leitura das mesmas.
-
Grande Felix,
Caramba eu não encontrei isso no datasheet, voce pode me indicar em que pagina está estes dados?
O manual é o 56F8300 Peripheral User Manual (MC56F8300UM.PDF). No CodeWarrior clique em Help, Freescale 56F83xx PDF Index, 56F8300 Peripheral User Manual. Abrindo o PDF, página 53 (Chapter 2 Analog-to-Digital Converter (ADC) - 2.2 Features). Está escrito assim:
"Eight conversions in 26.5 ADC clock cycles (26.5 × 200ns = 5.3μs) using Simultaneous mode"
Junto com o CW tem todos os manuais de todos os DSPs. Nem precisa procurar no site da Freescale :)
O que eu encontrei é que a conversão é feita em 6 ciclos..
A primeira conversão é feita em 8,5 ciclos (1,7us). As outras conversões são feitas em 6 ciclos (1,2us).
Não me pergunte por que, mas a versão 8,1 do CW (ainda uso a 7,3) diz que o 8014 tem tempo de conversão de 0,531us. Ainda tenho que checar o que ele grava nos registradores para conseguir este tempo. Sei que funciona, só não chequei se este tempo é verdadeiro. Acho difícil, apesar de saber que o CW faz uma mágicas de vez em quando 8)
Abraços,
Rudolf
-
O manual é o 56F8300 Peripheral User Manual (MC56F8300UM.PDF). No CodeWarrior clique em Help, Freescale 56F83xx PDF Index, 56F8300 Peripheral User Manual. Abrindo o PDF, página 53 (Chapter 2 Analog-to-Digital Converter (ADC) - 2.2 Features). Está escrito assim:
"Eight conversions in 26.5 ADC clock cycles (26.5 × 200ns = 5.3μs) using Simultaneous mode"
Arammm agora eu vi..hehehe
Terrei que desistir de mais um componte considerando o trabalho de estudos ainda bem que não avia comprado o bichin. Que pena ele tava 30 mangos. :'(
Vou ter que temtar algo mais rapido do que o 8323 acho que a minha ultima solução é o 2810 mas o dito cujo custa 100 mangos :'(
vou ver os Coldfire de 32 bits quem sabe o preço fica melhor que o 2810
-
Quanto a espaço exagerado que a BEANS gastam; com um pouco de paciência para aprender como funcionam os periféricos do dsp freescale, vale a pena usar o PESL, pois fica bem mais economico em termo de memoria.
O Pesl é bem enxuto.
-
Pessoal sou iniciante em DSP, e estou com um kit...Ez-kit 21160 mas não consigo gravar o programa nele. O Disk que eu tenhu de instalação dele tem apenas comunicação USP, contudo minha placa trabalha com porta paralela, alguém pode me ajudar?
Obrigado
-
OI..pessoal
Estou iniciando o estudo e o uso do EZ-KITE 21160. Não consigo gravar gravar no Kit, pois o drive do kit...indica apenas a configuração para USP contudo minha placa tem apenas comunicação paralela. Como resolvo o problema.
-
Como resolvo o problema.
As especificações são bem claras:
System Requirements:
- Pentium® 166 MHz or higher
- Minimum of 32 MB of RAM
- Windows® 98/2000/XP
- One USB port
Fonte: http://www.analog.com/static/imported-files/product_highlights/333615896776ADSP21160EZ.pdf
Vc terá de usar outra placa mãe ou instalar portas USB ...
-
Saldações a Todos!
Estava Trabalhando em outro projeto, por isso não deu pra levar este projeto a frente. Mas agora espero recomeçar com ele.
Ja tinha gerado Dois Prototipos. Todos Com Pics Um dos Prototipos usa um Pic de 16Bits da familia 18F e o outro usa um DSpic .
Não deu pra testar na Pratica, Pois vou ter que mandar Fazer alguns protótipos de placas, a Frequencia é muito alta e tem muita interferencia.
-
Oi pessoal
Gostaria de saber se alguem ja configurou o 33FJ12MC202 em Assembler ou algum Dspic da linha 33.
Agradeço se algem puder me dar uma força.
-
Algum pode me ajudar?
Por acaso a referencia do sinal das entradas analógicas dos DSpics 33 pode ser de 5V ou tem que ser de 3,3V como a alimentação ?
-
Quantas perguntas ? Quantas respostas!!!!! ???
Só para não fugir da rotina. mais uma pergunta.
A um bom tempo atras Rudolf colocou a segunte formula:
Ti=L*Ii/V
onde:
Ti = tempo em que a corrente atinge o valor nominal do motor
Ii = Valor da corrente em Ti
Gostaria de saber se esta formula realmente condiz com a realidade do tempo de elevação da corrente em relação aos parametros L do motor , e V da fonte do Driver ?
E se a resistencia da bobina do motor tem alguma influencia neste tempo ?
Se alguem puder me esplicar eu agradeço desde já.
-
Quantas perguntas ? Quantas respostas!!!!! ???
Nem o oráculo de Delfos tinha todas as respostas e quando as tinha, nínguém entendia ... ;D
Só para não fugir da rotina. mais uma pergunta.
Vc pretende algum dia contribuir com algumas respostas tb ?
Gostaria de saber se esta formula realmente condiz com a realidade do tempo de elevação da corrente em relação aos parametros L do motor , e V da fonte do Driver ?
Homem de pouca fé, se foi o Rudolf quem disse, por que duvidas ?
E se a resistencia da bobina do motor tem alguma influencia neste tempo ?
Não.
-
Jorge
Nem o oráculo de Delfos tinha todas as respostas e quando as tinha, nínguém entendia ...
Boa ;D
Vc pretende algum dia contribuir com algumas respostas tb ?
Se tiver dentro de minha capacidade claro que sim. Só não quero dar uma resposta e atrapalhar mais ainda, de novo. Entende
Homem de pouca fé, se foi o Rudolf quem disse, por que duvidas ?
Não sei se ele confirmou se esta formula funcionou bem para os ajustes do PID dele.
Mas com sua resposta devo crer que é isso mesmo.
-
Jorge
Fiz alguns testes aqui com esta formula e ela realmente não condiz com a realidade.
creio que ela e´ para calculo da força eletromotriz induzida não para calculo de tempo da elevação da corrente em uma bobina em relação a tensão aplicada.
veja só
caracteristicas do motor :
6,4 mH ; 6,2 Amperes por fase; resistencia da bobina 0,56 ohms ; 3,5 volts
se aplicar a formula Ti=L*Ii/V, tendo em vista uma alimentação de 100V
da um tempo de carga de 396,8 uS para atingir 6,2A , que horrivel :P
Vamos piorar a coisa vamos aplicar agora 10V, da um tempo de carga de 3,968 mS para atingir 6,2A .
Ta bom vamos piorar mais ;D aplicar agora 0,0368V da um tempo de carga de 1 segundo. Eca
Só que 0,03968V jamais poderá gerar 6,2 A em uma bobina com 0,56 ohms de resistencia. acho que nem dá 0,07A.
-
Grande Felix,
Fiz alguns testes aqui com esta formula e ela realmente não condiz com a realidade.
Você poderia dar um pouco mais de detalhes sobre isso, por favor?
creio que ela e´ para calculo da força eletromotriz induzida não para calculo de tempo da elevação da corrente em uma bobina em relação a tensão aplicada.
veja só
caracteristicas do motor :
6,4 mH ; 6,2 Amperes por fase; resistencia da bobina 0,56 ohms ; 3,5 volts
se aplicar a formula Ti=L*Ii/V, tendo em vista uma alimentação de 100V
da um tempo de carga de 396,8 uS para atingir 6,2A , que horrivel :P
Confere :)
Vamos piorar a coisa vamos aplicar agora 10V, da um tempo de carga de 3,968 mS para atingir 6,2A .
Ta bom vamos piorar mais ;D aplicar agora 0,0368V da um tempo de carga de 1 segundo. Eca.
Pois é... Quanto maior a tensão, mais rápido a corrente chega ao valor nominal.
Por outro lado, supondo que, quando a corrente chega ao seu valor nominal você muda de passo (fornecendo uma corrente com formato triangular), você teria (usando seus valores acima):
Para 100V, Freq= 1 / 396,8 uS = 2,520 Khz
Para 10V, Freq= 1/ 3,968mS = 252 Hz
Resumo: Quanto maior a tensão, mais rápido o motor pode girar COM O MESMO TORQUE.
Abraços,
Rudolf
-
Rudolf
Fiz alguns testes aqui com esta formula e ela realmente não condiz com a realidade.
Você poderia dar um pouco mais de detalhes sobre isso, por favor?
Teste pratico, tenho que fazer mais testes pra confirmar o valor real. Mas alimentando o motor com 50V e Dutry a 99% o tempo que leva para a amperagem atingir o valor nominal é bem menor do que o da formula. Pelo menos é o que to vendo aqui a principio.
No teste alimentei a bobina do motor com 99% da tensão, o ideal era aproveitar a formula e calcular o tempo pra depois reduzir o Duty e estabilizar a amperagem, mas a amperagem subiu muito. A principio achei que era programação, mas agora vou testar este comportamento com um programa especifico para isso, pra tentar achar alguns parametros, e aplicar no programa.
-
... alimentando o motor com 50V e Dutry a 99% o tempo que leva para a amperagem atingir o valor nominal é bem menor do que o da formula. Pelo menos é o que to vendo aqui a principio.
Como vc tá vendo ? Tá usando um osciloscópio ?
... calcular o tempo pra depois reduzir o Duty e estabilizar a amperagem, ...
Posso pedir uma gentileza ? "amperagem", "voltagem" e outros "... agem" me causam urticária, vamos falar de tensão e corrente ? ;D
Vou pegar um atalho, indo mais diretamente ao ponto:
Quer me parecer, pelo que diz, que está pretendendo controlar a corrente através de PWM e quer calcular o duty cycle em função da corrente nominal do motor e da tensão da fonte e tudo em malha aberta, é isto ?
Se for isto, gostaria de alertá-lo de que a coisa não vai funfar e que a utilização de fontes com tensões superiores às nominais dos motores deixa de ser vantajosa, pelo menos no que se refere às vantagens almejadas com a utilização de choppers ...
-
Jorge
Por que malha aberta? Não entendí. Ao meu ver ta em malha fechada, pois to controlando a corrente com o ADC.
-
Por que malha aberta?
Foi o que me pareceu, já que vc falou em calcular o ciclo de trabalho ...
Como vc tá fazendo o controle exatamente ?
-
Jorge
A base da idéia é elevar o valor da corrente o mais rapido possivel ao patamar do valor de controle. desta forma aplicando o maximo da tensão no motor durante (x) tempo e, a partir dai aplicar o PID.
Ex:
POLO 1 POLO 2 INV.POLO 1 INV.POLO 2
PWM1 PWM2 PWM3 PWM4
PASSO 0 100% 0 0 0
PASSO 1 99% 48% 0 0
PASSO 3 97% 67% 0 0
Na tabela da pra ter uma pequena idéia do deslocamento dos passos e o controle de corrente que to tentando fazer. O polo 1 no estágio de mudança do passo somente ajusta o PID pois a corrente tende a diminuir enquanto o polo 2, parte de 0 a 48% do valor da corrente do motor , neste caso teria que dar certo o calculo de tempo de subida da corrente, aplicando o duty ao valor max. em (x) tempo, que teoricamente ja colocaria o polo em 48% e a partir dai reduzir o duty a um valor anteriormente gravado e corrigir atraves do PID (leitura da corrente e ajuste do duty) . Mais ou menos isso que to tentando fazer.
-
Resultado dos testes
Motor 6,4 mH ; 6,2 Amperes por fase; resistencia da bobina 0,56 ohms ; 3,5 volts, tensão de operação 50V
Tempo de disparo dos fets 10µs; resultado da corrente lida pela enrada analógica = 0,0A
Tempo de disparo dos fets 100µs; resultado da corrente lida pela entrada analógica = 0,7A
Tempo de disparo dos fets 500µs; resultado da corrente lida pela entrada analógica = 1,5A a 1,75A
Tempo de disparo dos fets 600µs; resultado da corrente lida pela entrada analógica = 1,9A a 2,2A
Opa ta faltando dados ai;
Transistores fets(IRF640/IRF9640) queimados até agora 40, disparadores queimados 12, Core(dspic33fj128mc706) queimados 2, placas perdidas por erro do circuito de disparo 20.
Agora sim tem dados suficientes para admitir o fracasso atual do driver. Mas vamos lá o jeito é reprojetar o circuito todo de dispara (ja executado) e juntar uma grana pra comprar tudo de novo, e mandar fazer as placas com o novo circuito. Simples né.
Só uma coisa ainda está estranha, até 100µs praticamente não teve disparo dos fets. Os disparadores (TC427) estavam normalmente conduzindo o sinal, mas os fets nada. Será que foi o capacitor de 0,1µf que usei na referencia do gate?
-
Estou com problema em conseguir um transistor fet P-chanel com mais de 200V e 10 A, ja vi varios exemplos de driver que mostra um fet N disparando canal positivo. mas em meus testes eles esquentam muito por estarem com polaridade invertida. mas vi tambem alguns exemplos com IGBTs que usam esta tecnica de usar o IGBT N em lugar do P e naum sei se da o mesmo resultado do fet.
Tenho olhado com carinho o IXTH10P60 mas não achei nenhuma revenda dele no pais. E o IGBT IRG4BC30UD
Se alguem sabe se é possivel usar o fet N ou IGBT no lugar de um P_chanel sem que ele esquente demais me da uma força.
-
Estou com problema em conseguir um transistor fet P-chanel ... Se alguem sabe se é possivel usar o fet N ou IGBT no lugar de um P_chanel sem que ele esquente demais me da uma força.
É perfeitamente possível ... o que é que vc tá fazendo, uma ponte H ?
Se for este o caso, há drivers para excitar os FETs do lado alto da ponte ...
-
Jorge
É perfeitamente possível ... o que é que vc tá fazendo, uma ponte H ?
Isso mesmo é uma ponte H, ja tentei usar FETs N mas o resultado foi tragico. ::)
Hoje estou usando o IRF640 em conjunto com o IRF9640. Mas eles só suportam 200V. Tava usando o driver TC427, mas naum deu muito certo. Ja redezenhei o circuito com TC 427 mais um BF 420 e um BF 421 para o disparo. ficou bom, mas to tentando almentar a tensão e to ficando limitado com fet P.
Se vc tiver algum exemplo ou link ai me ajudaria muito Vlw. Ja testei varios exemplos de links e a unica resposta foi queima de fets.
-
... ja tentei usar FETs N mas o resultado foi tragico. ::)
Felix, especifique as características desejadas para a ponte, fica mais fácil dar um pitaco ...
Não sei se ficou claro o que eu queria dizer, repetindo: há drivers para o lado alto da ponte pra usar com FETs canal N ... vc pode tb utilizar optoacoladores pra esta função ...
Não sei quais foram os probs que vc enfrentou, mas ainda insisto nisto, acho que é mais econômico que usar FETs canal P, sempre mais caros e mais difíceis de encontrar ...
-
Jorge
Me desculpe a falta de conhecimento sobre pontes H, se eu tivese um terço do seu conhecimento com serteza ja teria resolvido o problema.
Felix, especifique as características desejadas para a ponte, fica mais fácil dar um pitaco ...
Jorge, naum sei exatamente do que precisa , mas posso tentar passar algumas explicaçóes do que eu to tentando fazer;
O projeto consiste em um driver de 10A espero alimentar o motor com 150V.
Todos os tentes que executei até agora foram com alimentação de 50V cc
Sense ta projetado pra 10A com resistores de 0,33R 50W (espero passar pra sensor Hall Futuramente)
Frequencia do PWM 200 Khz. Controle de corrente de 20 a 80% da capacidade do driver (2A até 8A).
Não sei se ficou claro o que eu queria dizer, repetindo: há drivers para o lado alto da ponte pra usar com FETs canal N ... vc pode tb utilizar optoacoladores pra esta função ...
Humm não ficou claro. Pra mim não ;D (ignorancia do assunto mesmo)
Não sei quais foram os probs que vc enfrentou, mas ainda insisto nisto, acho que é mais econômico que usar FETs canal P, sempre mais caros e mais difíceis de encontrar
Com relaçõa ao irf640 e irf9640 o valor de mercado é praticamente o mesmo.(mas ache IGBTs N de 40A 600V mais baratos).
-
Felix, o que pretende acionar com essa ponte, motores de passo ?
-
Jorge
Felix, o que pretende acionar com essa ponte, motores de passo ?
E´um driver de motor de passo sim. Tem mais de 2 anos que to tentando terminar este projeto. Quando acho que to chegando a algum lugar descubro que esse lugar é um grande deserto de informação e gasto de dinheiro.
Mas vamos lá, tem muita areia ainda neste deserto.
-
Felix, não há só areia nos desertos, há odaliscas tb ... e camelas ou dromedárias, pra quem gosta ... he, he, he ...
Olha, eu não sei em que vc se baseou pra especificar a ponte, mas me parece que tá um pouco superdimensionada para a maioria das aplicações, particularmente as do povo aqui do fórum ...
A coisa fica mesmo difícil quando não se domina a etapa de potência e vc já descobriu isto ... eu recomendaria que vc montasse pontes mais modestas pra pegar o jeitão da coisa ... e não tô falando ainda do software, que tb não é bolinho ...
Talvez vc já tenha feito isto, mas se não fez, sugiro por exemplo, que faça tudo funcionar com uma ponte comercial, como o L298 ... isto vai ajudar a debugar o software, remove algumas pedras do caminho e vc vai se familiarizar com algumas peculiaridades das pontes e safadezas do algoritmo de controle ... a seguir, trate de obter o mesmo resultado com uma ponte montada por vc, com componentes discretos, mas que emule a comercial, depois acrescente "músculos" ...
Pode parecer muito pedalativo, e é, mas na minha experiência é um dos caminhos mais curtos ... ao longo dos anos tenho visto um bocado de gente engolindo vastas quantidades de gramíneas ao tentar queimar etapas ... não que não seja possível, mas o comum é que quando a gente não quebra a cara logo de cara, quebra mais a frente ...
Eu ficaria calado se não percebesse em vc a pertinácia dos que não se deixam intimidar pelas dificuldades ... ;D ;D ;D
-
Jorge
Pode se dizer que ja passei por varias etapas, ja construi o sistema em um pic 16f877, em um 18f4431 e agora to em um dspic33fj128mc706. Quato ao Software ta rodando bem PWM, Controle de passo
hall, full, 400, 800, 1600 pulsos por volta. até ai ta bom. Safadezas do algoritmo de controle, ja vi muito depois de tantos anos lidando com isso em CLPs e afins.
Os testes com o ponte é que ta dificil ja tinha abolido a questão de usar transistores N em minha ponte mas agora deparei com um problema. Ou eu aumento a tensão ou não vai compensar ter um driver que demora 100µs pra ter uma boa resposta de corrrente. Veja bem nem to falando de FEM. se não aumentar a tensão a coisa não vai funfar do jeito que quero.
Bom acredito que fiz uma pergunta, la atras, mas a resposta é bem simples se fosse fácil todo mundo ja teria feito. não é só uma questão de falta de informação, mas uma questão de falta de cultura de informação. ;D ;D ;D
-
Felix, como vc tá avaliando o comportamento do driver ? Vc dispõe de um osciloscópio ?
-
Prezados,
Já construí alguns drivers push pull usando apenas transistores tipo N, operando em frequências de centenas de KHz, quando montava bobinas de Tesla eletrônicas. Já queimei vários IRF-740, e se não tomar alguns cuidados queima mesmo. Usava cargas indutivas, o que piorava ainda mais as coisas.
Usando motores de passo acredito que haverá o mesmo problema (defasagem da tensão e da corrente de carga).
Este assunto de acionamento de FETs de potência é realmente muito específico e não posso dizer que sou especialista, mas já andei estudando o assunto e há algumas variáveis do processo que devem estar sob controle. Quem sabe podemos dar uma ajudinha... :)
Para começar, como voce já deve ter aprendido..., a capacitancia de entrada dos FETs é relativamente alta (na verdade um FET de potência é um CI, sendo composto de vários FETs em paralelo, o que aumenta a capacitância com a potência), o que requer um driver de baixa impedância. Também é necessário cuidar da sincronização dos tempos de disparo dos transistores da ponte, que não devem conduzir ao mesmo tempo nunca. Por isso tudo, existem CIs que desempenham bem essa função e, sempre que possível, devem ser usados, pois facilitam as coisas.
Os optoacopladores citados nem sempre funcionam, principalmente sozinhos. Pois os mais comuns normalmente são lentos (para coisa da ordem de KHz) e não possuem baixa impedância de saída.
Félix, voce poderia colocar um esquema de seu driver e da parte de potência?
-
Os optoacopladores citados nem sempre funcionam, principalmente sozinhos.
He, he, he ... os acopladores funcionam sempre, Gil ... e não imagino como poderiam funcionar sozinhos ... ;D
Pois os mais comuns normalmente são lentos (para coisa da ordem de KHz) e não possuem baixa impedância de saída.
Dá pra vc dizer que acoplador comum é esse ?! Aqueles que se encontram nas quitandas por aqui respondem a pelo menos algumas dezenas de kHz ... perfeitamente adequados ao que se discute aqui ...
-
Jorge,
He, he, he ... os acopladores funcionam sempre, Gil ... e não imagino como poderiam funcionar sozinhos ... ;D
Me referi aos acopladores comuns ("da loja da esquina"), do tipo 4N25, TIL111, e similares, que possuem um transistor geralmente NPN, como na figura a seguir.
[attachthumb=1]
Diferentemente de um driver específico, o transistor do optoacoplador sozinho não conseguiria acionar um FET de potência, a menos que associado a outros componentes...
Dá pra vc dizer que acoplador comum é esse ?! Aqueles que se encontram nas quitandas por aqui respondem a pelo menos algumas dezenas de kHz ... perfeitamente adequados ao que se discute aqui ...
Estava imaginando que as frequências de trabalho seriam de dezenas ou centenas de KHz e o tempo de comutação menores que 1us.
Esses acopladores ("da esquina") possuem rise e fall time maior que 1 us. Mesmo em frequencias de KHz é usual equipamentos profissionais usarem acopladores + rápidos (ex.: HPCL-2630), que são mais apropriados para fontes chaveadas e circuitos similares. O próprio datasheet do 4N25 fala de ser +adequado para aplicações em "medium speed".
Mas não estou dizendo que "os da esquina" não funcionem, ... :)
Porém, quando estamos tratando de comutar FETs rápidos, e evitar que comutem ao mesmo tempo, 1 us pode ser uma eternidade.
-
Diferentemente de um driver específico, o transistor do optoacoplador sozinho não conseguiria acionar um FET de potência, a menos que associado a outros componentes...
Ah tá ... se vc não não disesse eu jamais desconfiaria ... he, he, he ... ;D
Estava imaginando que as frequências de trabalho seriam de dezenas ou centenas de KHz e o tempo de comutação menores que 1us.
Imaginar ainda é atividade livre e gratuita, embora perigosa em alguns casos ... ;D ;D
O próprio datasheet do 4N25 fala de ser +adequado para aplicações em "medium speed".
Hum ... tô cada vez pior ... mencionei o 4N25 e nem percebi ? ;D ;D ;D
Mas não estou dizendo que "os da esquina" não funcionem, ...
Ufa ! Que alívio ... será que tô menos pior do que pensava ? ;D ;D ;D ;D
Porém, quando estamos tratando de comutar FETs rápidos, e evitar que comutem ao mesmo tempo, 1 us pode ser uma eternidade.
Ah sim, claro ! Como tb alguns milhões de anos não valem um piscar de olhos do(s) Criador(es) ... Ó, minhas deusas, como tudo é tão relativo ... ;D ;D ;D ;D ;D
-
Ah tá ... se vc não não disesse eu jamais desconfiaria ... he, he, he ... ;D
Pois é... voce perguntou e eu respondi... :)
Imaginar ainda é atividade livre e gratuita, embora perigosa em alguns casos ... ;D ;D
Só pensar não tem problema, o "perigo" começa quando o pensamento sai da cabeça... ;D
A propósito..., qual é a frequência de sinal, larguras de pulso (Ton, Toff) e tempos de comutação esperados??
-
Jorge
Ociloscopio naum tenho naum Mas quando a coisa ficar melhor, ou pior, tem um amigo aqui que tem um. Da pra levar tudo lá e fazer uns testes. Quero dizer agora é nada (ta tudo queimado).
minilathe
Ton, Tof ~100ns espero.Deixa essas lojas das esquinas pra lá, vou tentar um CI dedicado, acho que é mais pratico e reduz o numero de componentes da placa, (que por enquanto é o que fica mais caro mandar fazer).
Decidi partir para os IGBTs ,ou partir eles ao meio (mais provavel).
-
Felix,
Ton, Tof ~100ns espero
Voce se refere aos tempos de comutação (= tempos de subida e de descida) ou a largura (= duração) dos pulsos em nível 0 e 1? Se for a largura dos pulsos, estamos falando de frequências de 5MHz, é isso?
-
minilathe
frequência de sinal, larguras de pulso (Ton, Toff) e tempos de comutação esperados??
Estou reajustando a Frequencia para 30KHz (antes tava com 200Khz), (Duty variavel) , comutação 100ns.
-
Felix, acredito que vc já tenha estudado a operação de algum(s) CI(s) como o bom e velho L297, não ?
Tô perguntando pq a pulex irritans que faz morada do meu pavilhão auricular esquerdo me incomoda há tempos, toda vez que vc fala de PWM, duty cycle, ADC, etc ...
-
Jorge
Não tenho nada contra cortar o sinal do PWM, mas to tentando outra coisa. Sem contar que isso é caracteristica de software, e pode ser mudado caso os testes demostrem que variar o Duty não funcine melhor, ou igual a corte de sinal de PWM.
Com os testes que fiz aqui (quando ainda dava pra testar alguma coisa) funcinou bem.
-
Alguem usou encapsulamento D-2PAK?. A vantagem é que da pra colocar um transistor de cada lado da placa, mas por outro lado não sei se tem discipador para eles?
-
Já usei o D2PAK em reguladores de tensão lineares, tipo 7805 e outros...
A parte metalica que tem melhor dissipação de calor destes vão soldadas na placa, nesse caso, a área de cobre e a própria placa "servem" de dissipador.
No meu caso, alem de fazer uma área grande de cobre pra soldar a parte metalica do corpo eu prensei na parte preta de plástico um dissipador de aluminio, mas foi armengue e com certeza não dissipa o calor como encapsulmentos PTH.
Para vários transistores SMD, quando vc soldar, vc vai perceber que um sempre vai ficar mais alto que o outro, atrapalhando mais ainda a colocação de um dissipador.
Muitos datasheets vem com a informação da capacidade de dissipação do encapsulamento, basta vc comparar.
Mas... tenho minhas dúvidas do uso deste tipo de encapsulamento nessa aplicação.
Abraço.
-
plancton81
tenho minhas dúvidas do uso deste tipo de encapsulamento nessa aplicação.
É eu tambem. ;D
Ja descartei a possibilidade de usar este encapsulamento. Fora essa questão de discipação de calor, a distribuição deles na placa ficou pior que o TO220.
-
plancton81
esse encapsulamento D2PAK é igual ao da figura?
Este que mostro na figura é bastante utilizado na empresa onde trabalho, o especialista de lay-out e o projetista de alguns produtos que utilizam este encapsulamento dizem que apesar de ser "chato" de trabalhar este se comporta melhor (não entendi porquê) ... seria esta questão da própria placa servir de dissipador um fator para o "melhor" comportamento?
abrax!
(http://estaticos.poblenet.com/01/encapsulados/enc20/MEDDPAK.gif)
-
Blackmore
esse encapsulamento D2PAK é igual ao da figura?
Sim é este o encapsulamento que avia perguntado anteriormente. Ja tinha visto tambem alguns projetos com este encapsulamento. mas menhum com corrente altas, a maioria com até 2A no maximo.
-
oi Blackmore,
o D2PAK tem maiores dimensões que o DPAK, você pode ver e comparar em:
http://www.fairchildsemi.com/products/discrete/packaging/d2pak_1.html
Chato de trabalhar em que sentido, fazer o layout? soldar? pode ser...
Sobre o comportamento, tenho pra mim que é exclusivamente dependente da temperatura de operação.
O D2PAK exige uma área de cobre na placa para dissipação do calor, componentes que esquentem muito precisarão de uma área grande que vai deixar a placa grande e consequentemente cara, fora que provavelmente vai esquentar a vizinhança... E o ruído térmico pode detonar tudo, a depender do tipo de circuito que se esteja desenvolvendo.
Geralmente os datasheets dão algumas instruções ou indicações de como calcular essa área.
Abraço.