Სარჩევი:

გაფართოება Mémoire Pour BeagleBone შავი: 8 ნაბიჯი
გაფართოება Mémoire Pour BeagleBone შავი: 8 ნაბიჯი

ვიდეო: გაფართოება Mémoire Pour BeagleBone შავი: 8 ნაბიჯი

ვიდეო: გაფართოება Mémoire Pour BeagleBone შავი: 8 ნაბიჯი
ვიდეო: Web Programming - Computer Science for Business Leaders 2016 2024, ნოემბერი
Anonim
გაფართოება Mémoire Pour BeagleBone შავი
გაფართოება Mémoire Pour BeagleBone შავი

Je vous présenter dans cet instructable un de mes projet qui constait à piloter des mémoires de 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 environné pour chaque. Vous pouvez aussi utiliser les données de ce projet pour étendre la mémoire de votre BeagleBone, créer une un clé USB or 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 ამომწურავი des différents ტიპები mémoires utilisés dans ce projet avec leurs avantages et inconvénients:

პრემიერის ტიპი mémoire: la mémoire SRAM

La mémoire vive statique (ან სტატიკური შემთხვევითი წვდომის მეხსიერება) არ არის გამოყენებული, რადგან ის გამოიყენება საბაზისო მიზნებისათვის 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!

უპირატესობები: - 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 permanence. 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 (Magnetic Random Access Memory) stocke les données sans avoir besoin d’tre alimentée. Le changement d'état se fait en ndryshant l’orientation polaire des électrons (par effet გვირაბის 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 გამო à la résistance des matériaux aux mouvements des électrons. - ტემპერატურა 10 ნანოწამი. - les débits sont de l'ordre du gigabit par seconde. - არაჩვეულებრივი წინააღმდეგობის გაწევა რადიაციული, ყოვლისმომცველი dans un miliu სივრცითი. დამსწრენი: - თანამშრომლობა (~ 35 €/თვე) მანქანის ჩაბარება განვითარების ეტაპზე (კომერციალიზაცია 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 (ფეროელექტრონული შემთხვევითი წვდომის მეხსიერება) არ არის ტიპიური მემორანდული არასტაბილური ჩანაწერი her ltééat de recherche and 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– მა გამოუშვა FRAM– ის მთავარი მიკროკონტროლი.

მისი გამოყენების მიზანია SSD (მყარი დრაივი), com aut pour les autres mémoires non volatiles, les données n'ont paso besoin d'énergie pour être conservées. უპირატესობები: - une plus faible consommation d’électricité. - une plus grande quickité de lecture et d'écriture (temps d'accès of 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 ციკლის ლექციებზე/კრიტიკებზე). დაინტერესებულები: - მარაგის მოცულობა პლუს შეზღუდვები - გაყალბება პლუს ელევა, ~ 30 €/თვე

Les deux grandes familles de mémoires: Série (ფოტო 1) და parallèle (ფოტო 2)

სერია: 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 lehté d'intégration. Cependant ces mémoires ne sont pas très rapide car la trame entière (type of déopération, adresse, données…) აკეთებს სხვაგვარად 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 secit soit 50 ns par bits (50ns*8 = 400ns დაასხით 8 ბიტი) Ce type de mémoire est donc use 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 to récupérer en quelques ms tout le contenu de la mémoire de 1Mo. L'inconvénient არის რთული და ინტეგრირებული მანქანა nombreux ქინძისთავები განსხვავდება d'un modèle à l'autre et la taille du boîtier est plus grande.

Pour accéder à plusieurs en mémoire en meme temps nous devons jouer sur les 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 სერიული FRAM SPI
Mémoire სერიული FRAM SPI
Mémoire სერიული FRAM SPI
Mémoire სერიული 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

NB: 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 modesles avoir à programmer de nouveaux ალგორითმები.

Les pins HOLD et WP sont reelés au 3.3V: si cela empêche l’utilisateur d’utiliser ces fonctionnalités, cela permet de lehtiter la programmation. ეს ნიშნავს, რომ თქვენ იყენებთ დამატებით სარგებელს, როგორც SPI à პილოტს!

Afin de piloter la mémoire il faut d’abord étudier sa fiche ტექნიკა disponible à l’adresse suivante:

