តើ EEPROM ជាអ្វី? លក្ខណៈពិសេសចម្បងនៃការលុបអង្គចងចាំ EEPROM Eeprom

  • 10.09.2021

ការសម្អាតអង្គចងចាំ EEPROM

ឧទាហរណ៍រង្វិលជុំឆ្លងកាត់កោសិកាអង្គចងចាំទាំងអស់ ហើយសរសេរលេខសូន្យទៅពួកវា។

// ភ្ជាប់បណ្ណាល័យសម្រាប់ធ្វើការជាមួយ EEPROM ។ #include "EEPROM.h" void setup () (// ឆ្លងកាត់ក្រឡាទាំងអស់ (បៃ) ហើយសរសេរលេខសូន្យទៅពួកវា។ for (int i = 0; i< EEPROM.length(); i++) EEPROM.update(i, 0); } void loop() { // Пустой цикл... }


ត្រឡប់ទៅការកំណត់រោងចក្រវិញ។

ប្រសិនបើអ្នកចង់ត្រឡប់អង្គចងចាំទៅការកំណត់របស់រោងចក្រ អ្នកត្រូវតែជំនួស 0 ដោយ 255 ពោលគឺឧ។ សរសេរមិនមែនជាលេខសូន្យទេ ប៉ុន្តែជាលេខ 255។ ដូច្នេះនៅពេលអនាគត ដោយប្រើមុខងារ isNaN() វាអាចពិនិត្យមើលថាតើការសរសេរត្រូវបានបង្កើតឡើងទៅកាន់អង្គចងចាំ EEPROM ឬអត់។

// ភ្ជាប់បណ្ណាល័យសម្រាប់ធ្វើការជាមួយ EEPROM ។ #include "EEPROM.h" void setup () (// ធ្វើឡើងវិញតាមរយៈក្រឡាទាំងអស់ (បៃ) ហើយសរសេរលេខ 255 នៅក្នុងពួកវា។ សម្រាប់ (int i = 0; i< EEPROM.length(); i++) EEPROM.update(i, 255); } void loop() { // Пустой цикл... }

ប្រាប់យើងអំពីពួកយើង

សារ

ប្រសិនបើអ្នកមានបទពិសោធន៍ក្នុងការធ្វើការជាមួយ Arduino ហើយពិតជាមានពេលវេលាសម្រាប់ការច្នៃប្រឌិត យើងសូមអញ្ជើញអ្នកគ្រប់គ្នាឱ្យក្លាយជាអ្នកនិពន្ធអត្ថបទដែលបានបោះពុម្ពនៅលើវិបផតថលរបស់យើង។ ទាំងនេះអាចជាមេរៀន ឬរឿងរ៉ាវអំពីការពិសោធន៍របស់អ្នកជាមួយ Arduino ។ ការពិពណ៌នាអំពីឧបករណ៍ចាប់សញ្ញា និងម៉ូឌុលផ្សេងៗ។ ការណែនាំ និងការណែនាំសម្រាប់អ្នកចាប់ផ្តើមដំបូង។ សរសេរនិងប្រកាសអត្ថបទរបស់អ្នកនៅក្នុង

បន្ទះសៀគ្វីអង្គចងចាំអាចអានបានតែតាមកម្មវិធី (EEPROM) ដែលអាចលុបបានដោយអគ្គិសនី គឺជាបន្ទះសៀគ្វីអេឡិចត្រូនិចដែកអុកស៊ីតដែលប្រើនៅលើបន្ទះសៀគ្វីដែលបានបោះពុម្ព។ បន្ទះឈីបប្រភេទនេះអាចត្រូវបានលុប និងរៀបចំឡើងវិញដោយប្រើសញ្ញាអេឡិចត្រូនិចខ្លាំង។ ដោយសារតែនេះអាចត្រូវបានធ្វើដោយមិនចាំបាច់ដកបន្ទះឈីបចេញពីឧបករណ៍ដែលវាត្រូវបានភ្ជាប់ បន្ទះឈីប EEPROM ត្រូវបានប្រើនៅក្នុងឧស្សាហកម្មជាច្រើន។
បន្ទះឈីប EEPROM មានអង្គចងចាំដែលមិនងាយនឹងបង្កជាហេតុ ដូច្នេះទិន្នន័យរបស់វាមិនបាត់បង់ទេ ប្រសិនបើការផ្គត់ផ្គង់ថាមពលទៅបន្ទះឈីបត្រូវបានរំខាន។ ប្រភេទនៃ microcircuit នេះអាចត្រូវបានជ្រើសរើសដោយកម្មវិធី ដែលមានន័យថាផ្នែកនៃអង្គចងចាំរបស់វាអាចត្រូវបានផ្លាស់ប្តូរដោយការសរសេរវាឡើងវិញដោយមិនប៉ះពាល់ដល់អង្គចងចាំដែលនៅសល់។ ព័ត៌មានដែលរក្សាទុកក្នុងបន្ទះឈីប EEPROM គឺស្ថិតស្ថេររហូតទាល់តែវាត្រូវបានលុប ឬរៀបចំកម្មវិធីឡើងវិញ ដែលធ្វើឱ្យវាក្លាយជាសមាសធាតុដ៏មានតម្លៃនៅក្នុងកុំព្យូទ័រ និងឧបករណ៍អេឡិចត្រូនិកផ្សេងទៀត។

EEPROMs គឺផ្អែកលើត្រង់ស៊ីស្ទ័រច្រកទ្វារអណ្តែត។ EEPROM ត្រូវបានសរសេរកម្មវិធីដោយព័ត៌មានដែលអាចសរសេរកម្មវិធីបានដោយបង្ខំក្នុងទម្រង់ជាអេឡិចត្រុងតាមរយៈច្រកទ្វារអុកស៊ីត។ ច្រកអណ្តែតទឹកបន្ទាប់មករក្សាទុកអេឡិចត្រុងទាំងនេះ។ ក្រឡាអង្គចងចាំត្រូវបានចាត់ទុកថាជាកម្មវិធីនៅពេលដែលវាត្រូវបានចោទប្រកាន់ដោយអេឡិចត្រុង ហើយវាត្រូវបានតំណាងដោយសូន្យ។ ប្រសិនបើក្រឡាអង្គចងចាំមិនត្រូវបានគិតថ្លៃទេ វាមិនត្រូវបានសរសេរកម្មវិធីទេ ហើយវាត្រូវបានតំណាងដោយមួយ។

ឧបករណ៍ជាច្រើនប្រភេទត្រូវការអង្គចងចាំ ដែលជាមូលហេតុដែលបន្ទះឈីប EEPROM មានការប្រើប្រាស់ជាច្រើននៅក្នុងគ្រឿងអេឡិចត្រូនិក។ ពួកវាត្រូវបានប្រើនៅក្នុងប្រព័ន្ធហ្គេម ទូរទស្សន៍ និងម៉ូនីទ័រកុំព្យូទ័រ។ ឧបករណ៍ជំនួយការស្តាប់ កាមេរ៉ាឌីជីថល បច្ចេកវិទ្យាប៊្លូធូស និងប្រព័ន្ធលេងហ្គេមក៏ប្រើបន្ទះឈីប EEPROM ផងដែរ។ ពួកវាត្រូវបានប្រើនៅក្នុងឧស្សាហកម្មទូរគមនាគមន៍ វេជ្ជសាស្ត្រ និងផលិតកម្ម។ កុំព្យូទ័រផ្ទាល់ខ្លួន និងអាជីវកម្មមាន EEPROMs ។

បន្ទះឈីប EEPROM ក៏មានកម្មវិធីជាច្រើននៅក្នុងឧស្សាហកម្មរថយន្តផងដែរ។ វា​ត្រូវ​បាន​ប្រើ​ក្នុង​ប្រព័ន្ធ​ហ្វ្រាំង​ប្រឆាំង​នឹង​សោ ពោង​សុវត្ថិភាព ការគ្រប់គ្រង​លំនឹង​អេឡិចត្រូនិក ការបញ្ជូន និង​អង្គភាព​គ្រប់គ្រង​ម៉ាស៊ីន។ បន្ទះសៀគ្វី EEPROM ក៏ត្រូវបានគេប្រើនៅក្នុងម៉ាស៊ីនត្រជាក់ ការបង្ហាញបន្ទះឧបករណ៍ ម៉ូឌុលត្រួតពិនិត្យតួ និងប្រព័ន្ធចូលដោយគ្មានសោ។ បន្ទះសៀគ្វីទាំងនេះជួយត្រួតពិនិត្យការប្រើប្រាស់ប្រេងឥន្ធនៈ និងត្រូវបានប្រើប្រាស់ក្នុងប្រព័ន្ធវិភាគផ្សេងៗផងដែរ។

មានដែនកំណត់លើចំនួនពាក្យដដែលៗដែលអាចត្រូវបានសរសេរជាន់លើដោយបន្ទះឈីប EEPROM ។ ស្រទាប់ខាងក្នុងបន្ទះឈីបត្រូវបានខូចខាតបន្តិចម្តងៗដោយការសរសេរសារឡើងវិញជាច្រើន។ នេះមិនមែនជាបញ្ហាធំនោះទេ ព្រោះបន្ទះឈីប EEPROM មួយចំនួនអាចផ្លាស់ប្តូរបានរហូតដល់មួយលានដង។ ភាពជឿនលឿនបន្ថែមទៀតនៅក្នុងបច្ចេកវិទ្យាទំនងជាមានឥទ្ធិពលវិជ្ជមានទៅលើអ្វីដែលបន្ទះឈីបអង្គចងចាំអាចមើលទៅនាពេលអនាគត។

