Design
Pour ce préampli, j'ai besoin d'une alimentation avec deux rails symétriques pour alimenter la partie analogique (AOPs, DACs, ADCs, potentiomètres numériques), et d'un rail pour alimenter la partie numérique (Microcontrôleur, DACs, ADCs, potentiomètres numériques).
Dans mon cas, tous les composants numériques que j'utilise fonctionnent avec des signaux TTL, et certains de mes composants analogiques n'acceptent qu'entre ±3V et ±7V.
Dans tous les cas, ils est préférable de limiter le bruit conduit et émis par l'alimentation, et comme il s'agit de faibles puissances, on peut se contenter de régulateurs linéaires.
On a ainsi trois rails :
Rail Logique : +5V
Rail Analogique : +5V
Rail Analogique : -5V
Les trois rails sont régulés par des régulateurs 7805 et 7905, réputés pour leur fiabilité, et relativement peu bruyants lorsqu'ils sont bien filtrés/découplés.
Le transformateur est récupéré et fournit 2×15V 1.5VA (21V une fois redressé, 27V en pratique), ce qui est bien trop élevé... En pratique, le courant maximum consommé sur chaque rail est de l'ordre de 100mA, ce qui donne environ 2W dissipés par régulateur, qui nécessiteront un radiateur.
Schéma
Le schéma est simple, chaque régulateur a des capacités de découplage (chimiques pour les basses fréquences et céramiques pour le reste).
Les diodes de "backfeed" de chaque régulateur sont rarement placées, mais cela semble intéressant dans le cas de grosses capacités de sortie ou de plusieurs sources d'alimentation (+5V fourni par le debugger du microcontrôleur).
Le routage à cette forme-là :
Fabrication
Le PCB a été réalisé avec la méthode du transfert de toner, pour laquelle j'ai encore des progrès à faire (l'épaisseur de la couche de cuivre n'est pas uniforme).
À cause d'une légère erreur remarquée tardivement, le typon a été imprimé à l'envers, j'ai dû adapter le pont de diodes côté cuivre, et monter les régulateurs de tension à l'envers. Par chance, il y a peu de composants ont plus de 3 pattes et ne sont pas symétriques.
Les capacités chimiques de sortie sont placées un peu trop près des régulateurs de tension, et risquent de s'user à long terme. Pour limiter les risques, un radiateur a été placé sur les régulateurs de tension (attention, la base du 7905 est à isoler de la masse).
Tous les composants sont de de récupération, mais les composants passifs ont été testés et mesurés, surtout pour l'ESR des capacités chimiques. Les capacités céramiques sont des AVX X7R 50V, plutôt "bulletproof" pour leur utilisation.
Depuis plusieurs années, je voulais construire un préampli sur-mesure, qui convient à mes besoins.
Il est courant que j'utilise un PC ou un lecteur CD pour écouter de la musique, mais que je veux toujours avoir le son provenant d'un autre PC (notifications, bruitages de jeux), d'où l'intérêt du mixage entre plusieurs canaux, qu'aucun système grand-public ne propose.
Cahier des charges
Le but est d'avoir un système "tout en un", avec plusieurs sous-systèmes :
Mixeur 4 entrées stéréo
Sortie casque/enregistrement stéréo
Mixeur stéréo -> 2.1
Filtres ajustable
Contrôle par boutons poussoirs ou par roue codeuse (pas de potentiomètres)
Par contre il y a quelques contraintes à ajouter pour un système "fait maison" :
PCB simple face (ou avec peu de pistes sur la face top)
Boitiers de composants >0805 et >SOIC
Composants disponibles et abordables
Peu de câbles entre les modules
Boitier 455×350×44.5mm³ (rack 19")
Modules
Le préampli va être fait avec plusieurs cartes :
Les cartes notées en bleu ont déjà été fabriquées et testées, celles en vertes sont en cours de montage, celles en orange ont été conçues et sont en attente de montage, et celles en rouge sont remplacées temporairement par un kit de développement de micro-contrôleur.
Fabrication
Certains modules (préampli stéréo, préampli mono, filtre, contrôle de volume) sont utilisés en plusieurs exemplaires, et donc il devient pertinent de faire graver un circuit imprimé de qualité professionelle.
ATTENTION! Le connecteur est compatible mécaniquement avec celui utilisé pour les cartes graphiques PCI-Express, mais les pins ne sont pas les mêmes. Il y a des risques d'endommager l'alimentation ou la cage à disques.
Adaptation
Comme les connecteurs d'alimentation PCI-Express sont mécaniquement compatibles, il suffit d'y changer les fils. Pour ça, Molex fournit un outil à >20EUR, mais il est possible de démonter les cosses avec un petit tournevis plat (il faut tirer assez fort sur le câble).
J'avais une lampe de bureau articulée (pantographe) assez pratique pour éclairer une petite pièce, par contre elle a beaucoup de défauts de conception...
Transformateur fragile, encombrant, bruyant et probablement peu efficace,
La structure (laiton/acier) sert de conducteur, et est pleine de faux contacts après quelques années (oxydation aux articulations),
Les articulations sont souvent grippées (oxydation, absence de graissage à cause du contact électrique),
La lampe a une durée de vie faible (~1 an) avec une structure pleine de faux contacts,
Il est possible de court-circuiter la lampe en touchant une pièce métallique avec les deux côtés de l'armature...
Après quelques dégâts, j'ai eu plusieurs corrections :
Remplacement du transfo par une alimentation à découpage (tension réglable de 5V à 12V et limite de courant à 3A),
Nettoyage des articulations à plusieurs reprises, peu efficace,
Démontage de la barre de guidage du spot,
Remplacement de la structure conductrice par un câble,
Remplacement de la lampe 12V/35W par une LED 1W (moins lumineuse, mais probablement plus durable),
Câblage
Le câble d'origine est réutilisé et accroché le long de la structure.
Driver de LED
On utilise un transistor et un montage pour générer un courant constant à travers la LED.
On peut ajuster le courant dans la LED en fonction de la résistance Rs, avec Rs = V_F / I_led . Dans mon cas, j'ai utilisé un transistor Darlington (Vbe = ~1.3V), je devrais donc utiliser 3 diodes en série pour que la tension à l'émetteur du transistor soit de Vf (~0.7V).
Et dans ce cas, j'impose un courant de 300~350mA dans la LED, soit I_led = Vf / Rs = 318mA.
Sur cette photo, on voit une des diodes oubliées (de ce fait, la LED est traversée par 10mA, et n'est pas très lumineuse).
J'ai rajouté une diode en série avec tout le montage pour éviter les inversions de polarité (le socket est symétrique).
Le principe d'un asservissement est d'utiliser un capteur pour contrôler un actionneur.
Si le capteur est fiable et qu'on reste dans les limites de l'actionneur, il est possible de le contrôler précisément, même avec des perturbations (tension d'alimentation, frottements, contraintes mécaniques...).
L'asservissement d'un système ne va pas augmenter ses performances, au contraire, il faut disposer de "marge" pour qu'un asservissement soit efficace.
Ici, j'ai utilisé un moteur/réducteur d'imprimante Canon Pixma, avec un disque/encodeur optique (QEI) de 720pas/tour. (résolution de 150LPI).
Le codeur optique est branché sur les entrées d'interruption d'une carte Arduino Uno (qui permet de coder vite et mal...), et une / commande le moteur, alimenté en 12V.
Asservissement numérique
Plutôt que d'asservir avec un système analogique, on acquiert les capteurs et commande l'actionneur à intervalles fixes. Le système est en boucle ouverte entre ces instants. L'approximation d'un système discret équivalent à un système continu n'est vallable que pour une constante de temps grande devant la période d'asservissement (10ms).
Asservissement en position ErreurPosition = ConsignePosition - MesurePosition;
Commande = PPosition*ErreurPosition;
Sur la courbe et sur la video, on peut voir qu'on donne au système la consigne de faire un déplacement, puis un déplacement en frottant sur le moteur, ensuite on force sur l'arbre du moteur immobile.
Avec un tel système, on a une erreur statique (0.4%), des dépassements (4.3%) et un courant énorme (400mA au démarrage, 1.2A en forçant, pour un moteur spécifié à ~250mA). Par contre le temps de réponse est très faible (320ms).
Un système PID bien réglé permet de réduire les dépassements et de réduire l'erreur statique, mais le temps de montée dépend toujours des contraintes exterieures.
Asservissement en vitesse
Comme on ne dispose pas de capteur de vitesse mais d'un capteur de position, sa dérivée va nous donner la vitesse moyenne avec un retard d'une demi-période. EstimationVitesse = MesurePosition - AnciennePosition;
AnciennePosition = MesurePosition;
ErreurVitesse = ConsigneVitesse - EstimationVitesse;
Commande = PVitesse*ErreurVitesse;
Pour éviter les dépassements, on va commander le moteur en vitesse plutôt qu'en puissance. Un contrôleur PI permet d'avoir une erreur statique faible sur la vitesse, et donc aussi sur la position.
Une grande partie du déplacement s'effectue à vitesse constante. Mais le courant reste très élevé pendant l'accélération.
On a réduit l'erreur statique (0.13%), les dépassements (1.67%) et même le courant au démarrage (200mA). Par contre on a légèrement ralenti le système (400ms) et le courant est toujours trop élevé en forçant sur l'arbre (425mA).
Pour éviter d'avoir une mesure de vitesse aussi peu précise, il faudrait diminuer la fréquence de l'asservissement, ou utiliser un capteur avec une résolution plus fine.
Asservissement en couple
Ici, on ne dispose pas de dynamomètre, mais les cartes de puissance ont un retour sur le courant consommé. Comme ce signal est assez bruité (offset + bruit de commutation du moteur), il a été filtré avec un filtre passif (RC à 16Hz) et un filtre numérique à 50Hz.
On ralentit encore le système (440ms) et on n'a pas réduit l'erreur statique et les overshots, mais le courant est contrôlé (overshoot à 145mA en début d'accélération et 240mA quand le rotor est bloqué).
Intégrateur
Les intégrateurs intègrent l'erreur. Cela veut dire que la correction augmente de plus en plus jusqu'à ce que l'erreur statique du système soit compensée. Seulement la correction varie lentement (une correction proportionnelle est quasi instantannée), ce qui rend les dépassements quasi obligatoires.
Pour éviter cela, le plus courant est d'avoir un intégrateur avec un faible gain et une période d'intégration relativement rapide (<50 fois plus lent que la boucle d'asservissement).
Le problème c'est qu'un intégrateur peut diverger et tendre vers l'infini. Une bonne pratique est de borner son entrée et sa sortie (à la manière des intégrateurs analogiques qui saturent).
Réglages
Le système se régle du plus petit en plus grand.
On commande par la boucle de courant avec une valeur fixe, en réglant ses gains et son temps d'intégration pour avoir un faible écart statique et peu de dépassements. Il faut perturber le système manuellement pour vérifier la correction. Il est utile de borner la vitesse pour contrôler un minimum le moteur.
La boucle de vitesse va directement commander la boucle de courant, et est réglée de la même façon.
En dernier, la boucle de position va commander la boucle de vitesse.
Il faut tout faire pour éviter d'avoir un système qui oscille (même si ce n'est qu'un couinement à la fréquence d'asservissement).
Tips and tricks
La seule ruse restante permet d'avoir un écart statique rapidement compensé (avec un gain assez élevé) sans risquer des instabilités.
Il suffit de réduire la valeur de saturation au voisinage de la consigne, et donc de limiter l'action de l'intégrateur.
Une technique souvent utilisée est de compenser une action externe (typiquement le poids d'un objet "monté" par un actionneur linéaire) directement dans la boucle. Même une compensation partielle suffit à "aider" l'asservissement.
Une autre méthode est de faire varier les coefficients (P, I, D, saturations) en fonction du système : montée/descente, tension des batteries, masse (pas forcément constante si on attrape des objets).
Les problèmes les plus gênants viennent de la précision des capteurs ("sauts" sur des potentiomètres), mais surtout de problèmes mécaniques (jeu dans les engrenages, courroies élastiques, frottements non-constants, glissement de courroies/roues). Le plus grand risque est d'avoir un système oscillant.
Depuis que je suis à Galiléo, on utilise couramment des moteurs à courant-continu.
Comme les besoins sont toujours à peu près les mêmes :
Tension : 12V à 36V
Courant : <3A max
Commande : PWM et Direction
Puce résistante (limite de courant, protection thermique, boitier large)
Les ponts en H LMD18200 et LMD18201 de National Semiconductors/Texas Instruments supportent tous ces points et le LMD18200 rajoute une mesure de courant.
Ce chip a été utilisé par Galiléo depuis au moins 2005 avec diverses cartes.
La dernière version avait été conçue par la Oufff'Team. Plutôt que de commander les mêmes, j'ai refait le routage en utilisant des composants en boitiers SMD 1206 ou traversants (empreintes communes). Il a aussi été possible d'avoir un routage simple face (seulement les composants facultatifs sont sur la face top).
Schéma
La carte a un filtre CEM assez surdimensionné, un buffer pour le retour de courant et le schéma du LMD18200 issu de sa datasheet.
Il est possible de sous-dimensionner le filtre CEM si la carte ne risque pas de polluer les cartes environnantes et de shunter le buffer de retour de courant par R21 (voir de le supprimer si on utilise un LMD18201).
Routage
Top :
Si le buffer de courant n'est pas utilisé, il est possible de se passer de la couche top en n'oubliant pas le strap entre les pattes du LMD18200.
Le plan de masse de la couche top est isolé de la masse de l'alimentation (relié par des capacités) et est à relier à la masse mécanique du montage dans lequel est utilisée cette carte.
Bottom :
Le plan de masse est relié à l'alimentation par un filtre LC, pour éviter de transmettre le bruit du hachage à l'alimentation.
PCB assemblé :
Le schéma a tous les composants possibles, mais il est possible d'adapter certains composants à l'utilisation de la carte.
Utilisation
Le connecteur Molex a le brochage suivant :
GND
PWM (Activation)
DIR (Direction)
Sense (Retour de courant)
Le signal + de l'alimentation est à câbler sur le connecteur "24V" du côté extérieur à la carte.
Sur cette carte, le polyswitch/fusible et le retour de courant ne sont pas câblés, et le filtrage de l'alimentation est réduit (~500µF, pas d'inductances ni de résistances d'ammortissement).
Cette imprimante a un lecteur de cartes SD et Compact Flash sur une carte séparée (réf. QK1-3752-03, QM3-2812).
Identification
La carte utilise 3 puces : deux puces qui ressemblent à des régulateurs LDO, mais sans documentation vallable (marquages illisibles ou références introuvables), et le chip Genesys Logic GL819SA111 en boitier TQFP.
D'après le pinout de la puce, et un Ohmmètre, on en déduit une partie du brochage du connecteur :
Vdd (3.3V)
USB D-
USB D+
GND
?
?
?
GND
En identifiant le connecteur de la carte mère de l'imprimante à l'Ohmmètre et au Voltmètre, on arrive à identifier quelques autres pins :
Vdd (3.3V)
USB D-
USB D+
GND
+3.3V
Pin tiré à Vdd via un pullup de 15kΩ, à forcer à GND pour activer la puce.
+5V
GND
Câblage
Une fois les pins identifiés au connecteur USB et sur la carte, il ne reste plus qu'a tout souder.
Comme le +3.3V n'est pas disponible sur un port USB, et que la puce accepte une tension de 2.7V à 3.6V (idem pour les cartes SD), il est possible de relier le +5V à Vdd avec 3 diodes Si en série (les 1N400x conviennent et donnent une chute de tension proche de 0.65V en charge et à vide).
Par contre, la carte fonctionne en USB2.0 Hi-Speed, il faut donc un câble USB relativement propre (paire torsadée 90Ω).
En pratique, un câble sale (fils volants) fonctionne seulement si les fils sont de mêmes longueur (±5%) et courts (<50mm), La qualité des soudures peut aussi poser des problèmes.
Tests
En le branchant sur un PC (Linux), on peut avoir les messages d'erreur suivants (affichables avec la commande dmesg) :
usb 1-1.1.2: new high-speed USB device number n using ehci-pci, avec n bouclant entre 0 et 127.
Cette erreur arrive lorsque le câble est trop "sale" pour communiquer en mode high-speed.
usb 1-1.1.2: device descriptor read/64, error -n
usb 1-1.1-port2: Cannot enable. Maybe the USB cable is bad?
usb 1-1.1-port2: unable to enumerate USB device
Ces erreurs arrivent typiquement lorsque les pins D+ et D- sont échangés.
usb 1-1.1.2: reset high-speed USB device number 19 using ehci-pci
Si ces resets arrivent fréquemment, il est possible que l'alimentation de la puce ne fournisse pas assez de courant ou soit mal découplée.
Ils peuvent aussi arriver si le câble USB est trop long et non-torsadé/blindé.
Si aucun message n'apparaît lorsque la carte ou même un autre périphérique USB est branché sur ce port, c'est parce que les ports sont individuellement désactivés lorsqu'ils ont généré trop d'erreurs. Il est nécessaire de recharger les modules le gérant (ehci-hcd et ehci-pci sur ma machine)
Lorsque tout est fonctionnel, le noyau doit renvoyer : usb 1-1.1.2: new high-speed USB device number 8 using ehci-pci
usb 1-1.1.2: New USB device found, idVendor=05e3, idProduct=070e
usb 1-1.1.2: New USB device strings: Mfr=0, Product=1, SerialNumber=2
usb 1-1.1.2: Product: USB Storage
usb 1-1.1.2: SerialNumber: 000000009514
usb-storage 1-1.1.2:1.0: USB Mass Storage device detected
scsi145 : usb-storage 1-1.1.2:1.0
scsi 145:0:0:0: Direct-Access Generic STORAGE DEVICE 9514 PQ: 0 ANSI: 0
sd 145:0:0:0: Attached scsi generic sg2 type 0
sd 145:0:0:0: [sdb] 7698432 512-byte logical blocks: (3.94 GB/3.67 GiB)
sd 145:0:0:0: [sdb] Write Protect is off
sd 145:0:0:0: [sdb] Mode Sense: 37 00 00 08
sd 145:0:0:0: [sdb] No Caching mode page found
sd 145:0:0:0: [sdb] Assuming drive cache: write through
sdb: sdb1
sd 145:0:0:0: [sdb] Attached SCSI removable disk
Les EEPROMS en boitier 32 pins sont très répandues (BIOS de PC), et la plupart sont faciles à flasher (toutes les operations se font en 5V).
Par contre la plupart des cartes réseaux n'acceptent que des puces à 28 pins pour leur image PXE, et les seules puces que j'ai sont soit des PROMs OTP (impossibles à reflasher), soit nécessitent 12.5V pour être effacées/programmées.
Du coup j'ai essayé de placer une SST29EE10 (128kio, 32 pins, 5V) dans un socket vide de 28 pins.
En regardant bien tous les pins nécessaires à la lecture sont connectables directement (bus d'adresse, bus de données, !CS).
.
Les pins VPP peuvent aussi être laissés en l'air, !WE et !OE peuvent être laissés en l'air (ou respectivement tirés à VCC et VSS). A16 n'est pas nécessaire si on n'a pas besoin de toute la taille de l'EEPROM (beaucoup de cartes réseau limitent à 32kio ou 64kio).
Au final, on a une pile de sockets avec des fils au milieu :
Et l'EEPROM est capable de booter (flashée avec flashrom sur une carte-mère de PC) :
Il peut arriver à tout le monde de vouloir mettre à jour un bios, et de le rater, même si c'est de plus en plus difficile.
Ce bricolage fonctionne avec toutes les cartes mères qui utilisent des mémoires EEPROM montées sur un socket.
Il faut récupérer une puce compatible avec celle équipant la carte-mère d'origine, utilisant les mêmes pins, les mêmes tensions de service et d'écriture/effacement, et une taille supérieure ou égale.
Dans mon cas, j'utilise une carte-mère MSI MS6147 (Chipset Intel BX, slot 1), qui a une EEPROM Winbond W29C020-12 montée dans un socket DIL. La puce de remplacement est une Macronix MX29F002T trouvée sur une carte mère HS.
Pour être sûr de la compatibilité entre ces deux puces, il faut vérifier le contenu de leurs datasheets :
DIL/DIP-32 package
5V operation : read, write, erase
256k × 8bits
Les temps d'accès n'ont pas l'air de poser problème.
Sauvegarde du BIOS
Avant tout, on arrête le pc, et on utilise un tournevis plat pour enlever l'EEPROM d'origine. Il faut bien faire attention à ne pas abimer la carte mère avec le tournevis, ni plier les pattes de l'EEPROM.
Ensuite, on pose la carte mère horizontalement et on pose la puce d'EEPROM sur son socket. Une fois le pc démarré et le système d'exploitation chargé, on va sauvegarder le contenu de l'EEPROM dans un fichier.
Ensuite, on enlève la puce de son socket (sans tournevis), et on pose sa remplaçante sur le socket.
Il est ainsi possible de flasher la seconde puce d'EEPROM avec le contenu de la première, ou même avec un contenu sans rapport (un BIOS de carte SCSI ou d'une autre carte-mère, par exemple).
Récupération
Il suffit de faire exactement pareil que pour la sauvegarde, en échangeant les deux puces.
Software
En utilisant Unix, flashrom permet de lire, effacer, écrire et vérifier de nombreuses mémoires avec de nombreux programmateurs, peu importe le contenu de la mémoire.
Les programmes livrés d'origine avec les cartes mères (awdflash, aflash ou amiflash) utilisent DOS et sont souvent limités à un type de BIOS/mémoire.
Modification de BIOS
Les BIOS des cartes mères sont fragmentés en plusieurs parties :
Bootblock : chargeur de boot, un bios "failsafe" qui va charger le vrai bios, ou le reflasher depuis un CD en cas d'échec.
Une "table de fichiers" sommaire qui va charger les différentes parties du BIOS (compressées) en mémoire au bon moment.
Le Setup : ce qui va permettre de modifier différents paramètres sauvegardés dans une SRAM.
Les "Option ROM" : des drivers de cartes réseau/graphique/SCSI.
Les Logos : des images bitmap en plein écran ou en plus petit.
Des outils comme awbedit, modbin, cbrom ou amibcp, pour DOS ou Windows permettent d'extraire/ajouter ou de modifier le contenu de BIOS.
Les valeurs par défaut du setup sont souvent intéressants à modifier. Il est aussi possible d'afficher certaines options cachées d'origine (parfois sans effet ou dangereuses).
S'il reste de la place libre, il est possible de rajouter des "Option ROM", ou d'enlever celles qui sont inutiles. Supprimer les logos permet de gagner facilement de la place. Il est même possible de faire fonctionner un OS minimaliste (comme DOS) directement.
Notes
Il est aussi possible d'utiliser des EPROM à UV ou OTP, ou des EEPROMs, mais avec une tension d'effacement ou d'écriture différente, tant qu'elles sont compatibles pin-à-pin. L'effacement ou l'écriture d'une EPROM ou d'une EEPROM avec une tension supérieure à celle que fournit la carte-mère sera impossible, mais sa lecture ne posera pas de problème.
Dans le cas d'une carte-mère fournissant une tension d'écriture/effacement supérieure à celle supportée par l'EEPROM, il est possible d'isoler la patte Vpp, et son effacement/écriture seront impossible, mais sans dommages.
Les cartes mères récentes utilisent des sockets PLCC, qui rendent le démontage difficile, mais il est possible de glisser une ficelle sous le socket. Les cartes mères récentes utilisent parfois des puces avec un bus parallèle 3.3V, ou série SPI ou 4bits, incompatibles entre eux.
Sur d'anciennes cartes graphiques, la définition et la profondeur de couleur sont limitées par la quantité de mémoire :
H*V*bpp/8 : avec 1Mio de VRAM, en 256 couleurs, on ne peut afficher que du 1024*768
Avec 2Mio, on peut théoriquement arriver à 1600*1200 en 256 couleurs, ou 1024*768 en 64k couleurs.
Mais les cartes de cette génération contenait souvent des sockets pour ajouter de la mémoire, et lorsqu'il n'y a pas de socket, il y a souvent des empreintes pour souder les puces de RAM.
Mémoire d'origine : Micron MT 4C16270DJ-7
Boitier : SOJ 40 pins (JEDEC)
Organisation : 256k x 16bits
Tension d'alimentation : 5V
Temps d'accès : 70ns
Mémoire rajoutée : Samsung/SEC KM416C256D-6
Boitier : SOJ 40 pins (JEDEC)
Organisation : 256k x 16bits
Tension d'alimentation : 5V
Temps d'accès : 60ns
Il faut vérifier que la mémoire ait le même boitier, la même organisation et la même tension d'alimentation, au risque d'un non-fonctionnement, ou d'une destruction de la ram ou de la carte graphique.
Si la mémoire ajoutée est plus lente que la mémoire d'origine, on prend le risque d'erreurs d'écriture et de lecture (la mémoire EDO est souvent deux fois plus rapide que la mémoire Fast Page). Mais normalement les problèmes doivent arriver uniquement quand on utilise la mémoire rajoutée (il ne devrait y avoir aucun problèmes en console, dans le BIOS ou avec DOS).
La mémoire de ce type est difficilement trouvable en puce nues. Par contre il est possible de la dessouder depuis des cartes graphiques ou des barrettes de mémoire (SIMM 32bits à 2 ou 4 puces/barrette).