Tartalomjegyzék:

Extension Mémoire Pour BeagleBone Black: 8 lépés
Extension Mémoire Pour BeagleBone Black: 8 lépés

Videó: Extension Mémoire Pour BeagleBone Black: 8 lépés

Videó: Extension Mémoire Pour BeagleBone Black: 8 lépés
Videó: Создание приложений для мобильных устройств, игр, Интернета вещей и многого другого с помощью AWS DynamoDB, Рик Хулихан 2024, Július
Anonim
Extension Mémoire Pour BeagleBone Black
Extension Mémoire Pour BeagleBone Black

Je vous présenter dans cet instructable un de mes projet qui consistait à piloter des mémoires de différents types afin de pouvoir tester leur fonctionnement dans des conditions spatiales (enceinte radiative) et de trouver le taux d'erreurs engendré par cet environmentnement pour chaque type de mémoire. Vous pouvez aussi utiliser les données de ce projet pour étendre la mémoire de votre BeagleBone, créer une clé USB ou simplement pour étudier leur fonctionnement.

1. lépés: Quelques Types De Mémoires

Quelques Types De Mémoires
Quelques Types De Mémoires
Quelques Types De Mémoires
Quelques Types De Mémoires
Quelques Types De Mémoires
Quelques Types De Mémoires

Voici une liste kimerítő des différents típusok de mémoires utilisés dans ce projet avec leurs avantages et inconvénients:

Premier típusú de mémoire: la mémoire SRAM

La mémoire vive statique (ou Static Random Access Memory) egy olyan típusú de mémoire vive utilisant des bascules pour mémoriser les données. Contrairement à la mémoire dynamique, son contenu n’a pas besoin d’être rafraîchit périodiquement. Elle reste cependant volatile: elle ne peut se passer d'alimentation sous peine de voir ses informations effacées irrémédiablement!

Előnyök: - la SRAM est rapide (temps d'accès 6 à 25 ns) - peu coûteuse (4 €/hó). Inkonvénensek: - besoin d'être alimenté en permanence pour ne pas perdre ses données, aussi ce type de mémoire impose d'ajouter à notre carte mémoire un moyen de l'alimenter en permanence. Le moyen trouvé est d’ajouter un super condensateur Cellergy pouvant alimenter la mémoire pendant une journée.

Deuxième type de mémoire: la mémoire MRAM

La mémoire vive statique magnétique (Magnetic Random Access Memory) stocke les données sans avoir besoin d’être alimentée. Le changement d'état se fait en changeant l’orientation polaire des électrons (par effet tunnel notamment). Elle est très résistante aux besugárzások és aux hautes températures. Előnyök:- non-volatilité des informations. - inusabilité, puis ce qu’aucun mouvement électrique n'est engagegé (endurance de 10^16 cycles előadás /écriture!). - la consommation électrique est théoriquement moindre puisqu'il n'y a pas de perte thermique due à la résistance des matériaux aux mouvements des électrons. - temps d’accès de 10 nanosecondes. - les débits sont de l'ordre du gigabit par seconde. - une excellente résistance aux radiations, omniprésentes dans un milieu spatial. Inkonvéniensek: - coûteuse (~ 35 €/Mo) car encore en phase de développement (commercialization de masse du produit prévue en 2018!) mais on peut s'en procurer chez Digikey commercialisé sous la marque Everspin.- capacité de stockage est très limitée due aux champs magnétiques qui risquent de perturber les cellules voisines si elles sont trop proches les unes des autres.

Troisième type de mémoire: la mémoire FRAM

A La mémoireFRAM (Ferroelectric Random Access Memory) egy nem mérsékelt, nem felejtő encore à l'état de recherche et développement típusú.

Elle est hasonlít a DRAM à laquelle-hez a lautelle-n, amely egy idő előtti heverő ferro-elektromosságot tartalmaz, amely nem illő. 2011. május, a Texas Instruments lence le premier microcontrôleur à mémoire FRAM.

Leur utilization est destinée au SSD (Solid State Drive), comme pour les autres mémoires non volatiles, les données n'ont pas besoin d'énergie pour être conservées. Előnyök: - une plus faible consommation d’électricité. - une plus grande rapidité de előadás és d'écriture (temps d'accès de 100 nanosecondes contre 1 microseconde pour la mémoire flash). - la possibleilité d'être effacée et réécrite un bien plus grand nombre de fois (10^14 ciklus előadás/érités)

Les deux grandes familles de mémoires: Série (1. fotó) és parallèle (2. fotó)

