(D'après l'article RADIO-PLANS 520 P.79-82 de X. FENARD)

Ce "loader" constitue un des maillons d'une mini-chaîne de développement pour le monochip 68705P3 de Motorola. Il s'adapte sur les programmateurs de monochips Motorola (ou compatibles) Ces derniers étant plutôt orientés vers la duplication de monochips que vers la création de logiciels, le chargeur présenté ici étendra les possibilités.

 

Un programmateur de monochips

Le schéma est reproduit à la figure 1, il est tiré d'une note d'application de Motorola. Il peut programmer des monochips 68705P3,R3 ou U3. Tous les programmateurs connus utilisent ce principe. Le programme est mis dans une EPROM, type 2716/32 et durant la programmation le contenu de celle-ci est copié dans le monochip.

Le programme de copie est contenu en ROM dans le monochip, il est activé lorsqu'une tension de 12 Volts est appliquée sur l'entrée timer avant sont initialisation. Pour ce programmateur, il faut avoir inscrit le programme dans l'EPROM avant de le porter dans le monochip, il faut donc disposer d'un programmateur d'EPROM. Le coût et le temps de développement est accru par ce passage forcé par une EPROM. Le chargeur décrit permet d'éviter ce passage. Il s'adapte au programmateur et permet de programmer directement le monochip.

Utilisation du chargeur

Elle est simple, après sa mise en place et les modifications à effectuer sur le programmateur, il est connecté par une liaison série RS232 au PC (ou autre) (figure 2). Les modifications du programmateur permettent d'utiliser celui-ci soit avec le loader, soit dans son ancienne configuration. Pour charger le programme, il faut:

Schéma du CHARGEUR (figure 3)

Le chargeur utilise un.. 68705, connecté en parallèle sur le 68705P3 à programmer; Le support de l'EPROM reçoit une mémoire RAM de 2Ko, une 6116. Un inverseur monté sur le circuit RAZ permet à un seul des 2 monochips (le LOADER ou l'ORIGINE) de fonctionner. En mode LOADER, au départ ORIGINE reste en état haute-impédance, puisqu'il est bloqué. LOADER envoie un message de présentation sur la liaison série ( à 1200 bits/s) puis allume une LED, initialise la RAM à 0, puis allume l'autre LED pour indiquer qu'il est prêt à recevoir le fichier. Une fois celui-ci chargé (il a reçu l'indication de fin de transfert qui sous le format MOTOROLA, est S9), il éteint la seconde LED et vide le contenu de la mémoire sur la liaison série (un dump...) ceci permet de vérifier son contenu. Une fois celui-ci vérifié ou après la fin du transfert du fichier, en basculant l'inverseur, on bloque le LOADER et on active ORIGINE qui copie le contenu de la RAM dans son EPROM. En cas d'erreur de Checksum, il passe en mode dump dès l'erreur. Si il y a erreur, le DUMP est activé (LED éteinte) avant l'indication de fin de transfert du PC. L'avant dernière ligne du fichier contient les vecteurs d'initialisation et d'interruption, ils sont placés à la fin de la mémoire. Lors du dump, leur présence donne une quasi certitude qu'une transfert correct a été réalisé.

REALISATION DU CHARGEUR

Un petit circuit imprimé a tété créé à cet effet. Le loader a été installé à droite, il utilise un quartz de 3,6864 Mhz afin d'avoir une vitesse bit correcte (baud rate) de 1200 bauds. Il est alimenté en 5 Volts uniquement, la plupart des pattes sont reliées en parallèle sur l'ORIGINE. Mais trois signaux sont nécessaires en plus: OE,WR et RAZ, certaines pattes de ORIGINE n'étant pas utilisées, ces signaux sont véhiculés par elles. On utilise un support à wrapper pour ORIGINE. Afin de pouvoir isoler les trois pattes du support, il est soudé à 1 centimètre de hauteur sur la carte.

Après analyse du code de programmation, PB5 est configuré en sortie. Pour conserver la double configuration RAM/EPROM, il est préférable de passer par PC3 (voir implant. Et photo).

Modification du programmateur

Il faut isoler les pattes OE et VPP de l'EPROM, elles deviennent OE et WR, un double inverseur connecte ces pattes sur leurs connexions d'origine en mode EPROM, ou connecte ces 2 signaux sur les pattes du support du MONOCHIP en mode LOADER. Attention, si l'interrupteur est en mode EPROM et le LOADER en place, le LOADER peut mal supporter le fait que du 5 volts (VPP de l'EPROM) soit appliqué sur une des sorties (surtout quand elle passe à 0 en écriture). Les distraits peuvent ajouter des résistances de 100 ohms en série sur ces 2 lignes. Un inverseur assure la RAZ de ORIGINE ou LOADER. Il peut être intéressant de mettre un interrupteur en plus sur les RAZ de LOADER; en effet, à la fin de la programmation, en rebasculant la RAZ, le LOADER recommence un cycle de chargement en mettant à zéro la mémoire. Si l'on veut programmer en chaîne plusieurs monochips, il est intéressant de bloquer LOADER après le chargement du code.

Il se peut que le programmateur ne soit pas équipé d'interrupteur de "confort"; on peut monter par exemple, un interrupteur "25 Volts" (avec une LED associée) ou un "blocage programmation" en court-circuitant l'émetteur et le collecteur du transistor T2, S1 (cf. figure 1).

