Inhoudsopgave:

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

Video: Extension Mémoire Pour BeagleBone Black - Ajarnpa

Video: Extension Mémoire Pour BeagleBone Black - Ajarnpa
Video: Chargement du papier : pour installation (G5000 series) 2024, Juli-
Anonim
Extension Mémoire Pour BeagleBone Zwart
Extension Mémoire Pour BeagleBone Zwart

Je vous présenter dans cet instructable un de mes projet qui conistait à 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'ermémoires enonnementé par taux de pouvoir tester leur fonctionnement dans des condition spatiales (enceinte radiative). 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.

Stap 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 exhaustive des verschillende types de mémoires utilisés dans ce projet avec leurs avantages and inconvénients:

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

La mémoire vive statique (of Static Random Access Memory) is een type van mémoire vive utilisant des bascules pour 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 volatiel: elle ne peut se passer d'alimentation sous peine de voir ses informations effacées irrémédiablement !

Voordelen: - la SRAM est rapide (temps d'accès 6 à 25 ns) - peu coûteuse (4€/ma). Ongemakken: - besoin d'être alimenté en permanence pour ne pas perdre ses données, aussi ce type de mémoire impress 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 journée.

Deuxième type de mémoire: de 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 stralingen et aux hautes températures. Voordelen: - de niet-vluchtige informatie. - inusabilité, puis ce qu'aucun mouvement électrique n'est engagé (uithoudingsvermogen van 10^16 cycli lezing / écriture !). - la consommation électrique est theoriquement moindre puisqu'il n'y a pas de perte thermique due à la résistance des materiaux aux mouvements des électrons. - tijdelijke toegang tot 10 nanoseconden. - les debits sont de l'ordre du gigabit per seconde. - une excellente résistance aux stralingen, omniprésentes dans un milieu spatial. Inconvénients: - coûteuse (~35€/mnd) car encore en phase de development (commercialisation de masse du produit prévue in 2018 !) mais on peut s'en procurer chez Digikey commercialisé sous la marque Everspin.- capaciteit van de voorraad is maximaal beperkt door de magnétiques qui risquent de perturber les cellules voisines s elles sont tropches les unes des autres.

Troisième type de mémoire: de mémoire FRAM

La mémoireFRAM (Ferroelectric Random Access Memory) is een soort geheugen van niet-vluchtige toegiften van recherche en ontwikkeling.

Elle est s similaire à la mémoire DRAM à laquelle op een ajouté une couche ferro-électrique pour obtenir la non volatilité. In mei 2011, Texas Instruments lanceert de premier microcontrôleur à mémoire FRAM.

Het gebruik van de SSD (Solid State Drive), comme pour les autres mémoires non-volationes, les données n'ont pas besoin d'énergie pour être conservées. Voordelen: - une plus faible consommation d’électricité. - une plus grande rapidité de lezing en d'écriture (temps d'acccès de 100 nanoseconden contre 1 microseconde pour la mémoire flash). - de mogelijkheid tot het maken van een overzicht van de grote hoeveelheden van de fois (duurzaamheid van 10^14 cycli lezingen/écritures). Ongemakken: - des capacités de stockage plus limitées - un coût de fabrication plus élevé, ~30€/Mo

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