Cette fiche ტექნიკა, რომელიც მოიცავს სხვადასხვა ციკლებს, რომლებიც საჭიროებენ თავისუფალ და მკაფიო რეკლამებს მელომანისა და პროგრამის გამანადგურებელი მფრინავის პროგრამისათვის.

ნაბიჯი 3: ციკლის სერიული FRAM

ციკლის სერიული FRAM
ციკლის სერიული FRAM
ციკლის სერიული FRAM
ციკლის სერიული FRAM
ციკლის სერიული FRAM
ციკლის სერიული FRAM
ციკლის სერიული FRAM
ციკლის სერიული 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 (ვუარის ფიგურა 9)

- 8 პრემიერი ბიტი, Op -code de l'écriture (წაიკითხეთ): 0000 0011 (0x03h) - 16 ბიტიანი მისამართი, meme si cette mémoire არ განიხილა 11 მანქანა il s'agit d'une mémoire de 16Kb ((2 ^11)*8 ბიტი) il faut envoyer 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 premiers bit, Op-code de la lecture (WRITE): 0000 0010 (0x02h)- 16 ბიტიანი მისამართი analize de la trame de lecture envoyée par SO à MISO de la Beaglebone: - 8 ბიტი დონენი

ნაბიჯი 4: Code Pilotant La Mémoire FRAM

ჩაასხით შემდგენელი პროგრამა c langage C: $ gcc programme_spi.c –o spiPour utiliser ce program: $./spi add1 add2 მონაცემთა რეჟიმი

Add1 (MSB) et Add2 (LSB) korrespondent chacun à 8 bits de donnée, მონაცემები შეესაბამება à 8 bits de données é cri cri re (met met met met met met met met met met met met met met met met ლექცია (= 1).

გამოყენების მაგალითი:./spi 150 14 210 2 écrit à l’adresse 16 ბიტი 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 ბიტი (voir schéma)

კონფიგურაცია du boitier: 17 მისამართი: A0-A16 8 მონაცემები: D0-D7 2 ჩიპი ჩართვა: CE#-CE2 2 ჩაწერა და გამომავალი ჩართვა: WE#-OE#2 VCC (3.3V), VSS (GND) 1 დაუკავშირებელი: NC

NB: 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 (მე ვაპირებ გავლა ან გადასასვლელი 2 სემინესი მანქანა არის პენსია 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 ტექნიკა ინდივიდუალური განსხვავებული ციკლებისთვის, რომლებიც საჭიროებენ თავისუფალ და მანიფესტაციულ პროგრამებს. 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 correction câblé:)) Cependant les temps entre les cycles peuvent varier d'une mémoire à une autre, le cycle plus plus long (100ns) des mémoires utilisées étant retenu car ilu 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. ციკლის ხანგრძლივობა არის განსაზღვრული კოდით. 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 code du code is celle qui permet de faire clignoter une LED და დროული ტემპერატურის განსაზღვრისას კორესპონდენტები, რომლებიც გამოიყენება ციკლების იმპროვიზირებული კონსტრუქტორებისთვის. ეფექტიანი კლინოტერი და LED- ები შეესაბამება cles la création de cycles d’état haut და bas pour les GPIO– ებს.

Le cycle de lecture quant à lui შედგება en la récupération de l’état des GPIO, comme pour détecter l’état d’un bouton poussoir.

ნაბიჯი 6: ციკლი 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

კრიტიკის ციკლი (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 ჩიპი ჩართვა 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)

ციკლის ციკლი (ვოა ფიგურა 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 effecte on récupère sur les entrée GPIO de la BeagleBone les valeurs se trouvant à cette addressse.

ნაბიჯი 7: Code Pilotant La Memoire Parraléle

მფრინავის კოდი 2 პერიოდი

შედგენა: $ 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 bit) 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 სლოტი 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- ის მხარდაჭერა

თქვენ შეგიძლიათ გაეცნოთ ფოტოებს, რომლებიც PCB– ს მხარს უჭერს mémoire sur lequel vous pourrez vous inspirer pour vos realisations. Si vous voulez réaliser un système de mémoire interchangeable comme moi veillez bien à câbler correction vos mémoires en utilisant toujours le même ordre pour les les pins.

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

გირჩევთ: