Non au génocide des Palestiniens et des
Libanais par Israël!L'État d'Israël ne représente pas
les juifs du monde entier, qui sont les citoyens de
leur propre pays et non d'un “peuple juif”,
et ne sont pas coupables des crimes et de
l'apartheid commis par ce gouvernement nazi.
|

Le système est basé sur un CPLD (composant de logique programmable), qui remplace ici un microcontrôleur. C'est même pour cette raison que je mets le schéma sur internet: peu d'amateurs bricolent les CPLD et les FPGA, alors que beaucoup mettent des microcontrôleurs à tort et à travers, je voudrais leur donner l'envie de se mettre à la logique programmable. Même si, en réalité, pour un tel circuit il est nettement plus simple d'utiliser un microcontrôleur (par exemple un STM32 par exemple sur une carte Blue Pill, un Atmel sur une carte Arduino, ou un PIC de chez Microchip).
Avertissement: J'ai créé cette page pour quiconque sera
intéressé, mais sachez que la réalisation du circuit nécessite
quelques connaissances en électronique, et que le composant de
logique programmable (un CPLD) que j'ai utilisé, le MAX3064A de
chez Altera (ensuite filiale d'Intel) a eu une longévité
remarquable mais a fini par être arrêté, de même que le
MAX7064AE (alternative compatible, fabriqué en gravure plus
fine). Le 5M80Z de la famille MAX V d'Intel conviendrait, mais
un particulier aura du mal à l'acheter à l'unité, et les
boîtiers minuscules rendent la fabrication très compliquée.
Voici les schémas (cliquez
pour voir en grand, puis revenez à cette page):
Rien de bien particulier, si ce n'est qu'il faut travailler
proprement sur la partie en 220V, car sinon c'est dangereux.
Veillez à avoir au moins 8 mm d'espacement entre les parties sous
tension secteur et les parties sous basse tension.
Cette partie-là nous interrompt dans la mise en ouvre du CPLD. Oui, mais si on n'avait pas d'abord compilé le code VHDL, on aurait couru le risque de ne pas utiliser le bon circuit. Et si on ne construit pas au moins une partie du circuit, on n'a aucune chance d'arriver à programmer le CPLD. Donc voilà!
Il y a deux parties:
la partie 220V (relais, transformateur, alimentation), qui ne pose guère de problème. Elle est reliée à l'autre partie par uniquement 3 fils: la masse, l'alimentation 3.3V pour la logique (le CPLD n'accepte pas le 5V, donc j'ai tout mis en 3.3V), et le fil par lequel le CPLD décide s'il faut ou non couper le courant.
la partie logique, qui mérite plus d'attention.
Au milieu de la partie logique, le CPLD. Il est monté sur
support, car pour bricoler c'est plus facile. À cette époque, il
existait, pour ce type de boîtiers (PLCC), des supports bien
adaptés aux plaques d'expérimentations à trous, grâce à des
broches au pas de 2.54 mm, alors que la plupart des supports PLCC
sont soit inutilisables par les bricoleurs (car à soudures CMS
situées sous le support et donc inaccessibles), soit avec des
broches disposées en quinconce et qui ne s'adaptent pas facilement
aux plaques d'expérimentation.
Le CPLD a plusieurs fils d'alimentation, certains pour le cœur (VCCINT), certains pour les sorties (VCCIO): ici tout est en 3.3V, donc tout est relié, mais il ne faut pas négliger de mettre un petit condensateur de 100nF sur chaque alimentation.
Quatre fils vont du CPLD à un petit connecteur marqué "JTAG": c'est par là qu'on va programmer le CPLD, sans avoir à le retirer du montage.
On note le quartz 32768 Hz (récupéré dans une vieille montre) qui cadence tout le système.
À noter aussi: les mêmes fils servent à balayer les colonnes du clavier et à commander l'allumage successif des 3 afficheurs.
Petite vacherie: les transistors que j'ai utilisés, marqués PH2222 et PH2907 (compatibles avec les références stnadard 2N2222 et 2N2907), ne sont pas dans le boîtier habituel TO-92 mais dans le boîtier TO-92S qui est plus plat. Or le côté plat le plus large du TO-92S est du côté opposé au côté plat du TO-92. Si on n'y prend pas garde, on se retrouve donc à inverser les broches 1 et 3 (c'est-à-dire, pour ces deux transistors, l'émetteur et le collecteur). Ceci vous explique pourquoi j'ai indiqué l'annotation «inversé?» sur le schéma, comme je n'avais pas compris ce détail.

La solution "normale" consiste à acheter le câble "ByteBlaster"
chez Altera/Intel. On le branche d'un côté au port parallèle du
PC, de l'autre au connecteur JTAG à 10 points qui est sur le
montage. Puis on lance Quartus-II (ou MaxPlus-II, ou aujourd'hui
Quartus Prime Lite), on lui signale qu'on a une chaîne JTAG
contenant un unique composant (un EPM3064ALC44) et qu'on veut le
programmer avec le fichier "coupatan.pof".
Petit détail technique: c'est le CPLD lui-même qui décide qu'il faut laisser le montage allumé, donc avant qu'il soit programmé cela ne peut pas fonctionner. C'est pour cela qu'il y a un cavalier nommé "marche forcée" sur la partie 220V: mettez ce cavalier, branchez le courant, appuyez sur le bouton poussoir: ça s'allume, pour ne s'éteindre que lorsqu'on retirera la prise. Ceci permet d'effectuer la programmation, une fois que c'est fini (et débranché du secteur!), on peut retirer le cavalier.
Concernant le câble de programmation:
Apprenez le VHDL et jouez avec des composants de logique programmable. C'est un monde que vous ne soupçonnez pas si vous ne connaissez que les microcontrôleurs!
Je vous pardonne d'avance si vous trouvez qu'il est stupide de faire un tel montage pour une minuterie de grille-pain.
Le grille-pain cité ici est
dangereux pour deux
raisons:
La consommation de l'afficheur à LED, et de la bobine du relais
puissant et à coupure bipolaire, impose une alimentation basse
tension relativement puissante, réalisée ici avec un
transformateur et un redresseur. C'est un coût non négligeable,
qu'on pourrait aujourd'hui réduire en utilisant une alimentation à
découpage (type chargeur de smartphone). Ceci, et le coût des
autres composants, n'est peut-être pas justifié pour ce montage.
Chacun jugera.
L'utilisation de la logique
programmable
Comme déjà indiqué, utiliser un CPLD (circuit de logique
programmable) et le langage VHDL pour ce montage relève un peu
d'un exercice de style.
À l'époque où il a été fait, c'était atypique mais pas absurde: le
CPLD ne coûtait même pas plus cher qu'un microcontrôleur, et il
pouvait être programmé avec des outils gratuits (quoique
propriétaires) tandis que les microcontrôleurs nécessitaient des
outils très coûteux (il y avait des outils gratuits pour les PIC,
mais ils étaient très médiocres et imposaient de programmer en
assembleur).
Aujourd'hui tout a changé: les microcontrôleurs coûtent très peu
cher (par exemple les STM32 les moins chers, ou la carte BluePill
basée sur le STM32F103 ou ses clones, ou encore les PIC, ou les
Atmel AVR utilisés dans les premières cartes Arduino), tandis que
les CPLD et FPGA sont un peu plus chers et beaucoup moins faciles
à acheter à l'unité, car dédiés à des applications un peu
spécifiques, par exemple acquisition très rapide de données,
traitement vidéo en temps réel, ou connexion d'un grand nombre
d'entrées-sorties. La plupart des fabricants de microcontrôleurs
proposent des outils de développement performants et gratuits (et
parfois libres), et des câbles peu coûteux (moins de 10€ pour un
câble ST-Link avec interface SWD). Les outils de développement
pour les CPLD sont propriétaires, généralement gratuits pour les
modèles basiques mais souvent avec des licences précaires
(autorisation pendant 1 an sans garantie pour l'avenir), encore
que Altera est plutôt correct sur ce plan, et les câbles coûtent
souvent dans les 100€. Enfin, le secteur des petits CPLD est peu
concurrentiel (les entreprises Intel, AMD et Microchip contrôlent
presque l'ensemble du marché), contrairement à celui des petits
microcontrôleurs.
Le montage est également devenu plus complexe: les CPLD et FPGA
modernes utilisent une tension très basse en interne (1.8V, 1.2V,
voire moins): ceci demande des composants supplémentaires, et
demande de grandes précautions pour garantir une stabilité
suffisante (compatibilité électromagnétique = CEM). Même les
entrées-sorties fonctionnent en basse tension: le 3.3V est parfois
autorisé, mais souvent déconseillé sous peine de réduire
l'espérance de vie du circuit, et là aussi il y a des précautions
à prendre. Tandis que les CPU peuvent généralement être alimentés
en 3.3V, et générer eux-mêmes la tension interne dont ils ont
éventuellement besoin.
Enfin, ce qui n'a pas changé depuis la création de ce montage,
c'est qu'il est difficile pour un bricoleur d'apprendre tout seul
le principe de fonctionnement d'un CPLD ou d'un FPGA, le langage
VHDL qui permet de les configurer, et les outils de débogage
(essentiellement par simulation VHDL). Un bricoleur trouvera
beaucoup plus facilement des informations compréhensibles sur la
programmation d'un microcontrôleur, sur le langage C, et sur
l'utilisation d'un débogueur (même si, étrangement, beaucoup de
bricoleurs ne semblent pas en comprendre l'utilité).
Toutefois, il y a toujours des personnes qui ont besoin
d'apprendre à utiliser la logique programmable, et d'apprendre le
VHDL. Si ces personnes trouvent un intérêt à regarder ce montage,
cette page aura rempli tous ses objectifs.