Serie: de geheugenreeksen om een voordeel van de permettre te maken en de plaats en de garder van de geheugenconfiguratie te selecteren die de modellen van de integratie faciliteert. Cependant ces mémoires ne sont pas très rapide car la trame entière (type d'opération, 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 aux bits de données que tous les (1/(20*10⁶))sec soit 50 ns par bits (50ns*8= 400ns pour 8 bits). Dit type geheugen is beschikbaar voor het gebruik van de tijdelijke toegang tot de gegevens van het belang van de kosten van het BIOS en bepaalde cartes de type FPGA.

Parallèle: 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'acceder aux informations, nous sommes donc capable de récupérer en quelques ms tout le contenu de la mémoire de 1Mo. Het is moeilijk om de auto te integreren met verschillende spelden die je kunt ontwerpen en je taille kunt combineren met groots.

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 type de mémoires seul change le moyen d’accès aux données et adressen.

Stap 2: Memoire Serial FRAM SPI

Mémoire serieel FRAM SPI
Mémoire serieel FRAM SPI
Mémoire serieel FRAM SPI
Mémoire serieel FRAM SPI

Câblage de la BeagleBone naar de herinnering:Reliés op 3.3V: VDD, HOLD, WP Massa: VSS MISO relié à SO MOSI relié à SI CS relié à CS

NB: Het eerste type van geheugen SPI est que, peu importe le modèle of 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 type de mémoires comme les mémoires parallèles. De plus les datasheet de ces verschillende mémoires indiquent que toutes fonctionnent de la même manière. Een goed mogelijk geheugen voor de forensen van verschillende algoritmen zonder programmeur.

Les pins HOLD en WP zijn gebaseerd op 3.3V: de meest gebruikte functie van het gebruik van functies, de mogelijkheid om de programmatie te vergemakkelijken. 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 techniek beschikbaar à l'adresse suivante:

Cette fiche techniek indique les différents cycles nécessaires pour lire et écrire dans la mémoire en ainsi realiser un program permettant de les piloter.

Stap 3: cycli serieel FRAM

Cycli Serieel FRAM
Cycli Serieel FRAM
Cycli Serieel FRAM
Cycli Serieel FRAM
Cycli Serieel FRAM
Cycli Serieel FRAM
Cycli Serieel FRAM
Cycli Serieel FRAM

ecriture:

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

- 8 premiers bits, Op-code de l'écriture (READ): 0000 0011 (0x03h) - 16 bits adresse, 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 bits auto cela permettra de pouvoir aussi piloter des mémoires 64Kb. - 8 stukjes données. Lezing:

Analyse de la trame de lezing gezant door MOSI de la Beaglebone à SI: (Voir figuur 10)- 8 premiers bits, Op-code de la lecture (WRITE): 0000 0010 (0x02h) - 16 bits adresse Analyse de la trame de lezing gezant van SO à MISO de la Beaglebone: - 8 bits de données

Stap 4: Code Pilotant La Mémoire FRAM

Giet compiler ce programma en taal C: $ gcc program_spi.c –o spiPour utiliser ce programma: $./spi add1 add2 data mode

Add1 (MSB) en Add2 (LSB) correspondent chacun à 8 bits de donnée, data corresponderen à 8 bits de données à écrire (mettre 0 si lecture) Mode correspondeert à l’écriture (= 2) ou la lecture (= 1).

Voorbeeld van gebruik:./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)

Stap 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

Voor gebruik van het geheugen SRAM ALLIANCE AS6C1008 128Kb * 8 bits (voor een schema)

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

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

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

Let op: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 en 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 techniek beschikbaar à l'adressesuivante:

Cette fiche techniek indique les différents cycles nécessaires pour lire et écrire dans la mémoire en ainsi réaliser notre programme. 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 correctment 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éesu s'adaptera à toutes les mémoires. Ainsi les temps d’écriture en lezing minima aangekondigd door les constructeurs ne seront jamais atteints auto imposés door la mémoire la plus lente. La durée des cycles est définie dans le code. Het maximale aantal mogelijke programma's van de geprogrammeerde cyclussen voor een geheugen en particulier met de minimaux van de temps. Le cycle d'écriture revient à modifier l'état des GPIOs. De basis van de code is een goed zichtbaar licht van de LED en de bijbehorende temporisaties die corresponderen met de duur van de cyclussen die door de constructeur worden opgelegd. En effet l’action de faire clignoter une LED correspond à la création de cycles d’état haut et bas pour les GPIOs.

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

Stap 6: Fietsen Mémoire Parralèle

Fietsen Mémoire Parralèle
Fietsen Mémoire Parralèle
Fietsen Mémoire Parralèle
Fietsen Mémoire Parralèle
Fietsen Mémoire Parralèle
Fietsen Mémoire Parralèle
Fietsen Mémoire Parralèle
Fietsen Mémoire Parralèle

Cycle d'écriture (zie figuur 1, 2):

Voor het bewaren van de herinnering aan de mettredes van het adres en van de waarden voor de actievere toegangen chip enable CE à l'état haut et l'intruction Write enable 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)

Cyclus de lezing (zie figuur 3, 4):

Voor het bewaren van de herinnering aan de mettredes d'adresse aux valeurs souhaitées puis d'activer les entrées chip enable CE à l'état haut et l'intruction Output enable OE. Une fois cela effectue on récupère sur les entrée GPIO de la BeagleBone les valeurs se trouvant à cette adresse.

Stap 7: Codeer piloot 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:

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

$./memoire toevoegen 1 toevoegen 2 data1 data2 modus slot1 slot2

modus: 1 lezing, 2 ecriture

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

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

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

Stap 8: Steun Pour Mémoires

Steun Pour Mémoires
Steun Pour Mémoires
Steun Pour Mémoires
Steun Pour Mémoires
Steun Pour Mémoires
Steun Pour Mémoires
Steun Pour Mémoires
Steun Pour Mémoires

Je vous fournit dans les photos on 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 verwisselbare comme moi veillez bien à câbler correction vos mémoires en utilisant toujours le même ordre pour les pins.

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

Aanbevolen: