Isi kandungan:

Extension Mémoire Pour BeagleBone Black: 8 Langkah
Extension Mémoire Pour BeagleBone Black: 8 Langkah

Video: Extension Mémoire Pour BeagleBone Black: 8 Langkah

Video: Extension Mémoire Pour BeagleBone Black: 8 Langkah
Video: The PS5 Upgrade we Needed! 2024, Julai
Anonim
Extension Mémoire Pour BeagleBone Hitam
Extension Mémoire Pour BeagleBone Hitam

Je vous présenter dans cet diarahkan un de mes projet qui constait à 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 environnement pour chaque type de mire. Vous pouvez aussi utiliser les données de ce projet pour étendre la mémoire de votre BeagleBone, buat lebih awal USB atau simpan tuangkan penerangan.

Langkah 1: Jenis Quelques De Mémoires

Jenis Quelques De Mémoires
Jenis Quelques De Mémoires
Jenis Quelques De Mémoires
Jenis Quelques De Mémoires
Jenis Quelques De Mémoires
Jenis Quelques De Mémoires

Voici une liste lengkap dan terperinci jenis de mémoires utilisés dans ce projet avec leurs avantages et inconvénients:

Jenis perdana de mémoire: SRAM la mémoire

Stique La mémoire vive (ou Static Random Access Memory) dan un type de mémoire vive utilisant des bascules pour mémoriser les données. Kontraksi à la mémoire dynamique, putra contenu n'a pas di samping déêtre rafraîchit périodiquement. Elle reste bergantung bebas: elle ne peut se passer d'alimentation sous peine de voir ses maklumat yang berkesan tidak dapat diubah!

