English Version French Version Spanish Version

MIDIbox Hardware Platform, Core Module

Le module CORE est le coeur de toutes les applications de la plateforme MBHP. Le module repose sur un composant principal : le PIC18F452, un micro-contôleur fabriqué par Microchip. Il fonctionne à une fréquence de 40 MHz (synchronisé en externe par un crystal 10 MHz) et offre des performances suffisantes pour gérer tous les modules analogiques et numériques avec une latence inférieure à 1ms. Le PIC dispose d'un système complet intégré, c'est à dire qu'il contient non seulement un CPU, mais aussi une mémoire-programme flash de 32k, 1536 bytes de mémoire pour les données, 256 bytes de données sur une EEPROM, et beaucoup d'autres capacités périphériques comme un convertisseur AD et un mode UART (pour le MIDI). J'ai pris la décision d'utiliser des contrôleurs PIC pour mes applications MIDI depuis déjà plusieurs années, et je continue à travailler avec cette famille de produits car il sont économiques et que les hobbyistes peuvent se les procurer facilement, n'importe où dans le monde. A la différence d'autres micro-contrôleurs (plus modernes), le PIC reste facile à programmer, ne requiert pas de mémoires externes et est quasi-indestructible. De plus, les PICs sont disponibles en package DIP, et ceux qui débutent en électronique peuvent ainsi travailler avec ce chip sans craindre de l'endommager, les petites pattes SMD (Surface Mount Device) étant elles plus fragiles et nécessitant une bonne pratique de la soudure.

Par ailleurs, Microchip considère toujours de produire des puces à la connectique compatible, ce qui offre de bonnes perspectives pour l'avenir. La MBHP a débuté avec un PIC16F877, maintenant c'est un PIC18F452 qui est utilisé, et pour les futurs projets nécessitant beaucoup de mémoire tels que les MIDIbox SEQ V3 ou MIDIbox SID V2 , c'est un PIC18F4620/4685 qui a été choisi. Tant que ces mise à jour sont possibles, basculer vers une autre famille de produit (comme les micro-contrôleurs Atmel ), avec tous les avantages et désavantages que cela représente, n'est pas nécessaire. Et de nouvelles applications compatibles au niveau logiciel et matériel vont pouvoir voir le jour dans les années à venir.

MBHP_CORE_V3

A ce jour, le module CORE en est à sa troisième version, avec quelques améliorations dans le circuit et le layout. Malgrés tout, vous pouvez toujours utiliser l'anciennne version du module. A l'attention des utilisateurs à qui il resterait une ancienne version du circuit à monter, une page spéciale a été créé, elle contient toutes les informations relatives à l'ancien module.

Téléchargements

Les modèles de PCB peuvent être ouverts, modifiés et convertis avec Eagle Light
Module Schéma Layout Aperçu
MBHP_CORE_V3 mbhp_core_v3.pdf mbhp_core_v3.brd mbhp_core_v3.gif
Informations complémentaires
Fichier Taille Description
mbhp_core_orderlist.txt 1k liste de commande chez Reichelt

Ports Disponibles

Les interfaces suivantes sont disponibles sur le module CORE :

