ការសម្អាតអង្គចងចាំ 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 ។ យើងកំណត់អថេរ។ អថេរ "s" រក្សាទុកតម្លៃដែលត្រូវបង្ហាញនៅលើសូចនាករ នៅពេលដែលប៊ូតុង SB1 ត្រូវបានចុច តម្លៃនេះត្រូវបានកើនឡើងដោយមួយ ប៉ុន្តែមិនលើសពី 10 ។ អថេរ eeprom_var នឹងមានអន្តរកម្មជាមួយ EEPROM ។ នៅពេលដែលថាមពលត្រូវបានបើក EEPROM ត្រូវបានអាន ទិន្នន័យដែលបានអានត្រូវបានកំណត់ទៅអថេរ "s" ដោយផ្អែកលើនេះ ខ្ទង់ជាក់លាក់មួយត្រូវបានបង្ហាញនៅលើសូចនាករ។ នៅពេលអ្នកចុច SB2 ទិន្នន័យពីអថេរ "s" ត្រូវបានសរសេរទៅ EEPROM ហើយសូចនាករនឹងភ្លឹបភ្លែតៗតែម្តង។
# រួមបញ្ចូល
មតិយោបល់ (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
ឧទាហរណ៍លេខ 2
សម្រាប់ការយល់ដឹងកាន់តែច្បាស់ យើងអាចបង្កើតគំនូរព្រាងតូចមួយដែលនឹងជួយក្នុងការយល់ដឹងពីរបៀបធ្វើការជាមួយអង្គចងចាំដែលមិនងាយនឹងបង្កជាហេតុ។ យើងរាប់កោសិកាទាំងអស់នៃការចងចាំនេះ។ ប្រសិនបើក្រឡាមិនទទេ ទិន្នផលទៅកាន់ច្រកសៀរៀល។ បន្ទាប់មកបំពេញក្រឡាដោយដកឃ្លា។ បន្ទាប់មកយើងបញ្ចូលអត្ថបទតាមរយៈម៉ូនីទ័រសៀរៀល។ យើងសរសេរវាទៅ EEPROM ហើយអានវានៅលើវេនបន្ទាប់។
# រួមបញ្ចូល
ឧទាហរណ៍លេខ 3
ការសរសេរចំនួនគត់ពីរទៅអង្គចងចាំ អានពួកវាពី EEPROM ហើយបញ្ជូនវាទៅច្រកសៀរៀល។ លេខពី 0 ដល់ 255 កាន់កាប់ 1 បៃនៃអង្គចងចាំ ដោយប្រើមុខងារ EEPROM.write ()ត្រូវបានសរសេរទៅក្រឡាដែលចង់បាន។ សម្រាប់លេខធំជាង 255 ចែកវាដោយបៃដោយប្រើ ខ្ពស់បៃ ()និង ទាបបៃ ()ហើយសរសេរបៃនីមួយៗទៅក្រឡារបស់វា។ ចំនួនអតិបរមាក្នុងករណីនេះគឺ 65536 (ឬ 2 16) ។
# រួមបញ្ចូល
ឧទាហរណ៍លេខ 4
ការសរសេរលេខចំណុចអណ្តែត និងខ្សែអក្សរ - វិធីសាស្រ្ត EEPROM.put ()... ការអាន - EEPROM.get ().
# រួមបញ្ចូល
ឧទាហរណ៍លេខ 5
ការប្រើប្រាស់ EEPROM ជាអារេ។
# រួមបញ្ចូល
ធ្វើការជាមួយ EEPROM
ដូចដែលបានរៀបរាប់ពីមុន ធនធានអង្គចងចាំ EEPROM មានកំណត់។ ដើម្បីពន្យារអាយុជីវិតនៃអង្គចងចាំដែលមិនងាយប្រែប្រួល ជំនួសឱ្យការប្រើមុខងារ write() វាជាការប្រសើរក្នុងការប្រើមុខងារអាប់ដេត។ ក្នុងករណីនេះ ការសរសេរឡើងវិញត្រូវបានអនុវត្តសម្រាប់តែក្រឡាទាំងនោះដែលតម្លៃខុសពីកោសិកាដែលបានកត់ត្រាថ្មី។
មុខងារដ៏មានប្រយោជន៍មួយផ្សេងទៀតនៃអង្គចងចាំ microcontroller ដែលត្រូវបានពិចារណាគឺសមត្ថភាពក្នុងការប្រើប្រាស់កោសិកាផ្ទុកបៃជាផ្នែកនៃអារេ EEPROM អាំងតេក្រាលមួយ។ ជាមួយនឹងទម្រង់នៃការប្រើប្រាស់ណាមួយ ចាំបាច់ត្រូវត្រួតពិនិត្យជានិច្ចនូវភាពត្រឹមត្រូវនៃទិន្នន័យដែលបានកត់ត្រា។
អង្គចងចាំបែបនេះនៅលើ Arduino រក្សាទុកនូវអ្វីដែលសំខាន់បំផុតសម្រាប់ប្រតិបត្តិការរបស់ឧបករណ៍បញ្ជា និងឧបករណ៍ជាស្តង់ដារ។ ឧទាហរណ៍ ប្រសិនបើឧបករណ៍បញ្ជាសីតុណ្ហភាពត្រូវបានបង្កើតនៅលើមូលដ្ឋានបែបនេះ ហើយទិន្នន័យដំបូងប្រែទៅជាខុស ឧបករណ៍នឹងដំណើរការ "មិនគ្រប់គ្រាន់" ទៅនឹងលក្ខខណ្ឌដែលមានស្រាប់ - ប៉ាន់ស្មានតម្លៃទាប ឬប៉ាន់ស្មានសីតុណ្ហភាពលើស។
មានស្ថានភាពជាច្រើនដែល EEPROM មានទិន្នន័យមិនត្រឹមត្រូវ៖
- នៅពេលដំណើរការដំបូង មិនទាន់មានធាតុចូលនៅឡើយទេ។
- នៅពេលមានការដាច់ចរន្តអគ្គិសនីដែលមិនអាចគ្រប់គ្រងបាន ទិន្នន័យមួយចំនួន ឬទាំងអស់នឹងមិនត្រូវបានកត់ត្រា ឬនឹងត្រូវបានសរសេរមិនត្រឹមត្រូវ។
- បន្ទាប់ពីការបញ្ចប់នៃវដ្តនៃការសរសេរឡើងវិញទិន្នន័យដែលអាចធ្វើបាន។
ដើម្បីជៀសវាងផលវិបាកមិនល្អ ឧបករណ៍អាចត្រូវបានកម្មវិធីសម្រាប់ជម្រើសជាច្រើន៖ អនុវត្តទិន្នន័យលេខកូដសង្គ្រោះបន្ទាន់ បិទប្រព័ន្ធទាំងស្រុង បង្ហាញសញ្ញាមិនដំណើរការ ប្រើច្បាប់ចម្លងដែលបានបង្កើតពីមុន ឬផ្សេងទៀត។
ដើម្បីគ្រប់គ្រងភាពត្រឹមត្រូវនៃព័ត៌មាន លេខកូដគ្រប់គ្រងប្រព័ន្ធត្រូវបានប្រើប្រាស់។ វាត្រូវបានបង្កើតឡើងនៅលើមូលដ្ឋាននៃការកត់ត្រាទិន្នន័យដើម ហើយនៅពេលពិនិត្យ វានឹងគណនាទិន្នន័យឡើងវិញ។ ប្រសិនបើលទ្ធផលខុសគ្នា វាជាកំហុស។ ជម្រើសទូទៅបំផុតសម្រាប់មូលប្បទានប័ត្របែបនេះគឺ មូលប្បទានប័ត្រ - ប្រតិបត្តិការគណិតវិទ្យាធម្មតាត្រូវបានអនុវត្តដើម្បីបន្ថែមតម្លៃក្រឡាទាំងអស់។
អ្នកសរសេរកម្មវិធីដែលមានបទពិសោធន៍បន្ថែម "ផ្តាច់មុខ OR" បន្ថែមទៅកូដនេះ ឧទាហរណ៍ E5h ។ ប្រសិនបើតម្លៃទាំងអស់ស្មើនឹងសូន្យ ហើយប្រព័ន្ធបានលុបទិន្នន័យដើមដោយច្រឡំ ល្បិចបែបនេះនឹងបង្ហាញកំហុសមួយ។
ទាំងនេះគឺជាគោលការណ៍ជាមូលដ្ឋាននៃការធ្វើការជាមួយអង្គចងចាំ EEPROM ដែលមិនងាយនឹងបង្កជាហេតុសម្រាប់ឧបករណ៍បញ្ជាមីក្រូ Arduino ។ សម្រាប់គម្រោងជាក់លាក់វាមានតម្លៃប្រើតែអង្គចងចាំប្រភេទនេះប៉ុណ្ណោះ។ វាមានទាំងគុណសម្បត្តិ និងគុណវិបត្តិរបស់វា។ ដើម្បីធ្វើជាម្ចាស់លើវិធីសាស្រ្តនៃការសរសេរ និងការអាន វាជាការល្អបំផុតដើម្បីចាប់ផ្តើមជាមួយនឹងកិច្ចការសាមញ្ញ។
តម្លៃនៃ avatars ក្នុងចិត្តវិទ្យា
តម្លៃនៃ avatars ក្នុងចិត្តវិទ្យា
របៀបសង្កត់អក្សរក្នុង MS Word
តើវាមានន័យយ៉ាងណាបើរូបតំណាងរបស់មនុស្ស
របៀបបង្កើត Twitter Moment ផ្ទាល់ខ្លួនរបស់អ្នក។