Série: les mémoires séries ont pour avantage de permettre un gain de place et de garder la même configuration selon les modèles d'où leur facilité d'integration. Cependant ces mémoires ne sont pas très rapide car la trame entière (típus d'opération, adresse, données…) doit être reçue avant d’enregistrer ou accéder à la donnée. Typiquement la vitesse d’accès 5 à 20MHz on à au mieux accès aux bits de données que tous les (1/(20*10⁶)) sec soit 50 ns par bit (50ns*8 = 400ns pour 8 bit). Ez a típus a mémoire est donc utilisé lorsque le temps d’accès aux données à peu d'importance comme lors du chargement d'un BIOS dans certaines cartes de FPGA.

Parallèle: Les mémoires parallèles sont très utilisées dans tous les domaines allant de la RAM for ordinateur in the clé USB. Ce type de mémoire est beaucoup plus rapide que la mémoire SPI car en un coup d'horloge il permet d'accéder aux information, nous sommes donc képes de récupérer en quelques ms tout le contenu de la mémoire de 1Mo. A kényelmetlenség a legnehezebb autós személygépkocsi -nombreux pins különböző modellek à l'autre et la taille du boîtier est plus grande.

Add accéder à plusieurs en mémoire en même temps nous devons jouer sur les pins de chip enable (CE) des mémoires afin d'indiquer à laquelle nous voulons accéder (voir schéma). Le schéma est valable pour les deux types de mémoires seul change le moyen d’accès aux données et adresses.

2. lépés: Mémoire soros FRAM SPI

Mémoire soros FRAM SPI
Mémoire soros FRAM SPI
Mémoire soros FRAM SPI
Mémoire soros FRAM SPI

Câblage de la BeagleBone à la mémoire: Reliés au 3.3V: VDD, HOLD, WP A masse: VSS MISO relié à SO MOSI relié à SI CS relié à CS

Megjegyzés: L'avantage de ce type de mémoire SPI est que, peu importe le modèle ou la marque du fabricant de semi -ondueuurs, la configuration du boîtier reste la même ce qui n'est pas le cas des autres types de mémoires comme les mémoires parallèles. De plus les datasheet de ces différentes mémoires indiquent que toutes fonctionnent de la même manière. Lehetővé teszi, hogy a commuter des mémoires de différents modèles sans avoir à programozó de nouveaux algoritmusok.

Les pins HOLD et WP sont reliés au 3.3V: si cela empêche l’utilisateur d’utiliser ces fonctionnalités, cela permet de facilititer la programmation. Cependant ces fonctionnalités auraient été utiles si l’on avait plusieurs mémoires SPI à piloter!

Afin de piloter la mémoire il faut d’abord étudier sa fiche technika disponible à l’adresse suivante:

Cette fiche technika indique les différents cycles nécessaires pour lire et écrire dans la mémoire et ainsi réaliser un program permettant de les pilot.

3. lépés: Soros FRAM ciklusok

Ciklusok soros FRAM
Ciklusok soros FRAM
Ciklusok soros FRAM
Ciklusok soros FRAM
Ciklusok soros FRAM
Ciklusok soros FRAM
Ciklusok soros FRAM
Ciklusok soros FRAM

Ecriture:

Avant d'écrire dans la mémoire il faut envoyer une trame d'accès à L'écriture (WREN) 0000 0110 (0x06h) (5. voir ábra) Ana laze trame d'écriture envoyée par MOSI de la Beaglebone à SI (Voir ábra) 9)

- 8 premier bit, Op -code de l'écriture (OLVASD): 0000 0011 (0x03h) - 16 bites cím, même si cette mémoire n'en Regardère que 11 car il s'agit d'une mémoire de 16Kb (((2) ^11)*8bits) il faut envoyer 16 bits car cela permettra de pouvoir aussi piloter des mémoires 64Kb. - 8 bit de données. Előadás:

Analyze de la trame de előadó a MOSI de la Beaglebone à SI-n: (Voir 10. ábra)- 8 premier bit, Op-code de la előadás (WRITE): 0000 0010 (0x02h)- 16 bites cím Analyze de la trame de előadás envoyée par SO à MISO de la Beaglebone: - 8 bit de données

4. lépés: Code Pilotant La Mémoire FRAM

C: $ gcc programme_spi.c - o spiPour utiliser ce program: $./spi add1 add2 adatmód

Add1 (MSB) és Add2 (LSB) levelező chacun à 8 bit de donnée, data megfelel à 8 bit de données à écrire (mettre 0 si előadás) Mód megfelel à l’écriture (= 2) ou la előadás (= 1).

Példa a felhasználásra:./spi 150 14 210 2 écrit à l’adresse 16 bit 150 14 (0x96h, 0x0Eh) la donnée 210 (0xD2).

./spi 150 14 0 1 lit à l'adresse150 14 (0x96h, 0x0Eh)

5. lépés: Mémoire Parralèle

Mémoire Parralèle
Mémoire Parralèle
Mémoire Parralèle
Mémoire Parralèle
Mémoire Parralèle
Mémoire Parralèle
Mémoire Parralèle
Mémoire Parralèle

Pour ce projet j'ai utilisé la mémoire SRAM ALLIANCE AS6C1008 128Kb * 8 bit (voir schéma)

Configuration du boitier: 17 Címek: A0-A16 8 Adatok: D0-D7 2 Chip engedélyezve: CE#-CE2 2 Írás és kimenet engedélyezése: WE#-OE#2 VCC (3.3V), VSS (GND) 1 nem csatlakozó: NC

