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:
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