3 - Placement routage

Nous allons maintenant passer au placement/routage. C'est la partie qui s'occupe de mettre effectivement les empreintes de cuivre sur la carte pour pouvoir ensuite souder ces composants.

1 - Démarrage Expedition PCB

Maintenant que le schéma électrique est fait, nous allons passer au placement et au routage.

Pour passer sur le logiciel de placement et routage, il faut compiler le schéma que vous avez fait. Pour ceci, tools -> other utilities puis choisissez le packager, puis apply. Choisissez full compile puis apply encore. Là vous ne devez pas avoir d'erreurs.

Si vous avez malgré tout une erreur, je ne peux que vous motiver à trouver par vous même avec les messages d'erreur imprimés. Si vous êtes membres du club, n'hésitez à poster sur la mailing list et sinon, vous pouvez googler ou envoyer une demande d'aide à Mentor Graphics. Si c'est une erreur de ce tutorial qui est à l'origine de l'erreur de compilation, nous serons ravis de la corriger, il suffit d'envoyer un mail à contact@telecom-robotics.fr .

Une fois que la compilation est terminée, faites clic droit sur la feuille et faites set instance pour mettre des noms aux composants. Ensuite sur la barre de gauche choisissez en bas "integration view", clic droit sur tutorial.pcb -> open : et là normalement, expedition PCB s'ouvre. Vous pouvez également ouvrir Expedition PCB puis faire Fichier/ouvrir et choisir tutorial.pcb qui se trouve dans le dossier Tutorial.

2 - Placement AVR

Nous allons aborder dans cette page le placement des composants sur la carte.

Avant de commencer, faites Setup -> project integration, vous devez obtenir ceci :

 

Cliquez sur "Forward Annotate", ceci pour importer notre schéma sur le PCB.

 

Place -> place parts and cells et appuyer sur la double flèche vers le bas (include all). On a alors la liste de tous les composants qui sont dans le schématique comme ceci :

 

On place en premier l'AVR, pour ceci choisir l'AVR dans la liste (vous pourrez le reconnaitre car c'est un cicuit intégré donc symbole U et c'est le seul composant avec 32 pattes).
Ensuite, il faut essayer de placer les différents composants par groupe. On met d'abord les 4 ponts en H. Si vous ne savez pas quels composants sont les ponts en H, n'hésitez pas à refaire un tour dans le schématic.

Pour une meilleure lisibilité du PCB (Printed Circuit Board pour ceux que ça intéresse :), vous pouvez choisir de n'afficher qu'une partie des informations pour chaque composant. Pour cela vous pouvez ouvrir le display control (View / Display Control) et choisir vous-même ce que vous voulez voir afficher. Je vous conseille d'utiliser les modèles prédéfinis et de choisir "Loc : Placement" en bas du display control. Vous avez normalement la même option dans les boutons rapides en haut. Là où il est marqué "Display Schemes" vous pouvez directement choisir "Loc: Placement".

On met ensuite les micromatch. Tout au long du placement, vous pouvez utilisez les touches "F1", "F2", etc... il est indiqué en bas de l'écran leur fonction. Appuyez par exemple sur "F3" pour faire pivoter un composant quand il est sélectionné mais pas encore placé.

Au bout de 5 mn vous devez obtenir ceci :

 

 

Fichier attachéTaille
prjIntegration.png78.96 Ko
placement1.png154.49 Ko
premierPlace.png111.32 Ko

3 - placement alimentation

On continue de placer les composants par groupe. On s'intéresse maintenant à la partie alimentation. On va essayer de regrouper l'alimentation logique d'un côté et l'alimentation de puissance de l'autre. N'hésitez pas à bien serrer les composants lorsque vous savez qu'ils sont liés et qu'ils seront simples à router (CAD que tracer les fils qui vont les relier sera facile).

Pour cela, repérez sur le schéma électrique quels sont les composants qui font partie de l'alimentation logique d'abord et placez-les dans un coin. Vous devriez obtenir quelque chose comme ceci:

 

 Ensuite, renouvelez l'opération pour l'alimentation de puissance. et vous obtenez quelque chose d'approchant à ceci: (si vous n'avez pas autant serrer les composants, ce n'est pas très grave, il sera toujours temps de les serrer tout à l'heure)

 

Fichier attachéTaille
placementAlimLogique.png176.62 Ko
placementAlimPuissance.png34.56 Ko

4 - placement quartz, bouton poussoir et pads

Avant de placer les derniers "gros" composants, c'est-à-dire le quartz, le switch et les pads, on peut se rendre compte que si on tourne l'AVR, il sera plus adapté. On le tourne en resant cliqué dessus et en appuyant sur F3. Vous devriez avoir quelque chose comme ça:

 

