samedi 24 octobre 2026

Le premier microprocesseur CMOS

En 1976 RCA en mis en marché le premier microprocesseur en technologie CMOS. À cette époque les micropresseurs étaient en technologie NMOS. Mais maintenant c'est la technologie CMOS qui est utilisée pour les circuits intégrés logiques. L'avantage de cette technologie est la réduction de consommation électrique et une meilleure immunité aux interférences (noise margin). Ce microprocesseur de RCA s'appellait CDP1802. Il ne s'agissait pas seulement d'un microprocesseur mais d'une famille de composants appellée COSMAC (Complementary Symmetry Monolithic Array Computer). À cause de sa faible consommation électrique et sa meilleure immunité aux interférences la NASA l'a utilisé dans plusieurs sondes spatiales dont la sonde Galileo lancée en 1989 vers Jupiter.

architecture

Il n'y a pas que la technologie utilisée qui était différence des autres microproceseurs des années 197x. Sont architecture interne aussi. Il possédait 16 registres interne de 16 bits. Il n'y avait pas de compteur ordinal, ni de pointeur de pile dédiés. N'importe quel des 16 registres pouvait être désigné comme compteur ordinal. Au lieu d'un pointeur de pile il y avait un registre appelé data pointer qui pouvait-être utilisé à cet effet. Comme pour le compteur ordinal, le pointeur de donnée pouvait-être n'importe quel des 16 registres. Deux registres de 4 bits chacun permettaient de choisir lequel des 16 registres était utilisé. Le registre P sélectionnait le compteur ordinal et le registre X sélectionnait le pointeur de donnée.

Autre particularité du CDP1802 est qu'il y avait un mécanisme DMA (Direct Memory Access) intégré au MCU, deux broches sur le boitier du MCU DMA IN et DMA OUT permettaient un accès direct à la mémoire en interrompant l'exécution du programme. Le registre R0 était utilisé comme pointeur pour ces opérations. L'implication de cette fonctionalité est qu'il n'est pas nécessaire d'avoir un chargeur de programme en ROM. Lorsque les lignes CLEAR et WAIT sont à zéro le MCU se met en pause pour attendre une opération de DMA IN.

COSMAC ELF

En 1976 Popular electronics publiait dans son édition du mois d'août un projet de fabrication d'un petit ordinateur utilisant le CDP1802, bâptisé COSMAC ELF.

Ce petit ordinateur n'avait pas de mémoire ROM contenant un chargeur ou moniteur. Il ne possédait que 256 octets de mémoire RAM. L'utilisateur devait entrer son programme avec 8 switches de data en bas. Puisqu'il n'y avait pas de mémoire persistante le programme était perdu lorsque l'ordinateur était éteint et devait être rechargé à la main à chaque fois. Plutôt malcomode mais il s'agissait simplement d'un projet peu couteux permettant de se familiariser avec cette nouvelle techonologie des microprocesseurs.

COSMAC ELF+

À partir de l'article de Popular electronics j'ai fabriqué ma propre version du COSMAC ELF avec quelques modifications. Mon COSMAC ELF+ possède une mémoire EEPROM AT28C64B de 8 KO ainsi qu'une mémoire RAM AS6C62256 de 32 KO. J'ai choisi cette mémoire EEPROM parce qu'elle peut-être programmée octet par octet en circuit et ainsi mon programme n'est pas perdu lorsque je ferme le COSMAC ELF+

schématique du COSMAC ELF+

photo du COSMAC ELF+

vidéos

Je créé une liste de lecture sur Youtube pour ce projet.

lundi 13 avril 2026

programmeur d'eeprom et de mémoire flash version 2.3.1

J'ai fait une mise à jour de mon programmeur d'EEPROM et de mémoire FLASH. Maintenant il est possible de programmer des mémoires à interface SPI de type Winbond W25Q80 et W25Q128 ou d'autres marques qui utilisent les même commandes. Le jeux de commandes de ce type de mémoire étant standardisé, ça devrait fonctionner avec d'autres marques mais je ne l'ai pas vérifié.

Le projet est disponible sur github

Nouveau circuit et montage modifié

vidéo de démonstration

mardi 7 avril 2026

sonette de porte avec STM8L151K6

Le MCU STM8L151K6 possède un périphérique que peu de MCU 8 bits possèdent, un convertisseur Numérique/Analogique (DAC) de 12 bits. Il possède aussi 4 canaux DMA (Direct Memory Access). Donc il se prête bien à la lecture de fichiers audio. Avec ce projet j'ai donc utilisé ce MCU avec une mémoire FLASH de 1 MO sur laquelle j'ai enregistré 8 fichiers audio au format WAV. Un sélecteur permet de choisir le fihcier qui sera joué lorsque le bouton de la porte est activé. Les détails du projet sont sur github. Pour voir la vidéo de démonstration suivez ce lien

Schématique

Montage