Satura rādītājs:
- 1. solis: Quelques Types De Mémoires
- 2. darbība: Mémoire Serial FRAM SPI
- 3. darbība: sērijas FRAM cikli
- 4. solis: Code Pilotant La Mémoire FRAM
- 5. solis: Mémoire Parralèle
- 6. solis: cikli Mémoire Parralèle
- 7. solis: Code Pilotant La Memoire Parraléle
- 8. solis: atbalstiet Pour Mémoires
Video: Pagarinājums Mémoire Pour BeagleBone Black: 8 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:56
Je vous présenter dans cet instructable un de mes projet qui consistait à piloter des mémoires de différents tips 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 ou simplement pour étudier leur fonctionnement.
1. solis: Quelques Types De Mémoires
Voici une liste izsmeļošs dažādu atšķirību veids de mémoires utilisés dans ce projet avec leurs avantages et inconvénients:
Premjermēra tips: la mémoire SRAM
La mémoire vive statique (vai statiskā brīvpiekļuves atmiņa) ir viena veida 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 informations effacées irrémédiablement!
Priekšrocības: - la SRAM est rapide (temps d'accès 6 à 25 ns) - peu coûteuse (4 €/mēn.). Neērtības: - 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 type de mémoire: la mémoire MRAM
La mémoire vive statique magnétique (magnētiskā brīvpiekļuves atmiņa), kas tiek glabāta bez palīdzības un bez piepūles. Le changement d'état se fait en changeant l’orientation polaire des électrons (par effet tunnel notamment). Elle est très résistante aux radiations et aux hautes températures. Priekšrocības:- nav nepastāvīga informācija. - inusabilité, puis ce qu’aucun mouvement électrique n'est engagegé (izturības de 10^16 ciklu lekcija /rakstīšana!). - 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 nanosekundes. - les débits sont de l'ordre du gigabit par seconde. - une excellente résistance aux radiation, omniprésentes dans un milieu spatial. Neērtības: - 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 commercialisé sous la marque Everspin.- capacité 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.
Troizième type de mémoire: la mémoire FRAM
La mémoireFRAM (ferroelektriskā brīvpiekļuves atmiņa) ir vienkāršs un nepastāvīgs veids, kā mainīt gaitu, atjaunot un atjaunot.
Tas ir līdzīgs DRAM un laquelle uz ceļa, uz kura ir dīvāna ferroelektrija, lai iegūtu nepastāvīgu gaisu. 2011. gada maijā Texas Instruments ieguva vadošo mikrokontroles elementu FRAM.
Leod 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. Priekšrocības: - une plus faible consommation d’électricité. - une plus grande rapidité de lekts et d'écriture (temps d'accès de 100 nanosecondes contre 1 micrososonde pour la mémoire flash). - iespējamais efektīvais efekts un pārrakstīšanās un bien plus grand nombre de fois (izturība 10^14 ciklu lekcijās/ekspozīcijās). Neērtības: - despacités de stockage plus limitées - un coût de fabrication plus élevé, ~ 30 €/mēn.
Les deux grandes familles de mémoires: Série (1. foto) un parallèle (2. foto)
Sērija: 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 (tipa 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 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). Ce tipa 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.
Paralē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 able de récupérer en quelques ms tout le contenu de la mémoire de 1Mo. Neērtības ir sarežģītas automašīnas automašīnās, kuras nav atšķirīgas, izmantojot dažādas tapas, l'autre un la taille du boîtier est plus grande.
Ielieciet 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 types de mémoires seul change le moyen d’accès aux données et adresses.
2. darbība: Mémoire Serial FRAM SPI
Câblage 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-konduktori, la configuration du boîtier reste la même ce qui n'est pas le cas des autres types 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. Ir pieejami visi iespējamie piepilsētas pieņēmēji un atšķirīgi modeļi, bez izvairīšanās no nouveaux algoritmu programmētāja.
Les pins HOLD un WP sont reliés au 3.3V: si cela empêche l’utilisateur d’utiliser ces fonctionnalités, cela permet de facilititer la programmation. Cependant ces fonctionnalités auraient été utiles si l’on avait plusieurs mémoires SPI à piloter!
Pēc pilota la mémoire il faut d’abord étudier fiche tehnika disponible à l’adresse suivante:
Cette fiche tehnika 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.
3. darbība: sērijas FRAM cikli
Ecriture:
Avant d'écrire dans la mémoire il faut envoyer une trame d'accès à L'écriture (WREN) 0000 0110 (0x06h) (Voir 5. attēls) Analizēt de la trame d'écriture sūtni par MOSI de la Beaglebone à SI (Voir skaitlis) 9)
- 8 premiers bits, Op -code de l'écriture (LASĪT): 0000 0011 (0x03h) - 16 bitu adrese, même si cette mémoire n'en apsver 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 biti de données. Lekcija:
Analizēt de la trame de lekciju sūtni par MOSI de la Beaglebone à SI: (Voir 10. attēls)- 8 premiers bits, Op-code de la lekcija (WRITE): 0000 0010 (0x02h)- 16 bitu adrese Analyze de la trame de lekcija sūtnis par SO à MISO de la Beaglebone: - 8 biti de données
4. solis: Code Pilotant La Mémoire FRAM
Ielieciet kompilatora CE programmu un lietojiet valodu C: $ gcc programme_spi.c –o spiPour utiliser ce programma: $./spi add1 add2 datu režīms
Pievienot1 (MSB) un Pievienot2 (LSB) korespondentu, kas ir 8 biti, bet dati atbilst 8 bitiem, kas ir pieejami (mettre 0 si lekcija) Režīms atbilst à l’écriture (= 2) vai lekcija (= 1).
Izmantošanas piemērs:./spi 150 14 210 2 écrit à l’adresse 16 biti 150 14 (0x96h, 0x0Eh) la donnée 210 (0xD2).
./spi 150 14 0 1 lit à l'adresse150 14 (0x96h, 0x0Eh)
5. solis: Mémoire Parralèle
Ielieciet projet j'ai utilisé la mémoire SRAM ALLIANCE AS6C1008 128Kb * 8 bit (voir schéma)
Konfigurācija: 17 adreses: A0-A16 8 Dati: D0-D7 2 Iespējota mikroshēma: CE#-CE2 2 Rakstīšanas un izvades iespējošana: WE#-OE#2 VCC (3.3V), VSS (GND) 1 bez savienojuma: NC
NB! La disposition des pins varie grandement d'un modèle à un autre ainsi que les temps de lection / écriture
Pour le câblage à la BeagleBone voir schéma (Un réel plaisir à débugger où lorsque l'on à mal câblé!)
Uzmanību: 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 pressent sur la BBB et que malgré mes recherches je n'ai jamais réussi à utiliser labojums (me faisant perdre au passage 2 semaines car je pensais la mémoire défectueuse alors que certains GPIO ne fonctionnaient simplement pas!)
Pēc pilota la mémoire il faut d’abord étudier fiche tehnika 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 program. Afin d’écrire dans la mémoire il faut respecter le cycle imposé par les konstruktori, 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 fixement cáblé:)) Atkarīgie laika apstākļi, cikli, cikli, 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 lekcija minimums annoncés par les constructioncturs 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 GPIO. La base du code est celle qui permet de faire clignoter une LED en ajoutant des temporisations précises korespondents aux durées des cycles imposées par le konstruktors. En effet l’action de faire clignoter une LED atbilst à la création de cycles d’état haut et bas pour les GPIO.
Lekciju cikla kvantitatīvais konsekvence ar GPO lēcupération, comme pour détecter l’état d’un bouton poussoir.
6. solis: cikli Mémoire Parralèle
Cikls d'écriture (1., 2. attēls):
Ielieciet ecrire 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 Rakstīt iespējojiet 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)
Lekcijas cikls (3., 4. attēls):
Ielieciet ecrire 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 Izvades iespējošana OE. Une fois cela effectué on récupère sur les entrée GPIO de la BeagleBone les valeurs se trouvant à cette adresse.
7. solis: 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:
apkopojums: $ gcc -lm programme_memoire.c -o memuāri
$./memoire pievienot 1 pievienot 2 datus1 datu2 režīma slots1 slots2
režīms: 1 lekcija, 2 ekritūra
Le code étant créer pour piloter deux mémoires il y a deux "slots", mettre à 1 pour utiliser.
Piemēram: $./memoire 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.
Piemēram: $./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.
8. solis: atbalstiet 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 savstarpēji aizvietojams comme moi veillez bien à cableble labojums 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é!
Ieteicams:
Pārnēsājams smalko daļiņu mērījums (pagarinājums): 3 soļi
Pārnēsājams smalko daļiņu mērījums (pagarinājums): Mērķis: CO2 sensora pievienošana Uzlabota programmas lasāmība Programmas atvēršana cita veida sensoriem. Šis projekts seko vēl vienam jau publicētam projektam. Tas atbild uz lasītāju uzdotajiem jautājumiem. Ir pievienots papildu sensors
Valkājams kaķu ūsu maņu pagarinājums (2.0): 6 soļi (ar attēliem)
Valkājams Cat Whisker Sensory Extension Wearable (2.0): Šis projekts ir turpinājums un izdomājums manam bijušajam kolēģim (metaterra) "Whisker Sensory Extension Wearable". Šī projekta mērķis bija koncentrēties uz jaunu, ar skaitļošanu bagātinātu “maņu paplašinājumu” radīšanu, kas
Oculus sensora statīvs Elastīgs pagarinājums: 7 soļi
Oculus sensora statīva elastīgais pagarinājums: pagājušā gada beigās es savā datorā jaunināju monitorus uz diviem diezgan jaukiem 27 " 2K Dells. Vienīgā problēma ar viņiem ir tā, ka man tagad nav pietiekami daudz vietas sava Oculus Rift sensoriem; šķiet, ka viņiem nepatīk atrasties tik plašā attālumā kā viņi
SD kartes pagarinājums, atbalsts un vāks: 7 soļi
SD kartes pagarinājums, atbalsts un vāks: ja jums ir Arduino TFT displeja vairogs ar SD karšu lasītāju un jums katru reizi ir jāpārbauda vai jāveic izmaiņas SD kartē saglabātajos failos, pagarinājums ietaupīs jūsu nervus un laiku, nenoņemot TFT displeja vairogu. Tas var būt
TV-B-Gone zibspuldzes pagarinājums: 5 soļi
TV-B-Gone zibspuldzes paplašinājums: šis ir Instructable paplašina parastā TV-B-Gone diapazonu, kas ir līdzīgs šim Instructable. Tas izmanto 12 infrasarkanās gaismas diodes ar 9 V akumulatoru. Dažu sekunžu laikā jūs varat nomainīt lukturīša pagarinājumu ar vienu IR-LED, lai atgūtu sākotnējo izmēru vai ievietotu