Inhaltsverzeichnis:

Extension Mémoire Pour BeagleBone Black - Gunook
Extension Mémoire Pour BeagleBone Black - Gunook

Video: Extension Mémoire Pour BeagleBone Black - Gunook

Video: Extension Mémoire Pour BeagleBone Black - Gunook
Video: Chargement du papier : pour installation (G5000 series) 2024, November
Anonim
Erweiterung Mémoire Pour BeagleBone Black
Erweiterung Mémoire Pour BeagleBone Black

Je vous présenter dans cet instructable un de mes projet qui consistait à piloter des memoires de différents typen afin de pouvoir tester leur fonctionnement dans des Conditions Spatiales (enceinte radiative) et de trouver le taux d'erreurs pour de taux d'erreurs gießen de moire. Vous pouvez aussi utiliser les données de ce projet to étendre la memoire de votre BeagleBone, kreiere einen USB-oder-einfachen-functionen-tudier-leur-fonctionnement.

Schritt 1: Quelques Typen 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 listingly list of différents type de memoires utilisés dans ce projet avec leurs avantages et inconvénients:

Premier type de memoire: la memoire SRAM

La memoire vive statique (oder statischer Direktzugriffsspeicher) ist eine Art von Memoiren, die von Bascules pour memoriser les données verwendet werden. 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 !

Vorteile: - la SRAM est rapide (temps d'accès 6 à 25 ns) - peu coûteuse (4€/Mo). d'ajouter à notre carte memoire un moyen de l'alimenter en permanence. Le moyen trouvé est d'ajouter un super concedateur 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 (Magnetischer 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 radiations et aux hautes températures. Vorteile:- la non-volatilité des informationen. - inusabilité, puis ce qu’aucun mouvement électrique n'est engagé (Ausdauer de 10^16 Zyklen Vortrag /é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 Nanosekunden. - les debits sont de l'ordre du gigabit par seconde. - une excellente résistance aux radios, omniprésentes dans un milieu territorial. Inconvénients: - coûteuse (~35€/Mo) auto encore en phase de développement (commercialisation de masse du produit prévue en 2018 !) mais on peut chez'en procurer kommerzialisiert sous la marque Everspin.- stockage est limitée 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

La memoireFRAM (Ferroelectric Random Access Memory) ist ein Speichertyp für nichtflüchtige Zugaben für Forschung und Entwicklung.

Elle est similaire à la mémoire DRAM à laquelle on a jouté une couche ferro-électrique pour obtenir la non volatilité. En mai 2011, Texas Instruments lanciert den ersten Mikrocontroller für FRAM-Speicher.

Nutzen Sie das Ziel für SSD (Solid State Drive), kommen Sie für die nicht flüchtigen Erinnerungen, die nicht für die Erhaltung der Konserven. Vorteile: - une plus faible consommation d’électricité. - une plus grande rapidité de Lecture et d'écriture (Temps d'accès de 100 Nanosecondes contre 1 microseconde pour la mémoire flash). - la possibilité d'être effacée et réécrite un bien plus grand nombre de fois (Ausdauer von 10^14 Zyklen Vorlesungen/Vorträge).

Les deux grandes familles de mémoires: Série (Foto 1) et parallèle (Foto 2)

Série: les memoires 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'inégration. Cependant ces mémoires ne sont pas très rapide car la trame entière (Betriebsart, adresse, données…) doit être reçue avant d’enregistrer ou accéder à la donnée. Typiquement la vitesse d’accès allant de 5 à 20MHz on à au mieux accès aux bits de données que tous les (1/(20*10⁶))sec mit 50 ns par Bits (50 ns * 8 = 400 ns für 8 Bit). Diese Art der Erinnerung wird von der Verwendung von lorsque le temps aux données à peu d'importance comme lors du chargement d'un BIOS und bestimmten Cartes des Typs FPGA verwendet.

Parallele: Les memoires parallele sont très utilisées dans tous les domaines allant de la RAM für ordinateur à la clé USB. Diese Art der Erinnerung est Beaucoup plus schnelle Erinnerung an SPI-Auto und ein Erinnerungs-Coup, der Zugang zu zusätzlichen Informationen hat, keine sommes Donc-fähiger Recupérer und eine kurze Erinnerung an den Inhalt der Erinnerung von 1Mo. Unbequem ist es in einem intégrer car les nombreux pin d'unconvénient à l'autre et la taille du boîtier est plus grande.

Pour accéder à plusieurs en memoire en meme temps nous devons jouer sur les pin de chip enable (CE) des Memoires afin d'indiquer à laquelle nous voulons accéder (voir schema). Le Schéma est valable pour les deux type de memoires seul change le moyen d’accès aux données et adresses.

Schritt 2: Mémoire Serial FRAM SPI

Mémoire Serial FRAM SPI
Mémoire Serial FRAM SPI
Mémoire Serial FRAM SPI
Mémoire Serial FRAM SPI

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

NB: L'avantage de ce type de memoire SPI est que, peu importe le modèle ou la marque du Fabricant de semi-conducteurs, la configuration du boîtier reste la même ce qui n'est pas le cas des autres types de mémoires comme les memoires parallèles. De plus les datasheet de ces différentes memoires indiquent que toutes fonctionnent de la même manière. Ainsi il est possible de Pendler des Memoires de Différents modèles sans avoir à Programmierer der neuen Algorithmen.

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 faciliter la programmation. Abhängig von weiteren Funktionen können Sie weitere nützliche Erinnerungen erhalten SPI à piloter !

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

Cette fiche technik indique les différents cykls nécessaires pour lire and écrire dans la mémoire and ainsi réaliser a program permettant de les piloter.

Schritt 3: Zyklen serielles FRAM

Zyklen serielles FRAM
Zyklen serielles FRAM
Zyklen serielles FRAM
Zyklen serielles FRAM
Zyklen serielles FRAM
Zyklen serielles FRAM
Zyklen serielles FRAM
Zyklen serielles FRAM

Beschreibung:

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

- 8 Premierenbits, Op-Code de l'écriture (READ): 0000 0011 (0x03h) - 16 Bits adresse, même si cette memoire n'en considère que 11 car il s'agit d'une mémoire de 16Kb ((2 ^11)*8bits) il faut envoyer 16 bits auto permettra de pouvoir aussi piloter des memoires 64Kb. - 8 Bits de Données. Vorlesung:

Analyse der Vorlesungssequenz Gesandter von MOSI de la Beaglebone à SI: (Voir figure 10) - 8 Premiers-Bits, Op-Code der Vorlesung (WRITE): 0000 0010 (0x02h) - 16 Bits Adresse Analyse der Vorlesungssequenz Gesandter von SO à MISO de la Beaglebone: - 8 bits de données

Schritt 4: Code Pilotant La Mémoire FRAM

Pour Compiler ce-Programm in Sprache C: $ gcc program_spi.c –o spiPour utiliser ce-Programm: $./spi add1 add2 Datenmodus

Add1 (MSB) und Add2 (LSB) Korrespondent chacun à 8 bits de donnée, data entsprechen à 8 bits de données à écrire (mettre 0 si Vorlesung) Mode korrespondiert à l’écriture (= 2) ou la Vorlesung (= 1).

Beispiel d’utilisation:./spi 150 14 210 2 écrit à l’adresse 16 bits 150 14 (0x96h, 0x0Eh) la donnée 210 (0xD2).

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

Schritt 5: Memoire 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 memoire SRAM ALLIANCE AS6C1008 128Kb * 8 bits (voir schema)

Konfiguration du boitier: 17 Adressen: A0-A16 8 Daten: D0-D7 2 Chip Enable: CE#-CE2 2 Write et Output Enable: WE#-OE# 2 VCC (3.3V), VSS (GND) 1 nicht verbunden: NC

NB: La disposition des pin varie grandement d'un modèle à un autre ainsi que les temps de Lecture / écriture

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

Achtung:Vous vous demandez sans doute pourquoi j'ai sauté sures 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 und 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 sures GPIO ne fonctionnaient simplement pas !)

Afin de piloter la memoire il faut d’abord étudier sa fiche Technique disponible à l’adressesuivante:

Cette fiche Technique indique les différents nécessaires pour lire et écrire dans la mémoire und ainsi réaliser notre program. Afin d’écrire dans la mémoire il faut respekter le cycle imposé par les constructeurs, 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é:))Cependant les temps entre les cycle peuvent varier d'une mémoire à une autre, le cycle le plus long (100ns) des mémoires tant. retenil s'adaptera à toutes les mémoires. Ainsi les temps d’écriture et Lecture Minimums Annoncés par les constructeurs ne seront jamais atteints car imposés par la mémoire la plus lente. La durée des cycle est définie dans le code. Le seul moyen d'aller d'atteindre la vitesse maximum and de programer les cycles pour une memoire en particulier avec les temps minimaux. Le cycle d’écriture revient à modifier l’état des GPIOs. La base du code est celle qui permet de faire clignoter une LED en ajoutant des temporisations precises correspondant aux durées des cycle imposées par le constructeur. En effet l’action de faire clignoter une LED entspricht à la Création de Cycles d’état haut et bas pour les GPIOs.

