Affichage des articles dont le libellé est D-MIDI SWITCH. Afficher tous les articles
Affichage des articles dont le libellé est D-MIDI SWITCH. Afficher tous les articles

lundi 19 septembre 2022

MIDI SWITCH

The basic functions of the MIDI switch prototype work well. I'm still developing the system but at the same time, I'm redesigning the printed circuit board. 

The prototype was developed from an Intel OEM FPGA module placed on a motherboard that I created myself. On this motherboard, four connectors connect four small printed circuits each supporting four RJ45 sockets, for a total of sixteen ports.

This way of doing things was perfect for a prototype but not at all suitable for a finished product.
What I particularly appreciate is making it as simple as possible. And since the study from the prototype I experimented with a new type of FPGA more practical to use than Intel circuits, I took the opportunity to redesign the entire switch on a single printed circuit :

The circuit used will allow me to route the MIDI ports but also to perform some processing on the MIDI data. Everything will be programmable using, I hope, a small software running on PC and potentially on MAC.

mardi 9 mai 2017

M.I.D.I. Switch : il y a de la vie...

'Petite' vidéo des premiers signes de vie du switch M.I.D.I. : 


Rien d'exceptionnel, le fonctionnement était prévisible. Ceci écrit, 'pour une fois' j'ai étudié à fond le processeur et ses possibilités en rapport avec l'objectif de la carte. De plus, j'ai procédé à un routage totalement manuel du circuit afin de faire 'vraiment' très propre. C'est du temps, mais le résultat est là!

Et je me dois de souligner une nouvelle fois l'efficacité de la chaîne de développement libre fournie par le groupe AC6, à savoir l'IDE 'System Workbench for STM32' basé sur Eclipse, avec compilateur intégré à la distribution. Cet IDE fonctionne en 'stand alone' sans obligation de connexion permanente à Internet, comme l'horrible solution de chez Cygnal.
Associé au très performant configurateur STM32CubeMX qui permet notamment de tester très facilement les nombreuses possibilités d'horloges et de routage de ces signaux au sein des différents blocs du processeur, l'ensemble de ces deux outils permet de réellement se concentrer sur son travail de développeur, à savoir faire les bons choix matériels, les bonnes configuration, puis programmer et tester facilement le tout. Cette situation est actuellement très loin d'être la norme dans le monde des micro-contrôleurs!

J'ai connu bien pire comme système de configuration....
Peu de ressources matérielles du processeur sont utilisées. Au milieu des années 90 j'avais étudié à peu près le même type de switch M.I.D.I., mais à base de processeur 68000. Comment dire, ce qu'offre un tel processeur de type ARM permet aujourd'hui de concentrer le tout dans ce 'petit' mille-pattes, avec des performances même pas imaginables en rêve à l'époque...

Le 'vrai' travail de programmation peut donc commencer :-)

vendredi 28 avril 2017

Temps subjectif....

Cela fait presque deux mois que je n'ai rien publié de vraiment concret en réalisations électroniques sur mon blog. Et pourtant, j'ai plusieurs projets en cours. Parfois je me dis que le temps passe beaucoup trop vite.

Mais ce matin, j'ai eu la 'bonne surprise' de découvrir le paquet contenant les circuits imprimés pour mon projet de switch M.I.D.I.

Ce switch M.I.D.I. est 'THE' projet qui me tient à cœur en ce moment. Cela fait presque 30 ans que je désirs réaliser le réseau M.I.D.I. 'de mes rêves'. Après une tentative en 1987 qui n'a pu aboutir parce que je ne possédais pas à l'époque les ressources matérielles et financières pour réaliser ce travail, après pas mal de 'brain storming' sur comment faire ce que je pense être mieux, après une espèce de mix entre ma tentative de 1987 et une nouvelle définition de ce réseau M.I.D.I. avorté il y a quelques mois, voici ce qui sera j'espère l'élément central de mon réseau M.I.D.I. :


Joli circuit imprimé, vide pour l'instant. J'espère ne pas avoir trop de mauvaises surprises au cours de son montage. Parce que refaire un circuit pour corriger une erreur n'est pas trop compliqué, par contre c'est un mois de délai avant de recevoir la nouvelle version!
...

UPDATE 07/05/2017

