lundi 13 juillet 2015

TRC294A: Décrochage

La loi de Murphy est respectée: après remontage des afficheurs et test prolongé, le TRC294A décroche au bout de quelques heures. J'avais déjà eu ce problème mais il s'était résolu de lui même après avoir nettoyé les connecteurs du fond de panier. Tout comme hier mais hélas, ce matin, plus rien à faire sauf à envisager de trouver pour de bon la cause de ce décrochage.

Le problème est assez rapidement isolé: le VCO 102-103MHz de la boucle de synthèse ne sort plus rien. Le diagnostic est confirmé en injectant en lieu et place un signal de 102.5MHz à 13dB.

Ce VCO est, hélas, intégré dans un boitier métallique rempli de mousse. Après démontage et extraction du capot, cette mousse s'avère impossible à enlever mécaniquement. Je me résous donc, dans un premier, à simplement refaire les soudures une à une, l'une d'entre-elles pouvant être sèche.

Et, chance inespérée - quoique envisagée - le VCO redémarre après avoir refait les soudures autour du FET. Il va rester sous tension pour le reste de la journée sous une source de chaleur - une lampe d'éclairage fait parfaitement l'affaire ici - pour confirmer que la panne n'est pas d'origine thermique.

Note1: La réparation semble être valide, le VCO n'ayant pas bougé après plus de 8 heures de test. Il a donc été remonté et le récepteur est de nouveau fonctionnel.

Note2: Avis à mes lecteurs, je recherche toujours un tiroir transposeur TRC2949. Celui-ci doit ressembler comme deux gouttes d'eau au tiroir TRC2919 présenté ci-dessous et que je possède déjà. D'avance merci.



dimanche 12 juillet 2015

TRC294A: Affichage - suite

L'affichage de caractères inattendus à la suite du changement des afficheurs du TRC294A est assez désagréable. J'ai donc décidé de modifier le firmware du récepteur pour résoudre le problème. 

La lecture du contenu des deux EPROM 2764 et l'analyse du code 6802 embarqué à l'aide du fabuleux logiciel IDA permet de retrouver assez rapidement la routine d'affichage. Il faut ensuite déterminer la meilleure approche: modifier le code de l'initialisation du tampon d'affichage ou modifier ce même tampon juste avant qu'il ne soit exploité. La première approche s'avère compliquée car imposant de nombreuses modifications, toutes différentes.
La seconde en revanche est simple puisqu'elle consistera en l'écriture d'une routine chargée de modifier toutes les occurrences du caractère NUL (0x00) dans le tampon par le code du caractère espace (0x20).

Cette routine sera stockée en fin de mémoire dans une zone libre (ici 0xDA10) de la seconde EPROM et appelée dans la fonction chargé de l'affichage, fonction localisée dans la première EPROM. Quelques instructions remplacées par l'appel à cette routine seront déplacées dans la nouvelle fonction juste avant l'instruction de retour.

Quelques essais plus tard, le code est fonctionnel. Le résultat est absolument parfait et permet d'employer sans plus aucun désagréments visuels les nouveaux afficheurs en lieu et place des originaux. Une affaire rondement menée en une petite matinée.

Deux améliorations pourraient être apportées à la routine de transcodage: 
1- le remplacement de tous les caractères non imprimables par un espace afin de coller à la table de décodage des anciens afficheurs mais je n'ai pas encore trouvé de cas imposant un tel transcodage,
2- le remplacement de la virgule par un point, la virgule des nouveaux afficheurs étant assez disgracieuse.