Le quartz sert à fournir l'horloge à l'AVR. Il faut que le signal de l'horloge soit le plus précis possible et donc pour éviter les interférences, on essaye de placer le quartz tout près de l'AVR. Le bouton poussoir peut être placer n'importe où sur la carte, il sert simplement à rebooter plus facilement l'AVR. On va quand même le mettre du côté où est la pin du reset sur l'AVR.

Quant aux pads, ce sont juste des bouts de métal sur lesquels on viendra souder directement un fil électrique. On en a déjà mis pour l'alimentation (pour souder les fils qui viennent des piles) et il en faut encore pour brancher les moteurs.

On va donc mettre le quartz près de l'AVR ainsi que les 2 capacités qui servent à le faire osciller. Pour connaitre la valeur des capacités qu'il faut mettre avec le quartz, on peut le lire dans la datasheet de l'AVR. Vous devriez obtenir un truc à peu près dans ce genre:

 

Mettez maintenant le bouton poussoir et les pads pour obtenir quelque chose comme ça:

Fichier attachéTaille
AVR_tourne.png70.37 Ko
quartz.png57.7 Ko
pad_bouton.png82.61 Ko

5 - placement petits composants

Il reste donc à faire le placement des derniers petits composants. Parmi ces composants, il en reste seulement 2 d'importants, ce sont les capacités de découplage. En gros, ces capacités permettent à l'AVR d'avoir une alimentation stable. Il est très important de les mettre juste à côté de l'AVR, quitte à repousser un peu le reste.

Ensuite les diodes sont à mettre où vous voulez sur la carte sachant qu'elles seront amenées à bouger lors du routage. Il faut mettre les résistances qui vont avec tout près pour une question pratique et puis c'est plus joli sur la carte :) Ne faites donc pas trop attention à vous les mettez, essayez quand même de ne pas trop croiser les fils.

Enfin, les résistances qui restent sont toutes des pull-ups ou des pulls-down, ce sont des résistances qui servent à maintenir la ligne à 1 ou à 0 si personne n'y touche. Il faut essayer de les mettre près du composant auquel elles sont censées "appartenir". Ceci n'est pas indispensable, mais vous verrez que ce sera plus pratique lors du routage.

Pour les capacités de découplage vous devriez avoir quelque chose comme ceci:

 

Et au final:

 

Fichier attachéTaille
capa_decouplage.png60.3 Ko
final_placement.png77.28 Ko

6 - premier routage

On peut maintenant passer au routage de la carte, c'est-à-dire relier les composants qu'on a placé sur la carte par des fils de cuivre. C'est une des parties les plus délicates en électronique. En effet, il y a énormément de paramètres à prendre en compte comma par exemple l'influence d'une piste de cuivre sur ses voisines, le temps de parcours du signal dans les pistes et encore bien d'autres. Cependant, dans notre cas, nous nous pouvons oublier quasiment toutes ces contraintes puisqu'elles sont à prendre en compte suelement lorsque la fréquence d'horloge est élevée. Nous n'avons que 20 MHz ce qui est largement en dessous de la zone d'"inquiétude" :)

Par contre, notre grosse difficulté c'est que nous n'avons normalement qu'une couche, il faudrait donc que tous les fils de cuivre tiennent sur une seule face sans se croiser. Si vraiment, on se rend compte qu'on ne peut pas y arriver (2 fils sont obligés de se croiser à un endroit) on pourra éventuellement utiliser une deuxième couche. Il y aura alors un des fils qui passera sous la carte.

Commençons tout d'abord par un premier routage simple, on va ne relier que les composants qui sont côte à côte et dont le routage est simple. Pour passer en mode routage dans Expedition PCB, il faut cliquer sur l'icone "Route mode" qui est juste à côté de l'icone "Place mode", c'est un icone rouge avec 2 traits en diagonal et 2 points.

Quand vous cliquez maintenant sur une patte d'un composant, le fil auquel elle est relié et toutes les autres pattes connectés sont en surbrillance. L'objectif est de tracer un fil de cuivre entre toutes ces pattes. Si vous cliquez sur une patte reliée à VCC ou GND (la masse) vous verrez qu'il y a du boulot, ce sont les 2 fils les plus difficiles à router, il ne faut donc pas commencer par ceus-là.

Pour routez, cliquez une fois sur une patte, puis faites un drag&drop pour tracer le fil. Vous pouvez le lacher au milieu pour faire un premier trait puis recommencer. Si vous n'êtes pas content du fil tracé, vous pouvez soit le supprimez avec la touche suppr. Pour supprimer complètement le fil, faites un double clic (ce qui selectionne tout le fil) puis suppr. Vous pouvez aussi faire Route/Modify Corners (il y a aussi un icone en haut) dans ce mode, vous pouvez bougez les coins comme vous le souhaitez. Ce mode est assez pratique pour faire de jolis fils...

Commencez par router les 2 parties d'alimenttation, les pull-ups et les pull-downs, les pads, les capacités de découplage. Enfin tous les "petits" fils.

