Sisällysluettelo:
- Vaihe 1: Quelques Types De Mémoires
- Vaihe 2: Mémoire Serial FRAM SPI
- Vaihe 3: Kierrä sarjakehystä
- Vaihe 4: Code Pilotant La Mémoire FRAM
- Vaihe 5: Mémoire Parralèle
- Vaihe 6: Pyörät Mémoire Parralèle
- Vaihe 7: Code Pilotant La Memoire Parraléle
- Vaihe 8: Tue Pour Mémoiresia
Video: Extension Mémoire Pour BeagleBone Black: 8 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:02
Je vous présenter dans set instructable un de mes projet qui consistait à piloter des mémoires de differentéeres tyypit 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 simplement pour étudier leur fonctionnement.
Vaihe 1: Quelques Types De Mémoires
Voici une liste tyhjentävä des différents tyypit de mémoires utilisés dans ce projet avec leurs avantages et inconvénients:
Premier -tyyppinen meemoire: la mémoire SRAM
La mémoire vive statique (tai staattinen satunnaismuisti) on tyypin de 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 volatile: elle ne peut se passer d'alimentation sous peine de voir ses informaatiot effacées irrémédiablement!
Hyödyt: - la SRAM est rapide (temps d'accès 6 à 25 ns) - peu coûteuse (4 €/kk). d'ajouter à notre carte mémoire un moyen de l'alimenter en pysyvyys. Le moyen trouvé est d’ajouter un super condensateur Cellergy pouvant alimenter la mémoire pendant une journée.
Deuxième -tyyppi de mémoire: la mémoire MRAM
La mémoire vive statique magnétique (magneettinen satunnaismuisti), joka on ladattu ilman donnees 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 and aux hautes températures. Edut:- ei-haihtuvia tietoja. - inusabilité, puis ce qu’aucun mouvement électrique n'est engagegé (kestävyys 10^16 syklin luento /kirjoitus!). - 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. - temps d’accès 10 nanosekuntia. - les débits sont de l'ordre du gigabit par seconde. - une excellente résistance aux radiation, omniprésentes dans un milieu spatial. Inconvénients: - coûteuse (~ 35 €/Mo) car encore en phase de développement (commercialization de masse du produit prévue en 2018!) mais on peut s'en procurer chez Digikey kaupallinen sous la marque Everspin.- kapasiteetti, varastointi 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 tyyppi de mémoire: la mémoire FRAM
La mémoireFRAM (Ferroelectric Random Access Memory) on tyypillinen mitoire d'ordinators haihtumaton salaisuus à l'état de recherche et développement.
Elle on samanlainen kuin DRAM à laquelle a ajouté une couche ferro-electrique pour obtenir la non volatilité. Tänään, 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. Edut: - une plus faible consommation d'électricité. - une plus grande rapidité de luento et d'écriture (temps d'accès de 100 nanosecondes contre 1 micrososeonde pour la mémoire flash). - la mahtuvuus d'être effacée et réécrite un bien plus grand nombre de fois (kestävyys 10^14 sykliä luentoja/arvosanat).
Les deux grandes familles de mémoires: Série (kuva 1) et parallèle (kuva 2)
Sarja: 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 facilité d'intégration. Cependant ces mémoires ne sont pas très rapide car la trame entière (tyyppi 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 bit (50ns*8 = 400ns pour 8 bits). Se tyyppi 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 and certaines 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 in the 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 képes de récupérer en quelques ms tout le contenu de la mémoire de 1Mo. L'inconvénient on vaikeaa auton sisäpuolella olevissa autoissa, joissa on erilaisia nastatyyppejä, jotka ovat eri modulaarisia l'autre ja la taille du boîtier est plus grande.
Lisää lisälaitteita ja lisälaitteita ja mummoire 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.
Vaihe 2: Mémoire Serial FRAM SPI
Caglage 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
Huom. 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 paras mahdollinen työmatkaliikenne, jossa on erilaisia modèles sans avoir à nuveveaux -algoritmien ohjelmoijia.
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 helpiter la programmation. Cependant ces fonctionnalités auraient été utiles si l’on avait plusieurs mémoires SPI à piloter!
Ohjaa pilottia la mémoire il faut d’abord étudier sa fiche -tekniikkaan, joka on käytettävissä à l’adresse suivante:
Cette fiche -tekniikka indique les différents cycles nécessaires pour lire et eccire dans la mémoire et ainsi réaliser un program permettant de les pilot.
Vaihe 3: Kierrä sarjakehystä
Ecriture:
Avant d'écrire dans la mémoire il faut envoyer une trame d'accès à L'écriture (WREN) 0000 0110 (0x06h) (Voir -kuva 5) Analyze de la trame d'écriture envoyée par MOSI de la Beaglebone à SI (Voir -kuva) 9)
- 8 premiers bittiä, Op -code de l'écriture (LUE): 0000 0011 (0x03h) - 16 bittiä osoite, même si cette mémoire n'en harkitsee que 11 car il s'agit d'une mémoire de 16Kb (((2) ^11)*8bits) faut envoyer 16 bittiä auto cela permettra de pouvoir aussi piloter des mémoires 64Kb. - 8 bittiä. Luento:
Analyze de trame de luentiedustaja MOSI de la Beaglebone à SI: (Voir-kuva 10)- 8 premiers bittiä, Op-code de la luento (WRITE): 0000 0010 (0x02h)- 16 bittiä osoite Analyze de la trame de luento lähettiläs par SO à MISO de la Beaglebone: - 8 bittiä
Vaihe 4: Code Pilotant La Mémoire FRAM
Kaada kääntäjä ce -ohjelma kielelle C: $ gcc programme_spi.c –o spiPour utiliser ce -ohjelma: $./spi add1 add2 data mode
Add1 (MSB) et Add2 (LSB) kirjeenvaihtaja, 8 bittiä, data vastaa 8 bittiä de donées à écrire (mettre 0 si luento) Tila vastaa à l’écriture (= 2) tai luento (= 1).
Esimerkki käytöstä:./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)
Vaihe 5: Mémoire Parralèle
Kaada projet j'ai utilisé la mémoire SRAM ALLIANCE AS6C1008 128Kb * 8 bittiä (voir schéma)
Configuration du boitier: 17 Osoitteet: A0-A16 8 Data: D0-D7 2 Siru käytössä: CE#-CE2 2 Kirjoitus ja lähtö käytössä: WE#-OE#2 VCC (3.3V), VSS (GND) 1 ei yhteyttä: NC
Huom: La disposition des pins varie grandement d'un modèle à un autre ainsi que les temps de luento / kirjoittaminen
Kaada BeagleBone voir schéma (Un réel plaisir à débugger où lorsque l'on à mal câblé!)
Huomio: 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 correctement (me faisant perdre au passage 2 semaines car je pensais la mémoire défectueuse alors que certains GPIO ne fonctionnaient simplement pas!)
Pilotti la mémoire il faut d’abord étudier sa fiche -tekniikalla disponible à l’adressesuivante:
Cette fiche -tekniikka 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 respecter le cycle imposé par les buildstrurs, 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é:)) Riippuvaiset 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 car il s'adaptera à toutes les mémoires. Ainsi les temps d’écriture et luentominimit annoncés par les constructiontsurs 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 partulier 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 and ajoutant des temporisations précisesrespondent aux durées des cycles imposées par le rakentaja. En effet l'action de faire clignoter une LED vastaa à la création de cycles d'état haut et bas pour les GPIOs.
Luentojakso kvantti à lui consiste en la récupération de l’état des GPIO, comme pour détecter l’état d’un bouton poussoir.
Vaihe 6: Pyörät Mémoire Parralèle
Cycle d'écriture (voir kuva 1, 2):
Kaada sähköinen kirjoitus 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 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)
Luentojakso (kuva 3, 4):
Kaada sähköinen kirjoitus 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é on récupère sur les entrée GPIO de la BeagleBone les valeurs se trouvant à cette adresse.
Vaihe 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:
kokoelma: $ gcc -lm programme_memoire.c -o memoire
$./memoire lisää 1 lisää 2 data1 data2 -tilan paikka1 paikka2
tila: 1 luento, 2 ecriture
Le Code étant créer pour pilot deux mémoires il y a deux "slots", mettre à 1 pour utiliser.
Esimerkki: $./memoire 120140 20210 2 1 0
écrit à l'adresse 120140 (16 bittiä) les données 20210 sur la mémoire sur le slot 1.
Esimerkki: $./memoire 120140 0 0 1 1 1
lit à l'adresse 120140 les données sur la mémoire du slot 1 et 2.
Vaihe 8: Tue Pour Mémoiresia
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 interchangeable comme moi veillez bien à cableble korjaus 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é!
Suositeltava:
OXsC-ACW: GUI Customiseur Pour OpenXsensor Pour Multiplex -korkeus/varimetri: 11 vaihetta
OXsC-ACW: GUI Customiseur Pour OpenXsensor Pour Multiplex Korkeus/muuttuja: openXsensor est the valideable, more il n'est pas facile de modifier les param è tres pour quelqu'un qui n'a pas un peu d ’ exp é rience en C. J'ai donc é crit un petit program qui permet de choisir les options via une interface si
BeagleBone Blackin käytön aloittaminen: 11 vaihetta
BeagleBone Blackin käytön aloittaminen: Arduinon käytön jälkeen päätin kokeilla Beaglebone Blackia. Nähdessäni Instructablesin sisällön puutteen ja vaikeuksia päästä alkuun itse halusin auttaa muita ihmisiä aloittamaan BeagleBone Blackin käytön
Cat Whisker Sensory Extension Wearable (2.0): 6 vaihetta (kuvilla)
Cat Whisker Sensory Extension Wearable (2.0): Tämä projekti on jatkoa ja uudelleenkuvitusta entiselle kollegalleni (metaterra) "Whisker Sensory Extension Wearable". Tämän projektin tarkoituksena oli keskittyä uusien, laskennallisesti rikastettujen "aistien laajennusten" luomiseen, jotka
Beaglebone Black Web Control WebPyn avulla: 6 vaihetta
Beaglebone Black Web Control WebPyn avulla: Oletko koskaan halunnut luoda tavan hallita autotallin ovea puhelimellasi, ehkä kerätä tietoja ja tarkastella niitä kannettavalta tietokoneeltasi. On yksi piirilevy, nimeltään Beaglebone Black, joka on erittäin tehokas laite, jonka avulla voit hallita i
Smart Power Strip perustuu Beaglebone Blackiin ja OpenHABiin: 7 vaihetta (kuvilla)
Smart Power Strip perustuu Beaglebone Blackiin ja OpenHABiin: !!!!! Pelaaminen verkkovirralla (110/220V) on vaarallista, ole erittäin varovainen !!!!! ja kaksi Arduinoa, jotka näkyvät kuvassa "Vanha muotoilu" .Tämä uusi