Entrar    Registrar

Como ler um dado de 16 bits

Software e Hardware para DSP

Moderadores: joao, guest2003, 51

  • Autor
    Mensagem

Re: Como ler um dado de 16 bits

Mensagempor Vonnilmam » 31 Dez 2017 15:57

Bem sacada... :P
VonNilmam "Assembler" e agora "C"
Avatar do usuário
Vonnilmam
Byte
 
Mensagens: 430
Registrado em: 19 Out 2006 14:25
Localização: espacial

Re: Como ler um dado de 16 bits

Mensagempor Vonnilmam » 01 Jan 2018 01:23

Tenho boas noticias:

Consegui rodar amostras (ainda só em 8bits), com um pic18...agora vou partir para rodar esse algoritmo em um chip mais rápido.

Alguém poderia me tirar uma duvida:

O pic18 roda a maxima velocidade em 10mpis.

Um DSPIC roda a quantos MPIS?
VonNilmam "Assembler" e agora "C"
Avatar do usuário
Vonnilmam
Byte
 
Mensagens: 430
Registrado em: 19 Out 2006 14:25
Localização: espacial

Re: Como ler um dado de 16 bits

Mensagempor Vonnilmam » 01 Jan 2018 01:28

Não tive mais noticias do PROEX, mas quero lhe avisar caso veja esse post, que consegui implementar via wave-table os timbres dos instrumentos musicais, utilizando apenas uma única amostra, alterando apenas o sample rate da fundamental. Para minimizar os efeitos "nocivos" da distorção da "onda" ao aumentar a frequencia, acabei realizando novas "amostras" a cada oitava.

Agora já posso passar para um processador que tenha velocidade, para efetuar a ampliação de polifonia...

Sou grato por suas valiosas dicas.

Obrigado a todos.
VonNilmam "Assembler" e agora "C"
Avatar do usuário
Vonnilmam
Byte
 
Mensagens: 430
Registrado em: 19 Out 2006 14:25
Localização: espacial

Re: Como ler um dado de 16 bits

Mensagempor pamv » 01 Jan 2018 09:36

Vonnilmam escreveu:
O pic18 roda a maxima velocidade em 10mpis.

Um DSPIC roda a quantos MPIS?


www.microchip.com/design-centers/16-bit

Performance
With single cycle execution, deterministic interrupt response, zero overhead looping, and fast DMA, the dsPIC family also adds a single cycle 16x16 MAC and 40-bit accumulators, ideal for math intensive applications like motor control and digital power conversion. interrupt response, zero overhead looping, and fast DMA, the dsPIC family also adds a single cycle 16x16 MAC and 40-bit accumulators, ideal for math intensive applications like motor control and digital power conversion.

Pin and code-compatible across families
16 to 70 MIPS, DSP options
dsPIC33 DSCs offer real-time response and high performance
...
pamv
Byte
 
Mensagens: 422
Registrado em: 20 Jun 2016 21:47

Re: Como ler um dado de 16 bits

Mensagempor Vonnilmam » 03 Jan 2018 11:35

Tenho uma dúvida:

Já liguei o dspic 30 f 4013, e estou brincando com os periféricos internos dele, até aí tudo bem...inclusive ví que a velocidade máxima dele é 30 mips e ví também o modo de trabalho do barramento dele é "16bits", inclusive que se eu mandar uma variável de 8 bits para os ports, o mesmo não reconhece, há não se que seja em 16 bits também, porque disso não entendi...há estou usando o mikrocdspic, talvez seja coisa do compila.

Minha questão é, se ele possui um "módulo" dsp interno, o que isso agrega em termos de velocidade ao firmware como um todo, ou se apenas algumas coisas são feitas no dsp tais como agilização de cálculos, porém o resto do mcu se comportaria como se é normalmente, ou também o mcu tem alguma vantagem levada do modulo dsp?

Porque pelo que notei até agora só vi melhora nos mips e um desempenho melhor no processamento, visto que ainda não entrei no mérito de cálculos mais complexos com fft e transformadas de fourie....

Porque se for assim, compensa "mexer" diretamente com um STM32 ou até mesmo um DSP apropriado só para esse feito, se bem que os preços também contam nesse caso DSP tipo TI ou AN...

Obrigado
VonNilmam "Assembler" e agora "C"
Avatar do usuário
Vonnilmam
Byte
 