នៅពេលព្រឹកព្រលឹមនៃការលេចចេញនៃអង្គចងចាំដែលរក្សាទិន្នន័យនៅពេលដែលថាមពលត្រូវបានបិទ (EPROM, រ៉ូមដែលអាចលុបបានកម្មវិធី - "រ៉ូមដែលអាចលុបបាន / សរសេរកម្មវិធីបាន" ឬនៅក្នុង EPROM រុស្ស៊ី - "រ៉ូមដែលអាចសរសេរកម្មវិធីបាន") ប្រភេទចម្បងរបស់វាគឺអង្គចងចាំដែលអាចលុបបានដោយកាំរស្មីអ៊ុលត្រាវីយូឡេ។ ពន្លឺ៖ UV-EPROM (Ultra -Violet EPROM, UV-EPROM) ។ ជាងនេះទៅទៀត បុព្វបទកាំរស្មីយូវីត្រូវបានលុបចោលជាញឹកញាប់ ព្រោះវាច្បាស់សម្រាប់មនុស្សគ្រប់គ្នាថា EPROM អាចលុបបានដោយពន្លឺអ៊ុលត្រាវីយូឡេ ហើយ ROM (ឬ ROM) គឺសាមញ្ញ ដោយគ្មានការបន្ថែមគ្រីស្តាល់ OTP-ROM ដែលអាចសរសេរកម្មវិធីបានតែមួយដង។ Microcontrollers ដែលមានអង្គចងចាំកម្មវិធី UV មានតាំងពីពាក់កណ្តាលទសវត្សរ៍ឆ្នាំ 1990 ។ នៅក្នុងគំរូធ្វើការរបស់ឧបករណ៍ដែលមានអង្គចងចាំកាំរស្មីយូវី បង្អួចរ៉ែថ្មខៀវដែលតាមរយៈការលុបត្រូវបានអនុវត្តត្រូវបានផ្សាភ្ជាប់ជាមួយនឹងបន្ទះ adhesive ខ្មៅមួយ ចាប់តាំងពីព័ត៌មាននៅក្នុងកាំរស្មី UV-EPROM ត្រូវបានបំផ្លាញដោយពន្លឺព្រះអាទិត្យបន្តិចម្តងៗ។

អង្ករ។ ១៨.៧. ឧបករណ៍កោសិកាឯកតា EPROM

នៅក្នុងរូបភព។ 18.7 បង្ហាញពីរចនាសម្ព័ន្ធនៃកោសិកាឯកតា EPROM ដែលបង្កប់នូវប្រភេទអង្គចងចាំពន្លឺទំនើបទាំងអស់។ ប្រសិនបើយើងដកចេញពីវានូវអ្វីដែលត្រូវបានចង្អុលបង្ហាញដោយសិលាចារឹក "ច្រកទ្វារអណ្តែត" យើងទទួលបានត្រង់ស៊ីស្ទ័រដែលមានប្រសិទ្ធិភាពវាលធម្មតាបំផុត - ដូចគ្នាដែរត្រូវបានរួមបញ្ចូលនៅក្នុងក្រឡា DRAM ។ ប្រសិនបើវ៉ុលវិជ្ជមានត្រូវបានអនុវត្តទៅច្រកទ្វារត្រួតពិនិត្យនៃត្រង់ស៊ីស្ទ័របែបនេះវានឹងបើកហើយចរន្តនឹងហូរកាត់វា (នេះត្រូវបានគេចាត់ទុកថាជាស្ថានភាពនៃឯកតាតក្កវិជ្ជា) ។ នៅក្នុងរូបភព។ 18.7 ខាងលើបង្ហាញពីករណីនៅពេលដែលច្រកទ្វារអណ្តែតទឹកមិនមានឥទ្ធិពលលើប្រតិបត្តិការរបស់ក្រឡានោះទេ - ឧទាហរណ៍ ស្ថានភាពនេះគឺធម្មតាសម្រាប់អង្គចងចាំពន្លឺសុទ្ធ ដែលមិនដែលត្រូវបានសរសេរទៅ។

ទោះយ៉ាងណាក៏ដោយ ប្រសិនបើយើងដូចម្ដេច (យើងនឹងនិយាយដោយឡែកពីគ្នា) គ្រប់គ្រងការចោទប្រកាន់ចំនួនជាក់លាក់មួយនៅលើច្រកអណ្តែត - អេឡិចត្រុងឥតគិតថ្លៃ ដែលត្រូវបានបង្ហាញក្នុងរូបភព។ 18.7 ខាងក្រោមក្នុងទម្រង់ជារង្វង់ងងឹតដែលមានសញ្ញាដក បន្ទាប់មកពួកគេនឹងពិនិត្យសកម្មភាពរបស់អេឡិចត្រូតត្រួតពិនិត្យ ហើយត្រង់ស៊ីស្ទ័របែបនេះនឹងឈប់ដំណើរការចរន្តទាំងស្រុង។ នេះគឺជាស្ថានភាពសូន្យឡូជីខល។ ចាប់តាំងពីច្រកទ្វារអណ្តែតត្រូវបានគេហៅថាដោយសារតែវា "អណ្តែត" នៅក្នុងកម្រាស់នៃអ៊ីសូឡង់ (ស៊ីលីកុនឌីអុកស៊ីត) ដូច្នេះការចោទប្រកាន់ដែលបានផ្តល់ឱ្យវានៅពេលសម្រាកមិនអាចទៅកន្លែងណាបានទេ។ ហើយព័ត៌មានដែលបានកត់ត្រាតាមរបៀបនេះអាចត្រូវបានរក្សាទុកអស់ជាច្រើនទសវត្សរ៍ (រហូតមកដល់ពេលថ្មីៗនេះ ក្រុមហ៊ុនផលិតជាធម្មតាផ្តល់ការធានារយៈពេល 10 ឆ្នាំ ប៉ុន្តែនៅក្នុងការអនុវត្តជាក់ស្តែង នៅក្រោមលក្ខខណ្ឌធម្មតា ពេលវេលាផ្ទុកគឺយូរជាងនេះ)។

កំណត់ចំណាំរឹម

និយាយយ៉ាងតឹងរឹងនៅក្នុងបន្ទះឈីប NAND (ដែលនឹងត្រូវបានពិភាក្សាខាងក្រោម) តក្កវិជ្ជាត្រូវតែបញ្ច្រាស។ ប្រសិនបើអ្នកមិនអាចបើកក្រឡាដែលបានកម្មវិធីនៅក្នុង EPROM ធម្មតាដោយអនុវត្តវ៉ុលអានទេនោះផ្ទុយទៅវិញនៅទីនោះ - វាមិនអាចចាក់សោដោយដកវ៉ុលបានទេ។ ដូច្នេះជាពិសេស អង្គចងចាំ NAND សុទ្ធផលិតសូន្យទាំងអស់ ហើយមិនមែនមួយដូចជា EPROMs នោះទេ។ ប៉ុន្តែទាំងនេះគឺជា nuances ដែលមិនផ្លាស់ប្តូរខ្លឹមសារនៃបញ្ហានោះទេ។

Octajiocb គឺគ្មានអ្វីទាល់តែសោះ - ដើម្បីស្វែងយល់ពីរបៀបដាក់បន្ទុកលើឧបករណ៍បិទបណ្តែតដែលដាច់ឆ្ងាយពីឥទ្ធិពលខាងក្រៅទាំងអស់។ ហើយមិនត្រឹមតែដាក់ - បន្ទាប់ពីទាំងអស់ ពេលខ្លះការចងចាំត្រូវតែត្រូវបានលុប ដូច្នេះត្រូវតែមានវិធីដើម្បីទាញយកពួកវាចេញពីទីនោះ។ នៅក្នុង UV-EPROM ស្រទាប់អុកស៊ីតរវាងច្រកទ្វារអណ្តែតទឹក និងស្រទាប់ខាងក្រោមគឺក្រាស់ណាស់ (ប្រសិនបើ 50 nanometers អាចត្រូវបានពិពណ៌នាដោយពាក្យ "ក្រាស់" ) ហើយវាដំណើរការយ៉ាងធ្ងន់ធ្ងរ។ នៅពេលថតវ៉ុលវិជ្ជមានខ្ពស់គ្រប់គ្រាន់ត្រូវបានអនុវត្តទៅច្រកទ្វារត្រួតពិនិត្យ - ជួនកាលរហូតដល់ 36-40 V ហើយវ៉ុលវិជ្ជមានតូចមួយត្រូវបានអនុវត្តទៅបង្ហូរនៃត្រង់ស៊ីស្ទ័រ។ ក្នុងករណីនេះអេឡិចត្រុងដែលផ្លាស់ទីពីប្រភពទៅបង្ហូរត្រូវបានពន្លឿនយ៉ាងខ្លាំងដោយវាលនៃអេឡិចត្រូតវត្ថុបញ្ជាដែលពួកគេគ្រាន់តែលោតពីលើរនាំងក្នុងទម្រង់ជាអ៊ីសូឡង់រវាងស្រទាប់ខាងក្រោមនិងច្រកទ្វារអណ្តែត។ ដំណើរការនេះត្រូវបានគេហៅថា "ការចាក់អេឡិចត្រុងក្តៅ" ផងដែរ។

