Sisukord:
- Samm: Quelques tüübid De Mémoires
- 2. etapp: Mémoire Serial FRAM SPI
- 3. samm: tsüklite jada FRAM
- Samm 4: Code Pilotant La Mémoire FRAM
- Samm: Mémoire Parralèle
- 6. samm: tsüklid Mémoire Parralèle
- Samm 7: Code Pilotant La Memoire Parraléle
- Samm 8: Toetage Pour Mémoires
Video: Pikendus Mémoire Pour BeagleBone Black: 8 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:48
Je vous présenter dans cet instructable un de mes projet qui consistait à 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 environmentnement pour chaque type de mémoire. Vous pouvez aussi utiliser les données de ce projet pour étendre la mémoire de votre BeagleBone, créer une clé USB or you simplement pour étudier leur fonctionnement.
Samm: Quelques tüübid De Mémoires
Voici une liste ammendav des diférents tüübid de mémoires utilisés dans ce projet avec leurs avantages et inconvénients:
Premier tüüpi de mémoire: la mémoire SRAM
La mémoire vive statique (või staatiline juhusliku juurdepääsu mälu) on üks tüüp de mémoire vive utilisant des bascules pour mémoriser les données. Kontrairement à 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!
Eelised: - la SRAM est rapide (temps d'accès 6 à 25 ns) - peu coûteuse (4 €/kuu). Ebasoodsad asjad: - 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 journée.
Deuxième tüüpi de mémoire: la mémoire MRAM
La mémoire vive statique magnétique (Magnetic Random Access Memory), mis on salvestatud donneses 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 radiation et aux hautes températures. Eelised:- mittevolatiilsed andmed. - inusabilité, puis ce qu’aucun mouvement électrique n'est engagegé (vastupidavus de 10^16 tsükli loeng /é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. - tempod d'accès 10 nanosekundit. - les débits sont de l'ordre du gigabit par seconde. - une excellente résistance aux radiation, omniprésentes dans un milieu spatial. Ebasoodsad asjad: - coûteuse (~ 35 €/Mo) car encore enhase de développement (Commercial de masse du produit prévue en 2018!) mais on peut s'en procurer chez Digikey commercialisé sous la marque Everspin.- mahutavus 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 tüüpi de mémoire: la mémoire FRAM
La mémoireFRAM (Ferroelectric Random Access Memory) on tüüpiline mitte -lenduv mälu tüüp, mida saab muuta ja arendada.
See on võrreldav DRAM-i ja laquelle'iga, mis on ajavahemikus sohva ferroelektriline, kuid mitte lenduv. Mai mai, Texas Instruments lance le premier microcontrôleur à mémoire FRAM.
Leur utilization on 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. Eelised: - une plus faible consommation d'électricité. - une plus grande rapidité de loeng et d'écriture (temps d'accès de 100 nanosecondes contre 1 microsekunde pour la mémoire flash). - võimalused d'être effacée et réécrite un bien pluss grand nombre de fois (kestvus 10^14 tsükli loengutel/erialadel). Ebamugavused: - despacités de stockage plus limitées - un coût de fabrication plus élevé, ~ 30 €/kuu
Les deux grandes familles de mémoires: Série (foto 1) ja parallèle (foto 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 hõlbustada d'integreerimist. Sõltumatu autojuht (trafe entière, tüüp 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 alla 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). Seadme tüüp on mõõdetav ja seda ei kasutata lorsque le temps d’accès aux données à peu d'importance comme lors du chargement d'un BIOS and is Certificates Cartes de type FPGA.
Võrguühendus: USB -mälupulgaga parameeter, mis ei sisalda domeenide allalaadimise mälu. 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 képes de récupérer en quelques ms tout le contenu de la mémoire de 1Mo. Ebakindel on keeruline auto siseselt, nombreux nööpnõelad erinevate mudelite ja autode ja taille du boîtier est plus grande vahel.
Lisage lisavõimalusi pluss lisamoodulid ja mälumeesid tempel 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. etapp: Mémoire Serial FRAM SPI
Cagbe de la BeagleBone à la mémoire: Reliés au 3.3V: VDD, HOLD, WP A 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 semi-konduktorid, 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 différentes mémoires indiquent que toutes fonctionnent de la même manière. Ainsi on võimalikud pendelrändajad ja -moodulid erinevatel viisidel ilma igasuguste uudsete algoritmide programmeerijata.
Les pins HOLD ja WP sont reliés au 3.3V: si cela empêche l’utilisateur d’utiliser ces fonctionnalités, cela permet de hõlbustaja la programmeerimine. Cependant ces fonctionnalités auraient été utiles si l’on avait plusieurs mémoires SPI à piloter!
Kui piloot on la mémoire il faut d’abord, õppige fiche -tehnikas disponible à l’adresse suivante:
Cette fiche -tehnika erineva elutsükli tsüklid, mis on vajalikud liiri ja ecrire dans la mémoire et ainsi réaliser un program permettant de les piloter jaoks.
3. samm: tsüklite jada FRAM
Ecriture:
Avant d'écrire dans la mémoire il faut envoyer une trame d'accès à L'écriture (WREN) 0000 0110 (0x06h) (Voir joonis 5) Analüüsige de la trame d'écriture envoyée par MOSI de la Beaglebone à SI (Voir joonis) 9)
- 8 premiers bitti, Op -code de l'écriture (LUGEGE): 0000 0011 (0x03h) - 16 bitti aadress, même si cette mémoire n'en harkita 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 bitti. Loeng:
Analüüsige de la trame de loengeee par par MOSI de la Beaglebone à SI: (Voir joonis 10)- 8 premiers bitti, Op-code de la loeng (WRITE): 0000 0010 (0x02h)- 16 bitti aadress Analyze de la trame de loeng saadik par SO à MISO de la Beaglebone: - 8 bitti
Samm 4: Code Pilotant La Mémoire FRAM
Valage kompilaator CE programm keelde C: $ gcc programme_spi.c - o spiPour utiliser ce programm: $./spi add1 add2 andmerežiim
Add1 (MSB) ja Add2 (LSB) korrespondentide arv 8 bitti, andmed vastavad 8 bitile deonüüridele (kr. 0 loengut) Režiim vastab à l’écriture (= 2) ou la loeng (= 1).
Kasutamise näide:./spi 150 14 210 2 écrit à l’adresse 16 bitti 150 14 (0x96h, 0x0Eh) la donnée 210 (0xD2).
./spi 150 14 0 1 lit à l'adresse150 14 (0x96h, 0x0Eh)
Samm: Mémoire Parralèle
Valage projet j'ai utilisé la mémoire SRAM ALLIANCE AS6C1008 128Kb * 8 bit (voir schéma)
Konfiguratsioon: 17 aadressi: A0-A16 8 Andmed: D0-D7 2 Kiip lubatud: CE#-CE2 2 Kirjutamine ja väljund lubatud: WE#-OE#2 VCC (3.3V), VSS (GND) 1 ühenduseta: NC
NB!
Vala le câblage à la BeagleBone voir schéma (Un réel plaisir à débugger où lorsque l'on à mal câblé!)
Tähelepanu: Vous vous demandez sans doute pourquoi j'ai sauté certains 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 repairment (me faisant perdre au passage 2 semaines car je pensais la mémoire défectueuse alors que certains GPIO ne fonctionnaient simplement pas!)
Piloteerija la mémoire il faut d’abord étudier fiche tehnikas disponible à l’adressesuivante:
Cette fiche tehnika indique les différents cycles nécessaires pour lire et écrire dans la mémoire et ainsi réaliser notre programme. Afin d’écrire dans la mémoire il faut respecter le cycle imposé par les konstruktorid, 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é:)) Sõltuvad ajad ja tsüklid 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 loengu miinimumid annoncés par les konstruktorid ne seront jamais atteints auto 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 partulier avec les temps minimaux. Le tsükkel d'écriture revient à modifier l’état des GPIOs. La base du code est celle qui permet de faire clignoter une LED and ajoutant des temporisations précisesrespondent aux durées des cycles imposées par le konstruktor. En effet l’action de faire clignoter une LED vastab a la création de cycles d’état haut et bas pour les GPIOs.
Loe tsükli kvant à lui consiste en la récupération de l’état des GPIO, comme pour détecter l’état d’un bouton poussoir.
6. samm: tsüklid Mémoire Parralèle
Tsükkel d'écriture (joonis 1, 2):
Täitke ecrire dans la mémoire il suffit de mettre les pins d'adresse aux valeurs souhaitées puis d'activer les entrées chip lubage CE à l'état haut et l'instruction Kirjutamise lubamine 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)
Loengutsükkel (joonis 3, 4):
Vajutage elektroonilistele seadmetele, et näha, millised on teie pins d'adresse aux valeurs souhaitées puis d'activer les entrées kiibid. Une fois cela effectu on récupère sur les entrée GPIO de la BeagleBone les valeurs se trouvant à cette adresse.
Samm 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:
koostamine: $ gcc -lm programme_memoire.c -o memuaar
$./memoire lisage 1 lisage 2 data1 data2 režiimi pesa1 pesa2
režiim: 1 loeng, 2 ökoloogia
Le code étant créer pour piloter deux mémoires il y a deux "slots", mettre à 1 pour utiliser.
Näide: $./memoire 120 140 20 210 2 1 0
écrit à l'adresse 120 140 (kuusnurkset 16 bitti) les données 20 210 sur la mémoire sur le slot 1.
Näide: $./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.
Samm 8: Toetage 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 vahetatav comme moi veillez bien à cableble parandus 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é!
Soovitan:
Kaasaskantavate peenosakeste mõõtmine (pikendus): 3 sammu
Kaasaskantavate peenosakeste mõõtmine (laiendus): Eesmärk: CO2 anduri lisamine Programmi loetavuse parandamine Programmi avamine muud tüüpi anduritele. See projekt järgneb teisele juba avaldatud projektile. See vastab lugejate küsimustele. Täiendav andur on
BeagleBone Blacki kasutamise alustamine: 11 sammu
Alustamine BeagleBone Blackiga: Pärast mõnda aega Arduino kasutamist otsustasin proovida Beaglebone Blacki. Nähes Instructables'i sisu puudumist ja endal alustamisega raskusi, tahtsin aidata teistel inimestel BeagleBone Blackiga häälestuda
Kasside vuntside sensoorne pikendus (2,0): 6 sammu (piltidega)
Cat Whisker Sensory Extension Wearable (2.0): see projekt on jätk ja ümberkujundamine mu endise kolleegi (metaterra) " Whisker Sensory Extension Wearable ". Selle projekti eesmärk oli keskenduda uudsete, arvutuslikult rikastatud "sensoorsete laiendite" loomisele, mis
Oculuse andurialus Paindlik pikendus: 7 sammu
Oculuse andurialuse paindlik pikendus: eelmise aasta lõpus täiendasin oma arvuti kuvarid kaheks üsna toredaks 27 " 2K dellid. Ainus probleem nendega on see, et mul pole nüüd piisavalt ruumi oma Oculus Rifti anduritele; tundub, et neile ei meeldi üksteisest nii lai olla
Beaglebone Black Web Control WebPy abil: 6 sammu
Beaglebone Black Web Control WebPy abil: Kas olete kunagi tahtnud luua viisi oma garaažiukse juhtimiseks telefoni abil, võib -olla koguda andmeid ja vaadata neid oma sülearvutist. Seal on üks pardaarvuti nimega Beaglebone Black, mis on äärmiselt võimas seade, mis võimaldab teil juhtida i