תוכן עניינים:
- שלב 1: Quelques Types De Mémoires
- שלב 2: Mémoire Serial FRAM SPI
- שלב 3: מחזורי סדרתי FRAM
- שלב 4: קוד פיילוט La Mémoire FRAM
- שלב 5: Mémoire Parralèle
- שלב 6: מחזורים Mémoire Parralèle
- שלב 7: קוד פיילוט La Memoire Parraléle
- שלב 8: תמיכה ב- Pour Mémoires
וִידֵאוֹ: הרחבה Mémoire Pour BeagleBone Black: 8 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:15
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 environment 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: Quelques Types De Mémoires
Voici une list ממצה את ההבדלים סוגים של זכרונות שימוש ב- ce projet avec leurs avantages and inconvénients:
Premier type de mémoire: la mémoire SRAM
סטטוס La mémoire vive (או זיכרון גישה אקראית סטטית) הוא אחד מהסוגים העיקריים של שימוש בבסיסים למזכרות לכל הדונאים. Contrairement à la mémoire dynamique, son contenu n’a pas besoin d’être rafraîchit périodiquement. Elle reste cependant נדיף: elle ne peut se passer d'alimentation sous peine de voir ses information effacées irrémédiablement!
יתרונות: - la SRAM est rapide (temps d'accès 6 à 25 ns) - peu coûteuse (4 €/Mo). מעורר הבנה: - 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 permanent. 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 (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 radiations et aux hautes températures. יתרונות:- la non-volatilité des information. - inusabilité, puis ce qu’aucun mouvement électrique n'est engagementé (סיבולת של 10^16 מחזורים הרצאה /קריאה!). - la consommation électrique est théoriquement moindre puisqu'il n'y a pas de perte thermique due à la résistance des matériaux aux mouences des électrons. - temps d’accès de 10 ננו -שניות. - les débits sont de l'ordre du gigabit par seconde. - קרינות unes excellente résistance aux, omniprésentes dans un milieu במרחב. 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.
Troisième type de mémoire: la mémoire FRAM
La mémoireFRAM (זיכרון גישה אקראית Ferroelectric) הוא אחד מהסוגים הלא נדיפים לא נדיפים של l'état de recherche et développement.
Elle est similaire à la mémoire DRAM à laquelle on ajouté une couche ferro-électrique pour obtenir la non volatilité. בחודש מאי 2011, חברת טקסס אינסטרומנטס הכריזה על מיקרו -בקרה ראשונה ב- FRAM.
ניצול השימוש ב- Destorée au SSD (Solid State Drive), comme pour les autres mémoires non volatiles, les données n'ont pas besoin d'energie pour être conserveses. יתרונות: - une plus consommation consommation d'électricité. - une plus grande rapidité de lecture et d'écriture (temps d'accès de 100 nanosecondes contre 1 microseconde pour la mémoire flash). - la possibilité d'être effacée et réécrite un bien plus grand nombre de fois (סיבולת של 10^14 מחזורים הרצאות/כתבות).מידענים: - des capacités de stockage plus limitées - un coût de fabrication plus élevé, ~ 30 €/מו
Les deux grandes familles de mémoires: Série (תמונה 1) et parallèle (תמונה 2)
סדרה: les mémoires séries on pour avantage de permettre un gain de place et de garder la même konfiguration 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 (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 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 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.
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'accéder aux information, nous sommes donc able de récupérer en quelques ms tout le contenu de la mémoire de 1Mo. L'inconvénient est sa difficulté à intégrer car les nombreux pins diffèrent d'un modèle à l'autre et la taille du boîtier est plus grande.
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 types de mémoires seul change le moyen d’accès aux données et adresses.
שלב 2: Mémoire Serial FRAM SPI
Câblage de la BeagleBone à la mémoire: Reliés au 3.3V: VDD, HOLD, WP בהמון: VSS MISO relié à SO MOSI relié à SI CS relié à CS
הערה: L'avantage 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 mémoires מקבילים. De plus les datasheet de ces différentes mémoires indiquent que toutes fonctionnent de la même manière. Ainsi il est possible de commuter des mémoires de différents modèles sans avoir à מתכנת אלגוריתמים מתחדשים.
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 programmeration. 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 technique disponible à l’adresse suivante:
Cette fiche technique 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: מחזורי סדרתי FRAM
אקריטור:
Avant d'écrire dans la mémoire il faut envoyer une trame d'accès à L'écriture (WREN) 0000 0110 (0x06h) (איור 5) Analyze de la trame d'écriture envoyée par MOSI de la Beaglebone à SI (דמות Voir 9)
- 8 סיביות ראשוניות, Op -code de l'écriture (READ): 0000 0011 (0x03h) - 16 bits address, 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) שליח שליחי faut 16 ביטים מכונית cela permettra de pouvoir aussi piloter des mémoires 64Kb. - 8 ביטים דה דונאס. הַרצָאָה:
מנתח את שליחת ההרצאות שליח מאת MOSI de la Beaglebone à SI: (איור 10)- 8 סיביות פרמיירה, Op-code de la הרצאה (WRITE): 0000 0010 (0x02h)- 16 bits address Analyze de la trame de הרצאה שליח par SO à MISO de la Beaglebone: - 8 bits de données
שלב 4: קוד פיילוט La Mémoire FRAM
יוצרים את תוכנית המהדר ב- C: $ gcc program_spi.c –o spiPour utiliser ce program: $./spi add1 add2 mode2 data
כתב Add1 (MSB) et Add2 (LSB) chacun à 8 bits de donnée, נתונים מתאימים à 8 bits de données à écrire (mettre 0 si הרצאה) Mode correspond à l’écriture (= 2) ou la הרצאה (= 1).
שימוש לדוגמא:./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)
שלב 5: Mémoire Parralèle
Pour ce projet j'ai utilisé la mémoire SRAM ALLIANCE AS6C1008 128Kb * 8 bits (voir schema)
Configuration du boitier: 17 כתובות: A0-A16 8 נתונים: D0-D7 2 שבב אפשר: CE#-CE2 2 Write et Output Enable: WE#-OE#2 VCC (3.3V), VSS (GND) 1 non connecté: NC
הערה: La disposition des pins varie grandement d'un modèle à un autre ainsi que les temps de lecture / écriture
לשפוך את הקאבלג 'לה לה ביגל.
שימו לב: 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 present on la BBB et que malgré mes recherches je n'ai תיקון jamais réussi à utiliser (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 technique disponible à l’adressesuivante:
Cette fiche technique indique les différents cycles nécessaires pour lire et écrire dans la mémoire et ainsi réaliser notre תוכנית. 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 correctement câblé:)) Cependant les temps entre les cycles peuvent diverse 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 advertés par les constructeurs 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 programmeurs les cycles pour une mémoire en particulier 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 en ajoutant des temporisations précises correspond aux durées des cycles imposées par le constructeur. 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 lecture quant à lui consiste en la récupération de l’état des GPIO, comme pour détecter l’état d’un bouton poussoir.
שלב 6: מחזורים Mémoire Parralèle
מחזור מחזור (איור 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 כתוב אפשר 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)
מחזור ההרצאה (איור 3, 4):
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 פלט לאפשר OE. Une fois cela effectué on récupère sur les entrée GPIO de la BeagleBone les valeurs se trouvant à cette address.
שלב 7: קוד פיילוט La Memoire Parraléle
Ce code permet de piloter 2 זכויות מקבילות עצמאיות של lune de l'autre et s'utilise comme ceci:
אוסף: $ gcc -lm program_memoire.c -o memoire
$./memoire הוסף 1 הוסף 2 נתונים 1 חריץ מצב 2 נתונים 1 חריץ 2
מצב: 1 הרצאה, 2 קריאה
Le code étant créer pour piloter deux mémoires il y a deux "slots", mettre à 1 pour utilizer.
דוגמה: $./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.
דוגמה: $./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: תמיכה ב- Pour Mémoires
Je vous fournit dans les photos les PCB de support mémoire sur lequel vous pourrez vous inspirer pour vos ralisations. Si vous voulez réaliser un système de mémoire להחלפה comme moi veillez bien à câbler תיקון vos mémoires ושימושי 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é!
מוּמלָץ:
מדידת חלקיקים עדינים (הרחבה): 3 שלבים
מדידת חלקיקים עדינים (הרחבה): מטרה: הוספת חיישן CO2 שיפור הקריאות של התוכנית פתיחת התוכנית לסוגים אחרים של חיישנים. פרויקט זה עוקב אחר פרויקט שכבר פורסם. הוא עונה על שאלות ששואלים הקוראים. חיישן נוסף היה
עיצוב PCB הרחבה (Intel® IoT): 20 שלבים
עיצוב PCB הרחבה (Intel® IoT): מדריך זה נכתב כנקודת מוצא למי שמעוניין להשתמש ב- Intel® Edison במלוא הפוטנציאל שלו, על ידי שילובו בפרויקט מוטבע מפותח. לשם כך, סביר להניח שתצטרך לבצע - כפי שקוראת Intel®
לוח הרחבה מותאם אישית תוצרת בית של פטל פי: 8 שלבים
Raspberry Pi לוח הרחבה מותאם אישית תוצרת בית: מאז 2015 אני משפר את הפרויקט הנהדר הזה כדי שיהיה לי מרכז מדיה מותאם אישית כמעט ללא הגבלה ברכב שלי. יום אחד החלטתי להביא ארגון לחוטים שם עם לוח PCB תוצרת בית בהתאמה אישית. התמונות למעלה נמצאות על שלב אב טיפוס רחב, כך ש
תחילת העבודה עם BeagleBone Black: 11 שלבים
תחילת העבודה עם BeagleBone Black: לאחר שהשתמשתי ב- Arduino לזמן מה, החלטתי לנסות את Beaglebone Black. כשראיתי את חוסר התוכן ב- Instructables והתקשה בעצמי להתחיל בעצמי, רציתי לעזור לאנשים אחרים להתקין עם BeagleBone Black
רצועת חשמל חכמה המבוססת על Beaglebone Black ו- OpenHAB: 7 שלבים (עם תמונות)
רצועת חשמל חכמה המבוססת על Beaglebone Black ו- OpenHAB: !!!!! משחק עם רשת חשמל (110/220V) הוא מסוכן, אנא היזהר מאוד !!!!! ושני ארדואינים, המוצגים בתמונה "עיצוב ישן". זה חדש