ក្នុងពេលជាមួយគ្នានោះ ចរន្តសាកបានឈានដល់ milliampere - អ្នកអាចស្រមៃមើលថាតើការប្រើប្រាស់សៀគ្វីទាំងមូលមានអ្វីខ្លះ ប្រសិនបើយ៉ាងហោចណាស់កោសិកាជាច្រើនពាន់ត្រូវបានដាក់កម្មវិធីក្នុងពេលដំណាលគ្នានៅក្នុងវា។ ហើយទោះបីជាចរន្តបែបនេះត្រូវបានទាមទារក្នុងរយៈពេលខ្លីមួយក៏ដោយ (ទោះជាយ៉ាងណាក៏ដោយតាមទស្សនៈនៃល្បឿនសៀគ្វីវាមិនខ្លីទេ - មិល្លីវិនាទី) វាគឺជាគុណវិបត្តិដ៏ធំបំផុតនៃគំរូចាស់ទាំងអស់នៃអង្គចងចាំ EPROM ។ រឿងមួយទៀតគឺកាន់តែអាក្រក់ - ទាំងអ៊ីសូឡង់និងឧបករណ៍បិទទ្វារអណ្តែតខ្លួនឯងមិនអាចទប់ទល់នឹងការចំអកបែបនេះអស់រយៈពេលជាយូរហើយត្រូវបានបង្ខូចបន្តិចម្តង ៗ ដែលជាមូលហេតុដែលចំនួនវដ្តនៃការសរសេរមានកំណត់ដល់រាប់រយអតិបរមារាប់ពាន់។ ការរចនាអង្គចងចាំពន្លឺថ្មីៗជាច្រើនទៀត ថែមទាំងមានគ្រោងការណ៍ពិសេសមួយសម្រាប់រក្សាទុកផែនទីនៃក្រឡា "ខូច" - ពិតប្រាកដដូចដែលវាត្រូវបានធ្វើសម្រាប់ថាសរឹង។ ម៉ូដែលទំនើបៗដែលមានកោសិការាប់លានក៏មានកាតបែបនេះដែរ - ទោះជាយ៉ាងណាក៏ដោយ ចំនួននៃវដ្តនៃការលុប/សរសេរឥឡូវនេះបានកើនឡើងដល់រាប់រយរាប់ពាន់នាក់។ តើអ្នកសម្រេចបាននេះដោយរបៀបណា?

អង្ករ។ ១៨.៨. ដំណើរការលុបក្នុងក្រឡាឯកតា EPROM

ដំបូងយើងមើលពីរបៀបដែលការលុបត្រូវបានអនុវត្តនៅក្នុងគ្រោងការណ៍នេះ។ នៅក្នុងកាំរស្មី UV-EPROM នៅពេលដែលត្រូវបានបញ្ចេញកាំរស្មីអ៊ុលត្រាវីយូឡេ ហ្វូតុងដែលមានថាមពលខ្ពស់ផ្តល់សន្ទុះគ្រប់គ្រាន់ដល់អេឡិចត្រុងនៅលើច្រកអណ្តែតទឹក ដូច្នេះពួកគេ "លោត" ត្រឡប់ទៅស្រទាប់ខាងក្រោមដោយខ្លួនឯង ដោយគ្មានឥទ្ធិពលអគ្គិសនីណាមួយឡើយ។ គំរូដំបូងនៃអង្គចងចាំដែលអាចលុបបានដោយអគ្គិសនី (EEPROM, Electrically Erasable Programmable ROM - "electrically erasable programmable ROM", EEPROM) ត្រូវបានបង្កើតឡើងនៅក្រុមហ៊ុន Intel ក្នុង។ ចុងទសវត្សរ៍ឆ្នាំ 1970 ដោយមានការចូលរួមដោយផ្ទាល់ពីអនាគតស្ថាបនិក Atmel លោក George Perlegos ។ គាត់បានប្រើ "ឥទ្ធិពលផ្លូវរូងក្រោមដី Fowler-Nordheim" ។ នៅពីក្រោយឈ្មោះដែលមិនអាចយល់បាននេះគឺជាបាតុភូតដ៏សាមញ្ញមួយ (ប៉ុន្តែស្មុគ្រស្មាញណាស់តាមទស្សនៈរាងកាយ)៖ ជាមួយនឹងខ្សែភាពយន្តអ៊ីសូឡង់ស្តើងគ្រប់គ្រាន់ (កម្រាស់របស់វាត្រូវកាត់បន្ថយពី 50 ទៅ 10 nm) អេឡិចត្រុង ប្រសិនបើពួកគេត្រូវបានរុញបន្តិចដោយ ការ​ប្រើ​វ៉ុល​មិន​ខ្ពស់​ពេក​ក្នុង​ទិស​ខាង​ស្ដាំ អាច​ជ្រាប​ចូល​តាម​រនាំង​ដោយ​មិន​បាច់​លោត​ពីលើ​វា​ឡើយ។ ដំណើរការខ្លួនវាត្រូវបានបង្ហាញនៅក្នុងរូបភព។ 18.8 ខាងលើ (ចំណាំសញ្ញាវ៉ុលនៅច្រកទ្វារ) ។

EEPROMs ចាស់បានធ្វើការយ៉ាងពិតប្រាកដដូចនេះ៖ ការសរសេរត្រូវបានធ្វើឡើងដោយ "ការចាក់ក្តៅ" ហើយការលុបត្រូវបានធ្វើឡើងដោយ "ការជីករូងក្រោមដី" ។ នោះហើយជាមូលហេតុដែលពួកគេពិបាកក្នុងការដំណើរការ - អ្នកអភិវឌ្ឍន៍ដែលមានបទពិសោធន៍ចងចាំថាមីក្រូសៀគ្វី EEPROM ដំបូងត្រូវការវ៉ុលផ្គត់ផ្គង់ពីរឬសូម្បីតែបីហើយវាត្រូវបានទាមទារដើម្បីផ្គត់ផ្គង់វាអំឡុងពេលសរសេរនិងលុបក្នុងលំដាប់ជាក់លាក់មួយ។

ការផ្លាស់ប្តូរ EEPROM ទៅជាពន្លឺបានកើតឡើងក្នុងទិសដៅបីផ្សេងគ្នា។ ជាដំបូងនៃការទាំងអស់ - ក្នុងទិសដៅនៃការកែលម្អការរចនានៃកោសិកាខ្លួនវាផ្ទាល់។ ដើម្បីចាប់ផ្តើមយើងកម្ចាត់ដំណាក់កាលដ៏អាក្រក់បំផុត - "ការចាក់ក្តៅ" ។ ផ្ទុយទៅវិញ ពួកគេក៏ចាប់ផ្តើមប្រើ "ការជីករូងក្រោមដី" នៅពេលសរសេរ ដូចជាការលុប។ អង្ករ។ 18.8 ខាងក្រោមដំណើរការនេះត្រូវបានបង្ហាញ - ប្រសិនបើនៅពេលដែលត្រង់ស៊ីស្ទ័របើក តង់ស្យុងខ្ពស់គ្រប់គ្រាន់ (ប៉ុន្តែទាបជាង "ការចាក់ក្តៅ") ត្រូវបានអនុវត្តទៅច្រកទ្វារត្រួតពិនិត្យ បន្ទាប់មកផ្នែកមួយនៃអេឡិចត្រុងដែលផ្លាស់ទីតាមរយៈត្រង់ស៊ីស្ទ័របើកចំហពីប្រភពទៅ ការបង្ហូរនឹង "លេចធ្លាយ" តាមរយៈអ៊ីសូឡង់ហើយបើកទ្វារអណ្តែត។ ការប្រើប្រាស់បច្ចុប្បន្នកំឡុងពេលសរសេរបានថយចុះដោយលំដាប់ជាច្រើននៃរ៉ិចទ័រ។ ទោះជាយ៉ាងណាក៏ដោយ អ៊ីសូឡង់ត្រូវតែត្រូវបានធ្វើឱ្យកាន់តែស្តើងជាងមុន ដែលបណ្តាលឱ្យមានការលំបាកយ៉ាងខ្លាំងជាមួយនឹងការបញ្ចូលបច្ចេកវិទ្យានេះទៅក្នុងផលិតកម្ម។

ទិសដៅទីពីរ - ក្រឡាត្រូវបានធ្វើឱ្យស្មុគស្មាញបន្តិចដោយការភ្ជាប់ត្រង់ស៊ីស្ទ័រទីពីរទៅវា (ធម្មតាមិនមែនច្រកទ្វារពីរ) ដែលបែងចែកទិន្នផលបង្ហូរនិងឡានក្រុងអាននៃមីក្រូសៀគ្វីទាំងមូល។ សូមអរគុណចំពោះអ្វីៗទាំងអស់នេះ វាអាចទៅរួចដើម្បីសម្រេចបាននូវការកើនឡើងគួរឱ្យកត់សម្គាល់នូវភាពធន់ - រហូតដល់រាប់រយរាប់ពាន់នៃវដ្តសរសេរ / លុប (រាប់លានវដ្តធម្មតាសម្រាប់កាតពន្លឺត្រូវបានទទួលប្រសិនបើអ្នកបន្ថែមសៀគ្វីកែកំហុស) ។ លើសពីនេះទៀតសៀគ្វីបង្កើតវ៉ុលខ្ពស់និងម៉ាស៊ីនជីពចរសរសេរ / លុបដែលត្រូវគ្នាត្រូវបានផ្ទេរទៅខាងក្នុងមីក្រូសៀគ្វីដែលធ្វើឱ្យវាកាន់តែងាយស្រួលប្រើដែលមិនអាចប្រៀបផ្ទឹមបានក្នុងការប្រើប្រាស់ប្រភេទនៃអង្គចងចាំទាំងនេះ - ពួកគេបានចាប់ផ្តើមត្រូវបានផ្តល់ថាមពលពីវ៉ុលដូចគ្នា (5, 3.3, ឬ សូម្បីតែ 1.8 V) ។

