fastAVRlink
Notice de construction







I Caractéristiques

1.1Fonctionnelles

- 100% compatible avec le Grey TIGraphLink en mode 9600 bauds,
- taux de transfert réglable mais limité à 57600 bauds soit 6 fois la vitesse du TIGL (le taux de transfert TI/PC moyen est de 45 kbits/s dans le meilleur des cas),
- 'jumperless': pas de cavaliers pour la configuration de la vitesse de transmission et/ou des paramètres annexes,
- le logiciel du câble ('firmware') peut être mis à jour à tout moment,
- peut être alimenté soit par un bloc secteur externe, soit par une pile 9V,
- devrait fonctionner sur Macintosh mais non testé
- mode 'faible consommation' (pas fait !)
- ne monopolise pas complètement le port série sur lequel il est branché car se branche en cascade (comme un ZIP100, pas testé).
 

1.2 Techniques

- basé sur un microcontrôleur FLASH & RISC de chez Atmel de type AT90S2313 avec programmation en circuit (ISP, 'In Situ Programming'),
- support du contrôle de flux matériel de type CTS/RTS (obligatoire au-dessus de 38400 bds),
- requiert une source d'alimentation externe d'au moins 8V et de 14 à 20 mA (dépend de la fréquence qui peut aller de 1.8432 à 10.0 Mhz max voire 11.0592 MHz),
- utilise des composants courants donc bon marché,
- pas de programmateur spécialisé n'est nécessaire, le câble ayant un programmateur embarqué,
- possibilité d'utiliser quasiment n'importe quelle fréquence de quartz,
- se branche sur n'importe quel port RS232, éventuellement en série avec un autre appareil tel qu'un modem (pas complètement testé !),
- double tampon de 32 octets (réglable) en émission et réception pour de meilleures performances et une meilleure stabilité.

Prix indicatif: 100F chez Electronique Diffusion.
 

II Matériel & composants

2.1 Les composants

La liste des composants est la suivante:

Here ...

Le choix de certains composants n'est pas critique. J'attire toutefois l'attention sur le circuit intégré IC1 qui doit être du type HC. Pas de LS, HCT ou tout ce que vous voulez, rien d'autre que du HC ...
Pour le quartz, vous pouvez choisir quasiment n'importe quelle fréquence comprise entre 1.8432 et 10.0 Mhz voire 11.0592 MHz. Néanmoins, de cette fréquence dépend le taux de transmission du port série qui doit satisfaire à une exigence standard: le ratio d'erreur doit être inférieur à 2%. Dépasser 1% n'est pas conseillé (plus de bruit donc moins fiable). Tout est résumé dans le tableau ci-dessous:


The table above comes from the Atmel's Features.pdf documentation...

Enfin, plus la fréquence est élevée, mieux le câble support les haut-débits mais plus il consomme. A vous de voir...
A mon avis, le meilleur choix est 9.216 Mhz (meilleur rapport performance/consommation/prix) mais il est difficile à trouver.
Si vous n'arrivez pas à le trouver, un quartz à 11.0592 MHz est presqu'une meilleure solution parce qu'il est courant et vous fait monter plus haut en fréquence. Mais, le microcontroleur n'est certifié que jusqu'à 10 Mhz -> overcloking. En pratique ca marche très bien et de toute façon, Atmel tire des courbes jusqu'à 15 Mhz !!!
De toute façon, ces 2 quartz vous donne un ratio d'erreur de 0.00%.

Pour le transistor T1, n'importe quel transistor NPN fait l'affaire (BC547, ...).
Si vous n'avez pas le MOSFET T2, il peut être remplacés sans problème par un transistor NPN (BC547 par exemple) et une résistance de 10kohm prise sur la base du transistor. La partie avec T2 n'a pas été testée encore...
Pour le régulateur, vous pouvez mettre n'importe quel régulateur 5V: 78L05, 7805. Si vous décidez d'alimenter le montage par pile, le mieux est de mettre un régulateur à faible chute de tension tel que le LM2940 CT5 ce qui vous permettra de tirer parti au mieux de la capacité de la pile.

Enfin, des supports pour les CI ne sont pas superflus ! Le haut de gamme: les supports tulipes; le bas de gamme: les supports double lyres.
 

2.2 Les fournisseurs

A vous de voir lequel vous préférrez. Néanmoins, pour les composants plus spécifiques que sont le microcontrôleur et le connecteur TI, voici quelques adresses:

