![]() |
||
|
ICD2-Like Programmer & Debugger
Introduction Pour ceux qui ne conssaisent pas l'ICD2 (In Circuit Debugger 2), c'est une interface qui permet de programmer et debugger des microcontrolleurs PIC depuis un PC. Ce projet est un ICD2 qui est un peu simplifié par rapport à la version de Microchip. Le but n'est pas de refaire exactement un clone (car il faut partir sur un PCB double couche avec vias et trouver des composants peu courants genre Cypress CY7C64613). Celui présenté ici est beaucoup plus simple, avec des composants courants (hormis peut être le FT232R mais il est tout à fait possible de faire version série avec un MAX232). Les caractéristiques principales sont les suivantes :
Deux composants principaux sont au coeur de ce montage : un PIC 16F876(A) qui contient le bootloader (voir "réalisation") et le firmware que MPLAB installe suivant la série de PIC que l'on debug. L'autre composant est le tout nouveau FT232R(L) de chez FTDI Chip qui assure la conversion USB-RS232 (niveaux TTL) pour communiquer avec le PC. De ce fait, cet ICD2 n'est pas vraiment USB, mais il est vu par MPLAB par le port série, comme si on branche l'original via son port serie. L'intérêt d'être quand même en USB est double : d'une part les ports séries disparaissent sur les PCs récents, d'autre part le bus USB permet d'alimenter l'ICD ainsi que des cibles de consommation raisonnable, ce qui est fort pratique. Fichiers de construction Deux versions de l'ICD2-like vous sont proposés. Elles ne diffèrent que par leur présentation physique, le fonctionnement est 100% identique (mis a part la led "ERROR" qui a disparu sur la version "boitier", mais son montage est facultatif sur la version "standard"). Il est donc possible de réaliser une version "standard" (simplement avec quatre pieds) ou une version à intégréer dans un boitier : Version "standard" Version "boitier" Voici les fichiers nécessaires pour la version standard : - Le schéma (Format haute résolution ici ) :
- Vue du typon : ![]() - Typon au format PDF (attention! imprimer avec zoom à 100% afin de respecter la taille). Note : les pistes sont sur le Bottom Layer, imprimer sans mirroring. Attention de l'appliquer du bon cote sur votre PCB. - Le plan d'implantation général des composants (Format haute résolution ici ) : ![]() - Le plan d'implantation des composants montés dessous, en SMD (Bottom Layer) : ![]() - Le plan d'implantation des composants montés dessus, en through hole (Top Layer) : ![]() - Télécharger la liste des composants, au format .txt Voici les fichiers nécessaires pour la version boitier : - Le schéma (Format haute résolution ici ) :
- Vue du typon : ![]() - Typon au format PDF (attention! imprimer avec zoom à 100% afin de respecter la taille). Note : les pistes sont sur le Bottom Layer, imprimer sans mirroring. Attention de l'appliquer du bon cote sur votre PCB. - Le plan d'implantation général des composants (Format haute résolution ici ) : ![]() - Le plan d'implantation des composants montés dessous, en SMD (Bottom Layer) : ![]() - Le plan d'implantation des composants montés dessus, en through hole (Top Layer) : ![]() - Télécharger la liste des composants, au format .txt ![]() Et bien sur le boitier ! Il s'agit d'un model de chez Teko (www.teko.it), type "soap", modèle 10011.9, taille 56*90mm à l'extérieur et voici la documentation. Il est possible de le commander chez Distrelec, numéro d'article 30 01 64. Réalisation Il faut commencer par programmer le PIC avec un bootloader. Celui ci permet, une fois l'ICD connecté à MPLAB, de reprogrammer le PIC (écriture de la mémoire programme) afin de charger le Firmware correspondant à la famille de PICs choisie (12F, 16F, 18F, ... ). Il est donc nécessaire de disposer d'un programmeur de PICs pour programmer le bootloader. Il existe deux différents bootloaders : l'original pour la version 16F876 et un modifié pour la révision A, donc 16F876A (la programmation interne diffère légèrement entre les deux versions, d'ou les differents firmwares) : Télécharger le Bootloader version "standard" Télécharger le Bootloader version "A" Pour le montage des composants, il faut commencer par souder IC1 et IC2 (programmé avec le bootloader !) qui sont montés dessous, en SMD. Faire correspondre le repère de la patte 1 avec le petit "1" qui est gravé sur le PCB. Il est préférable de contrôler IC1 à la loupe afin de vérifier les soudures (ponts). ![]() Après, souder les 2 ponts (en rouge sur le plan d'implantation) puis par la suite, des éléments les plus minces aux plus épais : résistances, diodes, condensateurs film, IC3, transistors, etc. Note : la self présentée ici est une version SMD, mais montée dessus. Il suffit pour ca de lui souder 2 pattes récupérées d'une résistance et le tour est joué (la gamme des selfs SMD est nettement plus vaste que les selfs-through-hole). Voici un aperçu de l'assemblage : ![]() Utilisation Pour commencer, il faut télécharger les drivers ci-dessous, les décompresser dans un répertoire et lorsque vous connectez votre ICD2, il faut lui indiquer ce répertoire. Les drivers ci-dessous ont été testés et fonctionnent sans problèmes sur mon système : Télécharger les Drivers FT232 CDM - Version 2.00.00 - Win 2000 - XP Drivers pour autres OS sur le site de FTDI Attention ! Certaines anciennes version des drivers fonctionnaient, d'autres pas ! Donc il est déconseillé de les utiliser. Au sujet des nouveaux drivers 2.00, FTDI a unifié ses drivers : le VCP (Virtual Com Port driver) et le DXX (Direct driver) se retrouvent maintenant en un seul package CDM (Combined Driver Model). Pour les chips récents (comme le FT232R que nous utilisons ici) c'est un bit dans l'EEPROM du chip qui détermine si le driver VCP est installé ou pas; dans mon cas il s'est installé, si vous avez des problèmes contactez-moi. Une fois les drivers installés, deux nouveaux périphériques seront présent dans le gestionnaire : un sous l'USB et un sous Ports Com (vous pouvez voir quel numéro de port a été attribué à votre ICD2 à cet endroit). A présent, il est temps de lancer MPLAB. Dans le menu "Debugger" > "Select Tool", choisir "MPLAB ICD2". Puis dans ce même menu, choisir "MPLAB ICD2 Setup Wizard...". Sélectionner le port COM où votre ICD est connecté puis les diverses options selon vos choix. Une fois ceci fait, il faut downloader un premier firmware dans la cible (nécessaire uniquement la première fois, après MPLAB demande s'il peut mettre à jour lors de changement de famille ou de version de MPLAB) grâce au menu "Debugger" > "Download ICD Operating System" : ![]() Choisir le fichier proposé par MPLAB (*.hex) puis clicker sur ouvrir. La LED "busy" de l'ICD2 doit s'allumer et l'opération peut prendre quelques minutes. Une fois celle-ci terminée, votre ICD2 est fonctionnel et vous devriez avoir un output dans ce genre : ![]() Dernier détail, ajuster la tension de programmation VPP à l'aide du trimmer P1. Menu "Debugger" > "Settings", onglet "Power" : ![]() Ajuster à la valeure requise pour votre microcontroller (générallement 12-13V) en tournant P1 et en cliquant sur "Update". Voilà, votre ICD2 est terminé. Si vous avez des questions ou s'il ne fonctionne pas comme prévu vous pouvez toujours me contacter.
Updates : 12.08.06 : Explications avec le nouveau driver CDM de FTDI 17.10.06 : Ajout de la version boitier (+ divers petites corrections) |
|||||