ហើយទីបំផុតទីបី ប្រហែលជាសំខាន់បំផុត ការកែលម្អមាននៅក្នុងការផ្លាស់ប្តូរការរៀបចំនៃការចូលប្រើកោសិកានៅលើបន្ទះឈីបដែលជាលទ្ធផលនៃអង្គចងចាំប្រភេទនេះទទួលបានឈ្មោះ - ពន្លឺ (មានន័យថា "រន្ទះ") ឥឡូវនេះ។ ស្គាល់គ្រប់ម្ចាស់ម៉ាស៊ីនថតឌីជីថល ឬម៉ាស៊ីនចាក់ MP3 ហោប៉ៅ។ ដូច្នេះនៅពាក់កណ្តាលទសវត្សរ៍ឆ្នាំ 1980 ពួកគេបានហៅប្រភេទនៃ EEPROM ដែលក្នុងនោះការលុបនិងការសរសេរត្រូវបានអនុវត្តក្នុងពេលតែមួយនៅក្នុងប្លុកទាំងមូល - ទំព័រ។ ទោះយ៉ាងណាក៏ដោយ នីតិវិធីសម្រាប់ការអានពីក្រឡាដែលបំពានដោយហេតុផលជាក់ស្តែងបានថយចុះ - ដើម្បីបង្កើនល្បឿន អ្នកត្រូវដាក់ SRAM កម្រិតមធ្យម (buffer) នៅលើគ្រីស្តាល់នៃអង្គចងចាំពន្លឺ។ សម្រាប់ flash drive នេះពិតជាមិនមានបញ្ហានោះទេ ដោយសារវាដូចគ្នាទាំងអស់ ទិន្នន័យត្រូវបានអាន និងសរសេរជាអារេធំៗក្នុងពេលតែមួយ ប៉ុន្តែសម្រាប់ការប្រើប្រាស់នៅក្នុង microcontroller វាអាចនឹងក្លាយទៅជាការរអាក់រអួល។ លើសពីនេះទៅទៀតនៅក្នុង MK វាជាការរអាក់រអួលក្នុងការប្រើប្រាស់កំណែលឿនបំផុតនៃបច្ចេកវិទ្យា flash - អ្វីដែលគេហៅថា។ អង្គចងចាំនៃប្រភេទ NAND (ពីឈ្មោះនៃមុខងារឡូជីខល "AND-NOT") ដែលជាគោលការណ៍វាអាចអាននិងសរសេរអង្គចងចាំបានតែក្នុងប្លុក 512 បៃប៉ុណ្ណោះ (នេះគឺជាទំហំធម្មតានៃវិស័យនៅលើថាសរឹង។ អាននិងសរសេរទាំងស្រុងក្នុងពេលតែមួយ - ពីទីនេះអ្នកអាចយល់ពីកិច្ចការសំខាន់របស់ NAND) ។

នៅក្នុង MK ជាធម្មតា (ដូចជា NOR) flash-memory នៃកម្មវិធីត្រូវបានប្រើ ដែលទំព័រមានទំហំតូច - ប្រហែល 64-256 បៃ។ ទោះជាយ៉ាងណាក៏ដោយ ប្រសិនបើអ្នកប្រើខ្លួនឯងមិនបង្កើតកម្មវិធីសម្រាប់ microcircuit បែបនេះទេ គាត់ប្រហែលជាមិនស្មានអំពីលក្ខណៈនៃអង្គចងចាំនោះទេ។ ហើយសម្រាប់ទិន្នន័យអ្នកប្រើប្រាស់ EEPROM ត្រូវបានប្រើទាំងសមត្ថភាពក្នុងការអានបៃតាមចិត្ត ឬបែងចែក ប៉ុន្តែទៅជាប្លុកតូចបំផុត - ឧទាហរណ៍ 4 បៃនីមួយៗ។ ក្នុងករណីនេះ សម្រាប់អ្នកប្រើប្រាស់ ការចូលប្រើប្រាស់នៅតែជាបៃបៃ។ លក្ខណៈពិសេសលក្ខណៈនៃអង្គចងចាំបែបនេះគឺដំណើរការសរសេរយឺតជាង (តាមលំដាប់នៃមិល្លីវិនាទី) ខណៈពេលដែលការអានដំណើរការមិនយឺតជាងប្រតិបត្តិការផ្សេងទៀតនៅក្នុង MC នោះទេ។

ការអភិវឌ្ឍន៍នៃបច្ចេកវិទ្យា flash memory មានសារៈសំខាន់យ៉ាងខ្លាំងសម្រាប់ការកាត់បន្ថយថ្លៃដើម និងលទ្ធភាពនៃ microcontrollers ។ នៅពេលអនាគត យើងនឹងដោះស្រាយជាមួយនឹងអង្គចងចាំដែលមិនងាយប្រែប្រួលមិនត្រឹមតែក្នុងទម្រង់នៃកម្មវិធី និងទិន្នន័យដែលបានបង្កើតឡើងនៅក្នុង microcontroller ប៉ុណ្ណោះទេ ប៉ុន្តែថែមទាំងជាមួយនឹង microcircuits នីមួយៗដែលអនុញ្ញាតឱ្យកត់ត្រាព័ត៌មានក្នុងបរិមាណច្រើន។

microcontrollers ទាំងអស់នៃគ្រួសារ Mega រួមមានអង្គចងចាំដែលមិនងាយនឹងបង្កជាហេតុ ( EEPROMការចងចាំ) ។ បរិមាណនៃអង្គចងចាំនេះមានចាប់ពី 512 បៃនៅក្នុងម៉ូដែល ATmega8x ដល់ 4 KB នៅក្នុងម៉ូដែលចាស់។ EEPROMអង្គចងចាំមានទីតាំងនៅក្នុងទំហំអាសយដ្ឋានរបស់វា ហើយដូចជា RAM ត្រូវបានរៀបចំតាមលីនេអ៊ែរ។ ដើម្បីធ្វើការជាមួយ EEPROMអង្គចងចាំប្រើប្រាស់ I/O register ចំនួនបី៖ ចុះឈ្មោះអាសយដ្ឋាន ចុះឈ្មោះទិន្នន័យ និងបញ្ជីត្រួតពិនិត្យ។

អាសយដ្ឋានចុះឈ្មោះ

អាសយដ្ឋានចុះឈ្មោះ EEPROMការចងចាំ EEAR (ចុះឈ្មោះអាសយដ្ឋាន EEPROM)ទីតាំងរាងកាយជាពីរ RVB EEARH: EEARLដែលមានទីតាំងនៅតាមបណ្តោយ
អាសយដ្ឋាន $1F ($3F) និង $1E ($3E) រៀងគ្នា។ អាសយដ្ឋាន​ក្រឡា​ដែល​ត្រូវ​ចូល​ប្រើ​ត្រូវ​បាន​ផ្ទុក​ទៅ​ក្នុង​ការ​ចុះឈ្មោះ​នេះ។ ការចុះឈ្មោះអាសយដ្ឋានមានសម្រាប់ទាំងការសរសេរ និងការអាន។ លើសពីនេះទៀតនៅក្នុងការចុះឈ្មោះ EEARHមានតែប៊ីតដែលមិនសូវសំខាន់ប៉ុណ្ណោះដែលត្រូវបានប្រើប្រាស់ (ចំនួនប៊ីតដែលពាក់ព័ន្ធអាស្រ័យលើកម្រិតសំឡេង EEPROMការចងចាំ) ។ ប៊ីតចុះឈ្មោះដែលមិនប្រើ EEARHបានតែអាន និងមាន "0"។

ការចុះឈ្មោះទិន្នន័យ

ការចុះឈ្មោះទិន្នន័យ EEPROMការចងចាំ EEDR (ចុះឈ្មោះទិន្នន័យ EEPROM)មានទីតាំងនៅ $1D ($3D)។ នៅពេលសរសេរទៅការចុះឈ្មោះនេះ ទិន្នន័យត្រូវបានផ្ទុក ដែលគួរដាក់ចូល EEPROMហើយនៅពេលអាន ការចុះឈ្មោះនេះត្រូវបានបំពេញដោយទិន្នន័យដែលបានអានពី EEPROM.

ការចុះឈ្មោះត្រួតពិនិត្យ

ការចុះឈ្មោះត្រួតពិនិត្យ EEPROMការចងចាំ EECR (ការចុះឈ្មោះត្រួតពិនិត្យ EEPROM)ដែលមានទីតាំងនៅ $1C ($3C)។ ការចុះឈ្មោះនេះត្រូវបានប្រើសម្រាប់
ការគ្រប់គ្រងការចូលប្រើ EEPROMការចងចាំ។ ការពិពណ៌នារបស់វាត្រូវបានបង្ហាញក្នុងតារាងខាងក្រោម៖