A la faveur d'un long week-end, j'ai pris le temps de monter la carte. Voici ce que cela donne :


Cela ressemble assez à vrais dire, à l'image 3D réalisée 'vite fait' avec le logiciel de CAO même s'il manque des empreintes 3D :


Avant de monter complètement la carte, j'ai bien pris soin de mettre en place tous les composants de la partie alimentation puis de tester les tension fournies, puis d'installer le processeur et de vérifier son accessibilité par l'émulateur JTAG, avant de monter le reste des composants.

La carte d'émulation JTAG provient d'une carte de la famille stm32nucleo dont la partie 'carte de test' peut être détachée de l'émulateur JTAG. Une bonne solution à prix très faible, mais qui permet de travailler très correctement en développement temps réel avec les processeurs ARM de chez ST.

Et d'ailleurs, voici une capture d'écran du processeur de ce 'futur' switch M.I.D.I. reconnu par le logiciel ST-LINK :


Il ne reste plus qu'à passer à la programmation de cette 'petite' carte. J'ai déjà quelques prototypes d'adaptateurs de mon réseau  vers le 'vrai' réseau M.I.D.I. qui fonctionnent en point à point depuis une dizaine de mois sans avoir posé le moindre problème : de quoi avancer le développement logiciel dans les meilleurs conditions...

mercredi 5 avril 2017

M.I.D.I. SWITCH, le retour...

Cela fait plus de trois mois que j'ai publié un petit sujet sur le switch MIDI que je tente de créer.

Le prototype d'origine était constitué d'un processeur PIC et d'un quadruple port série. Cette configuration, bien que fonctionnelle, s'est révélée ne pas être du tout une bonne solution. Trop compliquée à développer et à mettre en œuvre.

Avant d'y passer une somme conséquente d'heures en développement, j'ai préféré pendant qu'il en était encore temps, redévelopper totalement le concept à base de processeur ARM de chez S.T.

Voilà qui est fait. Pour l'instant, j'ai 'simplement' créé un nouveau PCB :


Toutes les empreintes 3D ne sont pas présentes, mais cela permet de se faire une idée sur ce à quoi ressemblera la carte. Elle ne comporte plus qu'un seul circuit intégré, le processeur ARM.

De plus j'ai pris le temps de 'soigner' le design de la carte, contrairement à ma version précédente, histoire de partir dès le départ sur de bonnes bases :

Le dessous du PCB.
Le dessus du PCB.
Et enfin l'implantation des composants.

Voilà, il ne 'reste plus' qu'à faire réaliser ce circuit, à le monter, et à effectuer les premiers tests.
Je ne sais pas quand, j'ai déjà d'autres circuits qui attendent d'être montés.

vendredi 16 décembre 2016

M.I.D.I. Switch

Malgré un 'certain' nombre de projets en cours, j'ai réussi à trouver du temps pour monter partiellement la carte de ce qui 'devrait' être le centre de distribution de mon réseau M.I.D.I. perso. Ça ressemble à ceci :


Evidemment, je n'ai pas pu résister au 'plaisir' de faire une erreur bête sur ce circuit : l'empreinte du quartz Y1 est à l'envers. Et je n'ai aucune solution pour rattraper le coup, si ce n'est à placer le composant tête en l'air et souder ses pads avec du fil, directement sur les pastilles du circuit imprimé. Question CEM, ça va pas être ça du tout. Mais bon, c'est un prototype.

[ 19/12/2016 : en fait non, je n'ai pas fait d'erreur sur l'implantation du quartz. Ou de la mauvaise utilisation des statistiques...
J'avais quand même un gros doute sur une erreur d'empreinte du quartz, je me souvenais avoir bien 'étudié' le sujet dans le but d'éviter tout risque sur le circuit imprimé. Et puis une idée me prends, je teste la continuité des pads du quartz en diagonale, et tombe bien sur les deux pads reliés au GND, présentés de la même façon que sur le circuit imprimé. La relecture du datasheet me donne la réponse :


C'est écrit en gras : ce composant peut-être livré avec le pad n° 4 présentant le chamfrein, au lieu du pad n°1... d'ordinaire, sans que cela change quoi que ce soit à l'implantation réelle du quartz. Dont acte!
Il ne reste plus maintenant qu'à effectuer la première mise en service de cette carte... Quand j'aurai le temps!
19/12/2016 ]