Nom Nbre de pins Description
J1 2 Connection vers l'alimentation. La sortie d'un transformateur 7V-10V ou un adaptateur mural peuvent être utilisés. Il est recommandé d'avoir  500 mA, surtout lorsque vous avez un écran rétro-éclairé, mais le MIDIfilter et le MIDImerger fonctionneront très bien avec 100 mA . Vous pouvez choisir aussi bien une alimentation DC ou AC, un pont rectifieur derrière J1 assurant un courant DC de toute façon. De fait, la polarité n'a pas d'importance non plus.
J2 2 Sortie +5V, qui peut être utilisée pour alimenter un autre module CORE dans un environnement multi-processeurs, dans ce cas vous n'avez besoin de monter les composants relatifs à l'alimentation (X1, IC3, C5, C6) que sur un seul module CORE. Restriction: Le régulateur 7805 chauffe beaucoup lorsqu'il délivre un courant au dessus de 500 mA, donc seul les modules CORE sans écrans rétro-éclairés comme pour les MIDIO128, MIDImerger, MIDIfilter peuvent être alimentés par ce port.
J2 peut aussi être utilisé comme entrée +5V pour une alimentation stabilisée fournissant déjà ce voltage, ou pour alimenter le module depuis le port J2 d'un autre CORE. Dans les deux cas le régulateur (IC2) ne doit pas être monté, et le reste du circuit de stabilisation de J1 et J2 (X1, C5, C6) peut être omis. Si le module CORE (et tous les autres modules qui y sont connectés) nécessitent plus de 100 mA, il est recommandé de monter C5 directement sur J2 (un petit câble entre les trous de montage du 7805 retiré fera l'affaire).
Notez qu'alimenter plusieurs CORE depuis un module CORE principal n'est recommandé que si l'ensemble de votre système ne consomme pas plus de ~ 500 mA. Dans le cas contraire, le 7805 chauffera trop! Et plus particulièrement si des LEDs et/ou des LCDs rétro-éclairés sont connectés à chaque CORE, il sera préférable de monter un 7805 sur chaque CORE .
Des exemples de connections pour le port J2 sont disponibles ici : diagramme des interconnections pour le SID et exemple de PSU pour la MIDIbox LC.
J3 3 obsolete depuis la révision v3
J4 4 Interface vers le BankStick, vers les modules MBHP_IIC_* tel que le MBHP_IIC_MIDI, et second port MIDI IN pour le MIDImerger.
J5 10 Interface vers le module AIN pour les MIDIbox64 et MIDIbox64E. Il existe aussi quelques applications qui utilisent ces pins comme entrées ou sorties digitales.
J6 5 Interface vers le AIN module pour les MIDIbox64 et MIDIbox64E
J7 5 Interface vers le module MF, également utilisé parfois pour les modules MBHP_AOUT ou MBHP_AOUT_LC.
J8 5 Interface vers la chaîne de modules DOUT.
J9 5 Interface vers la chaîne de module DIN.
J10 8 Interface vers les modules spécifiques aux applications tels que le module SID.
J11 4 Port MIDI digital IO, interface vers le module LED/Thru/COM. Peut aussi être utilisé pour cascader plusieurs modules CORE en créant une chaine MIDI, (voir MIDIbox Link). Note: Ne montez pas l'optocoupleur (IC2, 6N138) lorsque vous utilisez le pin J11:MI (MIDI-IN) comme entrée, car dans ce cas l'entrée Rx recevrait des données de plusieurs sources simultanément, ce qui n'est pas autorisé par le protocole MIDI (point-to-point). Un MIDImerger sera nécessaire pour combiner plusieurs sources de données MIDI
En d'autres mots : lorsque vous utilisez le module COM ou lorsque vous connectez le port J11:MO d'un module CORE au port J11:MI d'un autre CORE, ou encore lorsque vous connectez votre CORE directement au Gameport, l'optocoupleur de l'autre module ne doit pas être monté afin d'éviter des flux de données MIDI invalides.
J12 3 Port MIDI OUT. Reportez-vous aux schémas pour savoir comment y connecter une embase MIDI.
J13 3 Port MIDI IN. Reportez-vous aux schémas pour savoir comment y connecter une embase MIDI.
J14 1 Utilisé par le MIOS comme entrée pour les Touch Sensors. Parfois également utilisé dans des procédures de débuggage
J15 16 Interface vers un module LCD.

Used Components

Voici la liste des composants utilisés. Une liste de commande complète chez Reichelt est disponible ici, pour les U.S.A. une liste de commande chez MOUSER est disponible sur le site de SmashTV, et si vous avez fait une liste pour un fournisseur dans votre pays, n'hésitez pas à me la faire parvenir, elle sera publiée ici.

Nom Valeur Description
IC1 PIC18F452 (or PIC16F877-20) Le micro-contrôleur PIC - utilisez le PIC18F452 pour les applications basées sur le MIOS. Il est recommandé de ne plus utiliser le PIC16F877!
C1, C2, Q1 2*33pF
10 MHz for PIC18F462
20 MHz for PIC16F877-20
Le circuit résonant pour l'oscillateur interne du PIC. Note: Un quartz 10MHz avec coupe parallèle doit être utilisé (PIC16F877: 20 MHz!!!). Il existe aussi des quartz pour circuit résonant en série (ceux utilisé la plupart du temps dans les applications radio) qui ne délivre pas une fréquence juste pour l'oscillateur du PIC.
R1 100 Cette résistance connecte l'entrée reset "low-active" du PIC (MCLR#) au +5V. A l'allumage, une charge "lente" assure que le reset du PIC soit correctement effectué. Vous pouvez connecter un bouton "reset" si vous le désirez, ce bouton devra être connecté entre le pin MCLR#-et le pin Vss (masse). Dans cette configuration, la résistance évitera un court-circuit lors du reset .
R2, R12 1k Ces résistances 1k  sur le +5V (Pull-Up) sont nécessaire pour l'interface IIC. Sans celles-ci, votre MIDIbox pourrait ne plus répondre, se réinitialiser fréquemment ou encore envoyer des données MIDI invalides lors des tentatives d'accès au matériel IIC  - n'oublez donc jamais de les monter!
R3 10k Pas vraiment nécessaire ,-)
T1 BC337 Contrôle le courant pour le rétro-éclairage des écrans LCD
R4 1k Protège la base du BC337 de courants trop élevés.
P1 10k Cette résistance variable sert au réglage de la luminosité du rétro-éclairage des LCDs.
P2 10k Cette résistance variable sert au réglage du contraste des LCDs.
IC2 6N138 Tout matériel MIDI dispose d'un tel optocoupleur, servant à isoler l'entrée MIDI de l'appareil connecté à l'autre bout, afin d'éviter tout dommage éventuel.
Au cas ou vous ne pourriez pas vous procurer de 6N138, vous pouvez vous servir d'un 6N139 (la connectique est compatible). Le 6N136 est également compatible, mais requiert une modification du circuit (merci Arto pour l'avoir testé!)
R5, R6 5.6k, 1.2k Résistances Pull-Ups/Downs pour l'optocoupleur, valeurs suggérées par Bjorn Julin.
D1 1N4148 Diode de protection de l'entrée MIDI protégeant l'optocoupleur si les pins du MIDI In se trouvaient inversées par erreur.
R7, R8, R11 220 Résistances de protection des ports MIDI, elles limitent le courant si les ports MIDI sont court-circuités par erreur
R9, R10 10k Résistances Pull-Ups pour les entrées digitales, elles assurent un signal stable lorsque les modules DIN ne sont pas connectés.
IC3 7805 Un régulateur de tension qui stabilise l'alimentation à 5V indépendament de l'intensité et des variations de température. Il tolère un courant de charge jusqu'à 1.0A si un radiateur adéquat est installé, jusqu'à 500mA sans radiateur.
C5, C6 2200uF, 330nF Pour lisser la tension en entrée du régulateur (ripple rejection).
C3, C4 10uF, 100nF Pour lisser la tension coté circuit (ripple rejection).
C7, C8 100nF Ces condensateurs de "Bypass" doivent être montés sur l'autre face du PCB , aussi prés que possible des pins d'alimentation du PIC.
X1 B40C800 Un pont-redresseur pour 40V/800mA en boitier rond. Normalement, un tel pont-redresseur n'est nécessaire que si le circuit est alimenté en AC (courant alternatif), mais il est recommandé de l'utiliser également si le circuit est alimenté en DC (courant continu), vous éviterez ainsi tout dommage en cas d'inversion des cables d'alimentation. Eventuellement le pont-redresseur peut être remplacé par 4 diodes 1N4001, leur disposition est décrite sur le schéma .
J* * Tous les connecteurs sont optionnels, les câbles pouvant être soudés directement sur le circuit. Sinon je vous suggère d'utiliser des embases SIL  (header sockets), telles qu'on en trouve sur les carte-mères des PC. Elles sont économiques et très pratiques.
DIL SOCKETS N'oubliez pas de vous procurer des socles (sockets) pour le PIC et l'optocoupleur. Le PIC nécessite un socle DIL à 40 pins, l'optocoupleur un socle DIL à 8 pins.
MIDI SOCKETS 2 embases MIDI  sont nécessaires pour les ports MIDI In/Out.

 

Guide de Soudage

Commencez par souder les 4 ponts , ces derniers vous évitent d'avoir à réaliser un pcb double-face (2-layer). Utilisez pour cela le reste des pattes de vos résistances et condensateurs que vous avez déjà montés, et attendez d'avoir fini tous vos modules avant de les jeter! :-)
La résistance 1k "R12" doit aussi être soudée au plus prés du PCB, car elle sera recouverte ensuite par le support 40 pins.
Montez les composants.
Gardez à l'esprit, que pour les condensateurs electrolytiques C5 et C4, pour la diode D1, pour le transistor T1 et pour les deux ICs (PIC et optocoupleur), la polarité doit être respectée. Si vous avez un doute, reportez-vous aux schémas, ou ouvrez le fichier .brd file avec Eagle.
Les pattes du 7805 peuvent être légèrement pliées comme sur la photo. Ce sera nécessaire si vous utilisez un connecteur DIL pour le LCD (socket J8)
Deux cables isolés doivent être soudés au dos  PCB (voir aussi l'aperçu). Ils sont uniquement requis pour l'utilisation de certains modules (par ex. modules IIC, module SID). Si vous êtes certain que votre application n'a pas recours à ces modules, vous pouvez vous abstenir d'installer ces ponts.
TESTS: alimentez votre module une fois que tous les composants sont montés à l'exception du PIC et de l'optocoupleur. Vérifiez le voltage entre les principaux pins à l'aide d'un multimètre (analogique ou digital, peu importe) avant d'installer le PIC et le 6N138 dans leur socle :
IC1:MCLR(1) - IC1:Vss(12) = 5V
IC1:Vdd(11) - IC1:Vss(12) = 5V
IC1:Vdd(32) - IC1:Vss(31) = 5V
IC2(8) - IC2:(5) = 5V
Une photo d'un module terminé - vous noterez certaines différences entre ce module et les autres modules CORE, c'est juste que j'en ai monté plusieurs en essayant différentes conceptions :)
Cette image montre la dernière version.
L'étape suivante consiste à uploader le MIOS, et si ça ne fonctionne pas, à débugguer vos connections MIDI.

 

Soudage des cables (à la demande de certains)

tout d'abord dénudez l'extrémité du câble à l'aide d'une pince coupante
le câble doit être étamé afin d'assurer une bonne jonction
les connecteurs doivent être eux aussi préalablement étamés
vous pouvez maintenant souder facilement vos câbles à vos pins sans ajouter de soudure


Last update: 2015-09-24

Copyright 1998-2015, Thorsten Klose. All rights reserved.