ការឆក់ ឈ្មោះ ការពិពណ៌នា
7..4 - មិនប្រើ អានជា "0"
3 អ៊ីរី EEPROM រំខានការបើក។ ប៊ីតនេះគ្រប់គ្រងការបង្កើតការរំខានដែលកើតឡើងនៅចុងបញ្ចប់នៃវដ្តសរសេរទៅកាន់ EEPROM ។ ប្រសិនបើប៊ីតនេះត្រូវបានកំណត់ទៅ "1" ការរំខានត្រូវបានបើក (ប្រសិនបើការចុះឈ្មោះ I ដាក់ទង់
SREG ក៏ត្រូវបានកំណត់ទៅ "1") ។ នៅពេលដែលការបញ្ចេញ EEWE ត្រូវបានសម្អាត (សូមមើលបន្ថែមនៅក្នុង
តារាង) ការរំខានត្រូវបានបង្កើតឥតឈប់ឈរ
2 អេមវេ ការត្រួតពិនិត្យការអនុញ្ញាតសរសេរ EEPROM ។ ស្ថានភាពនៃប៊ីតនេះកំណត់ប្រតិបត្តិការរបស់ EEWE write enable flag ។ ប្រសិនបើប៊ីតនេះត្រូវបានកំណត់ទៅ "1" បន្ទាប់មកនៅពេលសរសេរទៅ EEWE ប៊ីត "1" ទិន្នន័យត្រូវបានសរសេរទៅ EEPROM ។ បើមិនដូច្នោះទេការកំណត់ EEWE ទៅ "1" មិនមានផលប៉ះពាល់ទេ។ បន្ទាប់ពីការដំឡើងកម្មវិធី EMWE ប៊ីតត្រូវបានកំណត់ឡើងវិញដោយផ្នែករឹងបន្ទាប់ពី
4 វដ្តម៉ាស៊ីន
1 EEWE ការអនុញ្ញាតឱ្យសរសេរទៅ EEPROM ។ នៅពេលដែលប៊ីតនេះត្រូវបានកំណត់ទៅ "1" ទិន្នន័យត្រូវបានសរសេរទៅ EEPROM (ប្រសិនបើ EEMWE គឺ "1")
0 EERE ការអនុញ្ញាតឱ្យអានពី EEPROM ។ បន្ទាប់ពីកំណត់ប៊ីតនេះទៅ "1" ទិន្នន័យត្រូវបានអានពី EEPROM ។ នៅចុងបញ្ចប់នៃការអាន ប៊ីតនេះត្រូវបានសម្អាតដោយផ្នែករឹង។

ដើម្បីសរសេរមួយបៃទៅ EEPROM អ្នកត្រូវតែ៖

1. រង់ចាំរហូតដល់ EEPROM រួចរាល់ដើម្បីសរសេរទិន្នន័យ (រង់ចាំរហូតដល់ទង់ EEWE នៃការចុះឈ្មោះ EECR ត្រូវបានជម្រះ)។

2. រង់ចាំរហូតដល់ការបញ្ចប់នៃការសរសេរទៅកាន់អង្គចងចាំកម្មវិធី FLASH (រង់ចាំរហូតដល់ទង់ SPMEN នៃការចុះឈ្មោះ SPMCR ត្រូវបានជម្រះ)។

3. ផ្ទុកទិន្នន័យបៃទៅក្នុងបញ្ជីឈ្មោះ EEDR និងអាសយដ្ឋានដែលត្រូវការទៅក្នុងបញ្ជីឈ្មោះ EEAR (បើចាំបាច់)។

4. កំណត់ទង់ EEMWE នៃ EECR ចុះឈ្មោះទៅ "1" ។

5. សរសេរទៅប៊ីត EEWE នៃកំណត់ហេតុ EECR ចុះឈ្មោះ។ "1" សម្រាប់ 4 វដ្តម៉ាស៊ីន។ បន្ទាប់ពីកំណត់ប៊ីតនេះដំណើរការ
រំលង 2 វដ្តម៉ាស៊ីន មុនពេលអនុវត្តការណែនាំបន្ទាប់។

ដើម្បីអានមួយបៃពី EEPROM អ្នកត្រូវតែ៖

1. ពិនិត្យមើលស្ថានភាពនៃទង់ជាតិ EEWE ។ ការពិតគឺថាខណៈពេលដែលប្រតិបត្តិការកំពុងត្រូវបានសរសេរទៅអង្គចងចាំ EEPROM (ទង់ EEWE ត្រូវបានកំណត់) អ្នកមិនអាចអានអង្គចងចាំ EEPROM ឬផ្លាស់ប្តូរការចុះឈ្មោះអាសយដ្ឋានបានទេ។

2. ផ្ទុកអាសយដ្ឋានដែលត្រូវការទៅក្នុងបញ្ជីឈ្មោះ EEAR ។

3. កំណត់ EERE ប៊ីតនៃការចុះឈ្មោះ EECR ទៅ "1" ។

នៅពេលដែលទិន្នន័យដែលបានស្នើសុំត្រូវបានដាក់ក្នុងបញ្ជីទិន្នន័យ EEDR ការកំណត់ផ្នែករឹងឡើងវិញនៃប៊ីតនេះនឹងកើតឡើង។ ទោះយ៉ាងណាក៏ដោយ អ្នកមិនចាំបាច់ត្រួតពិនិត្យស្ថានភាពនៃប៊ីត EERE ដើម្បីកំណត់ថានៅពេលណាដែលប្រតិបត្តិការអានបានបញ្ចប់នោះទេ ព្រោះប្រតិបត្តិការអានពី EEPROM តែងតែត្រូវបានអនុវត្តនៅក្នុងវដ្តម៉ាស៊ីនតែមួយ។ លើសពីនេះទៀតបន្ទាប់ពីកំណត់ប៊ីត EERE ទៅ "1" ខួរក្បាលនឹងរំលង 4 វដ្តម៉ាស៊ីន មុនពេលចាប់ផ្តើមការណែនាំបន្ទាប់។

បរិស្ថាន AVR Studio GCC មានបណ្ណាល័យស្តង់ដារសម្រាប់ធ្វើការជាមួយ EEPROM ដែលត្រូវបានរួមបញ្ចូលដោយការភ្ជាប់ឯកសារ ... មុខងារសំខាន់គឺ eeprom_read_byte (), eeprom_write_byte (), eeprom_read_word (), eeprom_write_word () ។ឧទាហរណ៍ ចូរយើងសរសេរកម្មវិធីសម្រាប់ mini-counter ពី 0 ទៅ 9 ដែលនៅពេលអ្នកចុចប៊ូតុងមួយ តម្លៃនឹងត្រូវបានបន្ថែម ហើយប៊ូតុងផ្សេងទៀតនឹងរក្សាទុកតម្លៃនេះនៅក្នុង memory។ មីក្រូត្រួតពិនិត្យ Atmega8 ត្រូវបានបំពាក់ដោយម៉ាស៊ីនភ្លើង 8MHz ខាងក្នុង។ សូចនាករផ្នែកប្រាំពីរខ្ទង់តែមួយដែលមាន anode ធម្មតាតាមរយៈ resistors កំណត់បច្ចុប្បន្ន R1-R7 ត្រូវបានភ្ជាប់ទៅច្រក B ដែល anode ទូទៅត្រូវបានភ្ជាប់ទៅនឹងការផ្គត់ផ្គង់ថាមពលវិជ្ជមាន។ ដ្យាក្រាមត្រូវបានបង្ហាញខាងក្រោម៖

ដំបូងយើងភ្ជាប់បណ្ណាល័យដែលចាំបាច់សម្រាប់ការងាររួមទាំង EEPROM ។ យើងកំណត់អថេរ។ អថេរ "s" រក្សាទុកតម្លៃដែលត្រូវបង្ហាញនៅលើសូចនាករ នៅពេលដែលប៊ូតុង SB1 ត្រូវបានចុច តម្លៃនេះត្រូវបានកើនឡើងដោយមួយ ប៉ុន្តែមិនលើសពី 10 ។ អថេរ eeprom_var នឹងមានអន្តរកម្មជាមួយ EEPROM ។ នៅពេលដែលថាមពលត្រូវបានបើក EEPROM ត្រូវបានអាន ទិន្នន័យដែលបានអានត្រូវបានកំណត់ទៅអថេរ "s" ដោយផ្អែកលើនេះ ខ្ទង់ជាក់លាក់មួយត្រូវបានបង្ហាញនៅលើសូចនាករ។ នៅពេលអ្នកចុច SB2 ទិន្នន័យពីអថេរ "s" ត្រូវបានសរសេរទៅ EEPROM ហើយសូចនាករនឹងភ្លឹបភ្លែតៗតែម្តង។

# រួមបញ្ចូល # រួមបញ្ចូល # រួមបញ្ចូល #define d0 ~ (0x3F) // 0 #define d1 ~ (0x06) // 1 #define d2 ~ (0x5B) // 2 #define d3 ~ (0x4F) // 3 #define d4 ~ (0x66) // 4 #define d5 ~ (0x6D) // 5 #define d6 ~ (0x7D) // 6 #define d7 ~ (0x07) // 7 #define d8 ~ (0x7F) // 8 #define d9 ~ (0x6F) // 9 unsigned char s; មិនបានចុះហត្ថលេខា char eeprom_var EEMEM; // កំណត់អថេរក្នុង EEPROM int main (void) (DDRB = 0xFF; // Port B to output PORTB = 0xFF; DDRD = 0x00; // Port D to input PORTD = 0xFF; // បើកការទាញ resistors s = eeprom_read_byte (&eeprom_var); // អានបៃពី EEPROM ហើយដាក់វានៅក្នុង "s" ខណៈពេលដែល (1) (ប្រសិនបើ ((PIND & (1)<< PD0)) == 0) // если кнопка SB1 нажата { while((PIND&(1 << PD0)) == 0){} // ждем отпускания кнопки s++; // увеличиваем "s" на единицу _delay_ms(200); } if(s == 10) // Когда дойдет до 10 обнуляем "s" { s = 0; } if((PIND&(1 << PD1)) == 0) // если кнопка SB2 нажата { while((PIND&(1 << PD1)) == 0){} // ждем отпускания кнопки DDRB = 0xFF; // мигаем индикатором _delay_ms(200); DDRB = 0x00; _delay_ms(200); DDRB = 0xFF; eeprom_write_byte(&eeprom_var, s); // записываем "s" в EEPROM _delay_ms(200); } if(s==0) // Выводим цифры на индикатор PORTB = d0; if(s==1) PORTB = d1; if(s==2) PORTB = d2; if(s==3) PORTB = d3; if(s==4) PORTB = d4; if(s==5) PORTB = d5; if(s==6) PORTB = d6; if(s==7) PORTB = d7; if(s==8) PORTB = d8; if(s==9) PORTB = d9; } }

មតិយោបល់ (1)

0 AntonChip 05/02/2013 22:15

សម្រង់អតិបរមា៖

ប្រហែលជាខ្ញុំច្រឡំអ្វីមួយ ប៉ុន្តែប្រសិនបើអ្នកមានសូចនាករជាមួយ OA នោះ resistor មួយនៅលើបន្ទាត់ 5V គឺគ្រប់គ្រាន់ហើយ ហេតុអ្វីបានជាដាក់ resistors កំណត់បច្ចុប្បន្នបន្ទាប់ពីធាតុដែលពួកគេគួរតែការពារពីចរន្តធំ ??


គ្រាន់តែស្រមៃមើលថាតើនឹងមានអ្វីកើតឡើងប្រសិនបើផ្នែកមួយនៃសូចនាករបិទជាមួយនឹងនេះ និងជាមួយនឹងគ្រោងការណ៍ការតភ្ជាប់ resistor ផ្សេងគ្នា។

0 AntonChip 05/15/2013 11:16

ខ្ញុំដកស្រង់ gydok៖

តើធ្វើដូចម្តេចដើម្បីសរសេរអារេពីរវិមាត្រទៅ eeprom?


លេខកូដ៖
# រួមបញ្ចូល // ភ្ជាប់បណ្ណាល័យ

EEMEM unsigned char color = ((1, 2, 3), // ប្រកាសអារេក្នុង EEPROM
{4, 5, 6}};

eeprom_write_byte (&colors, 1); // សរសេរធាតុអារេទៅ EEPROM
eeprom_write_byte (&colors, 2);
eeprom_write_byte (&colors, 3);
eeprom_write_byte (&colors, 4);
eeprom_write_byte (&colors, 5);
eeprom_write_byte (&colors, 6);

សីតុណ្ហភាព char ដែលមិនបានចុះហត្ថលេខា;
temp = eeprom_read_byte (& ពណ៌); // ស្រង់​ធាតុ​អារេ​ពី EEPROM ជួរ​ដេក 2 (), ជួរ​ឈរ 1 (), i.e. លេខ 4

Arduino គឺជាគ្រួសារទាំងមូលនៃឧបករណ៍ផ្សេងគ្នាសម្រាប់បង្កើតគម្រោងអេឡិចត្រូនិច។ Microcontrollers មានភាពងាយស្រួលក្នុងការប្រើប្រាស់ សូម្បីតែអ្នកចាប់ផ្តើមដំបូងក៏អាចរៀនបានដែរ។ microcontroller នីមួយៗមាន board, software for work, memory។ អត្ថបទនេះនឹងពិនិត្យមើលអង្គចងចាំដែលមិនងាយនឹងបង្កជាហេតុដែលប្រើក្នុង Arduino ។

ការពិពណ៌នាអំពីអង្គចងចាំ EEPROM

Arduino ផ្តល់ឱ្យអ្នកប្រើប្រាស់របស់ខ្លួននូវអង្គចងចាំឧបករណ៍ដែលភ្ជាប់មកជាមួយបីប្រភេទ៖ RAM ស្ថានី (អង្គចងចាំចូលប្រើដោយចៃដន្យ ឬ SRAM) - គឺចាំបាច់សម្រាប់ការថត និងរក្សាទុកទិន្នន័យកំឡុងពេលប្រើប្រាស់។ កាតពន្លឺ - ដើម្បីរក្សាទុកគ្រោងការណ៍ដែលបានកត់ត្រារួចហើយ; - សម្រាប់ការផ្ទុក និងការប្រើប្រាស់ទិន្នន័យជាបន្តបន្ទាប់។

ទិន្នន័យទាំងអស់នៅលើ RAM ត្រូវបានលុបភ្លាមៗនៅពេលដែលឧបករណ៍ត្រូវបានចាប់ផ្តើមឡើងវិញ ឬថាមពលត្រូវបានបិទ។ ទីពីររក្សាទុកព័ត៌មានទាំងអស់មុនពេលសរសេរជាន់លើ និងអនុញ្ញាតឱ្យអ្នកទាញយកវាមកវិញនៅពេលចាំបាច់។ Flash drive គឺជារឿងធម្មតាណាស់នាពេលបច្ចុប្បន្ននេះ។ វាមានតម្លៃពិចារណាលើអង្គចងចាំ EEPROM ឱ្យកាន់តែលម្អិត។

អក្សរកាត់នេះតំណាងឱ្យ អង្គចងចាំដែលអាចអានបានតែកម្មវិធីដែលអាចលុបបានដោយអគ្គិសនី និងនៅក្នុងការបកប្រែជាភាសារុស្សីមានន័យថា - អង្គចងចាំដែលអាចអានបានតែតាមកម្មវិធីដែលអាចលុបបានដោយអគ្គិសនី។ ក្រុមហ៊ុនផលិតធានាសុវត្ថិភាពនៃព័ត៌មានជាច្រើនទសវត្សរ៍ជាមុនបន្ទាប់ពីការដាច់ចរន្តអគ្គិសនីចុងក្រោយ (ជាធម្មតារយៈពេល 20 ឆ្នាំត្រូវបានផ្តល់ឱ្យ អាស្រ័យលើអត្រានៃការថយចុះនៃការគិតថ្លៃរបស់ឧបករណ៍)។

ក្នុងករណីនេះអ្នកត្រូវដឹងថាសមត្ថភាពក្នុងការសរសេរជាន់លើឧបករណ៍មានកម្រិតហើយមិនលើសពី 100,000 ដងទេ។ ដូច្នេះ វាត្រូវបានផ្ដល់អនុសាសន៍ឱ្យប្រុងប្រយ័ត្ន និងយកចិត្តទុកដាក់ចំពោះទិន្នន័យដែលបានបញ្ចូល ហើយមិនត្រូវសរសេរជាន់លើវាម្តងទៀតឡើយ។

បរិមាណនៃអង្គចងចាំបើប្រៀបធៀបជាមួយប្រព័ន្ធផ្សព្វផ្សាយទំនើបគឺតូចណាស់ និងខុសគ្នាសម្រាប់ microcontrollers ផ្សេងៗគ្នា។ ឧទាហរណ៍សម្រាប់៖

  • ATmega328 - 1kB
  • ATmega168 និង ATmega8 - 512 បៃ,
  • និង ATmega1280 - 4KB ។

នេះគឺដោយសារតែ microcontroller នីមួយៗត្រូវបានរចនាឡើងសម្រាប់ចំនួនជាក់លាក់នៃភារកិច្ច មានចំនួន pins ផ្សេងគ្នាសម្រាប់ការតភ្ជាប់ រៀងគ្នាចំនួនអង្គចងចាំផ្សេងគ្នាត្រូវបានទាមទារ។ លើសពីនេះទៅទៀត បរិមាណនេះគឺគ្រប់គ្រាន់សម្រាប់គម្រោងដែលបានបង្កើតជាធម្មតា។

វាត្រូវការពេលវេលាច្រើនដើម្បីសរសេរទៅ EEPROM - អំពី 3 ms... ប្រសិនបើថាមពលត្រូវបានបិទពេលកំពុងថត ទិន្នន័យមិនត្រូវបានរក្សាទុកទាល់តែសោះ ឬវាអាចសរសេរដោយកំហុស។ វាតែងតែតម្រូវឱ្យពិនិត្យមើលព័ត៌មានដែលបានបញ្ចូលបន្ថែមទៀត ដើម្បីជៀសវាងការបរាជ័យកំឡុងពេលប្រតិបត្តិការ។ ការអានទិន្នន័យគឺលឿនជាងមុន ធនធានអង្គចងចាំមិនត្រូវបានកាត់បន្ថយពីនេះទេ។

បណ្ណាល័យ

ការធ្វើការជាមួយអង្គចងចាំ EEPROM ត្រូវបានអនុវត្តដោយប្រើបណ្ណាល័យដែលត្រូវបានបង្កើតជាពិសេសសម្រាប់ Arduino ។ ចំនុចសំខាន់គឺសមត្ថភាពក្នុងការសរសេរ និងអានទិន្នន័យ។ បើកដំណើរការដោយពាក្យបញ្ជា # រួមបញ្ចូល EEPROM.h.

  • សម្រាប់ កំណត់ត្រា- EEPROM.write (អាសយដ្ឋាន, ទិន្នន័យ);
  • សម្រាប់ ការអាន- EEPROM.read (អាសយដ្ឋាន) ។

នៅក្នុងការបង្ហាញប្រភេទរូបភាពទាំងនេះ៖ អាសយដ្ឋាន - អាគុយម៉ង់ជាមួយទិន្នន័យក្រឡា ដែលទិន្នន័យនៃអាគុយម៉ង់ទិន្នន័យទីពីរត្រូវបានបញ្ចូល។ អានប្រើអាគុយម៉ង់មួយ អាសយដ្ឋាន ដែលបង្ហាញពីកន្លែងដែលត្រូវអានព័ត៌មានពី។