Avantages: - la SRAM est rapide (temps d'accès 6 à 25 ns) - peu coûteuse (4 € / Mo). Intervénients: - besoin d'être alimenté in permanence pour ne pas perdre ses données, aussi ce type de mémoire memaksakan d'ajouter à notre carte mémoire un moyen de l'alimenter secara kekal. Le moyen trouvé est d’ajouter un super condensateur Cellergy pouvant alimenter la mémoire loket une journal.

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

La mémoire vive statisque magnétique (Magnetic Random Access Memory) stocke les données sans avoir di sebelah d'être alimentée. Le changement d'état se fait en changeant l'orientation polaire des électrons (nota terowong par effet). Elle est très résistante aux radiations et aux hautes températures. Avantages: - maklumat non-volatilité des. - inusabilité, puis ce qu’aucun mouvement électrique n'est engagé (daya tahan kuliah 10 ^ 16 kitaran / écriture!). - la consommation électrique est théoriquement moindre puisqu'il n ay a pas de perte termique kerana à la résistance des matériaux aux mouagues des électrons. - suhu 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. Inconvénients: - coûteuse (~ 35 € / Mo) encore en phase en développement (pengkomersialan de masse du produit prévue en 2018!) mais on peut s'en procurer chez Digikey komersialis sous la marque Everspin.- kapasité de stockage est très limé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 (Memori Akses Rawak Ferroelektrik) dan sejenis jenis mémoire d'ordinateur tidak mudah berubah à l'état de recherche et développement.

Elle est similaire à la mémoire DRAM à laquelle pada ajouté une couche ferro-électrique pour obtenir la non volatilité. Pada bulan 2011, Texas Instruments lance 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. Avantages: - une plus fable 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 (endurance de 10 ^ 14 cycles lectures / écritures). Intervénients: - des kapasités de stockage plus limées - un coctt de fabrikasi ditambah élevé, ~ 30 € / Mo

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

Série: les mémoires séries on pour pour avantage de permettre un gain de place et de garder la même konfigurasi selon les modèles d'où leur fasilitator d'intégration. Bergantung ces mémoires ne sont pas très rapide car la trame entière (type d'opération, adresse, données…) do itêre reueue avant d’enregistrer ou accéder à la donnée. Jenis khas la vitesse d'accès allant de 5 à 20MHz pada à au mieux accès aux bits de données que tous les (1 / (20 * 10⁶)) sec soit 50 ns par bit (50ns * 8 = 400ns tuangkan 8 bit). Ce type de mémoire est donc utilisé lorsque le temps daccaccs aux données à peu d'importance comme lors du chargement d'un BIOS dan tertentu tertentu cartes de type FPGA.

Parallèle: Les mémoires parallèles sont très utilisées dans tous les domaines allant de la RAM tuangkan 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 information, nous sommes donc mampu 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 pin diffèrent d'un modèle à l'autre et la taille du boîtier est plus grande.

Tuangkan akses à plusieurs en mémoire en même temps nous devons jouer sur les pins de chip enabled (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 alamat.

Langkah 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

NB: L'avantage de ce type de mémoire SPI est que, peu importe le modèle ou la marque du fabrikant de semi-conducteurs, la config du du boîtier reste la même ce qui n'est pas le cas des autres jenis de mémoires comme les mémoires parallèles. De plus les datasheet de ces différentes mémoires unik que toutes fonctionnent de la même manière. Sebilangan besar kemungkinan berlaku komuter de mémires de différents modèles sans avoir à programmer de nouveaux algoritma.

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 fasilitator la pengaturcaraan. Bergantung 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 teknik boleh guna à l'adresse suivante:

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

Langkah 3: FRAM Bersiri Cycles

FRAM Bersiri Cycles
FRAM Bersiri Cycles
FRAM Bersiri Cycles
FRAM Bersiri Cycles
FRAM Bersiri Cycles
FRAM Bersiri Cycles
FRAM Bersiri Cycles
FRAM Bersiri Cycles

Ecriture:

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

- 8 bit perdana, Op-code de l'écriture (BACA): 0000 0011 (0x03h) - 16 bit alamat, même si cette mémoire n'en considère que 11 car il s'agit d'une mémoire de 16Kb ((2 ^ 11) * 8bits) il faut envoyer 16 bit car cela permettra de pouvoir aussi piloter des mémoires 64Kb. - 8 bit de données. Kuliah:

Analisis de la trame de kuliah par MOSI de la Beaglebone à SI: (Voir gambar 10) - 8 bit perdana, kod Op-kod de la (MENULIS): 0000 0010 (0x02h) - 16 bit alamat Menganalisis de la trame de kuliah envoyée par SO à MISO de la Beaglebone: - 8 bit de données

Langkah 4: Kod Pilotan La Mémoire FRAM

Tuangkan program ce compiler en langage C: $ gcc programme_spi.c –o spiPour utiliser ce program: $./spi add1 add2 mod data

Add1 (MSB) et Add2 (LSB) koresponden chacun à 8 bits de donnée, data sesuai à 8 bit de données à écrire (mettre 0 si ceramah) Mod sesuai dengan à l'écriture (= 2) ou la kuliah (= 1).

Contoh penggunaan:./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 (0x96j, 0x0Eh)

Langkah 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

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

Konfigurasi du boitier: 17 Alamat: A0-A16 8 Data: D0-D7 2 Chip Enable: CE # -CE2 2 Write and Output Enable: WE # -OE # 2 VCC (3.3V), VSS (GND) 1 non connecté: NC

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

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

Perhatian: Vous vous demandez sans doute pourquoi j'ai sauté mengesahkan data GPIO dan 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 laluan 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 teknik boleh guna à l'adressesuivante:

Teknik cette fiche 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 penghormat le cycle imposé par les konstruktor, 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é:)) Bergantung bergantung pada siklus 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 kuliah minimum annoncés par les konstruktor ne seront jamais memberi perhatian kepada mobil 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 cycle menuangkan une mémoire secara khusus 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 précises koresponden aux durées des cycles imposées par le konstruktor. En effet l'action de faire clignoter une LED sesuai dengan à la création de cycles d’état haut et bas pour les GPIO.

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

Langkah 6: 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
Cycles Mémoire Parralèle

Cycle d'écriture (gambar voir 1, 2):

Tuang écrire dans la mémoire il suffit de mettre les pins d'adresse aux valeurs souhaitées puis d'activer les entrées chip membolehkan CE à l'état haut et l'instruction Tulis mengaktifkan KAMI. Une fois cela effectuer mettre les pins des données aux valeurs souhaitées et le tour est joué (Mais perhatian tue de même à bien resper les temporisations! ~ 100ns)

Cycle de ceramah (voir gambar 3, 4):

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

Langkah 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:

kompilasi: $ gcc -lm programme_memoire.c -o memoire

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

mod: 1 Kuliah, 2 Ecriture

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

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

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

Langkah 8: Sokong Tuangkan Mémoires

Sokong Tuangkan Mémoires
Sokong Tuangkan Mémoires
Sokong Tuangkan Mémoires
Sokong Tuangkan Mémoires
Sokong Tuangkan Mémoires
Sokong Tuangkan Mémoires
Sokong Tuangkan Mémoires
Sokong Tuangkan Mémoires

Je vous fournit dans les photos les PCB de support mémoire sur lequel vous pourrez vous inspirer pour vos réalisations. Siasatan vélez réaliser un système de mémoire boleh ditukar koma moi veillez bien à câbler correction vos mémoires en utilisant toujours le même ordre pour les pin.

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

Disyorkan: