Πίνακας περιεχομένων:

Extension Mémoire Pour BeagleBone Black: 8 Βήματα
Extension Mémoire Pour BeagleBone Black: 8 Βήματα

Βίντεο: Extension Mémoire Pour BeagleBone Black: 8 Βήματα

Βίντεο: Extension Mémoire Pour BeagleBone Black: 8 Βήματα
Βίντεο: 417 Hz & 639 Hz Deep Trauma Healing & Release | Clear ALL Negative Energy | Meditation & Sleep Music 2024, Νοέμβριος
Anonim
Extension Mémoire Pour BeagleBone Μαύρο
Extension Mémoire Pour BeagleBone Μαύρο

Je vous présenter dans cet instructable un de mes projet qui consitait à piloter des mémoires de différents types afin de pouvoir tester leur fonctionnement dans des condition spatiales (enceinte radiative) et de trouver le taux d'erreurs engendré par cet environnement pour chaque. 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: 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 εξαντλητικοί τύποι διαφορετικών τύπων χρησιμότητας που χρησιμοποιήθηκαν για τις προτεραιότητες και τις δυσκολίες:

Premier type de mémoire: la mémoire SRAM

La mémoire vive statique (ou Static Random Access Memory) είναι un type de mémoire vive χρησιμοποίηση των βασικών για την ανάμνηση των 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!

