jeudi 10 septembre 2015

Sauvetage d'un STUDIO 440.

Il y a quelques jours de cela j'ai reçu la demande d'un 'malheureux' propriétaire d'un Studio 440 pour un ELD5530, le clone de CEM5530 que j'ai réalisé.

Puis, quelques jours plus tard, la même personne me recontacte pour m'indiquer que malgré le remplacement du CEM5530, la machine ne sort toujours aucun son. Pire, lors de la procédure de diagnostiques internes, ceux concernant les test de la RAM d'échantillonnage (test n°2) et de son rafraîchissement (test n°0) indiquent que tous les circuits RAM sont en défaut.

Je propose donc de prendre en charge une tentative de dépannage de la machine.
Quelques jours plus tard, je reçois le Studio440 en question :

J'avais déjà retiré les capuchons des boutons avant de faire la photo.
La machine a du vécu, c'est sûr, mais se trouve dans un état esthétique plutôt correct. Comme de bien entendu, les switchs les plus utilisés sont pratiquement inopérants. C'est une caractéristique des machines Séquential de l'époque. Ces switchs sont de mauvaise qualité et ne supporte pas une utilisation intensive.

Mais, elle s'allume correctement. L'ayant branchée sur un disque dur externe de type Macintosh contenant une banque de son dont je connais bien le rendu, je constate que le chargement de la banque se passe correctement par la liaison SCSI : un bon début.

Par contre aucun son ne sort effectivement de la machine. Les tests de diag lancés, je constate que ceux afférant à la RAM d'échantillonnage sortent systématiquement en défaut.

J'ai donc du me plonger dans le schéma de la machine pour comprendre le mécanisme de chargement et de rafraîchissement de cette RAM. Je ne l'ai pas précisé, mais il s'agit de RAM dynamique, évidemment. Au milieu des années 80, les quelques centaines de mégas octets de mémoires n'étaient envisageables qu'en RAM dynamique.

Quels plaisantins, les concepteurs de l'époque chez Sequential. Je ne rentrerai pas dans les détails mais après plusieurs tests, j'en arrive à la conclusion qu'un des circuits custom est défectueux. Je le remplace donc par un circuit neuf :

Le deuxième à partir de la gauche, mais ça se voit à l'image, je pense ;-)
Puis, après avoir effectué quelques autres travaux autour de ce circuit, je redémarre la machine et lance de nouveau les tests de la RAM. Forcément, cela se passe beaucoup mieux :

J'aime bien la luminosité de l'afficheur VFD.
Notons que le test n°2, et le test n°0 concernant la RAM affichent le même message laconique lorsque ceux-ci se sont correctement déroulés.

Je recharge donc la banque de sons et constate que cela se passe bien maintenant. Après une série de tests, j'en arrive à la conclusion que la carte processeur de la machine est maintenant parfaitement fonctionnelle.
Ce qui n'est pas le cas de la carte analogique :
les premières constatations ne sont cependant pas catastrophiques. Une des huit voies audio émet un 'crachouillis', et une autre ne sort que sur le canal gauche.

La voie concernée par l'émission de bruit est la voie n°8. Un rapide test du CEM3389 m'indique qu'il n'est pas en cause. Je change quand même son support parce qu'il a vraiment été mal monté. Afin de tester rapidement le convertisseur numérique/analogique, je le dessoude de la carte et y place un support de circuit. Je remplace ce convertisseur par un équivalent fonctionnel et constate le même problème. L'examen à l'oscilloscope confirmera mes soupçons sur le fait que quelques bits sur la douzaine du bus de données se sont fait 'la malle'. Je découvre rapidement quel est le circuit logique responsable de ce problème. Il s'agit d'un CD40174.

De mémoire je n'ai jamais utilisé ces sextuples bascules D. Après m'en être procuré et avoir remplacé le spécimen défectueux de la machine, la voie n°8 fonctionne de nouveau correctement :

J'ai même retrouvé un circuit de marque RCA!
Petite digression sur cette recherche de composants. Par hasard de passage à Paris, je me dis que je pourrais mettre à profit quelques heures de temps libre pour cheminer dans la capitale à la recherche d'une boutique de vente de composants. Pour être honnête, il y a bien 15 ans maintenant que j'effectue d'habitude ce genre d'achat sur le NET.

