Badrduino
vendredi 23 mai 2014
EEPROM
I- EEPROM
1. Introduction :
La mémoire EEPROM (Electrically-Erasable Programmable Read-Only
Memory) ou en français mémoire morte
effaçable électriquement et programmable est un type de mémoire morte qui ne s’efface pas lorsqu’elle
n'est plus alimenté en électricité. Le contenu d’une EEPROM peut être facilement effacé à l'aide
d'un courant électrique. Donc c’est une mémoire non volatile.
2. Circuit EEPROM 24LC512 :
Nous allons utiliser une EEPROM série qui communique
via I2C qui est le 24LC512 qui se présente dans notre cas dans un boitier PDIP
de 8 broches qui sont : A0, A1, A2, SCL, SDA, WP et l’alimentation Vcc et
Vss. Ce circuit contient 512Kbits de mémoire, et permet plus d’un million
d’opérations d’écriture.
Les broches SCL et SDA sont les deux bus de
communication I2C qui ont été détaillés auparavant. Les broches A0, A1 et A2
sont des bits d’adressage qui permettent d’opérer plusieurs circuits 24LC512
dans le même circuit, le 24LC512 à une adresse de 1010A2A1A0 donc
si on met les bits d’adressage à 0 on aura une adresse du circuit 1010000 qui
est 0X50 , et si on les met à 001 on aura une adresse 0X51 (1010001) . Cela
permet d’adresser jusqu'à 8 EEROMs.
La broche WP (Write Protect) permet de protéger le circuit en écriture
s’il est relié à VCC, sinon il doit être relié à VSS (GND) pour permettre
l’écriture. Dans les deux cas la lecture
est possible.
3. Montage
Le 24LC512 sera relié à notre microcontrôleur via
connexion I2C, donc aux deux ports AIN4 et AIN5. Le circuit de base sera
suffisant pour le faire fonctionner.
Puisque les deux bus SCL et SDA sont à collecteur
ouvert on doit utiliser des résistances pull up, qui doivent être de l’ordre de
1k à 10K sur tout le bus I2C et cela selon la vitesse de transmission et les
capacités sur le bus. Ce qui signifie que si on a plusieurs circuits I2C sur le
même bus on doit prendre en considération leur valeur totale. Donc dans le
montage réel on va pas utiliser les résistances R19 et R20, qui sont remplacées
par R21 et R22 qui ont été présentées
auparavant dans le montage RTC.
4. Simulation :
jeudi 1 mai 2014
PROTOCOLE SPI
I- PROTOCOLE SPI
1. Introduction :
Les appareils grand
public sont devenus sophistiqués et complexes, ce qui a rendu impossible
d’échanger les informations sur des liaisons parallèles qui sont encombrantes. Alors l’échange de données entre les composants se fait
maintenant avec des bus série. Le bus SPI (Synchronous Peripheral Interface),
a été initialement développé par Motorola. Ensuite d’autres fabricants
(Microchip, Atmel, Texas Instrument...) ont adopté ce type de liaison qui est
devenu un standard.
Le bus SPI est
utilisé pour la communication rapide de données entre périphériques comme les mémoires, les systèmes d'affichage, carte
SD, etc.
1. Les caractéristiques de fonctionnement du bus SPI
L’échange de données se
fait par des octets.
La transmission s’effectue
sur 2 fils monodirectionnels
(nommés MOSI, MISO).L’horloge est indépendante, pilotée par le maître permet de synchroniser les échanges .La fréquence de
l’horloge de transmission est comprise entre 1 Mhz et 20 Mhz .A l’opposé du bus
I2C, il n’y a pas d’adressage des esclaves . L’esclave devient actif au moyen
d’une ligne de sélection de boîtier dédiée (CS).Le bus est constitué de 3 fils
auxquels il faut ajouter les fils de sélection d'esclave.
ü
SCLK (serial clock) :Horloge du bus (générée par le
maître).
ü
MOSI (Master Out Slave In) : Données du maître vers l’esclave actif.
ü
MISO (Master In Slave Out) : Données de l’esclave
actif vers le maître.
ü
SSn (Slave
Select n) : Sélection
de
l'esclave n à destination
de
la transmission.
2. Synoptique d'une liaison SPI Maître-Esclave
On
utilise le principe du registre à décalage. Dans le cas ci-dessus, il
faut 8 périodes d'horloge, pour que l'octet passe du registre du maître à celui de l'esclave et inversement le registre d'esclave est passé dans celui du maître (full-duplex : transfert simultané). On remarque qu’il ne peut pas y avoir de
collisions lors du transfert,
donc il n'y a pas besoin
d'arbitrage.
3. Polarisation de la ligne MISO
Lorsque
le bus est inutilisé, (aucun esclave n’est sélectionné), la ligne MISO est à
l’état haute impédance, donc sans état logique. Ce ci est évité par l’utilisation d’une résistance de
polarisation, de 5 à 50 kOhms,
4. Format de transfert de données
Le
protocole bus SPI détermine le type de
signal d’horloge (SCK) grâce à deux paramètres: le bit de poids fort CPOL
(Clock Polarity) et le bit de poids faible CPHA (Clock Phase). Il en résulte
quatre différents modes de transmission. Ces paramètres de réglage déterminent
le front d’horloge sur lequel les données sont transmises (front montant /front
descendant), et le moment de modification de ces données. Pour une transmission
de données correcte il est important que ces paramètres soient réglés de
manière identique pour tous les appareils reliés au bus.
5. Synoptique d'une liaison SPI Maître-Multi-Esclaves
Le maître sélectionne un seul esclave avec lequel il veut communiquer par la mise à niveau logique zéro de /SS (ou /CS) de l’esclave souhaité, puis, après 8
fronts d'horloge, l'octet de donnée est
transféré. La patte MISO de l'esclave non
sélectionné est à l'état haute impédance. Le nombre d'esclaves est limité par les broches de sélection
du maître.
6. Bus SPI et niveaux électriques
Les signaux échangés sont de types TTL ou CMOS
selon la technologie des différents éléments du circuit. Il faut envisager dans certains cas de placer des résistances de
Pull-up .
Si on utilise des composants de tension
d'alimentation différente (un microcontrôleur
en 5v et un capteur en 3.3v), il faut procéder à une adaptation du niveau de tension
des broches MOSI, SS, SCLK (la MISO n'est pas affectée car compatible avec le microcontrôleur).
Inscription à :
Articles (Atom)