Πλεονεκτήματα: - la SRAM est rapide (temps d'accès 6 à 25 ns) - peu coûteuse (4 €/μήνα). Συνδεδεμένοι: - 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 μονιμότητα. Le moyen trouvé est d’ajouter un super condensateur Cellergy pouvant alimenter la mémoire pendant une journalé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 radiations and aux hautes températures. Πλεονεκτήματα:- la non-volatilité des informations. - inusabilité, puis ce qu’aucun mouvement électrique n'est engagé (αντοχή σε 10^16 κύκλους διάλεξη /é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 εξαιρετική αντίσταση aux ακτινοβολίες, omniprésentes dans un milieu χωρική. Συνεννοημένοι: - coûteuse (~ 35 €/Μωρό) αυτοκίνητο encore en faz de développement (εμπορευματοποίηση de masse du produit prévue en 2018!) mais on peut s'en procurer chez Digikey commercialisé sous la marque Everspin.- capacité de stockage is 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

Το La mémoireFRAM (Ferroelectric Random Access Memory) είναι ένας τύπος mémoire d'ordinateur non volatile encore à l'état de recherche et développement.

Elle est similaire à la mémoire DRAM à laquelle on a ajouté une couche ferro-électrique pour obtenir la non volatilité. Τον Μάιο του 2011, Texas Instruments lance le premier microcontrôleur à mémoire FRAM.

Η χρησιμοποίηση είναι προορισμένη από το SSD (Solid State Drive), η οποία μπορεί να χρησιμοποιηθεί για τη μη πτητική λειτουργία, δεν μπορεί να χρησιμοποιηθεί για συντηρητικούς. Πλεονεκτήματα: - une plus faible consommation d’électricité. - une plus grande quickité 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 και réécrite un bien plus grand nombre de fois (αντοχή σε 10^14 κύκλους διαλέξεις/écritures). Εμπιστευόμενοι: - des capacités de stockage plus limitées - un coût de fabrication plus élevé, ~ 30 €/Mo

Les deux grandes familles de mémoires: Série (φωτογραφία 1) και parallèle (φωτογραφία 2)

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 διευκολύνουν την ένταξη. Cependant ces mémoires ne sont pas très rapide car la trame entière (type d'opération, adresse, données…) dot ê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 soit 50 ns par bits (50ns*8 = 400ns pour 8 bits). Ce type de mémoire is donc utilisé lorsque le temps d’accès aux données à peu d'importance comme lors du chargement d'un BIOS dans surees cartes de type FPGA.

Συνολικά: Les mémoires parallèles sont très utilisées dans tous les domaines allant de la RAM pour ordinateur à la 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 informations, nous sommes donc able de récupérer en quelques ms tout le contenu de la mémoire de 1Mo. Το L'inconvénient est sa hardé à intégrer car les nombreux pins diffèrent d'un modèle à l'autre et la taille du boîtier est plus grande.

Pour 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 vacable pour les deux types de mémoires seul change le moyen d’accès aux données et adresses.

Βήμα 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 mémoire: Reliés au 3.3V: VDD, HOLD, WP A la masse: VSS MISO relié à SO MOSI relié à SI CS relié à CS

Σημείωση: L'avantage de ce type de mémoire SPI est que, peu importe le modèle ou la marque du fabricant de semi-condueurs, 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. Ainsi il est possible de commuter des mémoires de différents modles χωρίς avoir à programmer de nouveaux αλγόριθμους.

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 διευκολυντή la προγραμματισμού. Σύνδεσμοι ces fonctionnalités auraient été utiles si l’on avait plusieurs mémoires SPI à pilot!

Afin de piloter la mémoire il faut d’abord étudier sa fiche τεχνική disponible à l’adresse suivante:

Cette fiche Technical 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: Κύκλοι Serial FRAM

Κύκλοι Serial FRAM
Κύκλοι Serial FRAM
Κύκλοι Serial FRAM
Κύκλοι Serial FRAM
Κύκλοι Serial FRAM
Κύκλοι Serial FRAM
Κύκλοι Serial FRAM
Κύκλοι Serial FRAM

Ecriture:

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

- 8 premiers bits, Op -code de l'écriture (READ): 0000 0011 (0x03h) - 16 bits addressse, même si cette mémoire n'en konsiderè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 bits de données. Διάλεξη:

Analyze de la trame de lecture envoyée par MOSI de la Beaglebone SI: (Voir figure 10)- 8 premiers bits, Op-code de la lecture (WRITE): 0000 0010 (0x02h)- 16 bits adresse Analyze de la trame de lecture envoyée par SO à MISO de la Beaglebone: - 8 bits de données

Βήμα 4: Code Pilotant La Mémoire FRAM

Pour compiler ce program en langage C: $ gcc programme_spi.c –o spiPour utiliser ce program: $./spi add1 add2 λειτουργία δεδομένων

Add1 (MSB) και Add2 (LSB) ανταποκριτής chacun à 8 bits de donnée, τα δεδομένα αντιστοιχούν à 8 bits de données é éécrire (mettre 0 si lecture) Mode αντιστοιχούν à l’écriture (= 2) ou la lecture (= 1).

Exemple 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)

Βήμα 5: 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 bits (voir schéma)

Configuration du boitier: 17 Διευθύνσεις: A0-A16 8 Δεδομένα: D0-D7 2 Chip Enable: CE#-CE2 2 Write et Output Enable: WE#-OE#2 VCC (3.3V), VSS (GND) 1 non connecté: NC

ΣΗΜΕΙΩΣΗ: La disposition des pins 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 à débugger où lorsque l'on à mal câblé!)

Προσοχή: 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 et que malgré mes recherches je n'ai jamais réussi à utiliser correction (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 mémoire il faut d’abord étudier sa fiche τεχνική disponible à l’adressesuivante:

Cette fiche Technical 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 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 cycles peuvent varier d'une mémoire à une autre, le cycle le plus long (100ns) des mémoires utilisées étant retenu car 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 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 particulier avec les temps minimaux. Le cycle d’écriture revient à modifier l’état des GPIOs. La base du code is celle qui permet de faire clignoter une LED and ajoutant des temporisations ακριβείς ανταποκριτές για άλλους κύκλους imposées par le construction. En effet l’action de faire clignoter une LED αντιστοιχούν à la création de cycles d’état haut et bas pour les GPIOs.

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

Βήμα 6: Κύκλοι Mémoire Parralèle

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

Cycle d'écriture (voir σχήμα 1, 2):

Pour écrire dans la mémoire il suffit de mettre les pins d'adresse aux valeurs souhaitées puis d'activer les entrées chip enable CE à l'état haut et l'instruction Εγγραφή ενεργοποίηση 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)

Κύκλος διάλεξης (voir σχήμα 3, 4):

Pour écrire dans la mémoire il suffit de mettre les pins d'adresse aux valeurs souhaitées puis d'activer les entrées chip enable CE à l'état haut et l'instruction Output enable OE. Une fois cela effectué στο récupère sur les entrée GPIO de la BeagleBone les valeurs se trouvant à cette adresse.

Βήμα 7: Code Pilotant La Memoire Parraléle

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

συλλογή: $ gcc -lm programme_memoire.c -o memoire

$./memoire προσθέστε 1 προσθέστε 2 data1 data2 slot1 slot2 slot2

λειτουργία: 1 Διάλεξη, 2 Ecriture

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

Παράδειγμα: $./memoire 120 140 20 210 2 1 0

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

Παράδειγμα: $./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: Υποστήριξη Pour Mémoires

Υποστήριξη Pour Mémoires
Υποστήριξη Pour Mémoires
Υποστήριξη Pour Mémoires
Υποστήριξη Pour Mémoires
Υποστήριξη Pour Mémoires
Υποστήριξη Pour Mémoires
Υποστήριξη Pour Mémoires
Υποστήριξη Pour Mémoires

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 εναλλάξιμα comme moi veillez bien à câbler correction vos mémoires en utilisant toujours le même ordre pour les pins.

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

Συνιστάται: