Página 1 de 1

Maxima Frequencia no QG8 e oscilador Interno.

MensagemEnviado: 14 Abr 2008 10:16
por Msconfig
A velocidade maxima do QG8 com oscilador interno é realmente 16MHz?

Como configura o oscilador para isso?

MensagemEnviado: 14 Abr 2008 10:42
por mastk
sim 16Mhz que dá um bus de 8Mhz.

Ligue o FLL que multiplica por 512 o 32.Khz do oscliador interno e não divida o resultado.

MensagemEnviado: 14 Abr 2008 12:30
por Fábio Pereira
Não,

A velocidade máxima do oscilador interno do QG8 é 20MHz o que resulta num BUSCLK de 10MHz.

T+

MensagemEnviado: 14 Abr 2008 13:04
por Msconfig
Obrigado mastk e Fabio,

Consegui as seguintes frequencias:

7 983 360 Hz para ICSC2,BDIV=1
3 987 456 Hz para ICSC2,BDIV=2
1 990 656 Hz para ICSC2,BDIV=3
996 864 Hz para ICSC2,BDIV=4

Em que bits mais tem que mexer para chegar nos 10MHz?

obs: as frequencias foram copiadas da janela command do debugguer.

MensagemEnviado: 14 Abr 2008 13:09
por Fábio Pereira
Tem de alterar a configuração do TRIM no Codewarrior.

O meu livro novo sobre HCS08 mostra este e outros detalhes.

http://www.amazon.com/HCS08-Unleashed-D ... 495&sr=1-1

T+

MensagemEnviado: 14 Abr 2008 13:13
por mastk
Tipo assim, o bus interno maximo é 10Mhz com o oscilador em 20Mhz, mas isso com um cristal externo ou mexendo um pouco no trim, coisa que ja tentei sem sucesso, agora com o oscilador interno, sem cristal externo ou oscilador externo, segura é os 8,3..Mhz

ICSTRM = *(unsigned char*far)0xFFAF; /* Initialize ICSTRM register from a non volatile memory */
ICSSC = *(unsigned char*far)0xFFAE; /* Initialize ICSSC register from a non volatile memory */
/* ICSC1: CLKS=0,RDIV=0,IREFS=1,IRCLKEN=0,IREFSTEN=0 */
ICSC1 = 0x04; /* Initialization of the ICS control register 1 */
/* ICSC2: BDIV=0,RANGE=1,HGO=1,LP=0,EREFS=1,ERCLKEN=1,EREFSTEN=0 */
ICSC2 = 0x36; /* Initialization of the ICS control register 2 */
while(!ICSSC_OSCINIT) { /* Wait until external reference is not stable */
}

MensagemEnviado: 14 Abr 2008 14:26
por Msconfig
Muito interessante... Mantive o BDIV em 1 e testei varios OSCTRIM:

Trim | CLK
100 = 9 252 992
80= 9 922 432
78= 10 000 000
77= 10 052 352
75= 10 105 216
50 = 11 162 752

Com essas dicas e na tentativa e erro, cheguei nos 10MHz desejados. Obrigado.

MensagemEnviado: 14 Abr 2008 15:30
por Fábio Pereira
Não Mastk,

Como eu disse antes, é perfeitamente possível setar a referência interna do ICS para operar a 39062,5Hz o que resulta num ICSOUT de 20MHz e num BUSCLK de 10MHz. Esta operação é feita na janela de comunicação do depurador do Codewarrior.

T+

MensagemEnviado: 14 Abr 2008 16:37
por mastk
Ou seja trimar um pouco acima.

Tinha tentado isso mas ficou instavel, acho que não loquei...

MensagemEnviado: 14 Abr 2008 17:19
por Fábio Pereira
A calibração do oscilador depende unica e exclusivamente da ferramenta (no caso o Codewarrior). No Codewarrior 6.0, é possível definir qual o valor alvo para a saída do ICS e a ferramenta encarrega-se de ler o BUSCLK (através do BDM) e ajustar o TRIM de acordo com a velocidade desejada.

No caso do CW 6.1, você especifica diretamente a frequência do IRCLK (que multiplicada por 512 resulta no ICSOUT).

Lembrando que a referência interna dos ICS opera tipicamente entre 31.25 e 49.06 kHz (conforme o datasheet do componente).

T+

MensagemEnviado: 15 Abr 2008 17:31
por Msconfig
Baixei o CW6.1 e embora ela permita definir a freq. do oscilador como o Fabio disse, no chip fica sempre gravado 0x90 no reg de calibração o que dá uns 7MHz... :(

MensagemEnviado: 16 Abr 2008 07:42
por Fábio Pereira
O CW6.1 tem um bug, ele não ajusta o oscilador para outros valores que não 31250Hz. Para este tipo de situação, você terá de utilizar o CW6.0 ou aguardar um service pack para o CW6.1.

Sugiro também que abra uma requisição de suporte na Freescale e relate o problema, pois quanto mais gente reclamar, mais cedo deve sair a solução.

T+

MensagemEnviado: 16 Abr 2008 09:15
por Msconfig
Beleza, já abri um case lá na Freescale.

Obrigado.

MensagemEnviado: 17 Abr 2008 10:31
por Msconfig
Dear Xyz,

In reply to your Service Request SR 1-123456789:

This is a confirmed issue under CW6.1. It will be fixed in the next major release or Service Pack. For the moment we can not provide any information about the date of this release.

Thank you for your interest in Freescale Semiconductor products and for the opportunity to serve you.

Should you need to contact us with regard to this message, please see the notes below.

Best Regards,
Jiri
Technical Support
Freescale Semiconductor

MensagemEnviado: 18 Jun 2008 13:25
por Kremer
Uma pergunta. Quanto se pode confiar no rc interno quando estamos falando de variação de temperatura?
Eu fiz um teste aqui com uma plaquinha com o qg8 com baudrate serial a 19200 e rc interno. Coloquei um soprador termico sobre a mesma e deixei ela transmitindo continuamente na serial. Não percebi caracteres errados ou perda dos mesmos, mas não sei até que ponto este teste é válido.