Mensagens: 430
Registrado em: 19 Out 2006 14:25
Localização: espacial

Re: Como ler um dado de 16 bits

Mensagempor eletroinf » 03 Jan 2018 13:23

O que eu entendo destes uC é que eles colocam algumas instruções como as de MAC que agilizam cálculos intensivos, por exemplo, no caso de filtros digitais.
No meu entendimento, teria de ser uma aplicação muito específica pra justificar de se utilizar uC de 16 bit, fora isso, não vejo vantagem: -Pra coisa pequena vai de 8 bit e para as maiores vai logo pra 32 bit. Mesmo pra implementar filtros digitais em ponto fixo, 16 bit geralmente fica no talo ou é necessário utilizar 32, o que vai dar uma rasteira no rendimento de seus MIPS.
"De cada um segundo sua capacidade a cada um segundo sua necessidade."
Avatar do usuário
eletroinf
Word
 
Mensagens: 687
Registrado em: 12 Out 2006 14:59
Localização: Santa Maria - RS

Re: Como ler um dado de 16 bits

Mensagempor Vonnilmam » 18 Jan 2018 06:46

[quote="Vonnilmam"]Sim, kraft, você esta correto na sua observação.

Como eu disse estou treinando com um pic18 algumas proezas com geração de timbres e controle, e a senoide é a segunda etapa que estou mexendo e pedindo ajuda de vocês e sou grato por isso. Para gerar uma amostra e simplesmente reproduzir ela no formato 8bits, não enfrentei nenhum problema, tanto que nasceu uma bateria eletrônica dos testes realizados (se alguém desejar, enviarei o fw). Venho a algum tempo, para não dizer anos, idealizando esse projeto "um synth wave table ou PCM", acumulei muito estudo sobre o assunto, tanto que acabei me rendendo a linguagem C, por sua versatilidade e "inteligencia" na criação de projetos de fw.

Hoje, com os preços dos MCUs despencando e as velocidade e capacidades de memória crescendo, estou tomando coragem e colocando a mão na massa :roll:

Já passei a fase de testes com DDS, ví os prós e contras na prática e o que notei foi: A estabilidade e precisão de frequencia é impar, muito excelente, mas tenho notado alguns expúrios na onda, seja ela de que forma for ou método, quer seja lendo uma tablela rotacional ou incrementando uma tabela externa (onde é possível alocar uma onda qualquer) e reproduzi-la com controle de inicio, meio e fim (looping)...mas tenho nota o tal do "gift", enfim um ruido de funto (mínimo mas ainda tenho que trabalhar nisso para entender a origem e corrigir). Agora estou na fase de rodar os sample loops que tenho criado, agreguei bastante experiência sobre essa técnica nos decorres dos anos.

Como eu disse, o intuíto é entender os procedimento e do porque isso ou aquilo acontece e conseguir "enxergar" a solução de forma clara.

Em relação ao DDS, acabei desenvolvendo com MCUs pic uma geradora musical completa, com polifonia de 16 canais, utilizando essa técnica e recorrendo (devido a velocidade dos chips envolvidos) a técnicas dos anos 80 para gerar os sustain, sendo dois tipos (percusivo e contínuo) esse ADSR tem esses dois tipos grafados no MCU principal de controle que gerencia os chips DDS. Esses canais (16) estão divididos para obedecer a dois teclados (44,49 ou 61 notas) independentemente e também foi dedicado (1) canal para reproduzir os sons de uma pedaleira, sintetizando o controle e geração para um órgão eletrônico. Já os filtros são controlados por tensão, essa tensão vem de um DAC 8bits que trabalha em modo SAMPLE HOLD multiplexado (coisa antiga). Os chips DDS, gerão além da frequencia exata, também alturas (pés) em saidas individuais de 16, 8, 4, 2 e 1 pés, essas alturas são responsáveis pela altura de cada (flauta).

Agora a meta é rodar o conceito adquirido ao longo desses anos utilizando a técnica wavetable em um ARM ou DSP, gerar todos os parâmetros e se possível comandar isso tudo dentro do protocolo midi, o mais fiel possível :oops:

Segue a foto do protótipo.
VonNilmam "Assembler" e agora "C"
Avatar do usuário
Vonnilmam
Byte
 
Mensagens: 430
Registrado em: 19 Out 2006 14:25
Localização: espacial

Anterior

Voltar para DSP

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante