vendredi 23 mai 2014

Montage BADRDUINO

Le montage final de badrduino est disponible sous eagle 6.5
https://drive.google.com/file/d/0BzaOjTESgnvZVklQRkxPdE1DTmM

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.


Figure 35 : brochage 24LC512
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.



Figure 36 : Adressage d'un EEPROM 24LC512
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.

Figure 37 : Montage du 24LC512
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 :



Figure 38 simulation EEPROM

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.







Figure 10 Principe général d'un bus SPI
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


Figure 11 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, 

Figure 12 polarisation de la ligne MISO

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.






Figure 13 Exemple d’une transmission de données SPI de 1 octet pour CPHA=0

5.    Synoptique d'une liaison SPI Maître-Multi-Esclaves


Figure 14 Synoptique d'une liaison SPI Maître-Multi-Esclaves
Le maître 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).