Página 1 de 1

DCO -> SMCLK -> TIMER_A

MensagemEnviado: 04 Mar 2008 16:36
por alessandro
Estou usando um MSP da família 2xx, mais especificamente o F2013.
Estou usando o TimerA, com clock via SMCLK.

Acontece que não estou usando nenhum fator de divisão e a frequência no PWM é metade do que havia calculado.

Olhei em todas as configurações que pode, só se passou algo despercebido...

Fora o reg. DIVSx, IDx, tem algum outro lugar que pode estar dividindo minha frequencia por dois?

Segue minhas configurações.


BCSCTL1 = RSEL2 + XT2OFF;
BCSCTL2 = DIVS_0;

DCOCTL = 0x20 + 0x80;
BCSCTL1 = RSEL0 + RSEL2;//Clock de 1,66MHz, resistor interno

TACTL = TASSEL_2 + MC_1;
TACCR0 = 18106;//frequencia do PWM
TACCR1 = duty;
TACCTL1 = OUTMOD_7;
TACCTL0 = CCIE;


Alessandro

MensagemEnviado: 04 Mar 2008 17:57
por Fábio Pereira
Alessandro,

De onde você tirou que BCSCTL1 = RSEL0 + RSEL2; resulta em um clock de 1,66MHz ??? Se foi do meu livro, a tabela só vale para os MSPs da família 1xx.

Sugiro que você utilize os valores de calibração gravados pelo fabricante na FLASH. Para ajustar o DCO para 1MHz utilize:

DCOCTL = CALDCO_1MHZ;
BCSCTL1 = CALBC1_1MHZ;

Até +

MensagemEnviado: 04 Mar 2008 18:32
por alessandro
É Fábio.....estava utilizando a mesma tabela....usei a diretiva que disse para calibração e funcionou. Estou usando seu livro, parabéns!

A tabela DCO para familia 2xx é encontrada no User Guide 2xx?

O Clock tem muitas configurações que as vezes acabamos nos perdendo...

Valeu,


Alessandro

MensagemEnviado: 04 Mar 2008 21:30
por Fábio Pereira
Não, aquela tabela fui eu quem levantou, ela não existe em nenhum manual da Texas.

T+

MensagemEnviado: 05 Mar 2008 08:18
por alessandro
Para falar a verdade, nunca apanhei tanto para aprender a configurar um clock...

Na realidade como não estava batendo os valores de frequencia, tive que colocar um osciloscópio na saída do PWM e medindo a frequencia e alterando o DCO até chegar a frequencia que queria.

Mas valeu as informações, muito agradecido!


Alessandro