Le format MOTOROLA

Il s'agit du format S1/S9. Le fichier est sous forme ASCII (lettres, chiffres). Une trame est constituée d'un en-tête: S1, puis d'octets ASCII donnant en hexa décimal: la longueyr de la trame, 2 octets d'adresse, les octets de contrôle (Checksum). Le code S9 indique une trame de fin, elle est vide de contenu.

La liaison PC

On n'utilise que 3 fils : transmit, receive et masse. Mais le DOS n'envoie des données que si les signaux de contrôle sont corrects. Pour lui permettre de fonctionner seulement avec ces 3 signaux, il faut sur le connecteur du câble soit relier des plots, soit et c'est la solution de l'auteur, mettre des pull-ups sur les entrées directement sur la carte (pin 5,6,8,20). Cette dernière solution permet de fonctionner en 3 fils, et ne compromet pas la gestion des signaux si nécessaire. Les logiciels de communication, gérant directement le hard, autorisent le fonctionnement en 3 fils. D'autre part, il faut configurer la liaison série en mode 7 bits 1200 bits/s, avec ou sans parité, 1 ou 2 bits de stop. Le logiciel du LOADER qui gère l'interface réception série détecte le front descendant. Si l'on configure la liaison en 8 bits, le 9ème bit (le bit de parité) est pris comme le start bit du prochain caractère.

Le logiciel… ou le paradoxe de l'œuf et la Poule

Code à implanter dans le 68705P3 : loader05.s19 (2Ko) Shift-Cliquer pour télécharger.

Se référer aussi à l'archive rassemblant divers articles de X. FENARD parus dans Radio-Plans: xfenard.zip Shift-Cliquer pour télécharger.

Il a été écrit au plus court et il est listé au format Motorola dans le tableau 1. Il faut un monochip programmé pour programmer les autres … ou bien charger une EPROM et utiliser ( une dernière fois?) son programmateur en mode EPROM. Un petit problème a été résolu, mais il est important de le noter. Pendant le transfert il n'y a pas de contrôle de flux, si les adresses sont en ordre décroissant, il est nécessaire de remettre à zéro le compteur d'adresses, et, en se dépêchant, de le remettre à jour (les octets continuent à arriver) (cf. Figure 1 , CI4). Pour éviter le problème, il suffit de mettre les trames en ordre croissant. En général elles le sont. Un "buffer" de 16 octets a été créé. Enfin , le PORTC bit 0, permet de faire une gestion de flux, le bit est activé dès qu'un RESET du compteur est effectué, il est désactivé au moment ou le compteur est à jour.

Autre utilisation possible: Lire une Eprom 2716

Laisser le support de l'Eprom vide, lancer le LOADER. Celui-ci initialise la RAM à 0 (mais le support est vide). Dès qu'il indique qu'il est prêt à recevoir, mettre l'EPROM, envoyer S9, à ce moment il "dump" le contenu de l'EPROM vers le PC. Comme l'effacement de la RAM ne se fait que la première fois, l se met en attente d'une trame S1/S9, on peut à nouveau lire une autre EPROM.

LE SYSTEME COMPLET

Récapitulons… Pour réaliser un système complet, il faut disposer d'un PC (avec une liaison série), d'un assembleur, du programmateur et du loader, enfin d'une lampe UV pour effacer le Monochip.

Un assembleur disponible en version démo ECAL peut suffire (choisir le type 6805).

L'auteur l'a testé avec le loader. Une fois l'ensemble constitué, cette base va permettre la réalisation de maquettes d'une très grande souplesse et ce monochip sera aussi simple à utiliser qu'une porte NAND. Le choix du 68705 a tété fait pour 2 raisons: son coût et la capacité nécessaire dans les réalisations usuelles (la domotique par exemple). Une configuration intégrant, en même temps un récepteur infrarouge (soft), une liaison full duplex (soft) etc.. est possible.

L'écriture du logiciel

C'est un pas un peu difficile à franchir. Passez plus de 20 fois le monochip sous UV avant d'avoir une version "qui ne plante pas" est courant au début (pour ne pas dire inéluctable). Le chargeur a necessité cinq passes, (écriture, test, effacement, modification), les erreurs sont humaines…

L'auteur n'utilise pas de débuggers ni de simulateurs, mais de la méthode. Cela ne veut pas dire qu'ils ne sont pas dans certains cas utiles, mais on peut s'en passer. Pour vérifier "où il passe", on peut utiliser un port (C ou/et B) les instructions BSET et BCLR sont employées pour poser des sondes soft dans le source. Enfin, en vérifiant le source, se mettre à la place du processeur, c'est une méthode absolue pour de rendre compte des "divergences" entre ce que l'on veut et ce qu'il fera!

Extension possible du loader

Ce n'est plus qu'une question de SOFT… En modifiant le logiciel du loader, et en ajoutant une ou deux liaisons pour A11, A12, il est possible de lire les 2732,64. On peut aussi, en utilisant un adaptateur, programmer des Eproms, éditer les mémoires…

X.FENARD


Retour.

Retour à la Page d'accueil

M-à-j: 24/07/1999

matthieu.benoit@free.fr