Pour commencer, je passe chez Sélectronique, place de la Nation. Mauvaise pioche, ces gens-la vendent du Fisher Price (avis qui n'engage que moi!). Mais, un gentil vendeur qui, après m'avoir indiqué que sur place ils ne vendent pas de composants, en tout cas ceux que je recherche, m'indique une boutique située non loin de là, boulevard Diderot. Il s'agit de la boutique R.A.M :

Publicité gratuite et de bon coeur!
Ah, quelle joie de retrouver ce type de boutique. Un petit coup de nostalgie pour tenter de se remémorer quand fût la dernière fois ou je suis rentré dans un tel établissement à Paris. C'était avant les années 2000 et c'était boulevard du Montparnasse il me semble! Comment se fait-il que je ne sois jamais entré auparavant chez R.A.M : mystère!

L'authenticité chez R.A.M : devanture mal soignée qui rebute d'emblée les amateurs du dimanche. Non monsieur, ici c'est du sérieux! Je rentre, et effectivement le vendeur était en train de 'décourager' un jeune qui, semblait-il, tentait de travailler sur de l'Arduino, en lui proposant de faire plus sérieux en allant jouer sur de la PI. Hum... Un brin acariâtre le Monsieur, mais juste ce qu'il faut!

Bref : du bonheur. Ceux qui, comme moi, ont connu les 'belles' années de l'électronique comprendrons. J'adoptai donc le ton entendu et me fis remettre contre quelques euros, l'ensemble du stock de circuits 40174 : sept circuits! J'en eus pour mon argent avec des versions HEF, HCF, et... CD de chez RCA de surcroît. Et sans doute d'époque d'ailleurs. Ce qui va me permettre une restauration 'à l'identique', j'aime bien ça.

Je retournerai voir cette boutique, c'est sûr. Elle regorge de matériels neuf et anciens dont on ne saurait se passer quand on doit remettre en état de vieilles machines.

Pour en revenir au Studio 440 en cours de restauration, il me restait encore à trouver la raison pour laquelle une des autres voies ne sortait pas en stéréo. Encore une fois, les solutions adoptées à l'époque par Sequential et la piètre qualité des composants utilisés auraient pu être à l'origine du problème comme ce fut le cas sur un des mes 440. Mais non, il s'agissait 'simplement' d'un CEM3389 dont une des voies était muette. Par chance, le support de ce circuit étant correctement soudé à la carte, je n'ai eu qu'à le remplacer par un circuit fonctionnel que je possédais en stock.

Passons au lecteur de disquette. J'imagine qu'il y a vraiment un problème d'interférences électromagnétiques avec le câble en nappe reliant le contrôleur WD1770 au lecteur de disquette, ou avec le lecteur de disquette lui-même. Une solution pourrait être l'utilisation d'un émulateur de disquette comme l'émulateur HCX :


Le propriétaire du Studio440 dont il est question ici à fait cette démarche. Cependant malgré moult essais, je n'ai jamais été en mesure de faire reconnaître la carte SD par la machine. Ceci correspond cependant aux différents tests que j'ai moi-même effectué il y a quelques mois de cela avec cet émulateur. Je n'en sais pas plus pour l'instant mais il serait intéressant de creuser l'affaire à l'occasion puisqu'il 'semblerait' que cela fonctionne. A noter que j'ai installé cet émulateur dans un QX1 Yamaha qui l'a reconnu dès le départ sans aucun problème!
http://www.matrixsynth.com/2014/07/yamaha-qx1-digital-sequence.html
Malgré cela, ce Studio440 fonctionne correctement, tout du moins pour ses fonctions vitales. Après plusieurs manipulations, je constate que le potentiomètre de panoramique n'est pas fonctionnel. Il doit s'agir du potentiomètre lui-même car toutes les autres entrées du convertisseur CAN associé fonctionnent. Il reste aussi au propriétaire à changer les switchs fatigués de la machine. Une fois ces dernières interventions effectuées, ce studio 440 sera une super B.A.R. au look rehaussé grâce à l'afficheur VFD (j'en ai aussi commandé un, du coup).


21 Avril 2016 : CONNECTEURS DE L'ALIMENTATION A DECOUPAGE D'ORIGINE


Il s'agit des connecteurs J2-J3-J4. Présenté machine ouverte normalement c'est à dire connecteurs à gauche, nous avons le brochage suivant :

+5V
GND
+15V
-15V

Ce brochage est VALABLE POUR LES TROIS CONNECTEURS.

En image voici ce que cela donne :


Il s'agit d'une alimentation de marque Cherokee International / Ref : QF1G1 (merci Jamal) de taille 15 X 10 cm.

mardi 1 septembre 2015

Forth pour LPC1114FN28

Il y a quelques jours, en parcourant les news du site http://hackaday.com, je suis 'tombé' sur une nouvelle intéressante concernant le portage du langage Forth sur le processeur LPC1114FN28 de chez NXP. Ce superbe travail a été effectué par Matthias Koch. Nouvelle intéressante car j'ai développé une carte d'expérimentation pour ce circuit. Je pensais donc être en mesure d'obtenir rapidement un système autonome et assez efficace. Ce fût le cas.