[ 22/12/2016
Après quelques difficultés de reconnaissance du processeur PIC par le logiciel de développement Mplab, j'ai enfin réussi à programmer la carte avec l'inévitable 'Hello World', à savoir le clignotement de certaines LEDs directement accessibles par le processeur. Cette fois encore, l'erreur commise était du domaine de la pure distraction. Ce qui m'a conduit quand même à abîmer une piste du circuit imprimé et à devoir souder un fil en l'air pour rétablir la liaison. Parce qu'en fait, il semblerait qu'il n'y ait pas de problème sur cette carte, bien que je n'ai pas encore testé l'UART. Mais ça, ça sera pour janvier....
22/12/2016 ]

Et à propos de prototype, mon système de pilotage des paramètres sonore du Juno 2 de Roland est fonctionnel. Je n'ai finalement pas eu de problème matériel avec ce système, bien que toute la carte ne soit pas encore testée. La plus grande difficulté a été la gestion des différents ports série sous interruption. Le principe n'est pas compliqué, mais sur un environnement processeur et outil de développement que j'attaquais pour la première fois à fond, il a fallu s'adapter aux usages... Je vais tenter une petite vidéo du sujet que j'espère pouvoir publier sur ce blog avant la période de Noël...

Je remets mon adresse mail ci-dessous, mais je cherche actuellement une solution pour héberger une adresse mail à un prix non excessif et de manière perenne. Il faut bien avouer qu'héberger une adresse mail chez Yahoo, à la base, ça n'est pas très sérieux, mais aujourd'hui vu la façon dont Yahoo rend la chose pénible, le signal du départ est donné!

[ 17/12/2016
Je ne pensais pas si bien dire. Message de Yahoo ce jour indiquant un vol massif de données ayant eu lieu en 2013 sur les comptes Mail. On appréciera le délai de retour de l'information à l'utilisateur. Et plus généralement, nous voilà rentré dans la période de consolidation d'internet : Affaiblissement des services, précarité des solutions en ligne, médiocrité des applications connectées, généralisation de l'insécurité! J'ai constaté cette tendance il y a déjà plusieurs mois. Cela va faire TRES mal au 'numérique'!
C'est sur, vouloir faire passer des données sensibles dans des tuyaux à peu près aussi sécurisés, à la base, qu'un fil à linge, à terme cela peut provoquer quelques désagréments! Et pendant que j'y suis, je constate aussi le début d'un 'certain' désengagement de grands acteurs du domaine de l'IOT. Histoire de... j'écrivais ceci il y a presque deux ans!
A suivre...
17/12/2016 ]

[ 15/02/2017
Après quelques problèmes de mise en service, cette carte fonctionne parfaitement. Je précise que je ne vais pas continuer le développement de cette version de switch M.I.D.I. Je vais en développer une nouvelle version basée sur un autre type de processeur que celui utilisé.

En effet, pour cette version, j'ai utilisé un micro-processeur de la famille PIC32 associé à un circuit comportant 4 UARTS. Cela fonctionne très bien, même si j'ai du recréer pour l'occasion des pseudo bus d'adresse/données/contrôle. En fait, c'est un schéma que j'avais en tête depuis très longtemps (but it is an other story). En plus de considérations électroniques, cette façon de faire rajoute aussi de la complexité logicielle. J'ai essayé, cela fonctionne, mais je considère que ça n'est pas la bonne solution.

Je vais donc redévelopper ce projet avec un processeur de type ARM. J'ai utilisé ce type de processeur dans un montage précédent et ai pu en apprécier les caractéristiques, ainsi que la facilité de programmation. Je vais donc utiliser un STM32L152RET6 :


Ce circuit dispose d'un nombre suffisant de ports séries (5) ainsi que de 80Koctets de RAM, le tout dans un seul boitier. Je pense que cela sera plus facile à gérer que ma version précédente.
15/02/2017 ]

UPDATE NOVEMBRE 2017 : Bien que cela prenne un peu de temps de développement, j'ai réalisé une nouvelle carte de ce switch à partir d'un processeur ARM. Cela se trouve ici :  MIDI switch. Parallèlement je redéveloppe aussi les adaptateurs MIDI cette fois je pense sur du processeur de chez T.I.