Autor Tópico: DSP (Digital Signal Processor) & cia  (Lida 14082 vezes)

Description:

0 Membros e 1 Visitante estão vendo este tópico.

Offline Rudolf Waller

  • Hobby
  • ****
  • Posts: 683
  • Sexo: Masculino
DSP (Digital Signal Processor) & cia
« Online: 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

Jose Carlos Felix

  • Visitante
Re: DSP (Digital Signal Processor) & cia
« Resposta #1 Online: 17 de Julho de 2007, 12:38 »
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?

Offline Rudolf Waller

  • Hobby
  • ****
  • Posts: 683
  • Sexo: Masculino
Re: DSP (Digital Signal Processor) & cia
« Resposta #2 Online: 17 de Julho de 2007, 12:48 »
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

Jose Carlos Felix

  • Visitante
Re: DSP (Digital Signal Processor) & cia
« Resposta #3 Online: 17 de Julho de 2007, 14:09 »
Citar
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.

Offline Rudolf Waller

  • Hobby
  • ****
  • Posts: 683
  • Sexo: Masculino
Re: DSP (Digital Signal Processor) & cia
« Resposta #4 Online: 17 de Julho de 2007, 14:46 »
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)
Citar
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

Jose Carlos Felix

  • Visitante
Re: DSP (Digital Signal Processor) & cia
« Resposta #5 Online: 18 de Julho de 2007, 22:41 »
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

Offline Rudolf Waller

  • Hobby
  • ****
  • Posts: 683
  • Sexo: Masculino
Re: DSP (Digital Signal Processor) & cia
« Resposta #6 Online: 18 de Julho de 2007, 22:56 »
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.
Citar
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

Jose Carlos Felix

  • Visitante
Re: DSP (Digital Signal Processor) & cia
« Resposta #7 Online: 19 de Julho de 2007, 12:23 »
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

Offline Rudolf Waller

  • Hobby
  • ****
  • Posts: 683
  • Sexo: Masculino
Re: DSP (Digital Signal Processor) & cia
« Resposta #8 Online: 19 de Julho de 2007, 14:10 »
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.
Citar
É 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

Jose Carlos Felix

  • Visitante
Re: DSP (Digital Signal Processor) & cia
« Resposta #9 Online: 20 de Julho de 2007, 11:42 »
 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.

Offline F.Gilii

  • Administrador
  • CNCMASTER
  • *******
  • Posts: 13796
  • Sexo: Masculino
  • Consultoria, Automação e Construção de Máquinas
  • Cidade - UF: Atibaia - SP
  • Nome:: Fabio Gilii
  • Profissão: Tec. Mecanica de Precisão
Re: DSP (Digital Signal Processor) & cia
« Resposta #10 Online: 20 de Julho de 2007, 14:00 »
José Carlos Felix,

Sua aplicação (driver de micropasso) será comercial ou será aberta?

Jose Carlos Felix

  • Visitante
Re: DSP (Digital Signal Processor) & cia
« Resposta #11 Online: 20 de Julho de 2007, 18:16 »
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..

Offline F.Gilii

  • Administrador
  • CNCMASTER
  • *******
  • Posts: 13796
  • Sexo: Masculino
  • Consultoria, Automação e Construção de Máquinas
  • Cidade - UF: Atibaia - SP
  • Nome:: Fabio Gilii
  • Profissão: Tec. Mecanica de Precisão
Re: DSP (Digital Signal Processor) & cia
« Resposta #12 Online: 20 de Julho de 2007, 18:19 »
OK - boa sorte na sua empreita então!

Offline Rudolf Waller

  • Hobby
  • ****
  • Posts: 683
  • Sexo: Masculino
Re: DSP (Digital Signal Processor) & cia
« Resposta #13 Online: 20 de Julho de 2007, 19:51 »
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 :)
Citar
Eu estou trabalhando em nivel avançado..
Não entendi o que você quis dizer...
Citar
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).
Citar
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 ;)
Citar
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

Offline Rudolf Waller

  • Hobby
  • ****
  • Posts: 683
  • Sexo: Masculino
Re: DSP (Digital Signal Processor) & cia
« Resposta #14 Online: 20 de Julho de 2007, 19:54 »
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

 

/** * */