jeudi 20 février 2025

interface graphique pour le programmeur d'EEPROM

J'ai créé un Front end graphique pour le programmeur d'EEPROM que j'ai présenté dans mon message précédent. Pour le moment cette version ne fonctionne que sur Ubuntu/Linux.

vidé de démontration

lundi 3 février 2025

programmeur d'EEPROM

Programmeur d'EEPROM

J'avais besoin de programmer une EEPROM AT28C64B alors j'ai fabriqué un programmeur à partir de matériel que j'avais en inventaire. Comme toujours ce projet est sur github.com

Ce programmeur permet de programmer aussi les AT28C256 car c'est le même brochage à la différence que les 2 broches marqués NC sur la AT28C64B sont utilisés pour les 2 bits d'adresses supplémentaires A13 et A14 requis pour adresser 32Ko au lieu de 8Ko.

Matériel requis

  • Carte NUCLEO_8S208RB.
  • 3 résistances de 10Kohm 1/8 watt.
  • 1 condensateur céramique 100nF.
  • 1 condensateur électrolytique 10µF/25V
  • 1 embase DIP-28 sans force d'insertion (ZIF socket).
  • carte de prototypage à pastille de soudure 7x10cm
  • fil AWG 30 pour le filage.

montage

La carte de l'embase est conçue pour se brancher sur les connecteurs CN1 et CN9 de la carte NUCLEO_8S208RB.

Schématique

La schématique a étée dessinée dans KiCAD version 8.0.6

Utilisation

L'embase accepte les EEPROM compatibles AT28C64B de 8Ko et AT28C256 de 32Ko au format DIP-28.

Une fois la carte NUCLEO_8S208RB branchée au PC il faut utiliser un émulateur de terminal pour communiquer avec le programmeur.

Liste des commandes

L'interface reprend le format du WOZMON avec quelques différences aux niveaux des commandes. Au lieu de lire et d'écrire dans la mémoire du STM8 les opérations sont effectuées sur l'EEPROM. dans de qui suit adr et data doivent-être entrés en hexadécimal comme dans le WOZMON.

  • adr<RETURN> affiche le contenue de l'EEPROM à cette adresse. un point (.) suivit de <RETURN> affiche le contenu de l'adresse suivante.
  • adr1.adr2<RETURN> affiche le contenue de la plage mémoire à partir de adr1 jusqu'à adr2. 16 octets sont affichés par ligne.
  • adr: data data data ...<RETURN> écriture d'une liste d'octets dans la mémoire EEPROM à partir de l'adresse adr.
  • adr1Xadr2<RETURN> Efface la plage mémoire de adr1 jusqu'à adr2.
  • adr"chaîne de caractères ASCII<RETURN> programme la chaîne de caractères dans l'EEPROM à partir de l'adresse adr la chaîne est terminée par un 0.Il ne faut pas mettre de guillemet à la fin de la chaîne.
  • Il est possible d'entrer une liste de commandes de programmation dans un fichier texte et d'utililser la fonction send RAW file du terminal pour l'envoyer au programmeur. Cependant le terminal doit-être configuré pour un délais de 10msec entre l'envoie de chaque ligne. C'est le temps que ça prend à l'EEPROM pour compléter la programmation d'une ligne.

Capture d'écran d'une session


eeProg, Copyright Jacques Deschenes, 2025
version 1.0.0

#0
0000: 54   T

#.
0001: 48   H

#.
0002: 45   E

#0.2F
0000: 54 48 45 20 51 55 49 43 4B 20 42 52 4F 57 4E 20   THE QUICK BROWN 
0010: 46 4F 58 20 4A 55 4D 50 20 4F 56 45 52 20 54 48   FOX JUMP OVER TH
0020: 45 20 4C 41 5A 59 20 44 4F 47 2E 00 01 02 03 04   E LAZY DOG.

#0X2F

#0.2F
0000: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF                   
0010: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF                   
0020: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF                   

#0"THE QUICK BROWN FOX JUMP OVER THE LAZY DOG.

#2C: 1 2 3 4 5 6

#32: A B C D E AA 55

#0.3F
0000: 54 48 45 20 51 55 49 43 4B 20 42 52 4F 57 4E 20   THE QUICK BROWN 
0010: 46 4F 58 20 4A 55 4D 50 20 4F 56 45 52 20 54 48   FOX JUMP OVER TH
0020: 45 20 4C 41 5A 59 20 44 4F 47 2E 00 01 02 03 04   E LAZY DOG.
0030: 05 06 0A 0B 0C 0D 0E AA 55 FF FF FF FF FF FF FF   

#   

Vidéo de démonstration

jeudi 31 octobre 2024

alarme d'inondation simple

Ce petit circuit simple permet de détecter une inondation et de déclencher une alarme sonore.

Fonctionnement

Ce multivibrateur utilise 2 transistors, Q1 2N3904 qui est un petit transistor NPN d'usage général dans un boitier TO-92 et Q2 TIP32C qui est un transistor de puissance PNP dans un boitier TO-220 qui alimente le haut-parleur.

Lorsque les 2 électrodes sont mise en contact à travers un milieu conducteur comme l'eau, Q1 reçoit un courant dans sa base et entre en conduction. Le collecteur de Q1 fournie à son tour du courant à la base de Q2 qui lui aussi entre en conduction. Cependant à travers C1 et R2 il y a une rétro-action positive qui fait entrer les 2 transistors en saturation rapidement. C1 se charge et lorsqu'il a atteint sa pleine charge le courant dans la base de Q1 dimininue donc sa conduction aussi et entraîne Q2 dans la même direction. La conséquence est que le courant dans le collecteur de Q2 diminue et donc le voltage sur le haut-parleur. Encore une fois par rétro-action positive à travers C1 et R2 le voltage à la base de Q1 diminue rapidement et les 2 transistors coupent rapidement. À ce moment la tension à la base de Q1 est négative à cause de la charge qui s'est accumulée dans C1 durant la phase 1. Cependant C1 va se décharger à travers R1, R2 et les sondes. Lorsque le voltage aux bornes de C1 deviendra légèrement positif Q1 va se remettre à conduire pour débuter un nouveau cycle. La durée de la première phase est déterminée par la constante de temps (R2+résistance de la base de Q1)*C1 et la durée de la seconde phase est déterminée par la constante de temps (R1+R2+résistance entre les sondes)*C1. Avec les valeurs des composants choisis on on obtient une fréquence d'environ 990 Hertz lorsqu'on met les 2 fils de sonde en court-circuit. Cependant dans l'eau la conduction entre les 2 fils est moins bonne donc la fréquence diminue.

Aperçu du signal

Dans cette capture de l'image à l'oscilloscope la courbe en jaune est le signal sur la base de Q1 et celle en bleu est le signal aux bornes du haut-parleur. Cette capture a étée réalisé avec C1 de 4,7nF et les sondes en court-circuit. L'oscilloscope indique une fréquence 990 Hertz et un rapport cyclique près de 50%. Lorsque les sondes sont dans l'eau la résistance de décharge de C1 augmente donc la phase 2 rallonge, ce qui diminue la fréquence ainsi que le rapport cyclique.

La phase 1 est lorsque les transistors sont en saturation et que C1 se charge et la phase 2 celle ou ils sont bloqués et C1 se décharge.

Dans ces conditions l'alimentation draine 100ma à 3 volts.

démonstration

Dans ce démo on voit que la fréquence lorsque les 2 fils sont en court-circuit est plus élevée que lorsque les fils sont dans l'eau. Ceci est du au fait que la résistance de l'eau s'ajoute à celles de R1 et R2.