Option : SCIENCES INDUSTRIELLES DE L'INGÉNIEUR ET INGÉNIERIE ÉLECTRIQUE
MODÉLISATION D'UN SYSTÈME, D'UN PROCÉDÉ OU D'UNE ORGANISATION
Durée : 6 heures
Calculatrice électronique de poche - y compris calculatrice programmable, alphanumérique ou à écran graphique - à fonctionnement autonome, non imprimante, autorisée conformément à la circulaire n° 99-186 du 16 novembre 1999.
L'usage de tout ouvrage de référence, de tout dictionnaire et de tout autre matériel électronique est rigoureusement interdit.
Si vous repérez ce qui vous semble être une erreur d'énoncé, vous devez le signaler très lisiblement sur votre copie, en proposer la correction et poursuivre l'épreuve en conséquence. De même, si cela vous conduit à formuler une ou plusieurs hypothèses, vous devez la (ou les) mentionner explicitement.
NB : Conformément au principe d'anonymat, votre copie ne doit comporter aucun signe distinctif, tel que nom, signature, origine, etc. Si le travail qui vous est demandé consiste notamment en la rédaction d'un projet ou d'une note, vous devrez impérativement vous abstenir de la signer ou de l'identifier.
INFORMATION AUX CANDIDATS
Vous trouverez ci-après les codes nécessaires vous permettant de compléter les rubriques figurant en en-tête de votre copie.
Ces codes doivent être reportés sur chacune des copies que vous remettrez.
ROBOT MOBILE UNICYCLE
Ce sujet comporte:
Le texte du sujet
Les documents réponses
Les documents ressources annexes
Pages DQ1 à DQ34
Pages DR1 à DR10
Pages A1 à A53
Ce sujet comporte 8 parties indépendantes :
Partie A - Génération des horloges de fonctionnement.
Partie B - Analyse de la communication inter-cartes dans le robot.
Partie C - Asservissement du robot.
Partie D - Analyse de la partie variation de vitesse du robot.
Partie E - Analyse des accéléromètres.
Partie F - Analyse de la fonction élévatrice de tension.
Partie G - Analyse de la fonction odométrie.
Partie H - Analyse d'un code programmé.
Une lecture préalable et complète du sujet est indispensable.
Il sera tenu compte de la cohérence avec laquelle les candidats traiteront chaque partie, le jury préférant une réflexion d'ensemble de la partie abordée à un éparpillement des réponses.
Chaque question est repérée par un numéro. Les candidats sont invités à numéroter chaque page de leur copie et à indiquer clairement le numéro de la question traitée.
Les candidats sont priés de rédiger chacune des huit différentes parties du problème sur feuilles séparées et clairement repérées.
Il leur est rappelé qu'ils doivent utiliser les notations propres au sujet, présenter clairement les calculs et dégager ou encadrer tous les résultats.
Tout résultat incorrectement exprimé ne sera pas pris en compte. En outre les correcteurs leur sauront gré d'écrire lisiblement et de soigner la qualité de leur copie.
Il sera tenu compte de la qualité de rédaction, en particulier pour les réponses aux questions ne nécessitant pas de calcul. Le correcteur attend des phrases complètes respectant la syntaxe de la langue française.
Pour la présentation des applications numériques, il est rappelé que lors du passage d'une forme littérale à son application numérique, il est recommandé aux candidats de procéder comme suit : après avoir rappelé la relation littérale, chaque grandeur est remplacée par sa valeur numérique en respectant la position qu'elle avait dans la relation puis le résultat numérique est donné sans calculs intermédiaires et sans omettre son unité.
Si le texte du sujet, ses questions ou ses annexes vous conduisent à formuler une ou plusieurs hypothèses, il vous est demandé de la (ou les) mentionner explicitement dans votre copie.
1 PRÉSENTATION DU SYSTÈME
1.1 PRÉSENTATION GÉNÉRALE
Le robot dont l'étude est proposée ici, est une version réduite d'une structure industrielle de type AGV (Automated Guided Vehicle), qui fonctionne sous l'environnement robotique ROS (Robot Operating System). Elle a été développée pour tester certains organes ainsi que l'environnement robotique et certaines fonctions de discussion. Elle est utilisée dans le cadre de tests d'asservissement et de communication des systèmes, et dans le cadre de la perception environnementale du robot.
Figure 1
Le robot, présenté en figure 1, a été conçu pour :
-être capable de se déplacer, à moyenne et grande vitesse,
-se repérer dans son environnement,
-être capable d'effectuer quelques actions simples,
-être autonome,
-communiquer avec l'extérieur (transmission d'informations ou guidage),
-accueillir l'environnement robotique ROS.
Seules les études de quelques fonctions du robot sont envisagées. Elles porteront sur des aspects électronique (oscillateur à quartz), informatique industrielle (configuration de microcontrôleur, communication, programmation), automatique (asservissement analogique et numérique), mécanique (odométrie, positionnement), et électronique de puissance (hacheur, élévateur de tension).
1.2 PRÉSENTATION DU MATÉRIEL
Le robot est capable de communiquer avec l'extérieur, soit en WIFI, soit en Bluetooth, soit directement connecté par liaison USB avec un PC (utilisation en mode de recherche d'erreurs).
Comme l'étude ne porte que sur le robot lui-même, le pilotage et la récupération des données sur PC ou tablette ne seront pas présentés.
L'architecture du robot est composée de 5 étages distincts (voir figure 1) assurant chacun une fonction particulière.
Les étages et les fonctions des divers étages du robot sont donnés ci-dessous.
-Etage 0 : capteur IR au sol, alimentation et pilotage des moteurs à courant continu.
Cet étage permet au robot de se déplacer et de repérer des indications au sol. C'est sur cet étage que l'on retrouve les 2 batteries utilisées pour fournir l'énergie.
-Etage 1 : capteur de distance à Ultrasons et capteur de contact.
Cet étage retourne au robot des informations de distance par rapport aux éléments de son environnement (mesure Ultrasonore) et fournit des indications en cas de choc.
-Etage 2 : capteur d'environnement Laser 2D.
Cet étage retourne au robot d'autres informations de distance par rapport aux éléments de son environnement. Elles sont basées sur une mesure Laser. Ce Laser 2D est compatible ROS.
-Etage 3 : détection positionnement balise IR, boussole, positionnement absolu et angle du robot.
Grace à cet étage, le robot a une connaissance de son positionnement absolu sur un terrain.
-Etage 4 : Cerveau, communication (WIFI, Bluetooth, USB).
Cet étage est utilisé pour le pilotage du robot, soit par la carte cerveau (exécution des stratégies de fonctionnement), soit par des commandes externes.
L'architecture matérielle générale est présentée en figure 1bis.
Figure 1bis
L'architecture matérielle du robot est composée majoritairement de cartes de traitement d'informations issues des capteurs, d'une carte de commande de moteurs à courant continu, ainsi que de modules de communication. La discussion interne au robot s'effectue à travers un bus de communication qui exploite le protocole CAN. Certains capteurs, comme le capteur Laser, sont prévus pour s'adapter au système d'exploitation robotique ROS.
La figure 1ter représente une description par étages du robot qui intègre tous les protocoles utilisés lors des diverses discussions inter-cartes.
Figure 1ter
Tous ces étages communiquent ensemble à travers un bus CAN.
Le bus CAN est un bus série multiplexé permettant à différents éléments de s'échanger des informations au sein de trames CAN. Ces dernières comportent les
données utiles à transmettre ainsi que, entre autres, l'adresse et l'identifiant du composant émetteur.
Les données utiles sont de longueur variable suivant l'étage.
Pour la communication CAN, le tableau récapitulatif suivant présente les différentes adresses et identifiants (ID) de chaque carte.
Etage
Adresse
Identifiant
Etage 0 : IR au sol
0x07A3
3
Commande des Moteurs
0x07A1
1
Etage 1 : Capteurs US et contact
0x07A2
2
Etage 2 : Laser 2D
0x07A4
4
Etage 3 : Balise, boussole
0x07A5
5
Positionnement, angle
0x07A6
6
Etage 4 : Cerveau
0x07A0
0
Partie A: génération des horloges de fonctionnement
Introduction: les cartes électroniques de chacun des étages intègrent un microcontrôleur. Le temps de cycle des microcontrôleurs doit être assez précis car il est utilisé pour le cadencement du fonctionnement, pour effectuer des mesures et pour rythmer les communications. Il est basé sur l'utilisation d'un quartz.
Le quartz -Modélisation.
La figure 2 représente un quartz (Q) et son schéma électrique équivalent.
Figure 2
Question A-1 : calculer l'impédance complexe du quartz entre les points A et B (figure 2) et la mettre sous la forme suivante : Z(jω) = (a + jb)/(c + jd)
Exprimer les grandeurs a, b, c et d en fonction de r, L, Cs, Cp et ω.
Question A-2 : on néglige les pertes mécaniques du quartz. Proposer une écriture simplifiée de Z(jω). Montrer que l'on peut écrire Z(jω) = j.X(ω) et exprimer X(ω) en fonction de L, Cs, Cp et ω.
Exprimer ensuite ωs et ωp, correspondant respectivement aux pulsations qui annulent le numérateur et le dénominateur de Z(jω). Puis, exprimer ωp en fonction de ωs, Cs et Cp.
Le quartz utilisé est un IQD modèle HC49/4H (documentation fournie en annexe 1). On considèrera que Cp = 40fF, Cs = 6pF, L = 398μH et r = 5Ω.
Question A-3: justifier et tracer sur le document réponse DR1, le module et l'argument de Z(jω). Préciser, sur le document, en fonction de la fréquence, par quel type de dipôle simple le quartz peut être modélisé.
Préciser, de plus, la bande de fréquence à l'intérieur de laquelle le quartz peut être utilisé pour réaliser un oscillateur. Justifier la réponse.
Principe d'un oscillateur
Le principe d'un oscillateur est présenté en figure 3.
Figure 3
Question A-4 : établir, à partir de la figure 3, les équations permettant de déterminer les conditions d'oscillation dites de Barkhausen. Indiquer la relation entre A_– et B_– pour que le système réalise un oscillateur, et en déduire, dans ces conditions, la relation liant |A_–| et |B_–| ainsi que la relation liant Arg[A_–] et Arg[B_–].
Préciser la façon dont on peut s'assurer que la condition limite est atteinte.
Oscillateur à quartz d'une des cartes du robot
Dans la documentation constructeur du dsPIC33F, on donne le schéma utilisé pour réaliser l'oscillateur à quartz d'une des cartes à microcontrôleur du robot.
Une version simplifiée est présentée ci-après en figure 4 :
Figure 4
Dans le microcontrôleur, un inverseur logique est utilisé comme amplificateur. On considèrera, si nécessaire, que sa résistance d'entrée est infinie et que sa résistance de sortie est nulle.
On a relevé sa caractéristique de transfert (figure 5) :
Figure 5
Question A-5 : indiquer lorsque l'inverseur logique est connecté conformément au schéma de la figure 4, son point de fonctionnement.
En déduire la valeur de son amplification que l'on notera A.
Question A-6 : en considérant RF infinie, calculer la fonction de transfert T_– = Vosc1 _–_– du réseau constitué par C1, C2, Rs et le quartz (on supposera que l'impédance du quartz est égale à j.X(ω)).
Enoncer alors la condition pour que les oscillations existent.
Question A-7 : on a montré précédemment à la question A-3, que le quartz avait un comportement différent suivant sa fréquence de travail. Indiquer alors quelle doitêtre la nature du comportement du quartz pour que le système oscille.
Calculer ensuite sa fréquence d'oscillation.
Boucle à verrouillage de phase
Pour augmenter la fréquence d'oscillation, un synthétiseur de fréquence est intégré à certains microcontrôleurs comme le montre la figure suivante (figure 6) :
Figure 6
On suppose que la boucle est verrouillée. La documentation fournie en annexe 2 donne les valeurs possibles de réglage pour N1, M et N2.
Question A-8 : exprimer la relation liant F_(REF) à F_(VCO). En déduire la relation qui lie Fosc avec Fin, N1, M et N2.
Préciser les conditions pour que le pas de réglage de la fréquence Fosc soit minimal.
Application numérique : l'oscillateur primaire fonctionne à 4 MHz. On désire une fréquence d'oscillation de 40 MHz. On souhaite un pas de réglage de 0,25 MHz pour la fréquence d'oscillation. Calculer les valeurs des paramètres N1, M et N2 (on choisira la valeur maximale possible pour le taux de pré division N1).
Question A-9 : représenter, en suivant les consignes données ci-après, le contenu des 8 bits de poids faible des registres FOSC, FOSCSEL, CLKDIV et PLLFBD pour obtenir le fonctionnement précédent. Exprimer alors le contenu des 8 bits de poids faible de ces registres en hexadécimal.
On respectera pour remplir les différents bits des registres, les règles :
-- pour les bits inutilisés,
X pour les bits dont la valeur n'est pas importante,
0 ou 1 suivant l'état pour ceux qui sont importants.
Pour définir la valeur hexadécimale, on choisira la valeur 0 logique pour les bits inutilisés et pour les bits dont la valeur n'est pas importante, sauf si un commentaire explicite est fait dans la documentation.
Partie B: analyse de la communication inter-cartes dans le robot - Protocole CAN
Introduction : les cartes électroniques de chacun des étages communiquent entre elles. Chacun des microcontrôleurs est équipé d'une interface matérielle CAN couplée à un émetteur-récepteur CAN haute vitesse.
Bits dominants - récessifs
Question B-1 : à partir du schéma suivant (figure 7) :
Figure 7
Donner la table de vérité de la sortie Vs en fonction des entrées Ve1 et Ve2 pour la fonction ci-dessus et indiquer la fonction logique réalisée.
Préciser, par rapport aux entrées Ve1 et Ve2, quel est le niveau logique prioritaire.
Expliquer alors la notion de bits dominants et récessifs.
Question B-2 : le CAN du robot fonctionne en mode Standard (et non en mode étendu). L'annexe 3 présente le fonctionnement du bus CAN. Pour le CAN standard, préciser la taille des identificateurs, le nombre d'identificateurs possibles utilisables ainsi que le nombre de données maximum qui peuvent être transmises.
Indiquer alors, en nombre de bits, les longueurs minimales et maximales des trames de données (on ne prendra pas en compte les bits rajoutés automatiquement au message, et l'on supposera que l'on transmet au minimum une donnée).
Le robot est composé de 7 nœuds (cerveau, moteur, US, IR, Laser, Balise, Positionnement) qui transmettent périodiquement des données avec le même débit de bus de 250 kbits/s. On supposera qu'une trame transmise quelconque est composée, en moyenne, de 2 octets d'informations utiles.
Question B-3 : pour chaque nœud, une trame est émise toute les 40 ms. Préciser tout d'abord combien de trames par secondes, au maximum, peuvent être transmises sur ce bus. Caractériser ensuite la charge réelle du bus CAN du robot.
Lorsqu'on transmet sur le bus, 5 fois d'affilée, le même bit, on insère un bit supplémentaire de polarité inverse : ce bit supplémentaire s'appelle bit de « stuffing ».
Question B-4 : sur le document réponse DR1, compléter le chronogramme de la transmission d'une donnée du cerveau (identifiant 0x7A0) suivi de 1 octet de valeur 0x80 puis du CRC de valeur 0x2EDC en tenant compte du phénomène du « Bit Stuffing ». On considèrera que la valeur des bits réservés du champ de contrôle est 0 et que le début de la transmission est matérialisé par le front descendant.
Pour le tracé, une graduation correspondra à un bit. Le CRC est un mot sur 15 bits suivi d'un délimiteur,1 bit, au niveau logique « 1 ». Le champ d'acquittement est codé sur 2 bits, le premier au niveau logique « 0 » suivi d'un deuxième au niveau logique « 1 ».
Chaque nœud peut émettre à tout moment. Des collisions peuvent donc avoir lieu. Le gestionnaire du bus CAN intègre un processus d'arbitrage. Il est basé sur le fait que, si deux ou plusieurs nœuds émettent en même temps, en comparant bit après bit, le premier qui aura un bit récessif face à un dominant perdra le bus. La procédure sera appliquée jusqu'à ce qu'il n'en reste plus qu'un.
Question B-5 : sur le document réponse DR2, compléter le chronogramme d'un arbitrage de transmission simultanée d'une donnée cerveau, moteur et capteur US. Au vu du choix des adresses dans le robot, expliquer comment est établie la priorité de la transmission.
Question B-6 : l'annexe 4 illustre le principe de calcul du CRC. Montrer que le CRC de la question B-4 vaut bien 0x2EDC.
Les paramètres suivants ont été choisis : l'horloge CAN fonctionne à 40 MHz, la vitesse est de 250 kbits/s. On partage un bit en 8 parties (« time quantum ») et on lira et on interprètera la valeur du bit au bout de 75% de la durée du bit.
Question B-7 : valider, à l'aide de la documentation du microcontrôleur en annexes 5 et 6, que la valeur du registre C1CFG2, caractéristique du fonctionnement du CAN, est égale à 0x0199.
Partie C: asservissement du robot
Introduction : dans une première version, un asservissement de vitesse sur chacune des roues a été réalisé à l'aide d'un microcontrôleur.
Pour calculer le correcteur que l'on va implanter et qui servira au pilotage des machines à courant continu, on a effectué une identification de l'ensemble hacheur 4 quadrants, moteur à courant continu et capteur (tachymètre). L'étude sera menée comme si le fonctionnement était analogique, bien que la version finale implantée soit numérique.
Identification en boucle ouverte
La figure 8 représente Vs(t) la réponse du système (tension proportionnelle à la vitesse du moteur) à un échelon Ve(t) (entrée de commande du hacheur 4 quadrants) d'amplitude 1 V (Ve(t) passe de 0 V à 1 V à l'instant 0,025s).
Figure 8
Question C-1 : la méthode de Broïda est présentée en annexe 7. Expliquer et détailler sur le document réponse DR2 les mesures et calculs nécessaires pour établir le modèle.
Identifier alors la fonction de transfert du système sous la forme d'un système du 2^e ordre.
On suppose, par la suite, afin d'unifier l'identification, que la fonction de transfert en boucle ouverte est la suivante: F(p) = (Ks)/((1 + τ_1.p)(1 + τ_2.p))
Soit avec des valeurs numériques :
F(p) = (3, 5)/((1 + 0, 2p)(1 + 0, 02p))
L'annexe 8 présente un tableau caractéristique des systèmes du second ordre.
Dans un premier temps, le système est bouclé (figure 9) avec un retour unitaire et un correcteur K (proportionnel) de la manière suivante :
Figure 9
Résolution algébrique
Question C-2 : calculer la fonction de transfert S(p)/E(p) en boucle fermée en fonction de K, Ks, τ_1 et τ_2. Déterminer ses paramètres principaux (amplification statique, coefficient d'amortissement, pulsation propre) en fonction de K, Ks, τ_1 et τ_2.
Question C-3 : on applique en entrée du système bouclé un échelon unitaire. Choisir K pour avoir un dépassement indiciel (c'est-à-dire le dépassement à un échelon unitaire) en boucle fermée de 20%. Exprimer l'erreur statique et donner sa valeur en % de ΔE où ΔE représente l'amplitude de l'échelon de tension. Tracer l'allure de la réponse temporelle s(t), ainsi que le diagramme de Bode du gain pour la boucle fermée sur le document réponse DR3. On précisera les graduations des axes ainsi que toutes les grandeurs particulières importantes.
Résolution graphique par l'utilisation du diagramme de Bode
On souhaite résoudre ce même problème mais avec des méthodes graphiques.
Question C-4 : tracer sur le document réponse DR4 le diagramme asymptotique de Bode (gain et phase) correspondant à la fonction de transfert F(p). En utilisant la notion de marge de phase, montrer une autre manière de calculer la valeur de K (pour avoir un dépassement indiciel en boucle fermée de 20%). Calculer alors la valeur de K.
Rappel : Il existe une relation empirique qui permet de relier la marge de phase en boucle ouverte et le facteur d'amortissement en boucle fermée.
Cette relation stipule que : M_(φbo)(^∘) = m_(bf)^∗ 100 avec M_(φbo)(^∘) marge de phase en boucle ouverte en degré, et m_(bf) coefficient d'amortissement en boucle fermée.
On considèrera qu'elle est valable dans le cas qui nous intéresse.
Résolution graphique par l'utilisation du diagramme de Black
Le système est bouclé en retour unitaire avec un correcteur proportionnel d'amplification K comme lors de la partie précédente.
Question C-5 : après avoir construit sur le document réponse DR5 le diagramme de Black correspondant à la fonction de transfert F(p), déterminer, sur ce diagramme, la valeur de K permettant d'obtenir, en boucle fermée, un coefficient d'amortissement du système bouclé de 0,45.
Déterminer graphiquement, pour la boucle fermée, la pulsation de résonance ω_R du second ordre équivalent. En déduire en boucle fermée, la pulsation propre ω_0 et la pulsation de coupure ω_c. On expliquera le procédé suivi.
Question C-6 : on se propose d'annuler totalement l'erreur statique. Préciser l'élément à intégrer au correcteur afin d'annuler totalement l'erreur statique. Montrer que la fonction C_(PI)(p) qui suit, fonction de transfert d'un correcteur de type proportionnel intégral, satisfait à la condition précédente :
Choisir ses paramètres caractéristiques. On se fixera comme contraintes de compenser la constante de temps dominante du système et d'avoir un coefficient d'amortissement du système bouclé de 0,45.
Représenter sur le document réponse DR5 de la question C-5, la modification apportée par ce correcteur à la fonction de transfert.
Partie D: analyse de la partie variation de vitesse du robot
Introduction : pour pouvoir déplacer le robot en vitesse variable, deux versions de hacheurs ont été conçues. La première a été réalisée sur la base d'un composant de puissance intégré. La seconde évolution est basée, en ce qui concerne la transmission de puissance, sur des transistors discrets.
La première version du hacheur 4 quadrants a été réalisée avec les transistors intégrés d'un L298 associé à une limitation de courant comme le présente le schéma qui suit.
Figure 10.
On souhaite déterminer les signaux de sortie du hacheur en fonction des entrées de commande. On se focalisera sur le bras de pont A lié aux broches d'entrée INPUT1, INPUT2 et ENABLE_A ainsi qu'aux broches de sortie SEN_A, OUT1 et OUT2.
Le schéma interne au L298 est fourni dans la documentation constructeur.
On a extrait et complété la partie concernant un bras de pont de ce schéma.
Figure 11
On désire connaître le fonctionnement interne du circuit. Pour ce faire, on va tracer les chronogrammes des divers signaux internes au L298.
Les signaux qui nous intéressent sont ln1, In2, EnA, SENSE A, OUT1 et OUT2 de la figure 11.
Pour le tracé, on considère que la résistance R_(SA) n'a aucune influence, que le circuit est chargé entre OUT1 et OUT2 par une résistance. Les portes logiques internes sont alimentées en Vcc = 5 V, l'alimentation de puissance Vs = 12 V.
Question D-1 : sur le document réponse DR6, représenter les chronogrammes de fonctionnement pour le cas ou EnA est au niveau logique « 1 ». Compléter les états des transistors sur les intervalles de temps matérialisés lors du fonctionnement. On utilisera la lettre S pour un transistor saturé et B pour bloqué.
Préciser l'état des transistors lorsque EnA est au niveau logique « 0 ». En déduire, en se basant sur les réponses précédentes, la fonction remplie par cette logique de commande.
Le hacheur est maintenant dans sa configuration de fonctionnement sur moteur à courant continu. Le hacheur peut conduire jusqu'à 2A par pont. On partira de cette limite.
Question D-2 : on a choisi une valeur de 0,25 Ω pour Rsense (soit dans notre cas R9 et R10) utilisée pour la limitation de courant.
Justifier la valeur de Rsense en vous appuyant sur la documentation constructeur du L298 en annexe 9. Calculer la puissance maximum que doit dissiper cette résistance.
Étude de la limitation de courant
En fonctionnement normal, le courant dans le hacheur ne dépasse pas 1,5 A. On souhaite que la limitation de courant soit effective à partir de cette valeur.
Sur la figure 10, les fonctions comparateur utilisées pour IC3 sont issues du même amplificateur double Rail-to-Rail de référence MC6292 dont un extrait de la documentation technique est fourni en annexe 10.
Question D-3: calculer la valeur des tensions sur les broches 3 et 5 de l'amplificateur en fonction de α, R11 et R12, avec α, paramètre lié à la position du curseur de R11 ( α = 0 lorsque les bornes 1 et 2 sont reliées, α = 1 lorsque les bornes 3 et 2 sont reliées).
Indiquer la raison pour laquelle le concepteur a choisi un amplificateur Rail-to-Rail.
Comme le comportement est le même sur les 2 bras de pont, on ne travaille que sur la partie A.
Question D-4 : calculer la valeur du rapport des résistances R11 / R12 qui permettra de limiter le courant à son maximum dans le L298, soit 2 A. Proposer un couple cohérent de valeurs pour R11 et R12 afin que le courant qui circule dans ces deux éléments soit égal à 0,1 mA (on choisira les éléments dans la
série E12, c'est-à-dire parmi les valeurs 1 ; 1,2 ; 1,5 ; 1,8 ; 2,2 ; 2,7 ; 3,3 ; 3,9 ; 4,7 ; 5,6 ; 6,8 ; 8,2).
Préciser ensuite le niveau logique du signal ENABLE_A en fonction de l'amplitude de la tension aux bornes de R10. Justifier la cohérence du dispositif.
Calcul de la puissance maximum dissipée dans le L298
Lorsque le hacheur L298 est en fonctionnement dans le robot, soit en fonctionnement sur une machine à courant continu, on a pu constater, dans des cas exceptionnels, un échauffement du L298 qui pourrait conduire à sa destruction. C'est le cas, par exemple, lorsqu'une commande arrive au hacheur, que l'on a demandé au robot d'aller à sa vitesse maximale mais que le robot est arrêté, que les roues ne tournent pas et que la limitation de courant est enclenchée.
On supposera, pour simplifier le calcul, que seuls les transistors participent à l'échauffement et que, lorsque la limitation de courant est enclenchée, le courant qui circule dans le L298 est constant et égal à sa valeur limite maximum de 2 A.
On considère que la température d'une jonction en fonctionnement vaut 135 °C, et que la température ambiante est de 25 °C.
Question D-5 : on se placera dans le cas défini précédemment, et on suppose que les transistors du L298 sont tous identiques. On a mesuré la résistance de la machine à courant continu qui vaut R = 4Ω. Le L298 est en boitier Multiwatt 15. Calculer la puissance dissipée par le L298.
Indiquer la puissance maximale que peut dissiper le L298 sans dissipateur thermique.
Préciser s'il est nécessaire d'adjoindre un dissipateur thermique au L298 et dans l'affirmative, indiquer quelle doit être sa résistance thermique.
Pour pallier ce problème de limite, on a décidé de réaliser un hacheur 4 quadrants à transistors MOSFET discrets comme le présente la figure qui suit :
Figure 12
Toutes les grandeurs sont variables en fonction du temps.
Question D-6 : compléter le document réponse DR7 avec le type des transistors, le nom des broches, les tensions de commande et les états.
Pour pouvoir dimensionner les éléments constitutifs de ce hacheur, on souhaite déterminer les formes d'ondes de toutes les grandeurs importantes en fonction des entrées de commande des transistors.
Question D-7 : pour le hacheur de la figure 12, on suppose que le courant ic(t) est positif et parfaitement constant, de valeur lc positive pour le tracé des chronogrammes. Les signaux de commandes sont représentés sur le document réponse DR8. Compléter les chronogrammes.
Pour déterminer les pertes dans les transistors MOSFET de puissance, nous allons nous concentrer sur l'un d'entre eux. On considère la structure de test dont le schéma est donné ci-dessous (figure 13) :
Figure 13
De manière simplifiée en figure 14, on peut considérer que les formes d'ondes pour déterminer les pertes sont les suivantes :
Figure 14
On y retrouve les différentes informations temporelles de mise en conduction et de blocage du transistor. On définit les paramètres tr (temps de montée du courant ID), tf (temps de descente du courant ID), tcond et IDM (valeur du courant ID maximum).
Le courant dans le transistor peut être modélisé par une allure trapézoïdale et on peut alors définir les différentes énergies dissipées lors d'une commutation, Eon durant tr, Eoff durant tf et Econd sur la partie entre tr et tf.
Question D-8 : à partir de la figure 14, donner les équations des courant ID(t) et des tensions VDS(t) pour les 3 parties suivantes :
-sur le segment tr
-sur le segment tcond
-sur le segment tf.
Pour les calculs qui suivent, on conservera les équations trouvées pour les segments tr et tf. Pour le segment tcond, il sera nécessaire d'améliorer le niveau de modélisation pour la tension VDS(t).
Question D-9 : déterminer l'énergie dissipée au moment de la mise en conduction notée Eon, durant la conduction Econd et durant l'ouverture du transistor Eoff, en fonction de tr, tf, RDSon (paramètre du transistor MOS utilisé), IDM et VDD.
Pour un régime permanent du transistor (signal rectangulaire en commande de fréquence f et de rapport cyclique α = T_H/T ), déterminer la puissance dissipée en fonction des diverses énergies, puis en fonction de toutes les grandeurs précédentes.
Lors d'une campagne de mesures, nous avons déterminé le pire des cas de fonctionnement du hacheur. On a mesuré la puissance maximale dissipée par chaque transistor notée PTmax et la puissance maximale dissipée par chaque diode notée PDmax.
Pour limiter l'échauffement de ces éléments, on associe sur un même dissipateur thermique, à chaque fois, un couple de composants diode et transistor.
Question D-10 : on considère le régime permanent thermique atteint. Déterminer alors le schéma thermique qui permet de modéliser le transfert de chaleur en fonction des diverses puissances, des températures et des résistances thermiques des composants.
Exprimer en fonction des diverses grandeurs, la résistance thermique du dissipateur à choisir.
Une fois cette résistance thermique calculée, indiquer les éléments à prendre en compte pour choisir le dissipateur thermique.
Partie E: analyse du fonctionnement accéléromètre - gyroscope
Introduction : cette partie concerne l'étage capteur et positionnement (boussole, positionnement IR, centrale gyroscopique et inertielle, et positionnement absolu).
Les données fournies par cet étage permettent au robot d'obtenir sa position absolue sur un terrain à l'aide de 3 balises placées à des endroits connus mais aussi de connaitre son orientation par rapport au sol, ainsi que par rapport au terrain.
Les modules étudiés sont équipés :
-pour l'orientation par rapport au sol, d'un accéléromètre - gyroscope MPU6050,
-pour l'orientation sur le terrain, d'une boussole électronique CPMS03,
-pour le positionnement absolu, de 4 modules DW1000, dont 1 sur le robot et 3 utilisés en tant que balises fixes.
Étude de l'orientation par rapport au sol - Accéléromètre
La définition des angles utilisés pour caractériser l'attitude du robot (figure 15) est extraite en partie de la documentation constructeur du capteur :
Figure 15
Les termes « roll », « pitch » et « yaw » correspondent respectivement au roulis, tangage et lacet.
Les angles d'Euler (Φ, θ, ψ) correspondent aux diverses rotations autour des axes X (roulis), Y (tangage) et Z (lacet).
On souhaite obtenir, par l'intermédiaire de ce capteur et de la carte électronique qui le met en œuvre, les trois informations angulaires du robot par rapport au sol.
Une position quelconque du robot peut s'apparenter à une combinaison des trois angles de rotation Φ, θ et ψ.
On appellera la base de référence {X_REF, Y_REF, Z_REF}.
Comme le présente la figure 16 qui suit, le passage d'une référence à l'autre se décompose en trois rotations successives des repères :
{X_REF, Y_REF, Z_REF} ->{X_Ф, Y_Ф, Z_Ф} ->{X_θ, Y_θ, Z_θ}->{X_ψ, Y_ψ, Z_ψ}
Figure 16
L'accéléromètre fournit 3 grandeurs (acc_x, acc_y, acc_z) qui correspondent à la mesure de la gravité terrestre sur les trois axes dans le repère de l'accéléromètre. Lors d'un déplacement quelconque du robot, il peut y avoir des changements d'orientation sur les trois axes.
Question E-1 : déterminer les trois matrices de rotation Rx(Φ), Ry(θ) et Rz(ψ) qui correspondent respectivement aux transformations de 1 à 3.
En déduire Rxyz(Φ, θ, ψ) = Rx(Φ)^∗ Ry(θ)^∗ Rz(ψ), la matrice totale qui permet de lier le repère final {X_−ψ, Y_−ψ, Z_−ψ} au repère de référence {X_R EF, Y_R EF, Z_REF}.
On considèrera, pour simplifier le calcul des angles, que le robot ne se déplace pas. Les grandeurs (acc_x, acc_y, acc_z) mesurées par l'accéléromètre, dans le repère de l'accéléromètre, correspondent alors à la mesure de la gravité terrestre exprimée dans le repère de l'accéléromètre.
(g_x, g_y, g_z) correspondent à la mesure de la gravité terrestre sur les trois axes dans le repère de référence.
Les mesures des accélérations sont algébriques et représentées selon la convention North-East-Down, ce qui signifie que, pour le robot, le repère de référence est orienté pour les axes X_REF, Y_REF, Z_REF respectivement vers le Nord, l'Est et le centre de la terre.
Nous prendrons comme valeurs de la gravité terrestre (g_x, g_y, g_z) = (0, 0, 1) où 1 représente une fois la valeur de la gravité terrestre sur l'axe z dans le repère de référence.
Question E-2 : exprimer la relation liant (acc_x, acc_y, acc_z), Rxyz(Φ, θ, ψ) et (g_x, g_y, g_z), puis développer l'expression précédente afin d'exprimer (acc_x , acc_y, acc_z) en fonction de Φ, θ et ψ. Extraire alors les expressions des différents angles calculables.
Étude de l'orientation par rapport au sol - Gyroscope - Problème
Dans le cas proposé, le gyroscope fournit la vitesse angulaire autour des trois axes en rad/s.
Une campagne de mesures dont on a extrait une partie présente les résultats suivants (figure 17):
Figure 17
Sur l'axe Y du capteur, on a effectué deux rotations de 90 ° avec retour à chaque fois en position initiale. Après implantation des formules de calcul dans un microcontrôleur, la position angulaire calculée grâce au gyroscope correspond à la courbe en bleu, celle calculée par les grandeurs fournies par l'accéléromètre est en rouge.
Question E-3 : conclure et justifier à partir de cette campagne la nécessité de prendre en compte les deux signaux pour obtenir une mesure correcte.
Combinaison des données avec filtrage numérique pour remédier au problème mis en évidence à la question précédente
On va donc combiner les données du gyroscope et les données de l'accéléromètre en utilisant le principe de la figure 18.
Figure 18
Le gyroscope fournit une vitesse angulaire notée (dθ_(gyr)(t))/(dt).
L'accéléromètre fournit un angle θacc(t).
On a choisi de réaliser les deux filtres Passe-Bas et Passe-Haut d'ordre 1 avec une fréquence de coupure de 5 Hz. La fréquence d'échantillonnage choisie est 100 Hz. Ces deux filtres ne réalisent aucune amplification (l'amplification dans la bande passante est égale à 1).
Question E-4 : justifier le synoptique de la figure 18 à partir des résultats obtenus lors de la campagne de mesure.
Calculer ensuite, à partir de l'approximation numérique de la dérivée la plus simple, les équations aux différences des deux filtres utilisés qui seront implantées dans le microcontrôleur, soit Ogyrf en fonction de Ogyr et θaccf en fonction de θacc. En déduire l'expression de θf en prenant en compte α valeur constante (prorata du Passe-Bas et Passe-Haut).
Etude du positionnement absolu - Trilatération
Le robot doit pouvoir se localiser dans l'espace et dans son environnement.
On considère que celui-ci est un terrain de longueur L et de largeur I.
Trois balises, disséminées à des positions particulières connues, élaborées à partir de modules DW1000, permettent à un récepteur, lui aussi basé sur un DW1000, situé sur le robot, de connaître sa position par mesure des 3 distances entre le robot et les balises. Un microcontrôleur récupère ces 3 distances et par une série de calculs, élabore la position du robot.
Sur la figure 19, on matérialise les balises B1, B2 et B3 par leur centre. Le récepteur R sur le robot est aussi en son centre. Les distances balises - robot correspondent respectivement à d1, d2 et d3.
Schéma de principe
Figure 19
La localisation par trilatération utilise la géométrie des cercles.
Le robot est à l'intersection de 3 cercles dont le centre est, à chaque fois, la position de la balise et dont le rayon correspond à la distance entre la balise et le robot.
Question E-5: dans le repère x, y, donner les coordonnées de chacune des balises et du robot (on affectera aux différentes grandeurs, l'indice 1, 2, 3 ou R, selon qu'elles sont associées respectivement aux balises 1, 2 et 3 et au robot). Exprimer ensuite les coordonnées du robot.
Partie F: analyse de la fonction élévatrice de tension
Pour augmenter la vitesse du robot, on propose d'augmenter la tension d'alimentation des moteurs. On utilise un hacheur élévateur ou parallèle, dont on donne le schéma de principe en figure 20.
On nomme le transistor T, l'inductance Lp, la diode D et le condensateur C. La résistance R représente la charge du hacheur élévateur. Le paramètre α représente le rapport cyclique du signal de commande Vc (soit le rapport de la durée au niveau haut du signal de commande divisée par la période de ce même signal).
Figure 20
Question F-1 : en supposant chaque composant idéal et en se plaçant dans le cas d'une conduction continue, en régime permanent, compléter sur le document réponse DR9 les chronogrammes de fonctionnement de l'alimentation. On considérera pour le tracé que la tension V_s est égale à 2^∗ E et que le courant dans l'inductance L_P est compris entre I_(max) et I_(min).
Question F-2 : dans le cas général, calculer Vs en fonction de α et des autres constituants du circuit. En déduire la valeur du rapport cyclique α permettant de doubler la tension aux bornes de la charge R (ce qui correspondra, dans le cadre de l'utilisation du robot, à doubler la tension d'alimentation des moteurs).
On conservera cette valeur de α par la suite.
On veut limiter l'ondulation crête à crête de la tension de sortie V_s du hacheur à ΔVs = 0,1 V pour E = 12 V. La fréquence de découpage est de 30 kHz. On souhaite, de plus, que l'amplitude de l'ondulation du courant dans l'inductance L_P soit limitée à 200 mA, soit 20% du courant moyen débité par le hacheur.
Question F-3 : déterminer la valeur de l'ondulation de courant ΔI = Imax - Imin et en déduire les valeurs des courants Imax et Imin. Déterminer alors la valeur de l'inductance Lp ainsi que la valeur du condensateur de sortie C (choix dans la série E12).
Question F-4 : déterminer l'énergie maximale E_(ML) stockée par l'inductance L_P et indiquer où cette énergie est stockée, puis calculer le volume minimal Vmin du circuit magnétique nécessaire pour stocker cette énergie E_(ML) en limitant l'induction à 200 mT . Déterminer, ensuite, si l'on souhaite limiter la densité de courant δI à 2, 5 A/mm^2, le diamètre Df du fil de cuivre que l'on bobinera.
On rappelle que l'énergie maximale E_(ML) que peut stocker un circuit magnétique de volume effectif V, de perméabilité effective μ_0 et traversé par une induction B est donnée par : E_(ML) = (B^2)/(2μ_0)V avec μ_0 = 4∗π∗10^(− 7)Hm^(− 1)
Question F-5 : à l'aide des documentations des condensateurs en annexe 11, expliquer le choix d'un condensateur aluminium électrolytique ou polymère solide plutôt que celui d'un tantale. Justifier la raison pour laquelle on utilisera pour réaliser l'inductance Lp, un circuit magnétique composé d'une ferrite ou d'un mélange de fer-silicium.
Pour réaliser l'inductance L_P, on ne bobine pas un conducteur simple, mais une multitude de conducteurs très fins, isolés. Indiquer le phénomène électromagnétique que ce type de bobinage permet d'atténuer et nommer le fil ainsi constitué.
Partie G: analyse de la fonction odométrie
L'odométrie permet, par la mesure individuelle des déplacements des roues, de connaître la position du robot en mouvement.
On part d'une position initiale connue et, par intégration des déplacements mesurés, on peut déterminer à tous les instants la position du robot.
On désire déterminer un modèle du robot au centre des roues qui nous permettra de piloter celui-ci.
Détermination de la vitesse d'une roue du robot
Rappel :
Figure 21
En figure 21, sur un solide indéformable (S), le repère R : (P, X⃗_d, Y⃗_d, Z⃗_d) est lié à (S). Si on connaît la vitesse de rotation du solide (S) par rapport au repère référence R_0 : (O, X⃗_(ref), Y⃗_(ref), Z⃗_(ref)), notée Ω⃗_(S/R_0) = Ω⃗_(R/R_0), on peut montrer que la vitesse d'un point M du solide est liée à la vitesse du point P par la relation suivante :
V_M^(→−) = V_P^(→−) + Ω⃗_(S/R_0) ∧ PM^(→−)
Noter que dans cette partie, on considère que les vitesses linéaire et de rotation que l'on définira sont déterminées par rapport au référentiel R_0.
On considère dans ce qui suit le modèle (roue, sol) suivant (figure 22) :
Figure 22
On supposera pour la suite de la modélisation que le contact entre la roue et le sol (au point O') est ponctuel, qu'il n'y a pas de glissement, que les roues ne se déforment pas et on négligera l'épaisseur des roues. C est le centre de la roue, φ⃗ est la position angulaire et Ω⃗ est la vitesse angulaire de la roue. On considère R_0(O, X⃗_1, Y⃗_1, Z⃗_1; t) le référentiel lié au sol (S_0) et R_1(C, X_1^(→−), Y_1^(→−), Z_1^(→−); t) le référentiel lié à la roue (S_1).
Question G-1 : étant donnée la vitesse du centre de la roue par rapport à R_0 et compte tenu des hypothèses, préciser ce que vaut la vitesse du point O' appartenant à la roue V⃗_(0^′ R_0). En déduire la relation entre la vitesse linéaire du point C et la vitesse angulaire de la roue.
Détermination d'un modèle du robot au point O_R placé au centre des roues dans le repère (x,y)
Les dimensions importantes du robot sont fournies sur la figure 23.
Figure 23
On considère maintenant connus :
L : distance entre une roue et le centre O_R du robot
r : rayon de chacune des roues
Une position quelconque du robot est représentée sur la figure 24 .
Figure 24
x_R, y_R, θ_R : posture du robot ou x_R et y_R correspondent à la position du robot (position du centre du robot O_R ) et θ_R à l'orientation du robot.
Les grandeurs utilisées pour les calculs sont présentées sur la figure 25.
On appellera V_(Rd), V_(Rg) et V_R, respectivement, la vitesse linéaire de la roue droite, celle de la roue gauche et celle du centre O_R du robot.
On appellera φ_(Rd), et φ_(Rg), respectivement, la position angulaire dans le plan de la roue respectivement de la roue droite et de la roue gauche du robot. ρ correspond à la distance entre le centre instantané de rotation et le centre O_R du robot et ω_R est la vitesse de rotation du robot autour du centre instantané de rotation.
Figure 25
Question G-2 : en considérant un mouvement quelconque, calculer les vitesses linéaires des roues droite et gauche VRd, VRg en fonction de φd, φg et r.
Exprimer ensuite les vitesses linéaires des roues droite et gauche VRd, VRg en fonction de ρ, L et ω_R. Extraire des équations précédentes les valeurs de ρ et de ω_R.
Justifier la validité des résultats dans les deux cas limites : le robot va en ligne droite et le robot tourne sur place.
Question G-3 : on considère que la vitesse de rotation du robot autour de son centre de gravité est la même que celle autour de son centre instantané de rotation.
Exprimer la relation liant θ_R et ω_R.
Donner alors le modèle du robot (valeurs de la vitesse linéaire du centre de gravité et de la vitesse de rotation du robot autour du centre de gravité). En déduire les relations qui lient les dérivées de x_R, y_R, θ_R à v_R et ω_R.
Question G-4 : proposer un algorithme qui permettrait d'implanter cette odométrie dans le robot.
Dimensionnement des éléments utiles au fonctionnement du capteur.
Pour pouvoir renseigner le robot avec son odométrie, il faut mesurer la vitesse des roues.
Au niveau mécanique, pour une roue, le système de mesure est constitué d'un disque et de deux capteurs optiques à fourche décalés par rapport au disque. Ces deux capteurs vont nous permettre d'obtenir 2 signaux que l'on nommera A et B. Le signal A est un signal carré dont la fréquence sera proportionnelle à la vitesse. Le signal B, quant à lui, à la même forme que le signal A mais est décalé de + ou - un quart de période suivant le sens de rotation de la roue.
On s'intéresse à la partie électronique et plus particulièrement à la façon d'élaborer les signaux carrés et à leur mise en forme.
La structure utilisée est celle présentée sur le schéma suivant (figure 26) et correspond à un seul des capteurs :
Figure 26
Les capteurs utilisés sont des KTIR0611S dont la documentation est fournie en annexe 12. La documentation du LM393 est fournie en annexe 13.
L'alimentation Vcc de la structure est de 5 V. La LED du capteur à fourche est parcourue par un courant de 20 mA. Le transistor de sortie du capteur doit être juste saturé lorsque le disque n'obture pas la lumière transmise.
Question G-5 : calculer les valeurs des résistances R1 et R2. Calculer l'amplitude de la tension Vlm293, sachant que les deux résistances R3 et R4 sont identiques. Préciser alors la fonction remplie par le composant IC1A. Justifier la valeur choisie de 10 K Ω pour la résistance R5.
Remplir le tableau du document réponse DR9 concernant Vco et Vout pour les deux positions principales du disque.
Utilisation de l'odométrie pour asservir le robot
Connaissant les vitesses des roues droite et gauche par l'intermédiaire du système de mesure, on pourrait asservir directement les deux vitesses, comme le présente le schéma de principe suivant (figure 27) :
Figure 27
Cette méthode d'asservissement fonctionne, mais est perfectible.
Comme on a calculé précédemment en fonction du modèle du robot, la valeur de la vitesse linéaire du robot ainsi que sa vitesse de rotation autour de son centre de gravité, on préfère asservir ces deux grandeurs.
Question G-6 : en complétant le document réponse DR9, modéliser le double asservissement de la valeur de la vitesse linéaire et de la vitesse de rotation qui sera implanté dans le robot.
Partie H: analyse d'un code programmé
Introduction : Elaboration du code par génération automatique avec Matlab Simulink.
Toutes les cartes du robot contiennent des microcontrôleurs. Le langage de programmation utilisé pour la programmation de toutes les cartes est le langage C. Certaines de ces cartes ont été programmées directement en langage C. Pour d'autres, on a utilisé un système de génération de code automatique.
Des extraits de la documentation du microcontrôleur dsPIC 30F4011 sont fournis en annexe 14.
La méthode consiste à réaliser le schéma bloc, dans Matlab Simulink (figure 28), d'une boucle du programme principal comme le présente le schéma suivant :
Figure 28
Une autre fenêtre de paramètres (figure 29) est importante :
Figure 29
Celle-ci précise la période de répétition du programme soit ici une exécution toute les 0,04 s (notée « fundamental sample time »).
Dans la figure 28, le bloc dsPIC MASTER indique le type de microcontrôleur utilisé, ici un dsPIC 30F4011 et par l'intermédiaire de la valeur en MIPS, la manière dont est gérée sa fréquence d'horloge (ici le nombre d'instructions exécutées par seconde est de 16000000 soit 16MIPS).
Si on regarde en détails (Figures 30 et 30bis) ce que contient ce bloc, on retrouve la configuration de l'oscillateur du dsPIC.
Figure 30
Figure 30bis
Dans le cas présent, le dsPIC fonctionne sur la base d'un quartz 4MHz (mode XT).
Sur les figures 30 et 30bis, on peut noter que le cadencement de la boucle principale du programme est effectué par le Timer1 et, de plus, que l'on a mis en route la boucle à verrouillage de phase (XT_PLL16) en mode x 16.
Dans la fenêtre figure 28, les 3 blocs (LED clignotante, Data Type Conversion7 et Digital Output Write1) représentent un pas de calcul. Dans ce cas, comme exemple, on désire faire clignoter une led connectée par l'intermédiaire d'une résistance sur la broche 2 du port D qui en contient 4 référencées de RD0 à RD3.
Les configurations choisies pour le générateur sont présentées en figure 31 :
Figure 31
Le paramètre Sample time égal à -1 signifie que le générateur est cadencé à la vitesse de la boucle principale soit 0,04 s.
La génération automatique de code de Matlab Simulink fournit alors, comme code correspondant à l'application, le résultat proposé dans le document réponse DR10.
Question H-1: compléter les cases vides du document réponse DR10 en proposant les commentaires du code généré.
Question H-2 : justifier, par l'étude du fonctionnement du Timer1, la période de répétition de la boucle de 0,04 s.
Calculer la valeur de la fréquence du signal présent sur RD2. Justifier ce résultat sur la base du code fourni et de la vitesse de la boucle principale de 0, 04s.
Crystal Specification
Model: HC49/4H
ISSUE 15; September 2012 - RoHS 2011/65/EU
Description
-Industry standard leaded package
Resistance welded, hermetically sealed in an inert atmosphere, glass to metal seals on leads
Variants available include but are not limited to -3L = a centre mounted third leg grounds the can Low profile versions available please contact our sales offices for details
Please see our HC49/4HSMX for a SMD alternative
Frequency Range
- Frequency
3.2 to 100.0 MHz
- Frequency Stability
±15.00ppm
- Frequency Tolerance
±10ppm to ±100ppm
General Specification
- Load Capacitance (CL)
10.0pF to 75.0pF or Series
- Drive Level
500μ W max
- Ageing
±5ppm typical per year at 25°C
- Shunt Capacitance (C0)
7pF max
Operating Temperature Ranges
-0 to 50°C
--10 to 60°C
--20 to 70°C
--30 to 80°C
-40 to 85°C
--55 to 105°C
Frequency Parameters
-Ageing: ±1ppm available on request
Environmental Parameters
-Storage Temperature Range: -55 to 125°C
-Shock: 981 m/s^2, 6 ms, 3 times in each of 3 mutually perpendicular planes
-Vibration: 10Hz-60Hz, 0.75mm amplitude, 60Hz-500Hz, 98.1m/s2, 30 mins in 3 mutually perpendicular planes
Ordering Information
-Frequency*
Model*
Frequency Tolerance (@25°C)*
Frequency Stability (over operating temperature range)*
Operating Temperature Range*
Load Capacitance*
Overtone*
(*minimum required)
Reserved: Reserved bits must be programmed as ' 1 '
bit 7
IESO: Internal External Start-up Option bit
I = Start device with internal FRC, and then automatically switch to the user-selected oscillator source when ready 0 = Start device with user-selected oscillator source
bit 15-8 Reserved: Reserved bits must be programmed as '1'
bit 7-6 FCKSM<1:0>: Clock Switching Mode bits
1x = Clock switching is disabled, Fail-Safe Clock Monitor is disabled
01 = Clock switching is enabled, Fail-Safe Clock Monitor is disabled
00 = Clock switching is enabled, Fail-Safe Clock Monitor is enabled
bit 5 IOL1WAY: Peripheral Pin Select Configuration bit ^((1))
1 = Allow only one reconfiguration 0 = Allow multiple reconfigurations
bit 4-3 Reserved: Reserved bits must be programmed as '1'
bit 2 OSCIOFNC: OSC2 Pin Function bit (except in XT and HS modes) 1 = OSC2 is clock output and instruction cycle (FcY) clock is output on OSC2 pin 0 = OSC2 is a general purpose digital I/O pin
bit 1-0 POSCMD<1:0>; Primary Oscillator Mode Selection bits
11 = Primary oscillator is disabled 10 = HS (High-Speed) Crystal oscillator mode
01 = XT (Crystal) oscillator mode
00 = EC (External Clock) mode
Note 1: The IOL1WAY bit is not available on all disPIC33F devices. Refer to the specific device data sheet for more information.
Annexe 2
dsPIC33F Family Reference Manual
48.4 SPECIAL FUNCTION REGISTERS (SFRs)
These Special Function Registers provide run-time control and status of the oscillator system:
-OSCCON: Oscillator Control Register
The Oscillator Control (OSCCON) register controls clock switching and provides status information that allows the current clock source, PLL lock, and clock fail conditions to be monitored.
-CLKDIV: Clock Divisor Register
The Clock Divisor (CLKDIV) register controls Doze mode and selects the PLL prescaler, PLL postscaler and FRC postscaler.
-PLLFBD: PLL Feedback Divisor Register
The PLL Feedback Divisor (PLLFBD) register selects the PLL feedback divisor.
-OSCTUN: Oscillator Tuning Register
The FRC Oscillator Tuning (OSCTUN) register is used to tune the frequency of the internal FRC oscillator from -12% to +11.625% (30 kHz steps) of the nominal frequency value. The nominal or tuned frequency of the FRC oscillator is expected to remain within ± 2% of the tuned value over the temperature and voltage variations of a particular device.
-OSCTUN2: Oscillator Tuning Register 2
The OSCTUN and the OSCTUN2 registers enable the PWM to operate in Frequency Sequencing mode. These registers allow the user application to select a sequence of eight different FRC TUN values to vary the system frequency with each rollover of the primary PWM time base.
-LFSR: Linear Feedback Shift Register
The Linear Feedback Shift Register is used to implement the Pseudo Random Clock Dither (PRCD) logic.
-ACLKCON: Auxiliary Clock Control Register
The Auxiliary Clock Control (ACLKCON) register controls the auxiliary PLL mode and the auxiliary PLL clock divider.
-REFOCON: Reference Osclllator Control Register
The reference clock output provides a clock signal to any remappable pin (RPx). The reference clock can be either the external oscillator or the system clock.
Note: The Oscillator Special Function Registers (OSCCON, CLKDIV, PLLFBD, OSCTUN, and ACLKCON) are reset only on Power-on Reset.
Section 48. Oscillator (Part V)
Register 48-3: OSCCON: Oscillator Control Register
U-0
R-0
R-0
R-0
U-0
R/W-y
R/W-y
R/W-y
-
COSC<2:0>
-
NOSC<2:0>
bit 15
bit 8
R/W-O
U-0
R-0
R/W-0
R/C-0
R/W-0
R/W-0
R/W-0
CLKLOCK
-
LOCK
PRCDEN
CF
TSEQEN
LPOSCEN
OSWEN
bit 7
bit 0
Legend:
y = Value set from Configuration bits on POR
C = Clearable bit
R = Readable bit
W = Writable bit
U = Unimplemented bit, read as '0'
-n = Value at POR
' 1 ' = Bit is set
'0' = Bit is cleared
x = Bit is unknown
bit 15
Unimplemented: Read as '0'
bit 14-12
COSC<2:0>: Current Oscillator Selection bits (read-only)
111 = Fast RC oscillator (FRC) with Divide-by-N
110 = Fast RC oscillator (FRC) with Divide-by-16
101 = Low-Power RC oscillator (LPRC)
100 = Secondary oscillator (Sosc)
011 = Primary oscillator (XT, HS, EC) with PLL
010 = Primary oscillator (XT, HS, EC)
001 = Fast RC oscillator (FRC) with PLL
000 = Fast RC oscillator (FRC)
bit 11
Unimplemented: Read as '0'
bit 10-8
NOSC<2:0>: New Oscillator Selection bits
111 = Fast RC oscillator (FRC) with Divide-by-N
110 = Fast RC oscillator (FRC) with Divide-by-16
101 = Low-Power RC oscillator (LPRC)
100 = Secondary oscillator (Sosc)
011 = Primary oscillator (XT, HS, EC) with PLL
010 = Primary oscillator (XT, HS, EC)
001 = Fast RC oscillator (FRC) with PLL
000 = Fast RC oscillator (FRC)
bit 7
CLKLOCK: Clock Lock Enable bit
If clock switching is enabled and FSCM is disabled, (FOSC<FCKSM>=0b01):
1 = Clock switching is disabled, system clock source is locked
0 = Clock switching is enabled, system clock source can be modified by clock switching
bit 6
Unimplemented: Read as '0'
bit 5
LOCK: PLL Lock Status bit (read-only)
1 = Indicates that PLL is in lock, or PLL start-up timer is satisfied
0 = Indicates that PLL is out of lock, start-up timer is in progress or PLL is disabled
bit 4
PRCDEN: Pseudo Random Clock Dither Enable bit
1 = Pseudo random clock dither is enabled
0 = Pseudo random clock dither is disabled
bit 3
CF: Clock-Fail Detect bit (read/clear by application)
1 = FSCM has detected clock failure
0 = FSCM has not detected clock failure
bit 2
TSEQEN: FRC Tune Sequencer Enable bit
1 = The TUN < 3 : 0 >, TSEQ1<3:0>, ... , TSEQ7<3:0> bits in the OSCTUN and the OSCTUN2 registers sequentially tune the FRC oscillator. Each field being sequentially selected via the ROLL<2:0> signals from the PWM module.
0 = The TUN<3:0> bits in the OSCTUN register tune the FRC oscillator
dsPIC33F Family Reference Manual
Register 48-3: OSCCON: Osclllator Control Register (Continued)
bit 1
LPOSCEN: Secondary (LP) Oscillator Enable bit
1= Enable secondary oscillator
0 = Disable secondary oscillator
bit 0
OSWEN: Oscillator Switch Enable bit
1= Request oscillator switch to selection specified by NOSC<2:0> bits
0= Oscillator switch is complete
Note: Writes to this register requires an unlock sequence. For details and examples refer to 48.12 "Clock Switching".
Section 48. Oscillator (Part V)
Register 48-4: CLKDIV: Clock Divisor Register
R/W-0
R/W-0
R/W-1
R/W-1
R/W-0
R/W-0
R/W-0
R/W-0
ROI
DOZE<2:0>
DOZEN ^((1))
FRCDIV<2:0>
bit 15
bit 8
R/W-0
R/W-1
U-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
PLLPOST<1:0>
-
PLLPRE<4:0>
bit 7
bit 0
Legend:
R = Readable bit
W = Writable bit
U = Unimplemented bit, read as '0'
-n = Value at POR
'1' = Bit is set
' 0 ' = Bit is cleared
x = Bit is unknown
bit 15
ROI: Recover on Interrupt bit 1 = Interrupts will clear the DOZEN bit and the processor clock/peripheral clock ratio is set to 1:1 0 = Interrupts have no effect on the DOZEN bit
bit 14-12
DOZE<2:0>: Processor Clock Reduction Select bits 111 = Fcy divided by 128 110 = Fcy divided by 64 101 = Fcy divided by 32 100 = Fcy divided by 18 011 = Fcy divided by 8 (default) 010 = Fcy divided by 4 001 = Fcy divided by 2 000 = Fcy divided by 1
bit 11
DOZEN: DOZE Mode Enable bit ^((1)) 1= DOZE<2:0> field specifies the ratio between the peripheral clocks and the processor clocks 0 = Processor clock/peripheral clock ratio forced to 1:1
bit 10-8
FRCDIV<2:0>: Internal Fast RC Oscillator Postscaler bits 111 = FRC divided by 256 110 = FRC divided by 64 101 = FRC divided by 32 100 = FRC divided by 16 011 = FRC divided by 8 010 = FRC divided by 4 001 = FRC divided by 2 000 = FRC divided by 1 (default)
bit 7-6
PLLPOST<1:0>: PLL VCO Output Divider Select bits (also denoted as 'N2', PLL postscaler) 11 = Output divided by 8 10 = Reserved 01 = Output divided by 4 (default) 00 = Output divided by 2
bit 5
Unimplemented: Read as '0'
bit 4-0
PLLPRE<4:0>: PLL Phase Detector Input Divider Select bits (also denoted as 'N1', PLL prescaler) 11111 = Input divided by 33 . ' 00000 = Input divided by 2 (default) 00001 = Input divided by 3
Note 1: This bit is cleared when the ROI bit is set and an interrupt occurs.
2:Refer to Section 9. "Watchdog Timer and Power-Saving modes" (DS70196) in the "dsPIC33F Family Reference Manual' for more information on Doze mode.
This section of the manual contains the following major topics:
21.1 Introduction ..... 21-2
21.2 CAN Message Formats ..... 21-4
21.3 ECAN Registers ..... 21-9
21.4 ECAN Message Buffers ..... 21-30
21.5 ECAN Operating Modes ..... 21-34
21.6 Transmitting ECAN Messages ..... 21-35
21.7 Receiving ECAN Messages ..... 21-41
21.8 DMA Controller Configuration ..... 21-53
21.9 Bit Timing ..... 21-56
21.10 ECAN Error Management ..... 21-80
21.11 ECAN Interrupts ..... 21-63
21.12 ECAN Low-Power Modes ..... 21-66
21.13 ECAN Time Stamping Using Input Capture ..... 21-86
21.14 Register Maps ..... 21-86
21.15 Related Application Notes ..... 21-73
21.16 Revision History ..... 21-74
dsPIC33F/PIC24H Family Reference Manual
Note: This family reference manual section is meant to serve as a complement to device data sheets. Depending on the device variant, this manual section may not apply to all dsPIC33F/PIC24H devices.
Please consult the note at the beginning of the "Direct Memory Access (DMA)" chapter in the current device data sheet to check whether this document supports the device you are using.
Device data sheets and family reference manual sections are available for download from the Microchip Worldwide Web site at: http://www.microchip.com
21.1 INTRODUCTION
The dsPIC33F/PIC24H Enhanced Controiler Area Network (ECAN™) module implements the CAN Protocol 2.0B, used primarily in industrial and automotive applications. This asynchronous serial data communication protocol provides reliable communications in electrically noisy environments. The dsPIC33F device family integrates up to two ECAN modules. Figure 21-1 illustrates a typical CAN bus topology.
Figure 21-1: Typical CAN Bus Network
The ECAN module supports the following key features.
Standards Compliance:
-Full CAN 2.0B compliance
-Programmable bit rate up to 1 Mbps
Message Reception:
-32 message buffers - all of them can be used for reception
-16 acceptance filters for message filtering
-Three acceptance filter mask registers for message filtering
-Automatic response to Remote Transmit Request
-Up to 32-message deep First In First Out (FIFO) buffer
-DeviceNet™ addressing support
-DMA interface for message reception
-Eight message buffers configurable for message transmission
-User-defined priority levels for message buffers used for transmission
-DMA interface for message transmission
Others:
-Loopback, Listen All Messages, and Listen Only modes for self-test, system diagnostics, and bus monitoring
-Low-power operating modes
Figure 21-2 illustrates the general structure of the ECAN module and its interaction with the DMA Controller and DMA RAM.
Figure 21-2: ECAN™ Interaction with DMA
21.11 ECAN Module
The ECAN module consists of a protocol engine, message acceptance filters, and separate transmit and receive DMA interfaces. The protocol engine transmits and receives messages to and from the CAN bus (as per CAN bus 2.0B protocol). The user-configurable acceptance filters are used by the module to examine the received message to determine if it should be stored in the DMA message buffer or discarded.
For received messages, the receive DMA interface generates a receive data interrupt to initiate a DMA cycle. The receive DMA channel reads data from the CiRXD register and writes it into the message buffer.
For transmit messages, the transmit DMA interface generates a transmit data interrupt to start a DMA cycle. The transmit DMA channel reads from the message buffer and writes to the CiTXD register for message transmission.
21.1.2 Message Buffers
The ECAN module supports up to 32 message buffers for storing data transmitted or received on the CAN bus. These buffers are located in DMA RAM. Message buffers 0-7 can be configured for either transmit or receive operation. Message buffers 8-31 are receive-only buffers and cannot be used for Message Transmission.
21.1.3 DMA Controller
The DMA controller acts as an interface between the message buffers and ECAN to transfer data back and forth without CPU intervention. The DMA controller supports up to eight channels for transferring data between DMA RAM and the dsPIC33F peripherals. Two separate DMA channels are needed to support CAN message transmission and CAN message reception.
Each DMA channel has a DMA Request register (DMAxREQ), which is used by the user application to assign an interrupt event to trigger a DMA-based message transfer:
dsPIC33F/PIC24H Family Reference Manual
21.2 CAN MESSAGE FORMATS
The CAN bus protocol uses asynchronous communication. Information is passed from transmitters to receivers in data frames, which are composed of byte fields that define the contents of the data frame, as shown in Figure 21-3.
Each frame begins with a Start-of-Frame (SOF) bit and terminates with an End-of-Frame (EOF) bit field. The Start-of-Frame is followed by Arbitration and Control fields, which identify the message type, format, length and priority. This information allows each node on the CAN bus to respond appropriately to the message. The Data field conveys the message content and is variable length, ranging from 0 to 8 bytes. Error protection is provided by the Cyclic Redundancy Check (CRC) and Acknowledgement (ACK) fields.
Figure 21-3: CAN Bus Message Frame
П
ПО 0
ARBITRATION
CONTROL
DATA
CRC
ACK
EDF
The CAN bus protocol supports five frame types:
-Data Frame - carries data from transmitter to the receivers
-Remote Frame - transmitted by a node on the bus, to request transmission of a data frame with the same identifier from another node
-Error Frame - transmitted by any node when it detects an error
-Overioad Frame - provides an extra delay between successive Data or remote frames
-Interframe Space - provides a separation between successive frames
The CAN 2.0B specification defines two additional data formats:
-Standard Data Frame - intended for standard messages that use 11 identifier bits
-Extended Data Frame - intended for extended messages that use 29 identifier bits
There are three versions of CAN Bus specifications:
-2.0B Active - handles both 11-bit and 29-bit identifier
The dsPIC33F ECAN module is compliant with the CAN 2.0B active specification, while providing enhanced message filtering capabilities.
Note: Refer to the Bosch CAN bus specification for detailed information on the CAN protocol.
The standard data frame message begins with a Start-of-Frame bit followed by a 12-bit Arbitration field, as shown in Figure 21-4. The Arbitration field contains an 11-bit identifier and the Remote Transmit Request (RTR) bit. The identifier defines the type of information contained in the message and is used by each receiving node to determine if the message is of interest to it. The RTR bit distinguishes a data frame from a remote frame. For a standard data frame, the RTR bit is clear.
Following the Arbitration field is a 6-bit Control field, which provides more information about the contents of the message. The first bit in the Control field is an Identifier Extension (IDE) bit, which distinguishes the message as elther a Standard or Extended data frame. A standard data frame is indicated by a dominant state (logic level ' 0 ') during transmission of the IDE bit. The second bit in the Control field is a Reserved (RB0) bit, which is in the dominant state (logic level '0'). The last 4 bits in the Control field represent the Data Length Code (DLC), which specifies the number of data bytes present in the message.
The Data field follows the Control field. This field carries the message data - the actual payload of the data frame. This field is variable length, ranging from 0 to 8 bytes. The number of bytes is user-selectable.
The Data field is followed by the Cyclic Redundancy Check field, which is a 15-bit CRC sequence with one delimiter bit.
The Acknowledgement (ACK) field is sent as a recessive bit (logic level '1') and is overwritten as a dominant bit by any receiver that has received the data correctly. The message is acknowledged by the receiver irrespective of the result of the acceptance filter comparison.
The last field is the End-of-Frame (EOF) field, which consists of 7 recessive bits that indicate the end of the message.
Figure 21-4: Format of the Standard Data Frame
IDE is Dominent (Logical '0')
RTR its Dominant (Logical '0')
RBO ia Dominant (Logical '0')
dsPIC33F/PIC24H Family Reference Manual
21.2.2 Extended Data Frame
The extended data frame begins with an SOF bit followed by a 31-bit Arbitration field, as shown in Figure 21-5. The Arbitration field for the extended data frame contains 29 identifier bits in two flelds separated by a Substitute Remote Request (SRR) bit and an IDE bit. SRR = 1 for extended data frames. The IDE bit indicates the data frame type. For the extended data frame, IDE = 1.
The extended data frame Control field consists of 7 bits. The first bit is the RTR. For the extended data frame, RTR = 0. The next two bits, RB1 and RB0, are reserved bits that are in the dominant state (logic level ' 0 '). The last 4 bits in the Control field are the Data Length Code, which specifies the number of data bytes present in the message.
The remaining fields in an extended data frame are identical to a standard data frame.
Figure 21-5: Format of the Extended Data Frame
A node expecting to receive data from another node can initiate transmission of the respective data by the source node by sending a remote frame. A remote frame can be in standard format (see Figure 21-6) or extended format (see Figure 21-7).
A Remote frame is similar to a data frame, with the following exceptions:
-The RTR bit is recessive (RTR = 1)
-There is no Data field
*The value of the DLC bits is 0 ≤ DLC ≤ 8
Figure 21-6: Format of the Standard Remote Frame
Figure 21-7: Format of the Extended Remote Frame
Annexe 4
Exemple de calcul d'un CRC
L'adresse CAN est 0x002, le nombre de données transmises est 1 et cette donnée vaut 0x41
On fabrique le mot binaire qui correspond à la donnée dont on souhaite calculer le CRC :
(Identifiant + RTR) + (champ de contrôle) + (données)
Soit dans notre cas
10 (identifiant) + 0 (RTR) + 000001 (IDE, RB0, nombre de données) + 01000001
Ce qui donne 10000000101000001
Le CRC du CAN est sur 15 bits, on rajoute 15 zéros après le mot précédent :
Soit le mot1 = 10000000101000001000000000000000
Le polynôme utilisé nous fournit le mot2
Soit mot2 = 1100010110011001
Il suffit d'appliquer ensuite la procédure qui suit jusqu'à ce que le décalage soit égal à 0
10000000101000001000000000000000 1100010110011001
On décale le mot 2 jusqu'à atteindre le bit de poids le plus fort qui soit au niveau logique 1
Ici, dec = 16
10000000101000001000000000000000
1100010110011001
On effectue une opération ou exclusif entre les deux mots 1 et 2.
Le résultat est le suivant :
01000101001110011000000000000000
Et on réitère la procédure :
dec = 15
01000101001110011000000000000000
1100010110011001
Résultat:
00100111111101010000000000000000
Et on réitère la procédure jusqu'à ce que le décalage soit égal à 0 . Le résultat final obtenu est le CRC.
WAKFIL: Select CAN Bus Line Filter for Wake-up bit
1 = Use CAN bus line filter for wake-up
0 = CAN bus line filter is not used for wake-up
bit 13-11
Unimplemented: Read as '0'
bit 10-8
SEG2PH<2:0>: Phase Segment 2 bits
111 = Length is 8 × TQ
-
*
-
000 = Length is 1 × TQ
bit 7
SEG2PHTS: Phase Segment 2 Time Select bit
1 = Freely programmable
0 = Maximum of SEG1PH bits or Information Processing Time (IPT), whichever is greater
bit 6
SAM: Sample CAN Bus Line bit
1 = Bus line is sampled three times at the sample point
0 = Bus line is sampled once at the sample point
bit 5-3
SEG1PH<2:0>: Phase Segment 1 bits
111 = Length is 8 × TQ
*
-
-
000 = Length is 1 × TQ
bit 2-0
PRSEG<2:0>: Propagation Time Segment bits
111 = Length is 8 × TQ
*
-
000 = Length is 1 × TQ
Understanding Microchip's CAN Module Bit Timing
Author: Pat Richards
Microchip Technology Inc.
INTRODUCTION
The Controller Area Network (CAN) protocol is an asynchronous serial bus with Non-Return to Zero (NRZ) bit coding designed for fast, robust communications in harsh environments, such as automotive and industrial applications. The CAN protocol allows the user to program the bit rate, the sample point of the bit, and the number of times the bit is sampled. With these features, the network can be optimized for a given application.
There are relationships between bit timing parameters, the physical bus propagation delays, and the oscillator tolerances throughout the system. This application note investigates these relationships as they pertain to Microchip's CAN module and assists in optimizing the bit timing for given physical system attributes.
THE CAN BIT TIME
The CAN bit time is made up of non-overlapping segments. Each of these segments are made up of integer units called Time Quanta (TQ) and are explained later In this application note. The Nominal Bit Rate (NBR) is defined in the CAN specification as the number of bits per second transmitted by an ideal transmitter with no resynchronization and can be described with the equation:
NBR = f_(btt) = 1/(I_(btr))
Nominal Bit Time
The Norminal Bit Time (NBT), or t_(bit), is made up of nonoverlapping segments (Figure 1), therefore, the NBT is the summation of the following segments:
Associated with the NBT are the Sample Point, Synchronization Jump Width (SJW), and Information Processing Time (IPT), which are explained later.
SYNCHRONIZATION SEGMENT
The Synchronization Segment (SyncSeg) is the first segment in the NBT and is used to synchronize the nodes on the bus. Bit edges are expected to occur within the SyncSeg. This segment is fixed at 1 TQ.
PROPAGATION SEGMENT
The Propagation Segment (PropSeg) exists to compensate for physical delays between nodes. The propagation delay is defined as twice the sum of the signal's propagation time on the bus line, including the delays associated with the bus driver. The PropSeg is programmable from 1-8TQ.
PHASE SEGMENT 1 AND PHASE SEGMENT 2
The two phase segments, PS 1 and PS 2 are used to compensate for edge phase errors on the bus. PS1 can be lengthened or PS2 can be shortened by resyncronization. PS1 is programmable from 1-8TQ and PS2 is programmable from 2-8TQ.
FIGURE 1: CAN BIT TIME SEGMENTS
SAMPLE POINT
The sample point is the point in the bit time in which the logic level is read and interpreted. The sample point is located at the end of phase segment 1. The exception to this rule is, if the sample mode is configured to sample three times per bit. In this case, the bit is still sampled at the end of PS1, however, two additional samples are taken at one-half TQ intervals prior to the end of PS1 and the value of the bit is determined by a majority decision.
INFORMATION PROCESSING TIME
The Information Processing Time (IPT) is the time required for the logic to determine the bit level of a sampled bit. The IPT begins at the sample point, is measured in TQ and is fixed at 2TQ for the Microchip CAN module. Since phase segment 2 also begins at the sample point and is the last segment in the bit time, it is required that PS2 minimum is not less than the IPT.
Therefore:
PS2_(min) = IPT = 2TQ
SYNCHRONIZATION JUMP WIDTH
The Synchronization Jump Width (SJW) adjusts the bit clock as necessary by 1-4TQ (as configured) to maintain synchronization with the transmitted message. More on synchronization is covered later:
Time Quantum
Each of the segments that make up a bit time are made up of integer units called Time Quanta (TQ). The length of each Time Quantum is based on the oscillator period (tosc). The base TQ equals twice the oscillator period. Figure 2 shows how the bit period is derived from Tosc and TQ. The TQ length equals one TQ Clock period ( t_(BRPCLK)), which is programmable using a programmable prescaler named the Baud Rate Prescaler (BRP). This is shown in the following equation:
TQ = 2 ⋅ BRP ⋅ T_(OSC) = (2 ⋅ BRP)/(F_(OSC))
Where: BRP equals the configuration as shown in Figure 3.
Bit Timing Control Registers
The CAN Bit Timing Control (CNF) registers are the three registers that configure the CAN bit time. Figure 3 details the function of the CNF registers.
By adjusting the length of the TQ(_(TQ)) and the number of TQs in each segment, both the nominal bit time and the sample point can easily be configured as desired.
PROGRAMMING THE TIMING SEGMENTS
The are several requirements for programming the CAN bit timing segments.
1.PropSeg + PS1 ≥ PS2
2.PropSeg + PS1 ≥ t_(PROP)
3.PS2 > SJW
FIGURE 2: TQ AND THE BIT PERIOD
FIGURE 3: CAN BIT TIMING CONTROL REGISTERS (MCP2510 CNF REGISTERS)
All nodes on the CAN bus must have the same nominal bit rate. Noise, phase shifts, and oscillator drift create situations where the nominal bit rate does not equal the actual bit rate in a real system. Therefore, the nodes must have a method for achieving and maintaining synchronization with bus messages.
Oscillator Tolerance
The bit timing for each node in a CAN system is derived from the reference frequency (fosc) of its node. This creates a situation where phase shifting and oscillator drift will occur between nodes due to less than ideal oscillator tolerances between the nodes.
The CAN specification indicates that the worst case oscillator tolerance is 1.58% and is only suitable for low bit rates (125 kb/s or less). This application note does not cover oscillator tolerances in detail, however, the references at the end of this application note provide more information on the subject.
Propagation Delay
The CAN protocol has defined a recessive (logic 1) and dominant (logic 0) state to implement a non-destructive bit-wise arbitration scheme. It is this arbitration methodology that is affected the most by propagation delays. Each node involved with arbitration must be able to sample each bit level within the same bit time. For example, if two nodes at opposite ends of the bus start to transmit their messages at the same time, they must arbitrate for control of the bus. This arbitration is only effective if both nodes are able to sample during the same bit time. Figure 4 shows a one-way propagation delay between two nodes. Extreme propagation delays (beyond the sample point) will result in invalid arbitration. This implies that bus lengths are limited at given CAN data rates. A CAN system's propagation delay is calculated as being a signal's round trip time on the physical bus ( t_(bus) ), the output driver delay ( t_(drv) ), and the input comparator delay (f_(cmp)). Assuming all nodes in the system have similar component delays, the propagation delay is explained mathematically as:
t_(prop) = 2 ⋅ (t_(bus) + t_(omp) + t_(drv))
Synchronization
All nodes on a given CAN bus must have the same NBT. The NRZ bit coding does not encode a clock into the message. The receivers must synchronize to the transmitted data stream to insure messages are properly decoded. There are two methods used for achieving and maintaining synchronization.
HARD SYNCHRONIZATION
Hard Synchronization only occurs on the first recessive-to-dominant (logic "1" to "0") edge during a bus idle condition, which indicates a Start-of-Frame (SOF) condition. Hard synchronization causes the bit timing counter to be reset to the SyncSeg which causes the edge to lie within the SyncSeg. At this point, all of the receivers will be synchronized to the transmitter.
Hard synchronization occurs only once during a message. Also, resynchronization may not occur during the same bit time (SOF) that hard synchronization occurred.
Identification des processus - Essais indiciels en BO - (SNE) - Broïda
Modèle de Broïda
Broïda utilise un modèle simple : approximation par un 1er ordre :
F(p) = K(e^(− Tp))/(1 + τp)
Problème : il faut déterminer K, T et τ.
Essai :
ta, tb
Δe, Δs
On mesure : ta, tb, Δe et Δs.
Valeur des paramètres :
⇒ K = Δs/Δe.; ⇒ τ = 5.5(tb − ta).; ⇒ T = 2.8ta − 1.8tb.
Pb : Suivant la précision des mesures, le modèle en T et τ peut être aberrant. On préfère alors l'identification de T et τ suivante :
Linéarisation d'un retard au premier ordre :
e^(− τp)#1/(1 + τp)
Caractérisation d'un système du second ordre
m : coefficient d'amortissement.
tm : temps de montée.
tr : temps de réponse.
Tp : pseudo-période.
D : dépassement. ω_R : pulsation de résonnance. ω_n : pulsation naturelle. ω_c : pulsation de coupure. M_(db) : surtension.
m
t_m ω_n
t_r ω_n
t_(pic)ω_n
T_p ω_n
D%
ω_R/ω_n
ω_c/ω_n
ω_c/ω_R
M_(db)
m
0,1
1,68
30
3,16
6,31
73
0,99
1,54
1,56
14
0,1
0,15
1,74
20
3,18
6,36
62
0,98
1,53
1,56
10,5
0,15
0,2
1,81
14
3,21
6,41
53
0,96
1,51
1,57
8,1
0,2
0,25
1,88
1l
3,24
6,49
44
0,94
1,48
1,59
6,3
0,25
0,3
1,97
10,1
3,24
6,59
37
0,91
1,45
1,61
4,8
0,3
0,35
2,06
7,9
3,35
6,71
31
0,87
1,42
1,63
3,6
0,35
0.4
2,16
7,7
3,43
6,86
25
0,82
1,37
1,67
2,7
0,4
0,45
2,28
5,4
3,52
7,04
21
0,77
1,33
1,72
1,9
0,45
0,5
2,42
5,3
3,63
7,26
16
0,71
1,27
1,80
1,2
0,5
0,55
2,58
5,3
3,76
7,52
12,6
0,63
1,21
1,93
0,7
0,55
0,6
2,77
5,2
3,93
7,85
9,5
0,53
1,15
2,17
0,3
0,6
0,65
3,00
5,0
4,13
8,27
6,8
0,39
1,08
2,74
0,1
0,65
0,7
3,29
3
4,40
8,80
4,6
0,14
1,01
7,14
0
0.7
0,75
3,66
3,1
4,75
9,50
2,84
-
0,94
-
-
0,75
0,80
4,16
3,4
5,24
10,5
1,52
-
0,87
-
-
080
0,85
4.91
3,7
5,96
11,93
0,63
-
0,81
-
-
0,85
0,90
6,17
4
7,21
14,41
0.15
-
0,75
-
-
0,90
0,95
9,09
4,1
10,06
20,12
0,01
-
0,69
-
-
0,95
DUAL FULL-BRIDGE DRIVER
-OPERATING SUPPLY VOLTAGE UP TO 46 V
-TOTAL DC CURRENT UP TO 4 A
-LOW SATURATION VOLTAGE
-OVERTEMPERATURE PROTECTION
-LOGICAL "0" INPUT VOLTAGE UP TO 1.5 V (HIGH NOISE IMMUNITY)
DESCRIPTION
The L298 is an integrated monolithic circuit in a 15lead Multiwatt and PowerSO20 packages. It is a high voltage, high current dual full-bridge driver designed to accept standard TTL logic levels and drive inductive loads such as relays, solenoids, DC and stepping motors. Two enable inputs are provided to enable or disable the device independently of the input signals. The emitters of the lower transistors of each bridge are connected together and the corresponding external terminal can be used for the con-
-Easier to stabilize with higher capacitive load due to resistive open-loop output impedance
2Applications
-Power modules
-Smoke detectors
-HVAC: heating, ventilating, and air conditioning
-Battery-powered applications
-Sensor signal conditioning
-Photodiode amplifier
-Analog filters
-Medical instrumentation
-Notebooks and PDAs
-Barcode scanners
-Audio receiver
-Automotive infotainment
Low-Side Motor Control
3 Description
The MCP6291 (single), MCP6292 (dual), and MCP6294 (quad) devices comprise a family of general-purpose, low-power operational amplifiers. Features such as rail-to-rail input and output swings, low quiescent current ( 600 − μA/ch typical) combined with a wide bandwidth of 10 MHz , and low noise ( 8.7 nV/VHz at 10 kHz ) make this family attractive for a variety of applications that require a balance between cost and performance. The low input bias current enables the family to be used in applications with high-source impedances.
The robust design of the MCP629x provides ease-ofuse to the circuit designer: a unity-gain stable, integrated RFI and EMI rejection filter, no phase reversal in overdrive condition, and high electrostatic discharge (ESD) protection (4-kV HBM).
The MCP629x family operates over the extended temperature range of -40°C to 125°C. The family has a power supply range of 2.4 V to 5.5 V .
Device Information ^((1))
PART NUMBER
PACKAGE
BODY SIZE (NOM)
MCP6291
SOT-23 (5)
1.60 mm × 2.90 mm
SC70 (5)
1.25 mm × 2.00 mm
MCP6292
SOIC (8)
3.91 mm × 4.90 mm
VSSOP (8)
3.00 mm × 3.00 mm
SOT-23 (8)
1.60 mm × 2.90 mm
MCP6294
SOIC (14)
8.65 mm × 3.91 mm
TSSOP (14)
4.40 mm × 5.00 mm
(1)For all available packages, see the orderable addendum at the end of the data sheet.
Small-Signal Overshoot vs Load Capacitance
7.7 Electrical Characteristics: V_s( Total Supply Voltage ) = (V +) − (V −) = 2.4 V to 5.5 V
at T_A = 25^∘C, R_L = 10kΩ connected to V_S/2, V_(CM) = V_S/2, and V_(OUT) = V_S/2 (unless otherwise noted)
PARAMETER
TEST CONDITIONS
MIN
TYP
MAX
UNIT
OFFSET VOLTAGE
Voe Input offset voltage
V_g = 5 V
±0.3
±3
mV
V_S = 5 V, T_A = − 40^∘C to 125^∘C
± 5
dV_(OS)/dT Driff
V_S = 5 V_t, T_A = − 40^∘C to 125^∘C
±1.1
μV/^∘C
PSRR Power-supply rejection ratio
V_S = 2.4 V − 5.5 V, V_(CM) = (V −)
±7
μV/V
Channel separation, DC
At DC
100
dB
INPUT VOLTAGE RANGE
V_(CM) Common-mode voltage range
V_s = 2, 4 V to 5.5 V
(V-) -0.1
(V+) * 0.1
V
CMRR Common-mode rajection ratio
V_s = 5.5 V; (V −) − 0.1 V < V_(CM) < (V +) − 1.4 V; T_A = − 40^∘C to 125^∘C
80
103
dB
V_B = 5.5 V; V_(CM) = − 0.1 V to 5.6 V; T_A = − 40^∘C to 125^∘C
57
87
V_B = 2.4 V; (V −) = − 0.1 V < V_(CM) < (V +) − 1.4 V; T_A = − 40^∘C to 125^∘C
88
V_8 = 2.4 V; V_(CM) = − 0.1 V to 1.9 V; T_A = − 40^∘C to 125^∘C
81
INPUT BIAS CURRENT
J_B Input bias current
±1
PA
Ios Input offset current
±0.05
PA
NOISE
E_n Input voltage noise (peak-to-peak)
V_B = 5 V, f = 0.1 Hz to 10 Hz
4.77
μV_(PP)
a_n input voltage noise density
V_s = 5 V, f = 10kHz, R_L = 10kΩ
8.7
nV/NHz
V_S = 5 V_t f = 1kHz, R_L = 10 kJ
16
In Input current noise density
I = 1kHz
10
fA/√(Hz)
INPUT CAPACITANCE
C_(ID) Differential
2
pF
C_(jc) Common-mode
4
pF
OPEN-LOOP GAIN
Ao: Open-loop voltage gain
V_B = 2.4 V; V − 1 + 0.04 V < V_0 < (Vr) − 0.04 V; R_L = 10kΩ
100
dB
V_s = 5.5 V; (V −) + 0.05 V < V_0 < (V +) − 0.05 V; R_t = 10kΩ
104
130
V_B = 2.4 V; V − 1 = 0.06 V < V_0 < (V +) − 0.08 V; R_L = 2kΩ
100
V_8 = 5.5 V; V − 1 + 0.15 V < V_0 < (V +) − 0.15 V; R_L = 2kΩ
130
FREQUENCY RESPONSE
GBP Gain bandwidth product
V_S = 5 V, G = 1
10
MHz
%m Phass margin
V_S = 5 V, G = 1
55
*
SR Slew rate
V_g = 5 V, G = 1
B,5
V/Jus
Sc Settling time
To 0.1%, V_B = 5 V, 2 − V step, G = 1; C_L = 100pF
0.5
μ8
To 0.01%, V_s = 5 V, 2 − V step, G = 1; C_L = 100pF
1
^5 Or Overload racovery firne
V_S = 5 V; V_(IN) × gain > V_S
0.2
μS
Electrical Characteristics: V_3 (Total Supply Voltage) = (V +) − (V −) = 2.4 V to 5.5 V (continued)
at T_A = 25^∘C, R_L = 10kΩ connected to V_S/2, V_(CM) = V_S/2, and V_(OUT) = V_S/2 (unless otherwise noted)
PARAMETER
TEST CONDITIONS
MIN TYP
MAX
UNIT
THD + N Total harmonic distortion + nolse ^((1))
V_S = 5V; V_0 = 1V_F = 18; G = 1, f = 1kHz
0.0008%
OUTPUT
V_0
Voltage output swing from supply rails
V_g = 5.5 V, R_L = 10kΩ
15
mV
V_g = 5.5 V, R_L = 2kΩ
50
Isc Short-cincuit cumant
V_5 = 5 V
± 50
mA
Z_o Open-loop output impedance
V_s = 5 V_t f = 10MHz
100
Ω
POWER SUPPLY
IQ Quiescent cument per amplifier
V_s = 5.5 V, l_0 = 0 mA
600
1300
μA
(1) Third-order filter, bandwidth = 80 kHz at -3 dB.
General purpose SMT chip tantalum series
General low power DC/DC and LDO
Operating Standard: QJ/PWV109-2003
Factory quality control system: Military Standard GJB90018-2009
Meets RoHS 2.0, Reach requirement
-Specifications
Operating Temperature Range: − 55^∘C ∼ + 125^∘C; > 85^∘C (with rated voltage derating);
DC Leakage at 25^∘C : I_0 ≤ 0.01C_R U_R or 0.5 uA (Choose the greater one)
Capacitance Range: 1uF~1000uF
Voltage Range: 6.3V, 10V, 16V, 25V, 35V, 50V, 63V, 75V, 100V
Capacitance Tolerance: K: +/-10%; M: +/-20% (+/-20% tolerance is standard)
SPQ: A,B case: 2000pcs/reel; C,D case: 500pcs/reel; E case: 400pcs/reel
How to order, please refer to Part Number System
-Very Low Supply Current Drain (0.4 mA) - Independent of Supply Voltage
-Low Input Biasing Current: 25 nA
-Low Input Offset Current: ± 5nA
-Maximum Offset voltage: ± 3mV
-Input Common-Mode Voltage Range Includes Ground
-Differential Input Voltage Range Equal to the Power Supply Voltage
-Low Output Saturation Voltage: 250 mV at 4 mA
-Output Voltage Compatible with TTL, DTL, ECL, MOS and CMOS logic systems
-Available in the 8-Bump (12 mil) DSBGA Package
-See AN-1112 (SNVA009) for DSBGA Considerations
-Advantages
-High Precision Comparators
-Reduced V_(OS) Drift Over Temperature
-Eliminates Need for Dual Supplies
-Allows Sensing Near Ground
-Compatible with All Forms of Logic
-Power Drain Suitable for Battery Operation
2Applications
-Battery Powered Applications
-Industrial Applications
3 Description
The LM193-N series consists of two independent precision voltage comparators with an offset voltage specification as low as 2.0 mV max for two comparators which were designed specifically to operate from a single power supply over a wide range of voltages. Operation from split power supplies is also possible and the low power supply current drain is independent of the magnitude of the power supply voltage. These comparators also have a unique characteristic in that the input common-mode voltage range includes ground, even though operated from a single power supply voltage.
Application areas include limit comparators, simple analog to digital converters; pulse, squarewave and time delay generators; wide range VCO; MOS clock timers; multivibrators and high voltage digital logic gates. The LM193-N series was designed to directly interface with TTL and CMOS. When operated from both plus and minus power supplies, the LM19-N series will directly interface with MOS logic where their low power drain is a distinct advantage over standard comparators.
The LM393 and LM2903 parts are available in TI's innovative thin DSBGA package with 8 (12 mil) large bumps.
Device Information ^((1))
PART NUMBER
PACKAGE
BODY SIZE (NOM)
LM193-N
TO-99 (8)
9.08 mm × 9.08 mm
LM293-N
LM393-N
SOIC (8)
4.90 mm × 3.91 mm
DSBGA (8)
1.54 mm × 1.54 mm
LM2903-N
SOIC (8)
4.90 mm × 3.91 mm
DSBGA (8)
1.54 mm × 1.54 mm
(1) For all available packages, see the orderable addendum at the end of the datasheet.
Simplified Schematic
6.4 Thermal Information
THERMAL METRIC ^((1))
LMx93
UNIT
TO-99
8 PINS
R_(QJA) Junction-to-ambient thermal resistance
170
^∘C/W
(1)For more information about traditional and new thermal metrics, see the IC Package Thermal Metrics application report, SPRA953.
(1)At output switch point, V_O ≃ 1.4 V, R_S = 0Ω with V^+from 5 V to 30 V ; and over the full input common-mode range ( 0 V to V^′ − 1.5 V ), at 25^∘C.
(2)The direction of the input current is out of the IC due to the PNP input stage. This current is essentially constant, independent of the state of the output so no loading change exists on the reference or input lines.
(3)The input common-mode voltage or either input signal voltage should not be allowed to go negative by more than 0.3V. The upper end of the common-mode voltage range is V^+ − 1.5 V at 25°C, but either or both inputs can go to 36 V without damage, independent of the magnitude of V^+.
(4)The response time specified is for a 100 mV input step with 5 mV overdrive. For larger overdrive signals 300 ns can be obtained, see LMx93 and LM193A Typical Characleristics .
6.6 Electrical Characteristics: LM193A (V + = 5 V)^((1))
PARAMETER
TEST CONDITIONS
LM193A
UNIT
MIN TYP MAX
Input Offset Voltage
See ^((2))
4.0
mV
Input Offset Current
I_(IN(+)) − l_(IN(−)), V_(CM) = 0 V
100
nA
Input Bias Current
I_(IN)(^+)or I_(IN)(−) with Output in Linear Range, V_(CM) = 0 V^((3))
300
nA
Input Common Mode Voltage Range
V^+ = 30 V^((4))
0 V^+ − 2.0
V
Saturation Voltage
V_(IN)(−) = 1 V, V_(IN)(+) = 0, I_(SINK) ≤ 4 mA
700
mV
Output Leakage Current
V_(IN (−)) = 0, V_(IN(+)) = 1 V, V_0 = 30 V
1.0
μA
Differential Input Voltage
Keep All V_(IN) 's ≥ 0 V (or V, if Used), ^((5))
36
V
(1)These specifications are limited to -55°C T_A s + 125 ^∘C, for the LM193/LM193A. With the LM293 all temperature specifications are limited to − 25^∘C ≤ T_A ≤ + 85^∘C and the LM 393 temperature specifications are limited to 0^∘C ≤ T_A ≤ + 70^∘C. The LM2903 is limited to -40°Cstas+85°C.
(2)At output switch point, V_O = 1.4 V, R_S = 0Ω with V^+from 5 V to 30 V ; and over the full input common-mode range ( 0 V to V^+ − 1.5 V ), at 25^∘C.
(3)The direction of the input current is out of the IC due to the PNP input stage. This current is essentially constant, independent of the state of the output so no loading change exists on the reference or input lines.
(4)The input common-mode voltage or either input signal voltage should not be allowed to go negative by more than 0.3V. The upper end of the common-mode voltage range is V^+ − 1.5 V at 25°C, but elther or both inputs can go to 36 V without damage, independent of the magnitude of V^+.
(5)Positive excursions of input voltage may exceed the power supply level. As long as the other voltage remains within the common-mode range, the comparator will provide a proper output state. The low input voltage state must not be less than -0.3V (or 0.3V below the magnitude of the negative power supply, if used).
(1)At output switch point, V_O ≃ 1.4 V, R_S = 0Ω with V^+from 5 V to 30 V ; and over the full input common-mode range ( 0 V to V^∗ − 1.5 V ), at 25^∘C.
(2)The direction of the input current is out of the IC due to the PNP inpul stage. This current is essentially constant, independent of the state of the output so no loading change exists on the reference or input lines.
(3)The Input common-mode valtage or either input signal voltage should not be allowed to go negative by more than 0.3V. The upper end of the common-mode voltage range is V^+ − 1.5 V at 25^∘C, but either or both inputs can go to 36 V without damage, independent of the magnitude of V^+.
(4)The response time specified is for a 100 mV input step with 5 mV overdrive. For larger overdrive signals 300 ns can be obtained, see LMx93 and LM193A Typical Charactaristics.
6.9 Typical Characteristics: LMx93 and LM193A
Figure 1. Supply Current
Figure 2. Input Current
Figure 3. Output Saturation Voltage
Figure 4. Response Time for Various Input Overdrives-Negative Transition
Figure 5. Response Time for Various Input Overdrives-Positive Transition
dsPIC30F4011/4012
8.0 I/O PORTS
Note: This data sheet summarizes features of this group of dsPIC30F devices and is not intended to be a complete reference source. For more Information on the CPU, peripherals, register descriptions and general device functionality, refer to the dsP/C30F Family Reference Manual (DS70046).
All of the device pins (except VDD, Vss, MCLR ^– and OSC1/CLKIN) are shared between the peripherals and the parallel I/O ports.
All I/O Input ports feature Schmitt Trigger Inputs for improved noise immunity.
8.1 Parallel I/O (PIO) Ports
When a peripheral is enabled and the peripheral is actively driving an associated pin, the use of the pin as a general purpose output pin is disabled. The I/O pin may be read, but the output driver for the Parallel Port bit will be disabled. If a peripheral is enabled, but the peripheral is not actively driving a pin, that pin may be driven by a port.
All port pins have three registers directly associated with the operation of the port pin. The data direction register (TRISx) determines whether the pin is an input or an output. If the Data Direction bit is a '1', then the pin is an input. All port pins are defined as inputs after a Reset. Reads from the latch (LATx), read the latch. Writes to the latch, write the laich (LATx). Reads from the port (PORTx), read the port pins, and writes to the port pins, write the latch (LATx). Any bit and its associated data and control registers that are not valid for a particular device will be disabled. That means the corresponding LATx and TRISx registers and the port pin will read as zeros.
When a pin is shared with another peripheral or function that is defined as an input only, it is nevertheless regarded as a dedicated port because there is no other competing source of outputs. An example is the INT4 pin.
The format of the registers for PORTX are shown in Table 8-1.
The TRISX (Data Direction Control) register controls the direction of the pins. The LATX register supplies data to the outputs, and is readable/writable. Reading the PORTX register yields the state of the input pins, while writing the PORTX register modifies the contents of the LATX register.
A parallel I/O (PIO) port that shares a pin with a peripheral is, in general, subservient to the peripheral. The peripheral's output buffer data and control signals are provided to a pair of multiplexers. The multiplexers select whether the peripheral or the associated port has ownership of the output data and control signals of the I/O pad cell. Figure 8-2 shows how ports are shared with other peripherals, and the associated I/O cell (pad) to which they are connected. Table 8-1 and shows the formats of the registers for the shared ports, PORTB through PORTG.
FIGURE 8-1: BLOCK DIAGRAM OF A DEDICATED PORT STRUCTURE
TABLE 8-1: dsPIC30F4011 PORT REGISTER MAP
SFR Name
Addr.
Bil 15
Bit 14
Bit 13
BIt 12
Blt 11
Bit 10
Bit 0
Bit 8
Bit 7
Blt 6
BII 6
Bit 4
Blt 3
Bit 2
Bit 1
Bit 0
Reset State
TRISB
02C6
-
-
-
-
-
-
-
TRISB8
TRISB7
TRISB6
TRISB5
TRISB4
TRISB3
TRISB2
TRISB1
TRISBO
0000
0001
1111
1111
PORTB
0208
-
-
-
-
-
-
-
RBS
R87
RB6
RB5
RB4
RB3
RB2
RB1
RBO
0000
0000
0000
0000
LATB
02CB
-
-
-
-
-
-
-
LATB8
LATB7
LATB6
LATB5
LATB4
LATB3
LATB2
LATB1
LATBO
0000
0000
0000
0000
TRISC
02CC
TRISC15
TRISC14
TRISC13
-
-
-
-
-
-
-
-
-
-
-
-
-
1110
0000
0000
0000
PORTC
02CE
RC15
RC14
RC13
-
-
-
-
-
-
-
-
-
-
-
-
-
0000
0000
0000
0000
LATC
02D0
LATC15
LATC14
LATC13
-
-
-
-
-
-
-
-
-
-
-
-
-
0000
0000
0000
0000
TRISD
0202
-
-
-
-
-
-
-
-
-
-
-
-
TRISD3
TRISD2
TRISD1
TRISDO
0000
0000
0000
1.111
PORTD
02D4
-
-
-
-
-
-
-
-
-
-
-
-
RD3
RD2
RD1
RD0
0000
0000
0000
0000
LATD
0206
-
-
-
-
-
-
-
-
-
-
-
-
LATD3
LATD2
LATD1
LATD0
0000
0000
0000
0000
TRISE
0208
-
-
-
-
-
-
-
TRISEB
-
-
TRISE5
TRISE4
TRISE3
TRISE2
TRISE1
TRISED
0000
0001
0011
1111
PORTE
02DA
-
-
-
-
-
-
-
RE8
-
-
RE5
RE4
RE3
RE2
RE1
REO
0000
0000
0000
0000
LATE
02DC
-
-
-
-
-
-
-
LATE8
-
-
LATE5
LATE4
LATE3
LATE2
LATE1
LATEO
0000
0000
0000
0000
TRISF
02EE
-
-
-
-
-
-
-
-
-
TRISF6
TRISF5
TRISF4
TRISF3
TRISF2
TRISF1
TRISF0
0000
0000
0111
1111
PORTF
02E0
-
-
-
-
-
-
-
-
-
RF8
RF5
RF4
RF3
RF2
RF1
RF0
0000
0000
0000
0000
LATF
02E2
-
-
-
-
-
-
-
-
-
LATF6
LATF5
LATF4
LATF3
LATF2
LATF1
LATF0
0000
0000
0000
0000
Legend: u = uninitialized bit
Note: Refer to dsPIC30F Family Reference Manual (DS70046) for descriptions of register bit fields.
dsPIC30F4011/4012
9.0 TIMER1 MODULE
Note: This data sheet summarizes features of this group of dsPIC30F devices and is not intended to be a complete reference source. For more Information on the CPU, peripherals, register descriptions and general device functionality, refer to the dsPIC30F Family Reference Manual (DS70046).
This section describes the 16 -bit General Purpose (GP) Timer1 module and associated operational modes. Figure 9-1 depicts the simplified block diagram of the 16-bit Timer1 Module.
Note: Timer1 is a 'Type A' timer. Please refer to the specifications for a Type A timer in Section 24.0 Electrical Characteristics of this document.
The following sections provide a detailed description, including setup and control registers along with associated block diagrams for the operational modes of the timers.
The Timer1 module is a 16-bit timer which can serve as the time counter for the real-time clock, or operate as a free running interval timer/counter. The 16 -bit timer has the following modes:
-16-bit Timer
-16-bit Synchronous Counter
-16-bit Asynchronous Counter
Further, the following operational characteristics are supported:
-Timer gate operation
-Selectable prescaler settings
-Timer operation during CPU Idle and Sleep modes
-Interrupt on 16-bit period register match or falling edge of external gate signal
These operating modes are determined by setting the appropriate bit(s) in the 16-bit SFR, T1CON. Figure 9-1 presents a block diagram of the 16 -bit timer module.
16-bit Timer Mode: In the 16-bit Timer mode, the timer increments on every instruction cycle up to a match value, preloaded into the period register PR1, then resets to 0 and continues to count.
When the CPU goes into the Idle mode, the timer will stop incrementing, unless the TSIDL (T1CON<13>) bit = 0. If TSIDL = 1, the timer module logic will resume the incrementing sequence upon termination of the CPU Idle mode. 16-bit Synchronous Counter Mode: In the 16-bit Synchronous Counter mode, the timer increments on the rising edge of the applied external clock signal, which is synchronized with the internal phase clocks. The timer counts up to a match value preloaded in PR1, then resets to 0 and continues.
When the CPU goes into the Idle mode, the timer will stop incrementing, unless the respective TSIDL bit = 0. If TSIDL = 1, the timer module logic will resume the incrementing sequence upon termination of the CPU Idle mode.
16-bit Asynchronous Counter Mode: In the 16-bit Asynchronous Counter mode, the timer increments on every rising edge of the applied external clock signal. The timer counts up to a match value preloaded in PR1, then resets to 0 and continues.
When the timer is configured for the Asynchronous mode of operation and the CPU goes into the idle mode, the timer will stop incrementing if TSIDL = 1.
dsPIC30F4011/4012
FIGURE 9-1: 16-BIT TIMER1 MODULE BLOCK DIAGRAM (TYPE A TIMER)
9.1 Timer Gate Operation
The 16-bit timer can be placed in the Gated Time Accumulation mode. This mode allows the Internal TCy to increment the respective fimer when the gate input signal (T1CK pin) is asserted high. Control bit TGATE (T1CON<6>) must be set to enable this mode. The timer must be enabled ( TON = 1 ) and the timer clock source set to internal (TCS = 0).
When the CPU goes into the Idle mode, the timer will stop incrementing, unless TSIDL = 0. If TSIDL = 1, the timer will resume the incrementing sequence upon termination of the CPU Idle mode.
9.2 Timer Prescaler
The input clock (Fosc/4 or external clock) to the 16 -bit Timer, has a prescale option of 1:1, 1:8, 1:64, and 1:256 selected by control bits TCKPS<1:0> (T1CON<5:4>). The prescaler counter is cleared when any of the following occurs:
-a write to the TMR1 register
-clearing of the TON bit (T1CON<15>)
-device Reset such as POR and BOR
However, if the timer is disabled (TON = 0 ), then the timer prescaler cannot be reset since the prescaler clock is halted.
TMR1 is not cleared when T1CON is written. It is cleared by writing to the TMR1 register.
9.3 Timer Operation During Sleep Mode
During CPU Sleep mode, the fimer will operate if:
-The timer module is enabled (TON = 1) and
-The timer clock source is selected as external (TCS = 1) and
-The TSYNC bit (T1CON<2>) is asserted to a logic 0, which defines the external clock source as asynchronous
When all three conditions are true, the timer will continue to count up to the period register and be reset to 0x0000.
When a match between the timer and the period register occurs, an interrupt can be generated, if the respective Timer Interrupt Enable bit is asserted.
9.4 Timer Interrupt
The 16 -bit timer has the ability to generate an interrupt on period match. When the timer count matches the period register, the T1IF bit is asserted and an interrupt will be generated, if enabled. The T1IF bit must be cleared in software. The timer interrupt flag T1IF is located in the IFS0 control register in the Interrupt Controller.
When the Gated Time Accumulation mode is enabled, an interrupt will also be generated on the falling edge of the gale signal (at the end of the accumulation cycle).
Enabling an interrupt is accomplished via the respective Timer Interrupt Enable bit, T1IE. The Timer Interrupt Enable bit is located in the IECO control register in the Interrupt Controller.
9.5 Real-Time Clock
Timer1, when operating in Real-Time Clock (RTC) mode, provides time-of-day and event time stamping capabilities. Key operational features of the RTC are:
-Operation from 32 kHz LP oscillator
-8-bit prescaler
-Low power
-Real-Time Clock Interrupts
These Operating modes are determined by setting the appropriate bit(s) in the T1CON Control register
FIGURE 9-2: RECOMMENDED COMPONENTS FOR TIMER1 LP OSCILLATOR RTC
9.5.1 RTC OSCILLATOR OPERATION
When the TON = 1, TCS = 1 and TGATE = 0, the timer increments on the rising edge of the 32 kHz LP oscillator output signal, up to the value specified in the period register, and is then reset to ' 0 '.
The TSYNC bit must be asserted to a logic '0' (Asynchronous mode) for correct operation.
Enabling LPOSCEN (OSCCON<1>) will disable the normal Timer and Counter modes and enable a timer carry-out wake-up event.
When the CPU enters Sleep mode, the RTC will continue to operate, provided the 32 kHz external crystal oscillator is active and the control bits have not been changed. The TSIDL bit should be cleared to '0' in order for RTC to continue operation in Idie mode.
9.5.2 RTC INTERRUPTS
When an interrupt event occurs, the respective interrupt flag. T1IF, is asserted and an interrupt will be generated, if enabled. The T1IF bit must be cleared in software. The respective Timer interrupt flag, T1IF, is located in the IFSO status register In the interrupt Controller.
Enabling an interrupt is accomplished via the respective Timer Interrupt Enable bit, T1IE. The Timer Interrupt Enable bit is located in the IEC0 control register in the Interrupt Controller.
TABLE 9-1: TIMER1 REGISTER MAP
SFR Name
Addr.
Bitt 15
Bit 14
BIt 13
Bit 12
Bit 11
Bitt 10
Bit 9
Bitt 8
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bitt 4
Bit 0
Reset State
TMR1
0100
Timer 1 Register
uuiu utuul utuuy uulu
PR1
0102
Parlood Register 1
1111111111111111
T1CON
0104
TON
-
TSIDL
-
-
-
-
-
-
TGATE
TCKPS1
TCKPS0
-
TSYNC
TCS
-
0000000000000000
Legand: u = uninitialized bit
Note: Refer to dsPIC30F Family Reference Manual (DS70046) for descriptions of register bit fields.
dsPIC30F4011/4012
24.2 AC Characteristics and Timing Parameters
The information contained in this section defines dsPIC30F AC characteristics and timing parameters.
TABLE 24-12: TEMPERATURE AND VOLTAGE SPECIFICATIONS - AC
AC CHARACTERISTICS
Standard Operating Conditions: 2.5V to 5.5V (unless otherwise stated)
Operating temperature
-40°C ≤ Ta ≤ + 85^∘C for Industrial − 40^∘C ≤ Ta ≤ + 125^∘C for Extended
Operating voltage VDD range as described in DC Spec Section 24.0.
FIGURE 24-2: LOAD CONDITIONS FOR DEVICE TIMING SPECIFICATIONS
FIGURE 24-3: EXTERNAL CLOCK TIMING
dsPIC30F4011/4012
TABLE 24-13: EXTERNAL CLOCK TIMING REQUIREMENTS
AC CHARACTERISTICS
Standard Operating Conditions: 2.5V to 5.5V (unless otherwise stated)
Operating temperature Operating temperature -40°C ≤ Ta ≤ + 125^∘C for Extended
Param No.
Symbol
Characteristic
Min
Typ ^((1))
Max
Units
Conditions
OS10
Fosc
External CLKIN Frequency ^((2))
DC
-
40
MHz
EC
(External clocks allowed only
4
-
10
MHz
EC with 4x PLL
in EC mode)
4
-
10
MHz
EC with 8x PLL
4
-
7.5
MHz
EC with 16x PLL
Oscillator Frequency ^((2))
DC
-
4
MHz
RC
0.4
-
4
MHz
XTL
4
-
10
MHz
XT
4
-
10
MHz
XT with 4x PLL
4
-
10
MHz
XT with 8x PLL
4
-
7.5
MHz
XT with 16x PLL
10
-
25
MHz
HS
31
-
33
kHz
LP
-
7.3728
-
MHz
FRC internal
-
512
-
kHz
LPRG internal
OS20
Tosc
Tosc = 1/Fosc
-
-
-
-
See parameter OS10 for Fosc value
OS25
Toy
Instruction Cycle Time ^((2)(3))
33
-
DC
ns
See Table 24-15
OS30
TosL, TosH
External Clock ^((2)) In (OSC1) High or Low Time
. 45 × Tosc
-
-
ns
EC
OS31
TosR, TosF
External Clock ^((2)) in (OSC1) Rise or Fall Time
-
-
20
ns
EC
OS40
TckR
CLKOUT Rise Time ^((2)(4))
-
6
10
ns
OS41
TckF
CLKOUT Fall Time ^((2)(4))
-
6
10
ns
Note 1: Data In "Typ" column is at 5V, 25°C unless otherwise stated. Parameters are for design guidance only and are not tested.
2:These parameters are characterized but not fested in manufacturing.
3:Instruction cycle period (Tcy) equals four times the input oscillator time-base period. All specified values are based on characterization data for that particular oscillator type under standard operating conditions with the device executing code. Exceeding these specified limits may result in an unstable oscillator operation and/or higher than expected current consumption. All devices are tested to operate at "min." values with an external clock applied to the OSC1/CLKI pin. When an external clock input is used, the "Max." cycle time limit is "DC" (no clock) for all devices.
4:Measurements are taken in EC or ERC modes. The CLKOUT signal is measured on the OSC2 pin. CLKOUT is low for the Q1-Q2 period (1/2 TCY) and high for the Q3-Q4 period (1/2 TCY).