Le cycle de Lecture quant à luiconsiste en la récupération de l’état des GPIO, comme pour détecter l’état d’un bouton poussoir.

Schritt 6: Zyklen Mémoire Parralèle

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

Zyklus d'écriture (voir figure 1, 2):

Pour écrire dans la memoire il suffit de mettre les pin d'adress aux valeurs souhaitées puis d'activer les entrées chip enable 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é

Vortragszyklus (voir Abbildung 3, 4):

Pour écrire dans la memoire il suffit de mettre les pin d'adress aux valeurs souhaitées puis d'active les entrées chip enable CE à l'état haut et l'instruction Output enable OE. Une fois cela effectué on récupère sur les entrée GPIO de la BeagleBone les valeurs se trouvant à cette adresse.

Schritt 7: Code Pilotant La Memoire Parraléle

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

Zusammenstellung: $ gcc -lm program_memoire.c -o memoire

$./memoire add 1 add 2 data1 data2 mode slot1 slot2

Modus: 1 Vortrag, 2 Ecriture

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

Bsp.: $./Memoire 120 140 20 210 2 1 0

Schreiben Sie an die Adresse 120 140 (hex 16 Bit) les données 20 210 sur la memoire sur le slot 1.

Bsp.: $./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.

Schritt 8: Pour Mémoires unterstützen

Unterstützen Sie Pour Mémoires
Unterstützen Sie Pour Mémoires
Unterstützen Sie Pour Mémoires
Unterstützen Sie Pour Mémoires
Unterstützen Sie Pour Mémoires
Unterstützen Sie Pour Mémoires
Unterstützen Sie Pour Mémoires
Unterstützen Sie Pour Mémoires

Je nachdem, was Sie brauchen, um Fotos von PCB-Support zu erhalten. Si vous voulez réaliser ein système de memoire austauschbar comme moi veillez bien à câbler Correctement vos memoires en utilisant toujours le même ordre pour les pins.

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

Empfohlen: