Maxima Frequencia no QG8 e oscilador Interno.

Software e Hardware para uC da Qualcomm, NXP, FreeScale e Motorola

Moderadores: 51, guest2003

Maxima Frequencia no QG8 e oscilador Interno.

Mensagempor Msconfig » 14 Abr 2008 10:16

A velocidade maxima do QG8 com oscilador interno é realmente 16MHz?

Como configura o oscilador para isso?
Avatar do usuário
Msconfig
Byte
 
Mensagens: 116
Registrado em: 18 Nov 2006 16:11

Mensagempor mastk » 14 Abr 2008 10:42

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.
Avatar do usuário
mastk
Dword
 
Mensagens: 4407
Registrado em: 14 Out 2006 20:43

Mensagempor Fábio Pereira » 14 Abr 2008 12:30

Não,

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

T+
Fábio Pereira
embeddedsystems.io
Avatar do usuário
Fábio Pereira
Word
 
Mensagens: 674
Registrado em: 16 Out 2006 09:07
Localização: Kitchener, ON

Mensagempor Msconfig » 14 Abr 2008 13:04

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.
Avatar do usuário
Msconfig
Byte
 
Mensagens: 116
Registrado em: 18 Nov 2006 16:11

Mensagempor Fábio Pereira » 14 Abr 2008 13:09

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+
Fábio Pereira
embeddedsystems.io
Avatar do usuário
Fábio Pereira
Word
 
Mensagens: 674
Registrado em: 16 Out 2006 09:07
Localização: Kitchener, ON

Mensagempor mastk » 14 Abr 2008 13:13

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 */
}
Avatar do usuário
mastk
Dword
 
Mensagens: 4407
Registrado em: 14 Out 2006 20:43

Mensagempor Msconfig » 14 Abr 2008 14:26

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.
Avatar do usuário
Msconfig
Byte
 
Mensagens: 116
Registrado em: 18 Nov 2006 16:11

Mensagempor Fábio Pereira » 14 Abr 2008 15:30

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+
Fábio Pereira
embeddedsystems.io
Avatar do usuário
Fábio Pereira
Word
 
Mensagens: 674
Registrado em: 16 Out 2006 09:07
Localização: Kitchener, ON

Mensagempor mastk » 14 Abr 2008 16:37

Ou seja trimar um pouco acima.

Tinha tentado isso mas ficou instavel, acho que não loquei...
Avatar do usuário
mastk
Dword
 
Mensagens: 4407
Registrado em: 14 Out 2006 20:43

Mensagempor Fábio Pereira » 14 Abr 2008 17:19

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+
Fábio Pereira
embeddedsystems.io
Avatar do usuário
Fábio Pereira
Word
 
Mensagens: 674
Registrado em: 16 Out 2006 09:07
Localização: Kitchener, ON

Mensagempor Msconfig » 15 Abr 2008 17:31

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... :(
Avatar do usuário
Msconfig
Byte
 
Mensagens: 116
Registrado em: 18 Nov 2006 16:11

Mensagempor Fábio Pereira » 16 Abr 2008 07:42

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+
Fábio Pereira
embeddedsystems.io
Avatar do usuário
Fábio Pereira
Word
 
Mensagens: 674
Registrado em: 16 Out 2006 09:07
Localização: Kitchener, ON

Mensagempor Msconfig » 16 Abr 2008 09:15

Beleza, já abri um case lá na Freescale.

Obrigado.
Avatar do usuário
Msconfig
Byte
 
Mensagens: 116
Registrado em: 18 Nov 2006 16:11

Mensagempor Msconfig » 17 Abr 2008 10:31

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
Avatar do usuário
Msconfig
Byte
 
Mensagens: 116
Registrado em: 18 Nov 2006 16:11

Mensagempor Kremer » 18 Jun 2008 13:25

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.
Avatar do usuário
Kremer
Nibble
 
Mensagens: 82
Registrado em: 25 Jul 2007 17:15
Localização: Florianópolis


Voltar para NXP (ex-FreeScale (ex-Motorola))

Quem está online

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

x