មុខងារ ការណាត់ជួប
អាន (អាសយដ្ឋាន) អាន 1 បៃពី EEPROM; អាសយដ្ឋាន - អាសយដ្ឋានដែលទិន្នន័យត្រូវបានអានពី (ក្រឡាចាប់ផ្តើមពី 0);
សរសេរ (អាសយដ្ឋាន តម្លៃ) សរសេរទៅអង្គចងចាំតម្លៃតម្លៃ (1 បៃ, លេខពី 0 ដល់ 255) នៅអាសយដ្ឋានអាសយដ្ឋាន;
អាប់ដេត (អាសយដ្ឋាន តម្លៃ) ជំនួសតម្លៃតម្លៃនៅអាសយដ្ឋាន ប្រសិនបើខ្លឹមសារចាស់របស់វាខុសពីតម្លៃថ្មី
ទទួល (អាសយដ្ឋាន ទិន្នន័យ) អានទិន្នន័យនៃប្រភេទដែលបានបញ្ជាក់ពីអង្គចងចាំនៅអាសយដ្ឋាន;
ដាក់ ​​(អាសយដ្ឋាន, ទិន្នន័យ) សរសេរទិន្នន័យនៃប្រភេទដែលបានបញ្ជាក់ទៅអង្គចងចាំនៅអាសយដ្ឋាន;
EEPROM អនុញ្ញាតឱ្យអ្នកប្រើឧបករណ៍កំណត់អត្តសញ្ញាណ "EEPROM" ជាអារេដើម្បីសរសេរទិន្នន័យទៅ និងអានពីអង្គចងចាំ។

ការសរសេរចំនួនគត់

ការសរសេរចំនួនគត់ទៅ EEPROM ដែលមិនងាយនឹងបង្កជាហេតុគឺមានភាពសាមញ្ញ។ ការបញ្ចូលលេខកើតឡើងជាមួយនឹងការចាប់ផ្តើមមុខងារ EEPROM.write ()... ទិន្នន័យដែលត្រូវការត្រូវបានចង្អុលបង្ហាញនៅក្នុងតង្កៀប។ ក្នុងករណីនេះលេខពី 0 ដល់ 255 និងលេខលើសពី 255 ត្រូវបានសរសេរតាមវិធីផ្សេងៗគ្នា។ ទីមួយត្រូវបានបញ្ចូលយ៉ាងសាមញ្ញ - ទំហំរបស់ពួកគេគឺ 1 បៃ ពោលគឺកោសិកាមួយ។ ដើម្បីសរសេរទីពីរ អ្នកត្រូវតែប្រើ operators highByte() high byte និង lowByte() low byte ។

ចំនួន​ត្រូវ​បាន​បែង​ចែក​ជា​បៃ ហើយ​សរសេរ​ដោយ​ឡែក​ពី​គ្នា​ក្នុង​ក្រឡា។ ឧទាហរណ៍លេខ 789 នឹងត្រូវបានសរសេរជាក្រឡាពីរ៖ ទីមួយនឹងជាគុណលេខ 3 និងទីពីរ - តម្លៃដែលបាត់។ ជាលទ្ធផលតម្លៃដែលត្រូវការត្រូវបានទទួល៖

3 * 256 + 21 = 789

សម្រាប់ « ការបង្រួបបង្រួម "ចំនួនគត់ធំ អនុគមន៍ ពាក្យ () ត្រូវបានអនុវត្ត៖ int val = ពាក្យ (សួស្តី ទាប)... អ្នកគួរតែអានថាចំនួនគត់អតិបរមាដែលត្រូវសរសេរគឺ 65536 (នោះគឺ 2 ទៅ 16 អំណាច)។ នៅក្នុងក្រឡាដែលមិនទាន់មានធាតុផ្សេងទៀត ម៉ូនីទ័រនឹងមានលេខ 255 ក្នុងនីមួយៗ។

ការសរសេរលេខចំណុចអណ្តែត និងខ្សែអក្សរ

ចំណុចអណ្តែត និងលេខខ្សែអក្សរ គឺជាទម្រង់នៃការសម្គាល់សម្រាប់ចំនួនពិត ដែលពួកវាត្រូវបានតំណាងពី mantissa និងនិទស្សន្ត។ លេខបែបនេះត្រូវបានសរសេរទៅអង្គចងចាំ EEPROM ដែលមិនងាយនឹងបង្កជាហេតុជាមួយនឹងការធ្វើឱ្យមុខងារសកម្ម EEPROM.put ()ការអានរៀងៗខ្លួន - EEPROM.get ().

នៅពេលសរសេរកម្មវិធី តម្លៃជាលេខចំនុចអណ្តែតត្រូវបានតំណាងថាជាអណ្តែត វាគួរអោយកត់សំគាល់ថានេះមិនមែនជាពាក្យបញ្ជាទេ ប៉ុន្តែជាលេខ។ ប្រភេទតួអក្សរ (ប្រភេទតួអក្សរ) - ប្រើដើម្បីបញ្ជាក់ខ្សែអក្សរ។ ដំណើរការនៃការសរសេរលេខទៅកាន់ម៉ូនីទ័រគឺចាប់ផ្តើមដោយ setup() អានជាមួយ loop()។

នៅក្នុងដំណើរការ អេក្រង់ម៉ូនីទ័រអាចបង្ហាញតម្លៃ ovf ដែលមានន័យថា "លើស" និង nan ដែលមានន័យថា "មិនមានតម្លៃជាលេខ" ។ នេះមានន័យថាព័ត៌មានដែលសរសេរទៅក្រឡាមិនអាចផលិតឡើងវិញជាលេខចំណុចអណ្តែតទឹកបានទេ។ ស្ថានភាពបែបនេះនឹងមិនកើតឡើងទេ ប្រសិនបើគេដឹងយ៉ាងជឿជាក់ក្នុងក្រឡាប្រភេទណាដែលព័ត៌មានត្រូវបានកត់ត្រា។

ឧទាហរណ៍នៃគម្រោងនិងគំនូរព្រាង

ឧទាហរណ៍ #1

គំនូរព្រាងនឹងសរសេររហូតដល់ 16 តួអក្សរពីច្រកសៀរៀល ហើយរង្វិលជុំចេញ 16 តួអក្សរពី EEPROM ។ សូមអរគុណចំពោះទិន្នន័យត្រូវបានសរសេរទៅ EEPROM ហើយមាតិកានៃអង្គចងចាំដែលមិនងាយនឹងបង្កជាហេតុត្រូវបានត្រួតពិនិត្យ។

// ពិនិត្យមើលថាតើ EEPROM កំពុងដំណើរការឬអត់ #include int ខ្ញុំ, ឃ; void setup () (Serial.begin (9600); // initialize the port, speed 9600) void loop () (// read EEPROM and output data 16 to the serial port Serial.println(); Serial.print ("EEPROM ="); i = 0; ខណៈពេលដែល (i< 16) { Serial.print((char)EEPROM.read(i)); i++; } // проверка есть ли данные для записи if (Serial.available() != 0) { delay(50); // ожидание окончания приема данных // запись в EEPROM i= 0; while(i < 20) { d= Serial.read(); if (d == -1) d= " "; // если символы закончились, заполнение пробелами EEPROM.write(i, (byte)d); // запись EEPROM i++; } } delay(500); }

ឧទាហរណ៍លេខ 2

សម្រាប់ការយល់ដឹងកាន់តែច្បាស់ យើងអាចបង្កើតគំនូរព្រាងតូចមួយដែលនឹងជួយក្នុងការយល់ដឹងពីរបៀបធ្វើការជាមួយអង្គចងចាំដែលមិនងាយនឹងបង្កជាហេតុ។ យើងរាប់កោសិកាទាំងអស់នៃការចងចាំនេះ។ ប្រសិនបើក្រឡាមិនទទេ ទិន្នផលទៅកាន់ច្រកសៀរៀល។ បន្ទាប់មកបំពេញក្រឡាដោយដកឃ្លា។ បន្ទាប់មកយើងបញ្ចូលអត្ថបទតាមរយៈម៉ូនីទ័រសៀរៀល។ យើងសរសេរវាទៅ EEPROM ហើយអានវានៅលើវេនបន្ទាប់។

# រួមបញ្ចូល អាសយដ្ឋាន int = 0; // អាសយដ្ឋាន eeprom int read_value = 0; // ទិន្នន័យអានពី eeprom char serial_in_data; // ទិន្នន័យច្រកសៀរៀល int led = 6; // ជួរទី 6 សម្រាប់ LED int i; void setup () (pinMode (led, OUTPUT); // line 6 is configured for the output Serial.begin (9600); // baud rate on the serial port 9600 Serial.println (); Serial.println ("អត្ថបទមុន នៅក្នុង EEPROM: - "); សម្រាប់ (អាសយដ្ឋាន = 0; អាសយដ្ឋាន< 1024; address ++) // считываем всю память EEPROM { read_value = EEPROM.read(address); Serial.write(read_value); } Serial.println(); Serial.println("WRITE THE NEW TEXT: "); for(address = 0; address < 1024; address ++) // заполняем всю память EEPROM пробелами EEPROM.write(address, " "); for(address = 0; address < 1024;) // записываем пришедшие с последовательного порта данные в память EEPROM { if(Serial.available()) { serial_in_data = Serial.read(); Serial.write(serial_in_data); EEPROM.write(address, serial_in_data); address ++; digitalWrite(led, HIGH); delay(100); digitalWrite(led, LOW); } } } void loop() { //---- мигаем светодиодом каждую секунду -----// digitalWrite(led, HIGH); delay(1000); digitalWrite(led, LOW); delay(1000); }

ឧទាហរណ៍លេខ 3

ការសរសេរចំនួនគត់ពីរទៅអង្គចងចាំ អានពួកវាពី EEPROM ហើយបញ្ជូនវាទៅច្រកសៀរៀល។ លេខពី 0 ដល់ 255 កាន់កាប់ 1 បៃនៃអង្គចងចាំ ដោយប្រើមុខងារ EEPROM.write ()ត្រូវបានសរសេរទៅក្រឡាដែលចង់បាន។ សម្រាប់លេខធំជាង 255 ចែកវាដោយបៃដោយប្រើ ខ្ពស់បៃ ()និង ទាបបៃ ()ហើយសរសេរបៃនីមួយៗទៅក្រឡារបស់វា។ ចំនួនអតិបរមាក្នុងករណីនេះគឺ 65536 (ឬ 2 16) ។

