Description
du programmateur de mémoires I2C sur port série
+ adaptation pour PCF8582, et cartes à puce I2C
du programmateur de mémoires I2C sur port série
+ adaptation pour PCF8582, et cartes à puce I2C

En préambule :



Analyse du schéma électrique :





- Lorsque la sortie DTR ou RTS passe à +12v, la diode Zener est polarisée en inverse et limite donc la tension sur l'entrée correspondante (SDA ou SCL) à +5,1v. La diode Schottky, également polarisée en inverse, est quant à elle bloquée, on peut la considérer comme absente. Rappelons qu'une diode Schottky est juste une diode avec une tension de seuil plus basse (elle n'est pas constituée d'une classique jonction PN, mais d'une jonction semiconducteur / métal, me semble-t-il).
- Lorsque la sortie bascule à -12V, en l'absence de diode Schottky, la Zener est polarisée en direct et fonctionne alors comme une diode au silicium classique, avec une tension de seuil de 0,7v. La tension sur l'entrée vaudrait alors -0,7v ; cette tension un peu négative sera perçue par la plupart des mémoires comme un niveau logique '0' correct ; avec les 24LC256, la valeur est trop basse (en-deçà des spécifications) ceci entraîne des erreurs en écriture et en lecture. Avec la diode schottky en parallèle, donc polarisée dans les mêmes conditions (en direct), la tension de seuil tombera a environ 0,26v, soit -0,26v sur l'entrée, ce qui est plus raisonnable et siéra mieux aux 24LC256. Remarque : La Zener sera alors très faiblement polarisée (presque bloquée).
- Le choix de la tension Zener des diodes est imposé par la gamme de tensions de fonctionnement de la mémoire : entre 4,5 et 5,5v ; on aurait pu utiliser des diodes 4,7v mais compte-tenu du faible courant de polarisation, la tension obtenue risque d'être un peu plus basse : j'ai opté pour des diodes 5,1v. Le courant de polarisation des Zener en inverse est fixé à environ 3 mA, la résistance vaut donc : R = (12v-5,1v)/0,003 = 2300 ohms
on prendra des 2,2 kohms.
Remarque : si vous ne trouvez pas de zener 5,1v, vous pouvez à l'extrême rigueur utiliser des 5,6v (en théorie non, mais en pratique oui !).

- Elle est polarisée selon le même principe, mais avec un courant un peu plus élevé ; une diode lumineuse insérée en série permet de contrôler l'alimentation de la mémoire (en cours de lecture ou de programmation) et de bloquer toute tension négative quand TxD vaut -12v (donc pas besoin de diode Schottky ici) ; la led 'encaisse' alors une certaine tension inverse, ce qui fera hurler les puristes : tant mieux ! Avec un courant de polarisation de 20 mA, une tension aux bornes de la led de 1,6v, et une Zener de 5,1v, la résistance vaut alors :
R = (12-1,6-5,1)/0,020 = 265 ohms
on choisira donc R=270 ohms.
- Sur les 20 mA disponibles, le courant non utilisé pour l'alimentation de la mémoire sera détourné par la diode Zener vers la masse. Le port série est plus généreux en terme de courant débité que le port parallèle ; ce choix de R=270 ohms permet de compenser des variations de tension du port série d'un PC à l'autre, ou pour différentes leds : un courant même deux fois inférieur suffirait encore à alimenter la plus goulue des mémoires ; rien n'interdit formellement d'augmenter la valeur de R si vous préférez un courant plus faible (par exemple, une résistance de 470 ohms) ; idem pour les entrées SDA et SCL...


Elles ont toutes passé le test avec succès !

Seule la 24C512 manque à l'appel, alors si vous en trouvez une, soyez charitable : envoyez-la moi, vous ferez un heureux ! le bonheur, ça tient à peu de choses, finalement...


Adaptateur pour cartes à puce I2C :

Seule la présentation diffère, mais le protocole I2C reste le même pour les puces encartées que pour les mémoires en version DIL de la famille 24Cxx ; il suffit d'indiquer au programme un modèle de mémoire de capacité identique à celle de la carte :
- ZCM02 ou D2000 : 2 kbit (256 octets), sélectionnez la 24C02
- D4000 : 4 kbit (512 octets), sélectionnez la 24C04
- D8000 : 8 kbit (1024 octets), sélectionnez la 24C08
- ZCM16 : 16 kbit (2048 octets), sélectionnez la 24C16
- ZCM64 : 64 kbit (8192 octets), sélectionnez la 24C64
- ZCM128 : 128kbit (16384 octets), sélectionnez la 24C128
- ZCM256 : 256 kbit (32768 octets), sélectionnez la 24C256
Aucun commentaire:
Enregistrer un commentaire