* AT90S2313: Selectronic (http://www.selectronic.fr) ou Farnell (http://www.farnell.com)
* le connecteur TI: RadioSpares (http://www.radiospares.fr)
* AT90S2313 et le connecteur TI: Electronique Diffusion

Le mieux: Electronique Diffusion, tous les composants nécessaires sont chez ce founisseur.
 

2.3 Le matériel

Le matériel habituel: fer à souder, soudure, pince coupante, voltmètre, etc.
 

2.4 Le circuit-imprimé (PCB)

Pour le PCB, soit vous le faites vous-même avec la méthode habituelle, soit vous le faites faire chez IMPRELEC par exemple, soit vous pouvez me le commander seul ou avec le µC.
 
 

III Procédure de montage

3.1 Le PCB

Je vous conseille très fortement de tester à l'ohmmètre une à une les pistes du PCB à votre montage. Cela pourra vous éviter des problèmes par la suite...
 

3.2 Le montage

Commencez par les composants les plus petits pour aller vers les plus gros (en hauteur); c'est plus simple de cette façon.
Faites attention à la polarité des éléments tels que les diodes, condensateurs, au sens des CI aussi.
Dans un premier temps, ne montez pas les CI sur leur support.

Une fois le montage réalisé, branchez-le et vérifier que la LED s'allume. Si oui, c'est déjà un bon point. Prendre un voltmètre et vérifier la présence d'une tension de 5V sur les pattes d'alimentation des CI (entre broches 8 et 14, entre broches 10 et 20).

Une fois ces quelques précautions prises, montez les CI sur leur support et pensez à mettre le cavalier ('jumper') de façon à être en mode RUN.
 

IV Le test

Maintenant que le montage est câblé, il va falloir être sûr qu'il fonctionne. Pour cela, lancer le petit utilitaire de FLASHage nommé 'avr_prommer' puis passer le fastAVRlink en mode PRG (cavalier retiré).
Jeter un coup d'oeil à la 'calibration value' et vérifier qu'elle soit dans les 20000 à 40000 (dépend de la vitesse du PC mais aussi de l'OS). Ensuite, choisir l'option 't' du menu. La séquence '1E 91 01' devrait apparaître. Si oui, la partie 'ISP' du montage fonctionne. Il sera donc possible de reprogrammer le fastAVRlink.
Si la séquence '00 00 00' s'affiche: soit le port série est utilisée par une autre application (-> reboot), soit le fastAVRlink n'est pas en mode PRG (-> enlever le cavalier), ou alors il y a un problème de câblage (-> vérifier).
 

IV La programmation

Cette étape requiert le mode PRG: être en mode RUN au préalable, lancer l'utilitaire puis passer en mode PRG (cavalier retiré).
Si le micro-contrôleur a été acheté pré-programmé, cette étape peut être sautée.
Sinon, placez vous dans le répertoire 'fastAVRlink' de l'archive et lancer le programmateur par un 'avr_prommer.exe' (Win32/NT4) ou './avr_prommer' (Linux).
Vérifier que le programmateur est prêt en faisant un 'test device code' et vérifier que la séquence '1E 91 01' s'affiche. Si ce n'est pas le cas, quitter l'utilitaire, repasser en mode RUN, lancer à nouveau l'utilitaire, passer en mode PRG et relancer un 'test device code'.
Ensuite, faire un 'program flash' puis un 'program eeprom'.
Pour vérifier que l'opération s'est bien déroulée, faire un 'read flash' et/ou un 'read eeprom'. Le programmateur devrait afficher autre chose qu'une liste de 'FF'.
 

V La configuration
 

Le fastAVRlink est par défaut programmé (étape IV) avec les paramètres suivants: quartz de 11.0592 MHz et taux de 19200 bauds.

Cette étape requiert le mode PRG: être en mode RUN préalablement, lancer l'utilitaire puis passer en mode PRG (cavalier retiré).
Le fastAVRlink est 'jumperless' (je sais, il y en a un quand même un !) car il stocke tous les paramètres de l'utilisateur dans une EEPROM. Pour modifier la EEPROM (et donc vos paramètres), un petit utilitaire est fourni: l'ASU ('AVRlink Setup Utility').
Voir le mode d'emploi (décrit séparément) pour plus d'infos.

La première chose à faire avant tout est de mettre à jour la fréquence de votre quartz car l'AVRlink Setup Utility s'en sert pour calculer le taux de transmission.
Si vous avez un quartz de 11.0592 Mhz, vous devez taper '11.0592' tout simplement. Pour 10 MHz: 10.0

Ensuite, pour un premier essai, fixer la vitesse de transmission à 9600 bauds (compatible Grey TIGraphLink).
 

VI Le test de vérité

Deux solutions pour tester:
- utiliser le logiciel de TI: beurk !
- utiliser TiLP (anciennement GtkTiLink) en choisissant comme câble 'Grey TIGL/AVRlink' et faire quelques transferts pour essayer.

Si le câble a passé la première épreuve du feu avec succès, il s'agit maintenant de le pousser à fond de ses capacités.
Pour cela, utiliser l'AVRlink Setup Utility et régler la vitesse de transmission à la valeur qui vous convient le mieux, c'est-à-dire: 9600, 19200, 38400 voire 57600 bauds.
Si il vous semble que le fastAVRlink a du mal à suivre (crash fréquents, erreurs de transmission), vous avez toujours la possibilité de travailler à un taux plus faible.
Pour ma part, il fonctionne de façon impeccable à 19200 bds, presque parfaitement à 38400 bds et à 57600 bauds, ca sera pour plus tard !
 

VII Et si ca ne fonctionne pas ?

Pensez à vérifier vos soudures et votre cablage liaison par liaison.
Si vous avez fait votre CI vous-meme, vérifiez aussi les pistes.

Personnellement, mon AVRprommer n'a pas marché du premier coup parce que la résitance sur TxD était coupée en 2 à l'intérieur !
Mon packager (JB) a aussi fait son AVRlink lui-meme. Il ne marchait pas à cause d'une mauvaise soudure.
Conclusion: prenez le temps de vérifier, ca fait gagner du temps...

Sinon, pour aider les malchanceux, je fournis 2 programmes de tests qui permettent de vérifier que la liaison série fonctionne correctement.
Ces programmes sont dans le répertoire 'test'.

Il y en a un pour tester l'émission et l'autre pour tester la réception via un programme d'écho.
Commencez par le programme du répertoire 'send'. Lancez 'a_out.bat' et revenez à la racine de l'archive pour lancer le programmateur.
Ensuite, lancez le programme Terminal via 'term.bat'. Vous devez voir apparaitre la phrase 'Ok'.

L'autre programme du répertoire 'echo' se contente de renvoyer le caractère que vous tapez dans le Terminal. Suivez la meme procédure que ci-dessus.

Si rien n'y fait, vous pouvez toujours me mailler (voir plus bas).
 

VIII Le schéma pour les curieux

Cette partie est destinée aux curieux qui désirent rentrer dans les arcanes du schéma...
Le schéma a l'air relativement complexe donc cher pour un simple câble TI-PC mais est en fait très simple.

On peut découper le schéma en 4 blocs distincts:
- l'alimentation: elle est située en bas à gauche. Il s'agit d'une alimentation régulée tout ce qu'il y a de plus standard. Mais pourquoi une alimentation ? Et le port série ? Je n'ai malheureusement pas pu utiliser le port série pour alimenter le fastAVRlink pour 2 raisons: il consomme beaucoup trop (20 mA) et je n'ai pas assez de lignes disponibles sur le port pour tirer du courant (de 10 à 20 mA par ligne TxD, DTR, CTS en théorie. En pratique, passé 6 mA, mon port s'écroule !).

- le microcontrôleur: c'est le pavé central. Il répresente à lui tout seul le coeur du câble (le reste étant principalement la connectique et le PCB). Il s'agit d'un microcontrôleur à architecture RISC de chez ATMEL possédant 1Kmots d'EPROM FLASH, 128 octets de RAM, 128 octets de EEPROM, un chien de garde, un port série, un temporisateur/compteur et un comparateur analogique. Il peut fonctionner de 0 à 10 Mhz. Il possède une fonctionnalité très intéressante développée par Atmel: le 'In Situ Programming' c'est-à-dire qu'il peut être programmé sur la carte sans le sortir de son support, tout ça via 3 fils !

- les 2 portes en haut à droite (IC1:1 et C) interfacent le port série du PC avec le port série du µC. L'interfaçage n'est pas vraiment aux normes RS232 mais offre déjà une mise en forme (robustesse aux parasites) et une protection.

- la porte en haut à droite (IC1:B) et les 3 portes en bas (IC1:D,E,F) implémentent le mécanisme d'ISP pour programmer le µC.

- le reste: le FET sert à isoler l'équipement du PC quand le fastAVRlink est en fonction.
 
 
 

--------------
Copyright (c) 2000-2001, Romain Liévin
http://lpg.ticalc.org/prj_tilp
rlievin@mail.com