# រួមបញ្ចូល // ភ្ជាប់បណ្ណាល័យ EEPROM void setup () (int smallNum = 123; // ចំនួនគត់ពី 0 ទៅ 255 EEPROM.write (0, smallNum); // សរសេរលេខទៅក្រឡា 0 int bigNum = 789; // number> 255 យើងបំបែកដោយ 2 បៃ (អតិបរមា។ 65536) byte hi = highByte (bigNum); // high byte byte low = lowByte (bigNum); // low byte EEPROM.write (1, hi); // សរសេរ byte ខ្ពស់នៃ EEPROM ទៅក្រឡា 1 .សរសេរ (2, ទាប); // សរសេរបៃទាបទៅក្នុងក្រឡា 2 Serial.begin (9600); // ចាប់ផ្តើមច្រកសៀរៀល) void loop () (សម្រាប់ (int addr = 0; addr<1024; addr++) { // для всех ячеек памяти (для Arduino UNO 1024) byte val = EEPROM.read(addr); // считываем 1 байт по адресу ячейки Serial.print(addr); // выводим адрес в послед. порт Serial.print("\t"); // табуляция Serial.println(val); // выводим значение в послед. порт } delay(60000); // задержка 1 мин }

ឧទាហរណ៍លេខ 4

ការសរសេរលេខចំណុចអណ្តែត និងខ្សែអក្សរ - វិធីសាស្រ្ត EEPROM.put ()... ការអាន - EEPROM.get ().

# រួមបញ្ចូល // ភ្ជាប់បណ្ណាល័យ void setup () (int addr = 0; // float address f = 3.1415926f; // លេខចំនុចអណ្តែត (ប្រភេទអណ្តែត) EEPROM.put (addr, f); // សរសេរលេខ f នៅ addr addr + = sizeof (float); // គណនាទីតាំងអង្គចងចាំឥតគិតថ្លៃបន្ទាប់ char name = "ជំរាបសួរ, SolTau.ru!"; // បង្កើតអារេនៃតួអក្សរ EEPROM.put (addr, ឈ្មោះ); // សរសេរអារេទៅ EEPROM Serial.begin (9600); // ចាប់ផ្តើមច្រកសៀរៀល) void loop () (សម្រាប់ (int addr = 0; addr<1024; addr++) { // для всех ячеек памяти (1024Б=1кБ) Serial.print(addr); // выводим адрес в послед. порт Serial.print("\t"); // табуляция float f; // переменная для хранения значений типа float EEPROM.get(addr, f); // получаем значение типа float по адресу addr Serial.print(f, 5); // выводим с точностью 5 знаков после запятой Serial.print("\t"); // табуляция char c; // переменная для хранения массива из 20 символов EEPROM.get(addr, c); // считываем массив символов по адресу addr Serial.println(c); // выводим массив в порт } delay(60000); // ждём 1 минуту }

ឧទាហរណ៍លេខ 5

ការប្រើប្រាស់ EEPROM ជាអារេ។

# រួមបញ្ចូល void setup () (EEPROM = 11; // សរសេរក្រឡាទី 1 EEPROM = 121; // សរសេរក្រឡាទី 2 EEPROM = 141; // សរសេរក្រឡាទី 3 EEPROM = 236; // សរសេរក្រឡាទី 4 សៀរៀល។ ចាប់ផ្តើម (9600 );) void loop () (សម្រាប់ (int addr = 0; addr<1024; addr++) { Serial.print(addr); Serial.print("\t"); int n = EEPROM; // считываем ячейку по адресу addr Serial.println(n); // выводим в порт } delay(60000); }

ធ្វើការជាមួយ EEPROM

ដូចដែលបានរៀបរាប់ពីមុន ធនធានអង្គចងចាំ EEPROM មានកំណត់។ ដើម្បីពន្យារអាយុជីវិតនៃអង្គចងចាំដែលមិនងាយប្រែប្រួល ជំនួសឱ្យការប្រើមុខងារ write() វាជាការប្រសើរក្នុងការប្រើមុខងារអាប់ដេត។ ក្នុងករណីនេះ ការសរសេរឡើងវិញត្រូវបានអនុវត្តសម្រាប់តែក្រឡាទាំងនោះដែលតម្លៃខុសពីកោសិកាដែលបានកត់ត្រាថ្មី។

មុខងារដ៏មានប្រយោជន៍មួយផ្សេងទៀតនៃអង្គចងចាំ microcontroller ដែលត្រូវបានពិចារណាគឺសមត្ថភាពក្នុងការប្រើប្រាស់កោសិកាផ្ទុកបៃជាផ្នែកនៃអារេ EEPROM អាំងតេក្រាលមួយ។ ជាមួយនឹងទម្រង់នៃការប្រើប្រាស់ណាមួយ ចាំបាច់ត្រូវត្រួតពិនិត្យជានិច្ចនូវភាពត្រឹមត្រូវនៃទិន្នន័យដែលបានកត់ត្រា។

អង្គចងចាំបែបនេះនៅលើ Arduino រក្សាទុកនូវអ្វីដែលសំខាន់បំផុតសម្រាប់ប្រតិបត្តិការរបស់ឧបករណ៍បញ្ជា និងឧបករណ៍ជាស្តង់ដារ។ ឧទាហរណ៍ ប្រសិនបើឧបករណ៍បញ្ជាសីតុណ្ហភាពត្រូវបានបង្កើតនៅលើមូលដ្ឋានបែបនេះ ហើយទិន្នន័យដំបូងប្រែទៅជាខុស ឧបករណ៍នឹងដំណើរការ "មិនគ្រប់គ្រាន់" ទៅនឹងលក្ខខណ្ឌដែលមានស្រាប់ - ប៉ាន់ស្មានតម្លៃទាប ឬប៉ាន់ស្មានសីតុណ្ហភាពលើស។

មានស្ថានភាពជាច្រើនដែល EEPROM មានទិន្នន័យមិនត្រឹមត្រូវ៖

  1. នៅពេលដំណើរការដំបូង មិនទាន់មានធាតុចូលនៅឡើយទេ។
  2. នៅពេលមានការដាច់ចរន្តអគ្គិសនីដែលមិនអាចគ្រប់គ្រងបាន ទិន្នន័យមួយចំនួន ឬទាំងអស់នឹងមិនត្រូវបានកត់ត្រា ឬនឹងត្រូវបានសរសេរមិនត្រឹមត្រូវ។
  3. បន្ទាប់ពីការបញ្ចប់នៃវដ្តនៃការសរសេរឡើងវិញទិន្នន័យដែលអាចធ្វើបាន។

ដើម្បីជៀសវាងផលវិបាកមិនល្អ ឧបករណ៍អាចត្រូវបានកម្មវិធីសម្រាប់ជម្រើសជាច្រើន៖ អនុវត្តទិន្នន័យលេខកូដសង្គ្រោះបន្ទាន់ បិទប្រព័ន្ធទាំងស្រុង បង្ហាញសញ្ញាមិនដំណើរការ ប្រើច្បាប់ចម្លងដែលបានបង្កើតពីមុន ឬផ្សេងទៀត។

ដើម្បីគ្រប់គ្រងភាពត្រឹមត្រូវនៃព័ត៌មាន លេខកូដគ្រប់គ្រងប្រព័ន្ធត្រូវបានប្រើប្រាស់។ វាត្រូវបានបង្កើតឡើងនៅលើមូលដ្ឋាននៃការកត់ត្រាទិន្នន័យដើម ហើយនៅពេលពិនិត្យ វានឹងគណនាទិន្នន័យឡើងវិញ។ ប្រសិនបើលទ្ធផលខុសគ្នា វាជាកំហុស។ ជម្រើសទូទៅបំផុតសម្រាប់មូលប្បទានប័ត្របែបនេះគឺ មូលប្បទានប័ត្រ - ប្រតិបត្តិការគណិតវិទ្យាធម្មតាត្រូវបានអនុវត្តដើម្បីបន្ថែមតម្លៃក្រឡាទាំងអស់។

អ្នកសរសេរកម្មវិធីដែលមានបទពិសោធន៍បន្ថែម "ផ្តាច់មុខ OR" បន្ថែមទៅកូដនេះ ឧទាហរណ៍ E5h ។ ប្រសិនបើតម្លៃទាំងអស់ស្មើនឹងសូន្យ ហើយប្រព័ន្ធបានលុបទិន្នន័យដើមដោយច្រឡំ ល្បិចបែបនេះនឹងបង្ហាញកំហុសមួយ។

ទាំងនេះគឺជាគោលការណ៍ជាមូលដ្ឋាននៃការធ្វើការជាមួយអង្គចងចាំ EEPROM ដែលមិនងាយនឹងបង្កជាហេតុសម្រាប់ឧបករណ៍បញ្ជាមីក្រូ Arduino ។ សម្រាប់គម្រោងជាក់លាក់វាមានតម្លៃប្រើតែអង្គចងចាំប្រភេទនេះប៉ុណ្ណោះ។ វាមានទាំងគុណសម្បត្តិ និងគុណវិបត្តិរបស់វា។ ដើម្បីធ្វើជាម្ចាស់លើវិធីសាស្រ្តនៃការសរសេរ និងការអាន វាជាការល្អបំផុតដើម្បីចាប់ផ្តើមជាមួយនឹងកិច្ចការសាមញ្ញ។