Megjegyzés: La disposition des pins varie grandement d'un modèle à un autre ainsi que les temps de előadás / écriture

Pour le câblage à la BeagleBone voir schéma (Un réel plaisir à débugger où lorsque l'on à mal câblé!)

Figyelem: Vous vous demandez sans doute pourquoi j'ai sauté certains GPIO dans les lignes d'adresses et data, c'est tout simplement que ces GPIO sont alloués à l'EMMC présent sur la BBB et que malgré mes recherches je n'ai jamais réussi à utiliser correctement (me faisant perdre au passage 2 semaines car je pensais la mémoire défectueuse alors que certains GPIO ne fonctionnaient simplement pas!)

Afin de piloter la mémoire il faut d’abord étudier sa fiche technika disponible à l’adressesuivante:

Cette fiche technika indique les différents cycles nécessaires pour lire et écrire dans la mémoire et ainsi réaliser notre program. Afin d’écrire dans la mémoire il faut respecter le cycle imposé par les konstruktőrök, qui sont tous les mêmes pour chacune des mémoires utilisées. Ainsi n'importe quelle mémoire 64Kb peut fonctionner avec notre program (si correctement câblé:)) Függő les temps entre les cycles peuvent varier d'une mémoire à une autre, le cycle le plus long (100ns) des mémoires utilisées étant retenu car il s'adaptera à toutes les mémoires. Ainsi les temps d’écriture et előadás minimums annoncés par les constructioncturs ne seront jamais atteints car imposés par la mémoire la plus lente. La durée des cycles est définie dans le code. Le seul moyen d’aller d’atteindre la vitesse maximale et de programmer les cycles pour une mémoire en partulier avec les temps minimumux. Le cycle d’écriture revient à modifier l’état des GPIO. A bázis kódja a legjobb, ha nem tisztességes clignoter une LED és a temputation précises levelező aux durées des cycles imposées par le konstruktors. En effet l’action de faire clignoter une LED megfelel à la création de cycles d’état haut et bas pour les GPIOs.

A GPIO előadás ciklusa, amely magában foglalja a GPU -t, a comme pour détecter l’état d’un bouton poussoir.

6. lépés: Ciklusok Mémoire Parralèle

Ciklusok Mémoire Parralèle
Ciklusok Mémoire Parralèle
Ciklusok Mémoire Parralèle
Ciklusok Mémoire Parralèle
Ciklusok Mémoire Parralèle
Ciklusok Mémoire Parralèle
Ciklusok Mémoire Parralèle
Ciklusok Mémoire Parralèle

Ciklus d'écriture (1., 2. ábra):

Letöltheti az écrire dans la mémoire il suffit de mettre les pins d'adresse aux valeurs souhaitées puis d'activer les entrées chip engedélyezését CE à l'état haut et l'instruction Write enable WE. Une fois cela effectuer mettre les pins des données aux valeurs souhaitées et le tour est joué (Mais attention tout de même à bien respecter les temporisations! ~ 100ns)

Előadás ciklusa (3., 4. ábra):

Az écrire dans la mémoire il suffit de mettre les pins d'adresse aux valeurs souhaitées puis d'activer les entrées chip engedélyezi a CE à l'état haut et l'instruction kimenet engedélyezését OE. Une fois cela effectué on récupère sur les entrée GPIO de la BeagleBone les valeurs se trouvant à cette addressse.

7. lépés: Code Pilotant La Memoire Parraléle

Ce code permet de piloter 2 mémoire parallèles indépendamment l'une de l'autre et s'utilise comme ceci:

összeállítás: $ gcc -lm programme_memoire.c -o memoire

$./memoire add 1 add 2 data1 data2 mód slot1 slot2 slot2

mód: 1 Előadás, 2 Ecriture

Le code étant créer pour piloter deux mémoires il y a deux "slot", mettre à 1 pour utiliser.

Például: $./memoire 120 140 20 210 2 1 0

écrit à l'adresse 120 140 (hexa 16 bit) les données 20 210 sur la mémoire sur le slot 1.

Például: $./memoire 120 140 0 0 1 1 1

lit à l'adresse 120 140 les données sur la mémoire du slot 1 et 2.

8. lépés: A Pour Mémoires támogatása

Pour Pour Mémoires támogatása
Pour Pour Mémoires támogatása
Pour Pour Mémoires támogatása
Pour Pour Mémoires támogatása
Pour Pour Mémoires támogatása
Pour Pour Mémoires támogatása
Pour Pour Mémoires támogatása
Pour Pour Mémoires támogatása

Je vous fournit dans les photos les PCB de support mémoire sur lequel vous pourrez vous inspirer pour vos réalisations. Si vous voulez réaliser un système de mémoire interchangeable comme moi veillez bien à câbler correctement vos mémoires en utilisant toujours le même ordre pour les pins.

A vous avez des questions remarques n'hésitez pas tout avis est le bienvenu, en espérant vous avoir aidé!

Ajánlott: