HCS08 PLL (not)protected behavior [Forums - HC908 et S08]
HCS08 PLL (not)protected behavior [Forums - HC908 et S08]
Pseudo Pass se souvenir de moi     Créer un compte
ARTICLES et TELECHARGEMENTS ~ FORUMS ~ LIENS  
 
             
 
Recherche
 
   
 

Parcourir ce sujet :   1 Utilisateur(s) anonymes





HCS08 PLL (not)protected behavior
Accro
Inscrit:
06/07/2007 09:17
Messages: 694
Hors Ligne
Amis du coin bonjour :)

Je vais vers vous pour avoir votre avis sur le point suivant.
J'ai toujours respecter la datasheet du MPCG, je n'ai donc pas de savoir sur les comportement hors spec...

Imaginons un HCS08DZ60, câblé avec un quartz 16Mhz, configuré en mode PLL mais sans les protections actives.

Que ce passe-t-il en cas de perte de la PLL?

Pour être un peu plus précis:
J'ai un micro configuré comme ci-dessus (CPU 32MHz; BusCLK 16MHz), avec:
- une IT OVF Timer 1 (sur BusCLK) qui me sert de scheduler temp réel. Elle trig toutes les x ms et gère l'envoi de message can à une fréquence donnée.
- le Module MSCAN, dont l'horloge est prise directement sur le quartz via MCGERCLK.

J'ai vu à plusieurs reprise (<1%) des démarrages "corrompus", dans le sens où:
- La fréquence d'envoie des messages est > 20 fois plus vite.
- Les messages partent correctement sur le bus (Bdr OK, Bit time OK etc.).

J'en déduit soit une mauvaise config du timer (#define), soit un pb de pll.
En jouant avec le modulo timer, je reproduit mes symptôme... normal.

Mais pour la pll... Le défaut est-il possible? Cela voudrait dire que le cpu tourne bien bien au dela des 40MHz...Quel serait le comportment?

Merci d'avance pour vos éclaircissements :).

Posté le : 02/12/2016 10:52
Transférer la contribution vers d'autres applications Transférer


Re: HCS08 PLL (not)protected behavior
Pilier de la communauté
Inscrit:
13/10/2005 10:06
De haute-savoie (74)
Messages: 1162
Hors Ligne
Salut,

Il est possible d'overclocker un peu nos petites bêtes mais ça ne va pas loin... en tout cas pas du x2 !!!!
En principe durant l'init du MCG si tu respectes ce qu'il faut, tu dois attendre les flags d'état qui vont bien avant de libérer le code pour aller à la ligne suivante. Autrement dit, ton code ne peut se dérouler qu'avec une PLL correctement verrouillée. Après si tu laisse tes IT activées avant de configurer ta PLL, ça peut merdouiller un peu effectivement. Ce n'est pas tant que ce soit hors spec mais tu déroulerais du code dans un état non fonctionnel de la PLL. Autrement cela ne peut pas vraiment se produire comme cas selon moi.

Stéphane

Posté le : 08/12/2016 18:02
Transférer la contribution vers d'autres applications Transférer


Re: HCS08 PLL (not)protected behavior
Accro
Inscrit:
06/07/2007 09:17
Messages: 694
Hors Ligne
Merci Stéphane pour ta réponse.

Oui je suis d'accord, on peut faire un peu d'overclock mais il faut pas aller trop loin car les données sur le bus cpu seront corrompues.

Pour les IT avant la pll ne ne savait pas et cela m’intéresse...
Tu pense juste à un mauvais déroulement de la fonction d'it, ou à autre chose? Cela pourrait-il "corrompre" l'initialisation d'un module?

Posté le : 09/12/2016 11:09
Transférer la contribution vers d'autres applications Transférer


Re: HCS08 PLL (not)protected behavior
Pilier de la communauté
Inscrit:
13/10/2005 10:06
De haute-savoie (74)
Messages: 1162
Hors Ligne
lors d'un changement d'état de la PLL, il y a des états transitoires où la phase et la fréquence de l'horloge changent. Ces sauts de phase ou de fréquences peuvent se traduire par une période par exemple beaucoup plus rapide que la normale. Ces états vont être véhiculés sur le Fbus, mais l'électronique et la physique font que les temps de propagation ne permettent pas nécessairement de passer de tels signaux sans encombre. Ils seront altérés. Au mieux, rien ne se passe et le(s) coup(s) d'horloge concernés ne seront pas transmis sur Fbus, au pire, il se passe à peu près n'importe quoi.
Dans tous les cas, une règle de base, ne jamais permettre au CPU de dérouler du code lors d'un changement d'état de la PLL. C'est vrai pour n'importe quel CPU.

En principe dans la routine d'init on commence par couper toutes les IT avec un DisableInterrupts par exemple. Ensuite on initialise la PLL (ICS ou MCG par exemple). Cette routine doit attendre les flags d'état indiquant que la PLL est bien verouillée, puis on peut continuer l'init du CPU avec les périphériques... L'init de la PLL doit être le premier periphérique à initialiser. Une fois toutes les init faites, on peut faire un EnableInterrupt. et on ne touche plus à la PLL en principe. Si c'est nécessaire, il faut alors s'assurer que l'on a coupé les IT avant de le faire.
Et tout doit bien se passer. Autrement on peut avoir à peu près n'importe quel état merdique : ligne de code non exécutée, illegal command avec reset du CPU, timings erronés...


Posté le : 10/12/2016 00:54
Transférer la contribution vers d'autres applications Transférer


Re: HCS08 PLL (not)protected behavior
Accro
Inscrit:
06/07/2007 09:17
Messages: 694
Hors Ligne
Salut.
Je comprend et adhère à ton propos.
Aussi, lorsque l'on a un ensemble bootloader + application, il faut faire très attention...


Et c'est effectivement le cas de mon problème...
Pas question de la pll, mais du bien timer. Je m'explique:
Le bootloader configure le timer, et apres quelques truc, jump dans l'application.
L'application set le prescaler et la source du timer et lance les IT.
Le problème est le suivant:
La valeur que l'on met dans le MODULO est latché et prise en compte sous 2 condition: La fin d'écriture et l'OVF.
Cependant:
Citation :

The latching mechanism may be manually reset by writing to the TPMxSC address (whether BDM is active or not).


et oui, comme mon timer est lancé au niveau bootloader, je tombe de temps en temps sur un clear du flag TOF sous IT sans avoir eu d'OVF...
Du coup le MODULO fournit par l'application n'est pas pris en compte.

L’occurrence est tres tres courte, mais elle arrive...
Solution: remettre tout les registres à l'état par défaut avant de faire la configuration.
Citation :

If (CLKSB:CLKSA = 0:0), then the registers are updated when the second byte is written


dispo pour en parler :)

Posté le : 12/12/2016 12:41
Transférer la contribution vers d'autres applications Transférer


Re: HCS08 PLL (not)protected behavior
Accro
Inscrit:
06/07/2007 09:17
Messages: 694
Hors Ligne
Set issue as resolved
:)

Merci

Posté le : 14/12/2016 09:06
Transférer la contribution vers d'autres applications Transférer



 Haut   Précédent   Suivant



Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Powered by XOOPS© The XOOPS Project
Contacter les administrateurs

HCS08 PLL (not)protected behavior [Forums - HC908 et S08]