สารบัญ:
- ขั้นตอนที่ 1: Quelques ประเภท De Mémoires
- ขั้นตอนที่ 2: Mémoire Serial FRAM SPI
- ขั้นตอนที่ 3: วนรอบ Serial FRAM
- ขั้นตอนที่ 4: รหัส Pilotant La Mémoire FRAM
- ขั้นตอนที่ 5: Mémoire Parralèle
- ขั้นตอนที่ 6: วนรอบ Mémoire Parralèle
- ขั้นตอนที่ 7: Code Pilotant La Memoire Parraléle
- ขั้นตอนที่ 8: สนับสนุน Pour Mémoires
วีดีโอ: Extension Mémoire Pour BeagleBone Black: 8 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:06
Je vous présenter dans cet Instrucable un de mes projet qui containait à piloter des mémoires de différents types afin de pouvoir tester leur fonctionnement dans desconditions spatiales (enceinte radiative) et de trouver le taux d'erreurne de en. 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 ประเภท De Mémoires
รายการที่ไม่มีรายละเอียดละเอียดถี่ถ้วน des différents types de mémoires utilisés dans ce projet avec leurs avantages et inconvénients:
Premier type de mémoire: la mémoire SRAM
La mémoire vive statique (ou Static Random Access Memory) กับ un type 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 ระเหย: elle ne peut se passer d'alimentation sous peine de voir ses informations 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บังคับ d'ajouter à notre carte mémoire un moyen de l'alimenter en ถาวร Le moyen trouvé est d'ajouter un super condensateur Cellergy pouvant alimenter la mémoire จี้ une journée.
Deuxième type de mémoire: la mémoire MRAM
La mémoire vive statique magnétique (หน่วยความจำเข้าถึงโดยสุ่มแม่เหล็ก) stocke les données sans avoir besoin d’être alimentée Le changement d'état se fait en changeant l'orientation polaire des électrons (พาร์ effet อุโมงค์ notamment) Elle est très résistante aux radiations และ aux hautes températures ข้อดี:- la non-volatilité des informations. - ใช้งานไม่ได้, puis ce qu'aucun mouvement électrique n'est engagé (ความอดทน 10^16 รอบการบรรยาย /écriture !) - la consommation électrique est théoriquement moindre puisqu'il n'y a pas de perte thermique เนื่องจาก à la résistance des matériaux aux mouvements des électrons - อุณหภูมิสูงสุด 10 นาโนวินาที - les débits sont de l'ordre du gigabit par seconde - une excellente résistance aux radiations, omniprésentes dans un milieu spatial. Inconvénients: - coûteuse (~35€/Mo) car encore en phase de développement (commercialisation de masse du produit prévue en 2018 !) s mais'en propeut … เชิงพาณิชย์ 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 Random Access Memory) est un type de mémoire d'ordinateur non volatile encore à l'état de recherche และ développement.
Elle est similaire à la mémoire DRAM à laquelle บน ajouté une couche ferro-électrique pour obtenir la non volatilité ใน 2011, Texas Instruments lance le Premier microcontrôleur à mémoire FRAM
Leur 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. ข้อได้เปรียบ: - une plus faible consommation d'électricité - une plus grande rapidité de Lecture et d'écriture (อุณหภูมิ 100 นาโนวินาทีต่อ 1 ไมโครวินาทีสำหรับแฟลช) - la possibilité d'être effacée et réécrite un bien plus grand nombre de fois (ความทนทาน 10^14 รอบการบรรยาย/écritures).ความไม่สะดวกสบาย: - 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 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 (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 ประเภท 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 surees cartes de type FPGA.
ขนาน: ใช้งานร่วมกันได้หลายแบบและใช้งานร่วมกันได้กับทุกโดเมน ประเภท Ce de mémoire est beaucoup plus rapide que la mémoire SPI car en un coup d'horloge il permet d'accéder aux informations, 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 hardé à intégrer car les nombreux pins diffèrent d'un modèle à l'autre et la taille du boîtier est plus grande. รถยนต์
เติม 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 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 programmation. การใช้งาน: 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 suvante:
Cette fiche เทคนิค 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: วนรอบ Serial FRAM
บรรยาย:
Avant d'écrire dans la mémoire il faut envoyer une trame d'accès à L'écriture (WREN) 0000 0110 (0x06h) (Voir figure 5) วิเคราะห์เดอลา trame d'écriture envoyée par MOSI de la Beaglebone à SI (Vo 9)
- 8 premiers bits, Op-code de l'écriture (READ): 0000 0011 (0x03h) - 16 bits adresse, même si cette mémoire n'en considère que 11 car il s'agit d'une mémoire de 16Kb ((2 ^11)*8บิต) il faut envoyer 16 bits car cela permettra de pouvoir aussi piloter des mémoires 64Kb. - 8 บิตเดอ données. บรรยาย:
Analyze de la trame de Lecture envoyée par MOSI de la Beaglebone à SI: (Voir figure 10)- 8 premiers bits, Op-code de la Lecture (WRITE): 0000 0010 (0x02h) - 16 bits adresse Analyze de la trame de Lechet envoyée par SO à MISO de la Beaglebone: - 8 bits de données
ขั้นตอนที่ 4: รหัส Pilotant La Mémoire FRAM
เทโปรแกรมคอมไพเลอร์ ce ในภาษา C: $ gcc programme_spi.c –o spiPour โปรแกรม ce: $./spi add1 add2 data mode
Add1 (MSB) et Add2 (LSB) ผู้สื่อข่าว chacun à 8 bits de donnée ข้อมูลสอดคล้อง à 8 bits de données à écrire (mettre 0 si การบรรยาย) โหมดสอดคล้อง à l'écriture (= 2) ou la Lecture (= 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
เท ce projet j'ai utilisé la mémoire SRAM ALLIANCE AS6C1008 128Kb * 8 bits (voir schéma)
Configuration du boitier: 17 ที่อยู่: 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 connecté: NC
หมายเหตุ: 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é !)
ข้อควรระวัง:Vous vous demandez sans doute pourquoi j'ai sauté sures 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' recheraiches jamais réussi à utiliser correctement (me faisant perdre au passage 2 semaines car je pensais la mémoire défectueuse alors que sures GPIO ne fonctionnaient simplement pas !)
Afin de piloter la mémoire il faut d’abord étudier sa fiche technique disponible à l’adressesuivante:
เทคนิค Cette fiche 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 friendshiper 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 varier d'une mémoire à une autre, le cycle le plus long (100ns) มากกว่า s'adaptera à toutes les mémoires. Ainsi les temps d'écriture et Lecture beginnings annoncé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 โปรแกรมเมอร์ les cycles pour une mémoire en particulier avec les temps minimaux Le cycle d’écriture revient à modifier l’état des GPIOs รหัสฐาน est เซลล์ qui permet de faire clignoter une LED en ajoutant des temporisations précises ติดต่อ aux durées des cycles imposées par le constructeur. ผลกระทบจากการกระทำที่ยุติธรรม clignoter une LED สอดคล้อง à la création de cycles d'état haut et bas pour les GPIOs
Le cycle de Lecture quant à lui ประกอบด้วย 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
Cycle d'écriture (รูปที่ 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 เคารพ les temporisations ! ~100ns)
วัฏจักรการบรรยาย (รูปที่ 3, 4):
เท écrire dans la mémoire il suffit de mettre les pins d'adresse aux valeurs souhaitées puis d'activer les entrées chip เปิดใช้งาน 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 ที่อยู่
ขั้นตอนที่ 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:
การรวบรวม: $ gcc -lm programme_memoire.c -o memoire
$./memoire เพิ่ม 1 เพิ่ม 2 data1 data2 โหมด slot1 slot2
โหมด: 1 การบรรยาย 2 Ecriture
Le code étant créer pour piloter deux mémoires il y a deux "slots", mettre à 1 pour utiliser
ตัวอย่าง: $./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 และ 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 réalisations. Si vous voulez réaliser un système de mémoire ใช้แทนกันได้ comme moi veillez bien à câbler การแก้ไข vos mémoires en utilisant toujours le même ordre pour les pins
Si vous avez des question remarques n'hésitez pas tout avis est le bienvenu, en espérant vous avoir aidé !
แนะนำ:
RaspberryPi 3/4 Extension Board สำหรับเพิ่มคุณสมบัติพิเศษให้กับ Raspberry Pi: 15 ขั้นตอน (พร้อมรูปภาพ)
RaspberryPi 3/4 Extension Board สำหรับเพิ่มคุณสมบัติพิเศษให้กับ Raspberry Pi: เรารู้ว่า raspberry pi 3/4 ไม่ได้มาพร้อมกับ ADC (ตัวแปลงแอนะล็อกเป็นดิจิทัล) และ RTC (นาฬิกาแบบเรียลไทม์) ดังนั้นฉันจึงออกแบบ PCB ที่มี 16 ช่อง 12 บิต ADC, RTC, โมดูล SIM7600 4G, ปุ่มกด, รีเลย์, ไฟ USB, ไฟออก 5V, ไฟ 12V
เริ่มต้นใช้งาน BeagleBone Black: 11 ขั้นตอน
เริ่มต้นใช้งาน BeagleBone Black: หลังจากใช้ Arduino มาระยะหนึ่งแล้ว ฉันตัดสินใจลองใช้ Beaglebone Black เมื่อเห็นว่าไม่มีเนื้อหาใน Instructables และมีปัญหาในการเริ่มต้นด้วยตนเอง ฉันต้องการช่วยให้คนอื่นตั้งค่า BeagleBone Black
Cat Whisker Sensory Extension Wearable (2.0): 6 ขั้นตอน (พร้อมรูปภาพ)
Cat Whisker Sensory Extension Wearable (2.0): โปรเจ็กต์นี้เป็นความต่อเนื่องและจินตนาการถึงอดีตเพื่อนร่วมงานของฉัน (metaterra) "Whisker Sensory Extension Wearable" วัตถุประสงค์ของโครงการนี้คือเพื่อมุ่งเน้นไปที่การสร้างนวนิยาย "ส่วนขยายทางประสาทสัมผัส" ที่เสริมด้วยคอมพิวเตอร์ซึ่ง
Beaglebone Black Web Control โดยใช้ WebPy: 6 ขั้นตอน
การควบคุมเว็บ Beaglebone Black โดยใช้ WebPy: เคยต้องการสร้างวิธีควบคุมประตูโรงรถโดยใช้โทรศัพท์ของคุณ อาจรวบรวมข้อมูลและดูจากแล็ปท็อปของคุณ มีคอมพิวเตอร์บอร์ดเครื่องเดียวที่เรียกว่า Beaglebone Black ซึ่งเป็นอุปกรณ์ที่ทรงพลังอย่างยิ่งที่ช่วยให้คุณควบคุม
รางปลั๊กไฟอัจฉริยะที่ใช้ Beaglebone Black และ OpenHAB: 7 ขั้นตอน (พร้อมรูปภาพ)
รางปลั๊กอัจฉริยะจาก Beaglebone Black และ OpenHAB: !!!!! การเล่นกับไฟหลัก (110/220V) นั้นอันตราย โปรดใช้ความระมัดระวังให้มาก !!!!!มีการออกแบบรางปลั๊กไฟอัจฉริยะบางแบบที่มีอยู่ตาม "Raspberry Pi" และ Arduinos สองตัวซึ่งแสดงในรูปภาพ "ดีไซน์เก่า".เด