Modulador do DCO do MSP430 (migrado)

Software e Hardware para uC Texas

Moderadores: andre_luis, 51

Modulador do DCO do MSP430 (migrado)

Mensagempor Nightcrawler » 20 Out 2006 19:31

Nightcrawler
Mestre


Brazil
1145 Posts Posted - 07/06/2006 : 10:36:50
--------------------------------------------------------------------------------
Estive olhando no livro do Fabio, mas não consegui entender como usar o modulador do DCO. Tem a formula F = (((32 - MODx) * Fdco) + (MODx * Fdco+1))/32. Digamos que a Fdco = 3,72MHz, então, Fdco+1= 4,72 ou 3,73??
Tem um exemplo no livro do Fabio, que diz o seguinte: RSELx = 7; DCOx = 4; MODx = 27. Isso da 4,004MHz. Alguém pode me expllicar como chegar a esse valor??

<<Diego>>
MSN: noturno_st@hotmail.com

Edited by - Nightcrawler on 07/06/2006 13:33:30

Lorin
Aspirante


Brazil
164 Posts Posted - 07/06/2006 : 11:02:41
--------------------------------------------------------------------------------
Estou sem o livro e outros materiais agora (está em casa), esta parte do modulador é meio chatinha...

Olhe neste exemplo aeh, o valor correto é 4,0659 MHz que eu me lembre, ou alguma coisa parecida, não dá esse valor de 4,004 MHz!

Sdçs
Lourinaldo


Fabio Pereira
Conselheiro


Brazil
2205 Posts Posted - 07/06/2006 : 12:01:06
--------------------------------------------------------------------------------
Na verdade, o valor correto seria MODx = 22 e a frequência resultaria em 4,001MHz.

Estou atualizando a errata do livro.

Até +


Fábio Pereira
ScTec - Automação e Projetos Especiais
www.sctec.com.br


eletroinf
Aspirante


Brazil
153 Posts Posted - 07/06/2006 : 14:35:30
--------------------------------------------------------------------------------
Troquei uma idéia com o Diego aqui e tô tentando resolver a encrenca, mas parece que, aplicando a fórmula da pg 119 do livro do Fábio, o resultado é sempre o valor DCOx que uso na fórmula:
No caso citado, para DCOx =4, MODx =22 e RSELx =7:

f= ((32-22) * 3.72 + 22 * 3.72 +1) /32 obtive
f= 3.751 MHz

e se eu mudar o valor de MODx, por exemplo, para 5:

f= ((32-5) * 3.72 + 5 * 3.72 +1) /32 obtenho
f= 3.751 MHz

ou seja, pela fórmula o valor MODx não influencia em nada.
Eu nunca mexi com MSP na prática, mas na teoria já venho estudando a algum tempo. Alguém que domine o assunto tem alguma dica??

Ricardo Morim




Fabio Pereira
Conselheiro


Brazil
2205 Posts Posted - 07/06/2006 : 14:55:44
--------------------------------------------------------------------------------
Ahhh,

Mas aí realmente nunca vai funcionar, vejam que as freqüências devem ser fdco e f(dco+1):

Para DCOx = 4 e MODx = 22 teremos:

f = ((32-22)*3,72MHz + 22*4,13MHz)/32

Ou seja: f = 4,001MHz

Até +

Fábio Pereira
ScTec - Automação e Projetos Especiais
www.sctec.com.br


eletroinf
Aspirante


Brazil
153 Posts Posted - 07/06/2006 : 15:11:56
--------------------------------------------------------------------------------
Ahhhhh, se é assim sim, mas nem no datasheet do msp diz que fdco+1 se refere ao passo de frequência imediatamente superior. Tá bom, quebrei(amos) a cabeça mas aprendi alguma.
Obrigado pessoal!

Ricardo Morim


Lorin
Aspirante


Brazil
164 Posts Posted - 07/06/2006 : 16:33:17
--------------------------------------------------------------------------------

Pelo que entendi e tentanto lembrar por aqui,o modulador do DCO gera uma terceira frequência em que ele pega do DCO uma que é f(dco) e a outra sempre 10% superior a esta.
Se MODx=32 então o sinal 10% superior estaria em todas as partes desta terceira frequência e se MODx=0 não se teria influência deste sinal 10% superior.Então se MODx=22 o sinal 10% superior está presente em 22 partes das 32...
Eu também dei uma penada para sacar que f(dco+1) é um passo superior na tabela.É que está dito sutilmente na parte explicativa do funcionamento do DCO e modulador.
Me corrija aí Fábio!

Sdçs
Lourinaldo


Fabio Pereira
Conselheiro


Brazil
2205 Posts Posted - 07/06/2006 : 16:51:30
--------------------------------------------------------------------------------
É isso mesmo ...

O modulador seleciona quantas vezes (em 32) o sinal do tap superior (fdco+1) será aplicado na saída. Nos demais ciclos é aplicado o sinal do tap fdco.

Até +

Fábio Pereira
ScTec - Automação e Projetos Especiais
www.sctec.com.br


Nightcrawler
Mestre


Brazil
1145 Posts Posted - 07/06/2006 : 18:47:37
--------------------------------------------------------------------------------
É isso ai. Obrigado a todos que ajudaram. Por isso que esse forum é o melhor.

<<Diego>>
MSN: noturno_st@hotmail.com

Shagrath81
Candidato



12 Posts Posted - 04/07/2006 : 17:47:33
--------------------------------------------------------------------------------
Oi pessoal, aproveitando o tópico do DCO vai a minha dúvida.

Estou usando o msp430f2131 (16mips), configurei o dco dele para 16mhz utilizando o seguinte:

mov.b &CALDCO_16MHZ,&DCOCTL
mov.b &CALBC1_16MHZ,&BCSCTL1

Li no datasheet que a frequencia máxima da porta é de 12MHz com 3V, porem nao entendi se é a saida direta do clock ou se usando por exemplo um loop fazendo um xor na porta se consegue isso.

o que eu preciso é de um clock bastante alto na saida. Tanto em C quanto em assembly, o máximo que consegui foi 2MHz, é isso mesmo, alguem tem alguma sugestao?


Como as estruturas de loop gastam algum tempo de processamento eu repeti o xor algumas vezes dentro do código. Abaixo o que usei em c e em assembly:


Mainloop xor.b #002h,&P2OUT ; Toggle P1.0
xor.b #002h,&P2OUT ; Toggle P1.0
xor.b #002h,&P2OUT ; Toggle P1.0
...

jmp Mainloop ; Again


e em C:


while(1){
P2OUT^=0xff;
P2OUT^=0xff;
P2OUT^=0xff;
...
}


bom, qualquer sugestão é bem vinda, Obrigado pessoal, abraços.
Diego
Avatar do usuário
Nightcrawler
Byte
 
Mensagens: 450
Registrado em: 11 Out 2006 14:20
Localização: Santa Maria - RS

Voltar para Texas

Quem está online

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

x