Բովանդակություն:

Extension Mémoire Pour BeagleBone Black: 8 քայլ
Extension Mémoire Pour BeagleBone Black: 8 քայլ

Video: Extension Mémoire Pour BeagleBone Black: 8 քայլ

Video: Extension Mémoire Pour BeagleBone Black: 8 քայլ
Video: Сухой голод. Свами Сат Марга - 27 дней без воды, больше 2-х месяцев без еды Dry fasting for 27 days 2024, Նոյեմբեր
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 constitait à 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 կամ պարզ պարզություն 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 սպառիչ des différents types de mémoires utilisés dans ce projet avec leurs avantages et inconvénients:

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

La mémoire vive statique (ou Static Random Access Memory) այն չի օգտագործվում, քանի որ այն օգտագործվում է բազային հումքի համար, որը վերաբերում է դոնորների հիշողությանը: 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!

Առավելությունները. 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 de de mémoire: la mémoire MRAM

La mémoire vive statique magnétique (Մագնիսական պատահական մուտքի հիշողություն) 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 to à la résistance des matériaux aux mouvements des électrons. - temps d’accès de 10 նանովայրկյան: - les débits sont de l'ordre du gigabit par seconde. - une greate résistance aux radiations, omniprésentes dans un milieu Տարածական. Հաղորդավարներ. 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 de de mémoire: la mémoire FRAM

La mémoireFRAM- ը (Ferroelectric Random Access Memory) անհամատեղելի է որպես անկայուն ծածկագիր ՝ վերամշակման և զարգացման:

Elle est similaire à la mémoire DRAM à laquelle on a ajouté une couche ferro-électrique pour obtenir la non volatilité. 2011 թ., Texas Instruments- ը դարձավ հիմնական 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 et réécrite un bien plus grand nombre de fois (10^14 ցիկլերի դասախոսություններ/էկրիտուրա տոկունություն): Անհավատացողներ.

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 կոնֆիգուրացիա selon les modèles d'où leur Facilant d'intégration. 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 est 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 valable 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 half-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 models pa avoir à programmer de nouveaux ալգորիթմներ:

Les pins HOLD et WP sont reliés au 3.3V. 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 technology disponible à l’adresse suivante:

Cette fiche տեխնիկա ՝ տարբեր ցիկլերի կարիքներ, որոնք անհրաժեշտ են անվճար և օպտիմալ ռադիոակտիվ ծրագրերի միջոցով, որոնք նախատեսված են օդաչուի համար:

Քայլ 3. clesիկլերի սերիական FRAM

Clesիկլեր Serial FRAM
Clesիկլեր Serial FRAM
Clesիկլեր Serial FRAM
Clesիկլեր Serial FRAM
Clesիկլեր Serial FRAM
Clesիկլեր Serial FRAM
Clesիկլեր Serial FRAM
Clesիկլեր Serial FRAM

Էկրիտուրա:

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 պրեմիերա բիթ, Op -code de l'écriture (ԿԱՐԴԱԵԼ). ^11)*8 բիթ) il faut դեսպանորդ 16 բիթ մեքենա cela permettra de pouvoir aussi piloter des mémoires 64Kb. - 8 բիթ դոն դե: Դասախոսություն:

Analyze de la trame de lecture envoyée par MOSI de la Beaglebone SI: (Voir figure 10)- 8 Premier bits, Op-code de la lecture (WRITE): 0000 0010 (0x02h)- 16 bits addressse Analize 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 ծրագիր ՝ $./spi ավելացնել 1 ավելացնել 2 տվյալների ռեժիմ

Add1 (MSB) et Add2 (LSB) թղթակիցը ներկայացնում է b 8 բիթ դոննի, տվյալները համապատասխանում են don 8 բիթ դոննի à cri cri é

Օգտագործման օրինակ.

./spi 150 14 0 1 լուսավորված à 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 բիթ (voir schéma)

Configuration du boitier: 17 Հասցեներ ՝ A0-A16 8 Տվյալներ ՝ D0-D7 2 Չիպ Միացնել ՝ CE#-CE2 2 Գրեք և թողեք միացրեք ՝ WE#-OE#2 VCC (3.3V), VSS (GND) 1 ոչ միացված: 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é որոշակի 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 sures GPIO ne fonctionnaient simplement pas!)

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

Cette fiche տեխնիկա ՝ տարբեր ցիկլերի համար, որոնք անհրաժեշտ են անվճար և արտոնագրման համար, ինչպես նաև mémoire et ainsi réaliser notre ծրագրով: 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 ilena 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 précises korrespondent aux durées des cycles 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 GPIO- ներ:

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. clesիկլեր Mémoire Parralèle

Clesիկլեր Mémoire Parralèle
Clesիկլեր Mémoire Parralèle
Clesիկլեր Mémoire Parralèle
Clesիկլեր Mémoire Parralèle
Clesիկլեր Mémoire Parralèle
Clesիկլեր Mémoire Parralèle
Clesիկլեր Mémoire Parralèle
Clesիկլեր Mémoire Parralèle

Dcécriture ցիկլ (voar նկար 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 ուշադրություն tout de même à bien respecter les temporisations! ~ 100ns)

Cleիկլ դասախոսություն (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é de récupère sur les entrée GPIO de la BeagleBone les valeurs se trouvant à cette addressse.

Քայլ 7: 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:

հավաքածու ՝ $ gcc -lm programme_memoire.c -o հուշագիր

$./memoire ավելացնել 1 ավելացնել 2 data1 data2 ռեժիմի slot1 slot2

ռեժիմ ՝ 1 Դասախոսություն, 2 Էկրիտուրա

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

Օրինակ ՝ $./ հիշողություն 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.

Օրինակ ՝ $./ հիշողություն 120 140 0 0 1 1 1

lit à l'adresse 120 140 les données sur la mémoire du slot 1 և 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 ոգեշնչող լցնել ձեր իրականացման համար: 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 les կապում.

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

Խորհուրդ ենք տալիս: