Sommario:
- Fase 1: Quelques Types De Mémoires
- Passaggio 2: Mémoire Serial FRAM SPI
- Passaggio 3: cicli FRAM seriale
- Fase 4: Code Pilotant La Mémoire FRAM
- Fase 5: Mémoire Parralèle
- Fase 6: Cycles Mémoire Parralèle
- Step 7: Code Pilotant La Memoire Parraléle
- Passaggio 8: supporto per i ricordi
Video: Extension Mémoire Pour BeagleBone Black: 8 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:03
Je vous présenter dans cet instructionsable un de mes projet qui consistait à piloter des mémoires de différents type afin de pouvoir tester leur fonctionnement dans des conditionspacees (enceinte radiative) et de trouver le taux d'erreurs engendré par cet type deselezionare environnement pour. Vous pouvez aussi utiliser les données de ce projet pour étendre the mémoire de votre BeagleBone, creer una chiave USB o simplement per étudier leur functionnement.
Fase 1: Quelques Types De Mémoires
Voci une elenco esaustivo dei diversi tipi di memorie utilisés dans ce projet avec leurs avantages et inconvénients:
Premier type de mémoire: la mémoire SRAM
La memoria vive statica (o Static Random Access Memory) è un tipo di memoria viva che utilizza le basi per memorizzare le donne. 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 !
Vantaggi: - la SRAM è rapida (temps d'accès 6 à 25 ns) - peu coûteuse (4€/mese). 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: la mémoire MRAM
La memoria vive statique magnétique (Memoria magnetica ad accesso casuale) 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 radiazioni et aux hautes températures. Vantaggi: - la non volatilità delle informazioni. - inusabilité, puis ce qu'aucun mouvement électrique n'est engagé (endurance de 10^16 cicli lezione /é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. - Temps d'accès de 10 nanosecondi. - les débits sont de l'ordre du gigabit par seconde. - un'eccellente resistenza alle radiazioni, omniprésentes dans un milieu space. Inconvénients: - coûteuse (~35€/Mese) car encore en phase de développement (commercialisation de mass du produit prévue en 2018 !) mais on peut s'en procurer chez Digikey commercializzato sotto la marca Everspin.- La capacità di stoccaggio è molto limitata a causa dei campioni magnetici che provocano il rischio di sconvolgere le cellule che sono troppo alte.
Troisième type de mémoire: la mémoire FRAM
La memoria FRAM (Ferroelectric Random Access Memory) è un tipo di memoria ordinata non volatile encore à l'état de recherche et développement.
Elle est similaire à la mémoire DRAM à laquelle on a ajouté une couche ferro-électrique pour obtenir la non volatilité. Nel maggio 2011, Texas Instruments lancia il primo microcontrollore a memoria FRAM.
L'utilizzo è destinato all'unità 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. Vantaggi: - une plus faible consommation d'électricité. - une plus grande rapidità di lezione e scrittura (temps d'accès de 100 nanosecondes contro 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 cicli di lezioni/scritture).
Les deux grandes familles de mémoires: Série (foto 1) et 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 facilité d'integration. 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. Tipicamente la velocità di accesso è da 5 a 20 MHz su tutti i miei accessi ai bit di tutti i giorni (1/(20*10⁶))sec per 50 ns par bit (50ns*8= 400ns per 8 bit). Ce type 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 dans Certaines cartes de type FPGA.
Parallelo: Le memorie parallele sono molto utili in tutti i domini all'interno della RAM per l'ordinamento sulla chiave USB. Questo tipo di promemoria è bello e più veloce del promemoria SPI car en un colpo d'orologio il permesso d'accedere alle informazioni, non c'è nessun numero in grado di recuperare in quelques ms tutto il contenuto del promemoria di 1Mo. L'inconveniente è difficile a integrer car les nombreux pins differenti d'un model à l'autre et la taille du boîtier est plus grande.
Per accedere a più informazioni su una memoria in un determinato momento, non sarà necessario accedere ai perni di abilitazione chip (CE) delle memorie a seguito dell'indicazione di una lacca senza alcun diritto di accesso (voir schema). Le schéma est valable pour les deux types de mémoires seul change le moyen d'accès aux données et adresses.
Passaggio 2: Mémoire Serial FRAM SPI
Câblage de la BeagleBone à la mémoire:Reliés au 3.3V: VDD, HOLD, WP A la mass: VSS MISO relié à SO MOSI relié à SI CS relié à CS
NB: L'vantage de ce type de mémoire SPI est que, peu importe le modèle ou 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 types de mémoires comme les memorie parallele. De plus les datasheet de ces différentes mémoires indiquent que toutes fonctionnent de la même manière. Ainsi il più possibile de commuter des mémoires de differenti modèles sans avoir à programmer de nuovi algoritmi.
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 faciliter la programmation. Tuttavia 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 Technique disponibile all'indirizzo successivo:
Questa scheda tecnica indica i diversi cicli nécessaires pour lire et écrire dans la mémoire et ainsi réaliser un program permettant de les piloter.
Passaggio 3: cicli FRAM seriale
Scrittura:
Avant d'écrire dans la mémoire il faut envoyer une trame d'accès à L'écriture (WREN) 0000 0110 (0x06h) (Voir figure 5)Analyse de la trame d'écriture envoyée par MOSI de la Beaglebone à SI (Voir figure 9)
- 8 premiers bits, Op-code de l'écriture (READ): 0000 0011 (0x03h) - 16 bits adresse, même si cette mémoire n'en considere 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 bits de données. Conferenza:
Analyse de la trame de lecture inviato da MOSI de la Beaglebone à SI: (Voir figura 10)- 8 premiers bits, Op-code de la lecture (WRITE): 0000 0010 (0x02h) - 16 bits adresse Analyse de la trame de lecture inviato da SO à MISO de la Beaglebone: - 8 bits de données
Fase 4: Code Pilotant La Mémoire FRAM
Pour compiler ce program en langage C: $ gcc program_spi.c –o spiPour utiliser ce program: $./spi add1 add2 data mode
Add1 (MSB) et Add2 (LSB) corrispondente chacun a 8 bits de donnée, data corrisponde a 8 bits de données à écrire (mettre 0 si lecture) Mode corrisponde a l'écriture (= 2) ou la lecture (= 1).
Esempio di utilizzo:./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)
Fase 5: Mémoire Parralèle
Pour ce projet j'ai utilisé la mémoire SRAM ALLIANCE AS6C1008 128Kb * 8 bits (voir schéma)
Configuration du boitier: 17 Adresses: 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 non connesso: 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é !)
Attenzione: Vous vous demandez sans doute pourquoi j'ai sauté determinate 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 !)
Afin de piloter la mémoire il faut d'abord étudier sa fiche technical disponible à l'adressesuivante:
Cette fichetechnic 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 risperer 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 Correctement câblé:))Cependant les temps entre les cycle 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 lecture minimums annoncés par les constructeurs ne seront jamais atteints car imposés par la mémoire la plus lente. La durata dei cicli è definita nel codice. Le seul moyen d'aller d'atteindre la vitesse maximale et de programmer lescycles pour une mémoire en particulier avec les temps minimaux. Le cycle d'écriture revient à modifier l'état des GPIOs. La base del codice è la cella che permette di fare clic su un LED e di aggiungere temporizzazioni precise corrispondenti alle durate dei cicli imposti dal costruttore. En effet l'action de faire clignoter une LED corrisponde alla creazione dei cicli d'état haut et bas pour les GPIOs.
Le cycle de lecture quant à lui consiste en la récupération de l'état des GPIO, comme pour détecter l'état d'un bouton poussoir.
Fase 6: Cycles Mémoire Parralèle
Cycle d'écriture (voir figure 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 chip enable CE à l'état haut et l'instruction Write enable WE. Une fois celaeffectuer mettre les pins des données aux valeurs souhaitées et le tour est joué
Ciclo di lezione (voir figure 3, 4):
Per scrivere nella memoria 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.
Step 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:
compilazione: $ gcc -lm program_memoire.c -o memoire
$./memoria aggiungi 1 aggiungi 2 dati1 dati2 modalità slot1 slot2
modalità: 1 Lezione, 2 Scritte
Il codice è creato per pilotare due memorie il e due "slot", mettre a 1 per l'utente.
Es: $./memoria 120 140 20 210 2 1 0
Scrivere all'indirizzo 120 140 (hex 16 bit) le donne 20 210 sul promemoria sullo slot 1.
Es: $./memoria 120 140 0 0 1 1 1
lit à l'adresse 120 140 les données sur la mémoire du slot 1 et 2.
Passaggio 8: supporto per i ricordi
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 à câbler Correctement 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é !
Consigliato:
Segno di nomi a scorrimento elettronico Black Lives Matter: 5 passaggi
Black Lives Matter Cartello elettronico con i nomi a scorrimento: le campagne #sayhername, #sayhisname e #saytheirname portano consapevolezza sui nomi e sulle storie di persone di colore che sono state vittime della violenza razzista della polizia e incoraggiano la difesa della giustizia razziale. Maggiori informazioni sulle richieste e
Iniziare con BeagleBone Black: 11 passaggi
Per iniziare con BeagleBone Black: dopo aver usato Arduino per un po', ho deciso di provare Beaglebone Black. Vedendo la mancanza di contenuti su Instructables e avendo qualche difficoltà a iniziare da solo, volevo aiutare altre persone a impostare BeagleBone Black
Controllo Web Beaglebone Black utilizzando WebPy: 6 passaggi
Beaglebone Black Web Control utilizzando WebPy: Hai mai voluto creare un modo per controllare la porta del tuo garage utilizzando il telefono, magari raccogliendo dati e visualizzandoli dal tuo laptop. Esiste un computer a scheda singola chiamato Beaglebone Black che è un dispositivo estremamente potente che ti consente di controllare i
Ciabatta intelligente basata su Beaglebone Black e OpenHAB: 7 passaggi (con immagini)
Ciabatta intelligente basata su Beaglebone Black e OpenHAB: !!!!! Giocare con la rete (110/220 V) è pericoloso, per favore stai MOLTO MOLTO attento !!!!! Esistono alcuni progetti di prese multiple intelligenti basati su "Raspberry Pi" e due Arduino, che è mostrato nella foto "Vecchio design".Questo nuovo de
Come accedere a Beaglebone tramite VNC: 3 passaggi
Come accedere a Beaglebone tramite VNC: ecco un modo semplice per accedere al desktop del tuo Beaglebone tramite VNC, un software che ti consente di vedere altri desktop senza dover effettivamente collegare un monitor. Questo è pensato per essere il più semplice e diretto possibile. Innanzitutto, devi