La carte de dev LPC en compagnies de quelques cartes sœurs.
Pour rappel, la carte de développement Micromite (autre carte développée par mes soins) contient, elle, un interpréteur Basic extrêmement efficace. Mais il s'agit d'un interpréteur. Dans le cas du Forth, il s'agit plus d'un compilateur qui traduit directement les lignes de code entrées par le port série, en code natif, d'ou une exécution extrêmement rapide des programmes. A noter que cette implémentation Forth fonctionne dès 512 octets de RAM et est en mesure de générer le code soit en RAM, soit directement en Flash, un peu à la manière du Micromite.

La procédure d'implémentation de ce compilateur Forth est on ne peu plus triviale. Il est nécessaire de télécharger la version mecrisp-stellaris-2.1.3.tar.gz (version 2.1.3 à la date de ce billet) disponible sur le site Sourceforge.net. La décompression de cette archive permettra de trouver le fichier 'mecrisp-stellaris-lpc1114fn28.hex' dédié, on s'en douterait, au processeur LPC1114FN28! 

Ce fichier 'hex' doit être programmé dans le LPC à l'aide de la carte de développement que j'ai développé (la programmation peut aussi se faire sur plaque d'essais en fil volants, mais c'est moins pratique), et par exemple le logiciel FlashMagic : 

Il n'y a plus qu'a user du bouton 'start'!
Avec le message de fin de programmation si la procédure s'est déroulée correctement. Il n'y a pas de raison qu'il en soit autrement avec la carte de développement :

Ready!
Il ne reste plus qu'à utiliser un émulateur de terminal série pour vérifier le bon fonctionnement du système. Ici encore, la flexibilité de la carte de développement permettra de travailler directement en USB sur n'importe quel PC. En ce qui me concerne, j'utilise couramment le logiciel Realterm, facilement trouvable sur Internet. Il convient cependant de configurer cet émulateur de terminal pour un résultat optimal.

Tout d'abord le type d'émulation :



Puis le port série concerné et la configuration nécessaire à la communication avec Forth à savoir 115200, 8, N, 1 : 


Enfin, il est nécessaire de désactiver les broches RTS et DTR de l'interface série sinon le processeur reste constamment en mode RESET :


Il ne reste plus qu'à appuyer sur le bouton RESET de la carte pour obtenir l'invite du compilateur Forth : 

J'aime qu'un plan se déroule sans accrocs ;-)
Et maintenant? Impossible de ne pas tenter l'inévitable "Hello World" de l'électronique, à savoir la LED qui clignote. Très sympa, l'auteur de ce compilateur Forth, non content d'avoir eu la bonne idée de prévoir une implémentation du Forth sur le LPC1114, a aussi prévu quelques programmes de test dont l'inévitable Blinky dont je reproduis ci-dessous le code :

\ Blink a LED on P1.8

$40044014 constant IOCON_PIO1_8
$50013FFC constant GPIO1_DATA
$50018000 constant GPIO1_DIR

: blinky ( -- )
  $C0 IOCON_PIO1_8 ! \ Set P1.8 as GPIO without Pullup/Pulldown. $C0 are reserved bits that must be set.
  256 GPIO1_DIR    ! \ Set P1.8 as Output

  begin
    256 GPIO1_DATA !
    1000000 0 do loop
      0 GPIO1_DATA !
    1000000 0 do loop
  key? until
;

Ce code se passe de commentaire... Si ce n'est que, bien que la carte de développement possède une LED dédiée à ce type d'exercice, je ne souhaitait pas modifier le programme de l'auteur car sur la carte, la LED ne se trouve pas sur le port P01_8. J'ai donc câblé une LED 'externe' directement sur le PORT P01_8 :


Le système utilisé avec la LED jaune reliée sur le connecteur externe.

L'étape suivante consiste donc à 'envoyer' ce fichier à la carte de développement à l'aide de l'émulateur de terminal. Afin de laisser le temps au noyeau Forth de décoder les lignes envoyées et de les gérer, j'ai inséré quelques milli-secondes d'attente après chaque lignes. Realterm permet d'effectuer ce type d'action très facilement : 

Juste avant d'appuyer sur 'Send file'....
La carte a correctement reçu le programme :


Il suffit dès lors de taper la commande 'blinky' pour lancer l'application et constater le clignotement de la LED : 

Et voilà!
Remarque : la rapidité d'exécution de ce système est remarquable. Une boucle vide telle que le 'programme' suivant : 

: delay 0 do loop ;  ok.

10000000 delay ok.
 
s'exécute en à peu près 4 secondes. Pour rappel, le Micromite version 2 exécute une boucle basic vide en 11 secondes. Une carte à 8051 basic rapide, en 50 secondes et le vénérable Sharp PC1500 en 3000 secondes. Nous sommes donc plus de 700 fois plus rapide que le PC1500.