Après l'alimentation vous avez normalement quelque chose qui ressemble à ça:

 

 

Encore une fois, ne vous inquiétez pas si tous les fils ne sont pas exactement à la même place. Cependant, il faut quand même que vos fils ne fassent pas de chemins compliqués pour l'instant. Préférez donc retourner un petit composant en repassant dans le "place mode" plutot que de faire un fil qui fait tout le tour. Ensuite vous avez un truc comme ça:

Maintenant va commencer la partie un peu plus difficile.

Fichier attachéTaille
routage1.png95.1 Ko
routage2.png14.53 Ko

7 - routage du microprocesseur

Il faut maintenant router l'AVR. Les instructions sont simples: vous devez reliez toutes les pattes de l'AVR sauf l'alimentation et la masse, même si vous pouvez y réfléchir dès maintenant.

Quand ça ne va vraiment pas avec un composant, que vous vous êtes vraiment creusé la tête (c'est-à-dire que vous avez vraiment essayé 10 minutes sans résultat même en tournant le composant ou en bougeant ses voisins), il peut rester la solution de changer les pins du composant. Attention, il faut un prérequis: c'est que les pins en question sont interchangeables. Sur la plupart des composant vous devez mettre l'alimentation à certains endroits ou relier spécifiquement une pin du composant à une pin de l'AVR.

Nous n'avons sur la carte que quelques contraintes:

  • le sharp doit être relié à une pin qui peut faire de la conversion analogique/numérique
  • les bumpers doivent rester sur les pins qui sont capables de générer une interruption en soft si vous voulez mieux gérer ces capteurs
  • le bouton poussoir doit asolument rester sur la pin du reset
  • l'horloge doit rester sur les pins d'horloge

Comme vous le voyez, nos contraintes ne sont pas très grandes, et notamment le routage des micromatch (les composants qui sont simplement des connecteurs pour diverses capteurs ou bus) est assez flexible. Il faudra simplement faire attention ensuite à comment y brancher les capteurs ou bus.

Donc, si vous voulez changer le schéma électrique, il faut retourner dans DesignView. Vous faites vos changements sur le schéma électrique ensuite vous relancer le packager dans Tools/Other Utilities puis "Packager" ou directement sur l'icone en haut et vous relancer la forward annotation (l'opération qui permet à Expédition PCB de savoir à quelles pins est reliée telle pin) dans Setup/Project Integration. Ce sont les mêmes étapes que la première fois qu'on a lancé le packager. Ne vous inquiétez pas, tout ce qui n'est pas changé dans le schéma électriquene sera pas changer sur le PCB, vous ne perdez donc que le routage des pins qui ont été modifiées.

Pour ma part, j'obtiens ceci en ne changeant pratiquement rien: j'ai changé les pins color2 et color3 sur mon micromatch. Et j'ai changé plusieurs connections de micromatch (souvent la masse je l'ai mise en 4...).

Fichier attachéTaille
routage_AVR.png92.97 Ko

8 - routage alimentation

Normalement il ne vous reste que la masse et VCC à router. Faites votre possible pour router VCC sur le plan du dessus (fils en bleu) et garder la masse pour après.

 

Vous pouvez rencontrer des problèmes facilement résolubles. Par exemple dans une situation comme celle-ci:

Et rien qu'en déplaçant un fil entre les pads du micromatch, vous pouvez router! 

 

 

Normalement, VCC est routable sur la face du dessus mais vous pouvez avoir des problèmes pour GND. Essayez quand même d'abord de router sur le plan du dessus en bougeant les composants ou en changeant les pins. Ensuite, quand vous êtes désespérés, vous pouvez utiliser la 2ème couche. Comme on l'a dit on peut router sur la face du dessous comme ça on peut croiser les fils, il faudra juste percer un trou dans la carte et mettre un fil pour que le courant passe du dessus au dessous.

Quand vous avez un fil et que vous voulez le faire passer en dessous, appuyez sur F10 ("add via", les commandes des touches F sont rappelées en bas et elles changent suivant le mode dans lequel vous vous trouvez). Un "via" sera créé automatiquement, un "via" c'est justement le trou dans la carte qui fera passer le courant. Quand le via est placé votre fil apparait maintenant en rouge, vous êtes sur l'autre face de la carte et vous pouvez croiser les fils bleus, réappuyer sur F10 pour refaire un via et revenir sur la face du dessus. Par exemple pour les ponts en H, j'obtiens ceci:

 

Et à la fin, vous vous rendez compte qu'il reste beaucoup de place entre les composants. Essayez donc de ressere un peu le tout, vous pouvez déplacer un groupe de composants en mode "plae" et les bouger tous ensemble. Après resserage, j'obtiens un routage à peu près comme cela.

 

Fichier attachéTaille
probleme.png59.14 Ko
probleme_resolu.png49.16 Ko
vias.png20.86 Ko
routage_fini.png58.05 Ko