ตัวควบคุม eeprom คืออะไร หน่วยความจำ EEPROM อิสระภายใน แนบโครงการและภาพร่าง

โกลอฟนา / ซาฮิสต์

Arduino เป็นแหล่งกำเนิดของสิ่งที่แนบมามากมายสำหรับการสร้างโครงการอิเล็กทรอนิกส์ ไมโครคอนโทรลเลอร์จะสะดวกกว่าสำหรับผู้ใช้ ซึ่งพร้อมสำหรับการเรียนรู้สำหรับมือใหม่ ไมโครคอนโทรลเลอร์หนังประกอบด้วยค่าธรรมเนียม ซอฟต์แวร์ ความปลอดภัย หน่วยความจำ บทความนี้จะมีหน่วยความจำที่ไม่ใช้พลังงานเหมือนที่ทำใน Arduino

คำอธิบายของหน่วยความจำ EEPROM

Arduino ให้แกนของมันกับสิ่งที่แนบหน่วยความจำในตัวสามประเภท: RAM นิ่ง (หน่วยความจำเข้าถึงโดยสุ่มหรือ SRAM - หน่วยความจำเข้าถึงโดยสุ่มแบบคงที่) - จำเป็นสำหรับการบันทึกการรวบรวมข้อมูลนั้นจากกระบวนการกู้คืน แฟลชการ์ด - สำหรับบันทึกแผนการบันทึกแล้ว - เพื่อประโยชน์ของ vikoristannya danikh ที่อยู่ห่างไกล

บน RAM ข้อมูลทั้งหมดจะถูกลบ จำเป็นต้องปรับสิ่งปลูกสร้างใหม่ หรือเปิดใช้งานชีวิต เอ็นจิ้นอื่นเก็บข้อมูลทั้งหมดก่อนที่จะเขียนทับและอนุญาตให้ใช้เพื่อการบริโภค ไฟล์แฟลช อ่านเพิ่มเติมเกี่ยวกับการดูหน่วยความจำ EEPROM

ตัวย่อถูกถอดรหัสเป็นหน่วยความจำแบบอ่านอย่างเดียวที่สามารถตั้งโปรแกรมได้ที่สามารถลบได้ด้วยไฟฟ้า และแปลเป็นภาษารัสเซียหมายถึงตามตัวอักษร - หน่วยความจำการเขียนโปรแกรมที่ถูกลบด้วยไฟฟ้า สำหรับการอ่านเท่านั้น Virobnik รับประกันการประหยัดข้อมูลเป็นเวลาหนึ่งทศวรรษข้างหน้าหลังจากที่ชีวิตที่เหลือถูกเปิดใช้งาน (เสียงบ่งบอกถึงระยะเวลา 20 ปีนอนลงในกรณีที่ค่าใช้จ่ายในภาคผนวกลดลง)

ซึ่งจำเป็นต้องรู้ว่าความเป็นไปได้ในการเขียนทับสิ่งที่แนบมานั้นมี จำกัด และไม่ถ่ายโอน 100,000 ครั้ง ขอแนะนำให้คุณใส่ข้อมูลที่ป้อนอย่างระมัดระวังและด้วยความเคารพ และไม่อนุญาตให้เขียนทับใน kotre

จำนวนหน่วยความจำเท่ากับการสวมใส่สมัยใหม่นั้นมีขนาดเล็กและแตกต่างกันสำหรับไมโครคอนโทรลเลอร์ที่แตกต่างกัน ตัวอย่างเช่น สำหรับ:

  • ATmega328 - 1kB
  • ATmega168 และ ATmega8 - 512 ไบต์
  • และ ATmega1280 - 4 kB

ดังนั้น vlastovano ที่ผิวหนังของไมโครคอนโทรลเลอร์ของการนัดหมายสำหรับงานเดียวกัน อาจแตกต่างกันจำนวนการเชื่อมต่อสำหรับการเชื่อมต่อ ชัดเจน การเปลี่ยนแปลงหน่วยความจำที่จำเป็น ด้วยปริมาณดังกล่าว จึงเพียงพอสำหรับโครงการที่สร้างเสียง

ใช้เวลาหนึ่งชั่วโมงในการเขียนถึง EEPROM - ปิด 3ms. แม้ว่าในเวลาที่บันทึกสดจะเปิดอยู่ ข้อมูลจะไม่ถูกบันทึก ไม่เช่นนั้นก็สามารถบันทึกกันเองได้ จำเป็นต้องตรวจสอบข้อมูลเพิ่มเติมที่ป้อนเพื่อขจัดปัญหาในช่วงเวลาทำงาน การอ่านข้อมูลจะสมบูรณ์ยิ่งขึ้น ทรัพยากรของหน่วยความจำไม่ลดลง

ห้องสมุด

หุ่นยนต์ที่มีหน่วยความจำ EEPROM ถูกสร้างขึ้นสำหรับไลบรารีเพิ่มเติม ซึ่งสร้างขึ้นเป็นพิเศษสำหรับ Arduino หัวหน้ากำลังสร้างบันทึกและอ่านข้อมูล เปิดใช้งานโดยทีม #รวม EEPROM.h.

  • สำหรับ บันทึก- EEPROM.write (ที่อยู่, ข้อมูล);
  • สำหรับ การอ่าน- EEPROM.read (ที่อยู่).

ในภาพสเก็ตช์เหล่านี้: ที่อยู่ – อาร์กิวเมนต์จากที่กำหนดตรงกลาง ตำแหน่งที่จะป้อนข้อมูลของข้อมูลอาร์กิวเมนต์อื่น เมื่ออ่านขยิบตามีที่อยู่อาร์กิวเมนต์หนึ่งรายการซึ่งแสดงดาวถัดจากอ่านข้อมูล

การทำงาน การนัดหมาย
อ่าน (ที่อยู่) อ่าน 1 ไบต์จาก EEPROM; ที่อยู่ – ที่อยู่, ข้อมูลzvіdkiถูกอ่าน (กลาง, เริ่มจาก 0);
เขียน (ที่อยู่, ค่า) เขียนค่า (1 ไบต์, จำนวนตั้งแต่ 0 ถึง 255) ไปยังตัวต่อที่อยู่ด้านหลังที่อยู่;
อัปเดต (ที่อยู่, ค่า) แทนที่ค่าตามที่อยู่เพื่อให้อันเก่าถูกแทนที่ด้วยอันใหม่
รับ (ที่อยู่, ข้อมูล) อ่านข้อมูลประเภทที่ระบุจากหน่วยความจำตามที่อยู่
ใส่ (ที่อยู่, ข้อมูล) เขียนข้อมูลที่กำหนดของประเภทที่ระบุไปยังที่อยู่ปริศนาที่อยู่
EEPROM ให้คุณใช้ตัวระบุ "EEPROM" เป็นอาร์เรย์เพื่อเขียนข้อมูลไปยังหน่วยความจำและอ่านจากหน่วยความจำ

เขียนจำนวนเต็ม

การเขียนตัวเลขจำนวนเต็มลงในหน่วยความจำ EEPROM แบบไม่ลบเลือนเป็นเรื่องง่าย การป้อนตัวเลขนำมาจากการเปิดตัวฟังก์ชัน EEPROM.write(). ข้อมูลที่จำเป็นถูกกำหนดให้กับวัด เมื่อตัวเลขอยู่ระหว่าง 0 ถึง 255 ตัวเลขเหล่านั้นที่มากกว่า 255 จะถูกเขียนต่างกัน อันแรกนั้นง่ายต่อการเพิ่ม - พวกมันมีขนาด 1 ไบต์ นั่นคือหนึ่งอันตรงกลาง ในการบันทึกรายการอื่น คุณต้องแยกโอเปอเรเตอร์ highByte() ไบต์สูงสุดและ lowByte() ไบต์ต่ำสุด

ตัวเลขถูกแบ่งออกเป็นไบต์และเขียนไว้ตรงกลาง ตัวอย่างเช่น หมายเลข 789 เขียนด้วยตัวกลางสองตัว: ตัวแรกมีตัวคูณเป็น 3 เช่นเดียวกับเพื่อน - ค่าไม่เพียงพอ ผลลัพธ์จะมีค่าที่ต้องการ:

3 * 256 + 21 = 789

สำหรับ « การฟื้นคืนชีพ” ของจำนวนเต็มมาก ฟังก์ชัน word() หยุดทำงาน: int val = คำ (สวัสดี ต่ำ). จำเป็นต้องอ่านว่าจำนวนการเขียนสูงสุดคือ 65536 (นั่นคือ 2 ในขั้นตอนที่ 16) ตรงกลางซึ่งยังไม่มีบันทึกอื่น ๆ บนจอภาพมีตัวเลข 255 ในผิวหนัง

บันทึกตัวเลขด้วยก้อนลอยและแถว

ตัวเลขที่มีก้อนลอยและแถวเป็นรูปแบบหนึ่งของการบันทึกตัวเลขจริง กลิ่นเหม็นจากตั๊กแตนตำข้าวของตัวบ่งชี้ขั้นตอนนั้น การบันทึกตัวเลขดังกล่าวบนหน่วยความจำ EEPROM แบบไม่ลบเลือนนั้นดำเนินการด้วยการเปิดใช้งานฟังก์ชัน EEPROM.put(), อ่านชัด, - EEPROM.get().

เมื่อตั้งโปรแกรมตัวเลข ค่าทศนิยมจะถูกกำหนด เช่น ทศนิยม ถัดจากระบุว่าคำสั่งคืออะไร ตัวตัวเลขเอง พิมพ์ Char (ประเภทอักขระ) – ขยิบตาเหนือค่าแถว กระบวนการเขียนตัวเลขบนจอภาพเริ่มต้นขึ้นหลังจากความช่วยเหลือของ setup() อ่านหลังจากใช้ loop()

หน้าจอกระบวนการของจอภาพอาจแสดงค่า ovf ซึ่งหมายถึง "เรียงลำดับใหม่" และน่าน ซึ่งหมายถึง "ในค่าตัวเลขในเวลากลางวัน" ไม่ควรพูดถึงข้อมูลที่บันทึกไว้ในนายหน้าไม่สามารถยืนยันเป็นตัวเลขที่มีจุดลอยตัวได้ สถานการณ์ดังกล่าวไม่เป็นที่ทราบแน่ชัด เนื่องจากเป็นข้อมูลที่เชื่อถือได้ว่าข้อมูลบางประเภทถูกบันทึกไว้ในบางส่วน

แนบโครงการและภาพร่าง

ก้น #1

เขียนแบบร่างสูงสุด 16 อักขระจากพอร์ตอนุกรมและวนซ้ำ 16 อักขระจาก EEPROM ข้อมูล Zavdyaki ถูกบันทึกใน EEPROM และควบคุมในหน่วยความจำแบบไม่ลบเลือน

// ตรวจสอบหุ่นยนต์ EEPROM อีกครั้ง #include int ฉัน, d; void setup() ( Serial.begin(9600); // initialize port, speed 9600 ) void loop() ( // อ่าน EEPROM และดู 16 ข้อมูลจากพอร์ตสุดท้าย 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

เพื่อความเข้าใจที่มากขึ้น เราสามารถสร้างภาพร่างเล็กๆ ซึ่งจะช่วยให้หุ่นยนต์เข้าใจหน่วยความจำที่เป็นอิสระจากพลังงาน แด่หัวใจทุกดวงในความทรงจำ Yakshcho ศูนย์ไม่ว่างเปล่า - ถูกส่งไปยังพอร์ตสุดท้าย หลังจากสิ่งที่เราจำตรงกลางมีช่องว่าง จากนั้นเราป้อนข้อความผ่านจอภาพของพอร์ตอนุกรม มันถูกเขียนไปยัง EEPROM และสามารถอ่านได้เมื่อเปิดเครื่อง

#รวม ที่อยู่ int = 0; // eeprom ที่อยู่ int read_value = 0; // ข้อมูลที่อ่านจาก eeprom char serial_in_data; // ข้อมูลไปยังพอร์ตอนุกรม int led = 6; // บรรทัดที่ 6 สำหรับ light int i; การตั้งค่าเป็นโมฆะ () ( pinMode (led, OUTPUT); // บรรทัดที่ 6 ถูกตั้งค่าให้ออกจาก Serial.begin (9600); // ความเร็วในการส่งข้อมูลบนพอร์ตอนุกรม 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 จำเป็นต้องหารด้วยไบต์เพื่อขอความช่วยเหลือ ไบต์สูง ()і ไบต์ต่ำ ()และเขียนไบต์ของสกินที่ตรงกลางของคุณ จำนวนสูงสุดของ tshomu คือ 65,536 (หรือ 2 16)

#รวม // เปิดใช้งานการตั้งค่าโมฆะไลบรารี EEPROM () ( int smallNum = 123; // จำนวนเต็มตั้งแต่ 0 ถึง 255 EEPROM.write (0, smallNum); // เขียนตัวเลขลงในไฟล์ 0 int bigNum = 789; // หมายเลข > 255 สามารถแบ่งได้ 2 ไบต์ (สูงสุด 65536) ไบต์ hi = highByte (bigNum); // ไบต์สูง ไบต์ low = lowByte (bigNum); // ไบต์ต่ำ EEPROM.write (1, hi); .write(2 , ต่ำ);/ / เขียนถึง comm_r 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().

#รวม // รวมการตั้งค่าโมฆะของไลบรารี () ( int addr = 0; // float address f = 3.1415926f; // หมายเลขทศนิยม (ประเภท float) EEPROM.put (addr, f); // เขียนหมายเลข f ไปยังแอดเดรส addr addr += sizeof(float); // เราสามารถคำนวณพื้นที่หน่วยความจำที่จะมาถึง char name = "สวัสดี SolTau.ru!"; // สร้างอาร์เรย์ของอักขระ EEPROM put(addr, name); (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

Vykoristannya EEPROM เหมือนอาร์เรย์

#รวม การตั้งค่าเป็นโมฆะ () ( EEPROM = 11; // เขียนแคช EEPROM ที่ 1 = 121; // เขียนช่อง EEPROM ที่ 2 = 141; // เขียนช่อง EEPROM ที่ 3 = 236; // เขียนช่องที่ 4 Serial .begin (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() ด้วยระเบียน หรือหยุดฟังก์ชันการอัปเดตการอัปเดต ด้วยเหตุนี้ การเขียนใหม่จะดำเนินการเฉพาะสำหรับเสียงกลางที่เงียบเท่านั้น โดยคำนึงถึงความหมายในการบันทึกด้วย

ฟังก์ชันหลักอีกประการหนึ่งของหน่วยความจำของไมโครคอนโทรลเลอร์คือความสามารถในการเลือกไบต์กลาง เช่น รายละเอียดของอาร์เรย์ EEPROM ที่เป็นของแข็ง สำหรับรูปแบบของวิคตอเรีย จำเป็นต้องควบคุมความสมบูรณ์ของข้อมูลที่บันทึกไว้อย่างต่อเนื่อง

หน่วยความจำดังกล่าวบน Arduino มักจะถูกบันทึกไว้ที่สำคัญที่สุดสำหรับตัวควบคุมหุ่นยนต์ และฉันจะเพิ่มเข้าไป ตัวอย่างเช่น บนพื้นฐานดังกล่าว ตัวควบคุมอุณหภูมิจะถูกสร้างขึ้นและข้อมูลจะได้รับการอภัยโทษ หากได้รับการฝึกฝน "ไม่เพียงพอ" ต่อจิตใจที่เข้มแข็ง - เพื่อประเมินค่าต่ำไปหรือขึ้นอยู่กับอุณหภูมิ

มีบางสถานการณ์หากหน่วยความจำของ EEPROM ถูกแทนที่ข้อมูลที่ไม่ถูกต้อง:

  1. ที่จุดเริ่มต้นของการเปิดใช้งานยังไม่มีบันทึก
  2. ในช่วงเวลาของการเปิดใช้งานชีวิตที่ไม่มีการควบคุม - ข้อมูลบางส่วนหรือทั้งหมดจะไม่ถูกบันทึกหรือบันทึกอย่างไม่ถูกต้อง
  3. หลังจากเสร็จสิ้นรอบที่เป็นไปได้ของการเขียนทับข้อมูล

เพื่อกำจัดร่องรอยที่ยอมรับไม่ได้ สามารถตั้งโปรแกรมไฟล์แนบสำหรับตัวเลือกต่างๆ: ปิดใช้งานรหัสฉุกเฉิน เปิดระบบ ให้สัญญาณเกี่ยวกับข้อผิดพลาด แล้วทำสำเนาในภายหลังหรืออย่างอื่น

เพื่อควบคุมความสมบูรณ์ของข้อมูล รหัสควบคุมของระบบเสีย ในsdvoryuєєtsyaสำหรับบันทึกที่ชัดเจนของข้อมูล pochatkovyh i, pіdชั่วโมงของการตรวจสอบซ้ำ, ในอีกครั้งprorachovuєdanі หากผลลัพธ์ดังก้อง - เป็นการให้อภัย ตัวแปรที่หลากหลายที่สุดของการตรวจสอบซ้ำคือผลรวมของการควบคุม - การดำเนินการทางคณิตศาสตร์มาตรฐานคำนวณโดยการเพิ่มค่าทั้งหมดของค่าเฉลี่ย

โปรแกรม Dodatcheni เพิ่มรหัสของภาคผนวก "เปิด ABO" เช่น E5h ราวกับว่าค่าทั้งหมดมีค่าเท่ากับศูนย์และระบบการอภัยโทษรีเซ็ตข้อมูลเป็นศูนย์ - เคล็ดลับดังกล่าวเพื่อแสดงการให้อภัย

นี่คือหลักการพื้นฐานของการทำงานกับหน่วยความจำ EEPROM ที่ไม่ใช้พลังงานสำหรับไมโครคอนโทรลเลอร์ Arduino สำหรับโครงการร้องเพลง varto vikoristati ขาดความทรงจำใด ๆ หากคุณมีข้อดี ข้อเสียของคุณก็เช่นกัน สำหรับการเรียนรู้วิธีการเขียนให้เชี่ยวชาญ การอ่านมักจะมากกว่างานง่ายๆ

  • กวดวิชา

สรุป: หากคุณอัปเดตค่าใน EEPROM ของสกินเป็นระยะๆ เป็นเวลาสองสามนาที (หรือไม่กี่วินาที) คุณอาจประสบปัญหาในการเอา EEPROM ตรงกลางออก เพื่อกำจัดสิ่งนี้ จำเป็นต้องลดความถี่ของการบันทึกที่สำนักงาน สำหรับ EEPROM บางประเภท การตั้งค่าความถี่ในการเขียนบ่อยขึ้น น้อยกว่าปีละครั้งอาจเป็นปัญหาได้

ถ้าคุณจดข้อมูลไว้ ก็ถึงเวลาบินให้เร็ว

EEPROM ใช้กันอย่างแพร่หลายในการบันทึกพารามิเตอร์และปรับบันทึกการทำงานในระบบรุ่น ตัวอย่างเช่น คุณอาจต้องการใช้ฟังก์ชัน "หน้าจอสีดำ" เพื่อบันทึกข้อมูลที่เหลือในขณะที่เกิดอุบัติเหตุ หรือใช้อาหาร ฉันทราบข้อมูลเฉพาะเพื่อให้ฉันสามารถบันทึกข้อมูลผิวดังกล่าวได้ภายในไม่กี่วินาที

แต่ปัญหาอยู่ที่ EEPROM สามารถจำกัดทรัพยากรของจำนวนระเบียนได้ หลังจาก 100,000 หรือล้านระเบียน (ฝากในชิปเฉพาะ) ระบบของคุณจะเริ่มประสบปัญหากับไดรฟ์ EEPROM (ดูที่แผ่นข้อมูลเพื่อค้นหาตัวเลขเฉพาะ หากคุณต้องการปล่อยสิ่งปลูกสร้างจำนวนมาก "ประเภทที่ใหญ่ที่สุด" แน่นอนสำคัญสำหรับ "ทั่วไป") บุคคลผู้ยิ่งใหญ่เป็นผู้ให้บันทึกนับล้านรายการ แต่ในความเป็นจริง ไวน์จะจบลงอย่างกะทันหัน มาอัศจรรย์ใจกันที่ก้น แจ้งให้เราทราบว่าเราจำเป็นต้องรักษาแรงดัน vimiryan ไว้ตรงกลางผิวหนังด้านใดด้านหนึ่งเป็นเวลา 15 วินาที

1,000,000 รายการที่มีหนึ่งรายการใน 15 วินาทีให้รายการสำหรับ whilina:
1,000,000/(4 * 60 ปี/ปี * 24 ปี/วัน) = 173.6 วัน
กล่าวอีกนัยหนึ่ง EEPROM ของคุณจะดึงเงินสำรองจากล้านระเบียนในเวลาน้อยกว่า 6 เดือน

ด้านล่างเป็นกราฟที่แสดงชั่วโมงก่อนวันที่ (ในตอนท้าย) พื้นฐานสำหรับช่วงเวลาของการอัปเดตแกน EEPROM โดยเฉพาะ ผลิตภัณฑ์ขั้นกลางสำหรับผลิตภัณฑ์จากอายุขัย 10 ปีที่จะกลายเป็นผิวเดียว อัปเดต 5 นาที 15 วินาทีสำหรับไมโครเซอร์กิตที่มีทรัพยากร 1 ล้านระเบียน สำหรับ EEPROM ที่มีทรัพยากร 100K คุณสามารถอัพเกรดการ์ดเฉพาะได้ไม่เกินหนึ่งครั้งทุกๆ 52 ครั้ง ซึ่งหมายความว่าไม่ใช่ varto และ spodіvatysya komirku komirku kolka วินาที หากคุณต้องการให้ผลิตภัณฑ์ของคุณใช้งานได้จริง ไม่ใช่เป็นเดือน สิ่งที่กล่าวมาข้างต้นไม่ได้ปรับขนาดเป็นเส้นตรง แต่เป็นความจริงที่อุปกรณ์นี้มีปัจจัยรองอื่น เช่น อุณหภูมิและโหมดการเข้าถึง

เปลี่ยนความถี่

วิธีแก้ปัญหาที่ไม่เจ็บปวดที่สุดคือการเขียนข้อมูลที่ระบุ ในวิปัสกาบางประเภท อนุญาตให้ใช้วิโมกิในระบบได้ มิฉะนั้น คุณสามารถจดบันทึกการเปลี่ยนแปลงที่สำคัญเพิ่มเติมได้ อย่างไรก็ตาม จากบันทึก เราจะเชื่อมโยงไปยังด้านล่าง จำเกี่ยวกับสถานการณ์ที่เป็นไปได้ ที่ค่านั้นจะผันผวนตลอดเวลา และไหลมากขึ้นเรื่อย ๆ ราวกับว่าจะทำให้ EEPROM พังยับเยิน
(ถ้าไม่แย่ คุณสามารถบอกได้ว่าคุณเขียนถึง EEPROM กี่ครั้ง Ale ce magatime ของ lichnik ซึ่งจะถูกบันทึกไว้ใน EEPROM ... ซึ่งปัญหาจะกลายเป็นปัญหาในการลบ lichnik)

Pererivannya schodo ลดอาหารที่เท่าเทียมกัน

โปรเซสเซอร์บางตัวมีวงจรชีวิตที่ต่ำ ดังนั้นคุณจึงสามารถเขียนค่า EEPROM ที่เหลืออยู่ได้ ในขณะที่ระบบจะตื่นขึ้นโดยมีค่าใช้จ่ายด้านชีวิต คุณบันทึกค่าใน RAM และบันทึกใน EEPROM เฉพาะเมื่อคุณยังมีชีวิตอยู่เท่านั้น หรือบางที คุณอาจเขียน EEPROM ทุกชั่วโมง และเขียนสำเนาอื่นไปยัง EEPROM เป็นส่วนหนึ่งของขั้นตอนการยกเลิก เพื่อให้คุณสามารถเปลี่ยนการเชื่อมต่อ เพื่อให้ข้อมูลที่เหลือจะถูกเขียน
สิ่งสำคัญคือต้องพิจารณาใหม่ว่ามีตัวเก็บประจุที่มีอายุการใช้งานยาวนาน ซึ่งจะช่วยเพิ่มแรงดันไฟฟ้า ซึ่งเพียงพอสำหรับการตั้งโปรแกรม EEPROM เพื่อสิ้นสุดการเดินทางเป็นเวลาหนึ่งชั่วโมง คุณสามารถถามว่าจำเป็นต้องจดค่าหนึ่งหรือสองค่าหรือไม่ แต่ไม่ใช่กลุ่มข้อมูลที่ดี ระวังมีพื้นที่มากสำหรับการให้อภัย!

คิลเซวี่บัฟเฟอร์

ตัวแปรคลาสสิกของปัญหาในการล้างบัฟเฟอร์ FIFO ซึ่งก็คือการแทนที่ระเบียน N ที่เหลืออยู่ของค่า นอกจากนี้ยังจำเป็นต้องบันทึกตัวบ่งชี้สำหรับการสิ้นสุดบัฟเฟอร์ใน EEPROM สิ่งนี้จะเปลี่ยนการชดเชย EEPROM ตามสัดส่วนตามจำนวนสำเนาในบัฟเฟอร์นั้น ตัวอย่างเช่น หากบัฟเฟอร์ส่งผ่านที่อยู่ที่แตกต่างกัน 10 รายการเพื่อบันทึกค่าเดียว สกินของส่วนกลางนั้นจะถูกแก้ไขเร็วขึ้น 10 เท่า และทรัพยากรสำหรับการเขียนจะเพิ่มขึ้น 10 เท่า คุณต้องมี okremy lichnik หรือเครื่องหมายชั่วโมงสำหรับผิว 10 สำเนา เพื่อให้คุณสามารถบ่งบอกได้ว่าพวกมันถูกทิ้งไว้ในขณะที่ถอนตัว กล่าวอีกนัยหนึ่ง คุณต้องมีบัฟเฟอร์สองตัว ตัวหนึ่งสำหรับความหมาย และอีกตัวสำหรับชื่อ (วิธีบันทึก lichnik ที่ที่อยู่เดียวกันหากคุณนำไปที่หมายเลขที่ 1 ถึงความจริงที่ว่าคุณมีความผิดในzbіlshuvatisyaระหว่างการบันทึกวัฏจักรของผิวหนัง) วิธีการที่ไม่น่าพอใจซึ่งจะใช้เวลามากกว่า 10 เท่า ใช้ชีวิตมากขึ้น 10 เท่า จะใช้เวลามากขึ้น 10 เท่า คุณสามารถแสดงkmіtlivіstและบรรจุlіchilnikพร้อมกันด้วย danim หากคุณจดข้อมูลจำนวนมาก เพิ่มจำนวนไบต์สำหรับ lichnik ซึ่งไม่ใช่ปัญหาใหญ่ เอลไม่ว่าในกรณีใดต้องการ EEPROM จำนวนมาก
Atmel ได้เตรียม apnote เพื่อแก้ไขรายละเอียดที่คดเคี้ยวทั้งหมด:
AVR-101: การจัดเก็บ EEPROM ความทนทานสูง: www.atmel.com/images/doc2526.pdf

กรณีพิเศษสำหรับ lichnik ของจำนวนรายการ

บางครั้งคุณจำเป็นต้องบันทึก lichnik แต่ chi ไม่ใช่ความหมายเอง ตัวอย่างเช่น คุณอาจต้องการทราบจำนวนที่จะเปิดไฟล์แนบหรือฉันจะทำงานกับไฟล์แนบของคุณ ใหญ่กว่าใน lichnikah, tse เหล่านั้นพวกเขาเปลี่ยนจังหวะที่อายุน้อยที่สุด, znoshuyuchi กลางหนุ่ม EEPROM shvidshe เอล และที่นี่คุณสามารถจับกลอุบายบางอย่างได้ ในบันทึกย่อของ Microchip มีแนวคิดที่ชาญฉลาดสองสามข้อ เช่น โค้ดสีเทา ที่มีการเปลี่ยนแปลงเพียงบิตเดียวของแท็กไบต์เมื่อค่าแท็กเปลี่ยนไป มีกลิ่นเหม็นที่จะแนะนำ vikoristovuvati koriguvalnі kodi เพื่อชดเชยการสึกหรอ (ฉันไม่รู้ว่าจะใช้รหัสดังกล่าวได้อย่างมีประสิทธิภาพหรือไม่ ดังนั้นมันจึงเก่า เนื่องจากการอภัยโทษในหน่วยไบต์ของลิชนิกจะเป็นอิสระมากที่สุด ใช้ความกลัวและความเสี่ยงของคุณ โดยประมาณ Aut.) ดู Apnote: ww1.microchip.com/downloads/en/AppNotes/01449A.pdf

หมายเหตุ: สำหรับผู้ที่ต้องการทราบข้อมูลเพิ่มเติม Microchip ได้เตรียมเอกสารที่จะให้ข้อมูลโดยละเอียดเกี่ยวกับการแนบ EEPROM กลางและข้อมูลพร้อมไดอะแกรม:
ftp.microchip.com/tools/memory/total50/tutorial.html

แจ้งให้เราทราบหากคุณมีความคิดเกี่ยวกับวิธีการจัดการกับการลบ EEPROM

เจเรโล: ฟิล คูปแมน "Better Embedded System SW"
Betterembsw.blogspot.ru/2015/07/avoiding-eeprom-wearout.html

Примітка перекладача: в останні роки з'явилися мікросхеми EEPROM зі сторінковою організацією стирання (подібної до мікросхем FLASH), де логічно можна адресувати осередки (читати, записувати і стирати) побайтно, але при цьому мікросхема невидимо для користувача стирає всю сторінку повністю і перезаписує новими ดานิมิ ทูบโต ลบไฟล์ตามที่อยู่ 0 จริง ๆ แล้วเราลบและเขียนทับไฟล์ด้วยที่อยู่ 0 ... 255 (เมื่อขยายด้านข้างเป็น 256 ไบต์) เคล็ดลับกับบัฟเฟอร์ในกรณีนี้ไม่สามารถช่วยได้ เมื่อทรัพยากรการบันทึกหมดลง microcircuit ดังกล่าวจะไม่อยู่ตรงกลาง แต่ทั้งด้านโดยรวม ในแผ่นข้อมูลสำหรับ microcircuits ดังกล่าว ทรัพยากรบันทึกจะถูกระบุ สำหรับด้านข้างและไม่ใช่สำหรับศูนย์เฉพาะ ดูตัวอย่าง ข้อมูลบน 25LC1024 จากไมโครชิป

แท็ก: เพิ่มแท็ก

ตัวควบคุมเตาอบของเราอาจพร้อม - เวลาที่เหลือจะเต็มไปด้วยตัวควบคุม - "ปลาทอง" ซึ่งจำทุกอย่างได้ประมาณห้านาทีก่อนอาหารมื้อแรก เพื่อที่จะจำการตั้งค่าของเรา ค่าของอุณหภูมิที่ตั้งไว้ และจุดสอบเทียบ หลังจากการเปิดใช้ชีวิต จำเป็นต้องเปลี่ยนหน่วยความจำที่ไม่ขึ้นกับพลังงาน - EEPROM
เพื่อนร่วมงานของเราเขียน EEPROM ให้ดียิ่งขึ้น

Golovne สิ่งที่เราจำเป็นต้องรู้ก็คือหน่วยความจำ EEPROM นั้นไม่ได้ถูกมองว่าเป็น "แค่หน่วยความจำ" แต่เป็นส่วนขยายไมโครชิปภายใน
EEPROM okremy address spaceไม่มีวิธีเข้าถึงพื้นที่ที่อยู่ของโปรเซสเซอร์ (FLASH และ SRAM) เพื่อให้สามารถเข้าถึงข้อมูลที่อยู่เบื้องหลังที่อยู่เดียวในหน่วยความจำแบบไม่ลบเลือน จำเป็นต้องกำหนดลำดับของรีจิสเตอร์ต่ำ (แอดเดรสรีจิสเตอร์ EEARH และ EEARL, ข้อมูลรีจิสเตอร์ EEDR และรีจิสเตอร์ควบคุม EECR)
Zgidno พร้อมชุดข้อมูลเพื่อเขียนไบต์สำหรับที่อยู่เดียวใน EEPROM คุณต้องทำตามขั้นตอน:

  1. ตรวจสอบความพร้อมของ EEPROM ก่อนเขียนข้อมูล (ส่งผ่านบิต EEPE ไปยังการลงทะเบียน EECR)
  2. ตรวจสอบความสมบูรณ์ของการเขียนไปยังหน่วยความจำ FLASH (ส่งบิต SELFPRGEN ไปยังรีจิสเตอร์ SPMCSR) - จำเป็นต้องบันทึก เนื่องจากโปรแกรมต้องใช้ประโยชน์จาก
  3. เขียนที่อยู่ใหม่ลงในการลงทะเบียน EEAR (เพื่อการบริโภค);
  4. เขียนไบต์ของข้อมูลไปยังการลงทะเบียน EEDR (เพื่อการบริโภค);
  5. ตั้งค่าเป็น EEMPE register EECR หนึ่งบิต;
  6. ด้วยการยืดเวลาหลายรอบหลังจากตั้งค่าธง EEMPE มันจะถูกบันทึกในบิต EEPE ของการลงทะเบียน EECR ด้วยหน่วยทางลอจิคัล

ครั้งถัดไปที่โปรเซสเซอร์ข้าม 2 รอบก่อนคำแนะนำในขั้นตอนต่อไป
ต้องตรวจสอบอีกจุดหนึ่งสำหรับการมีอยู่ของไดรเวอร์ในโปรแกรม - ทางด้านขวาซึ่งบันทึกจาก EEPROM ไม่สามารถเปลี่ยนได้ทันทีจากบันทึกเป็นหน่วยความจำ FLASH ซึ่งก่อนเขียนไปยัง EEPROM จำเป็นต้อง แปลงใหม่เนื่องจากการเขียนโปรแกรมหน่วยความจำ FLASH เสร็จสมบูรณ์ อย่างไรก็ตามไมโครคอนโทรลเลอร์ไม่สามารถเป็น zavantazhuvach ได้โดยไม่มีการเปลี่ยนแปลงในหน่วยความจำ FLASH (โปรดจำไว้ว่า avr มีสถาปัตยกรรมฮาร์วาร์ด: หน่วยความจำโปรแกรม (FLASH) และหน่วยความจำข้อมูล (SRAM) แยกจากกัน)
ไม่สำคัญต่อวงจรของการบันทึกที่อยู่ในความถี่ของ RC-oscillator ภายในของ microcircuit แรงดันและอุณหภูมิ สำหรับรุ่น ATmega48x/88x/168x ควรเป็น 3.4 ms (!) สำหรับรุ่นเก่าบางรุ่น - 8.5 ms (!!!)
นอกจากนี้ ในระหว่างชั่วโมงของการเขียนไปยัง EEPROM ปัญหาอาจเกิดขึ้นเนื่องจากการหยุดชะงักอย่างรวดเร็วในกระบวนการลำดับการบันทึกที่มากขึ้น ดังนั้นการเขียนใหม่ในกระบวนการบันทึกใน EEPROM จึงมีประสิทธิภาพมากขึ้น
การอ่านหน่วยความจำที่ไม่ขึ้นกับพลังงานนั้นง่ายขึ้นเล็กน้อย:

  1. ตรวจสอบความพร้อมของ EEPROM ก่อนอ่านข้อมูล (ส่งบิต EEWE ไปยังการลงทะเบียน EECR)
  2. เขียนที่อยู่ในการลงทะเบียน EEAR;
  3. ตั้งค่าเป็น EERE register EECR หนึ่งบิต;
  4. ข้อมูลถูกอ่านจากการลงทะเบียน EEDR (จริง ๆ แล้วหากข้อมูลที่ร้องขอจะถูกย้ายไปยังการลงทะเบียนข้อมูล ฮาร์ดแวร์จะไม่ส่ง EERE บิต มิฉะนั้น ไม่จำเป็นต้องอ่านบิตสถานี เนื่องจากการดำเนินการอ่าน จาก EEPROM จะต้องทำหนึ่งรอบ)

หลังจากตั้งค่าบิต EERE เป็นหนึ่งแล้ว โปรเซสเซอร์จะข้าม 4 รอบก่อนคำสั่งที่ไม่เหมาะสม
Yak bachimo หุ่นยนต์ที่มีหน่วยความจำที่ไม่ใช้พลังงานเป็นกระบวนการที่กินเวลาเป็นชั่วโมง เนื่องจากเรามักจะอ่านและเขียนข้อมูลจาก EEPROM โปรแกรมจึงอาจแฮ็กได้เล็กน้อย

อย่างไรก็ตาม เราเขียนโปรแกรมตรงกลาง IAR และเราโชคดี: งานทั้งหมดที่มีการอ่าน-เขียนจาก EEPROM อยู่ตรงกลางของการแจกจ่าย - ตัวดัดแปลง iar є "__eeprom" ซึ่งทำการเปลี่ยนแปลงในหน่วยความจำแบบไม่ลบเลือน - จากนั้นเราจะต้องอ่านค่าคงที่" การเปลี่ยนแปลงที่ "อินไลน์" (เมื่อคอนโทรลเลอร์เริ่มต้น) หรือเขียนจากการเปลี่ยนแปลง "อินไลน์" ที่ "ถาวร" - นั่นคือเมื่อเปลี่ยนค่าอินไลน์จำเป็นต้องเปลี่ยน ค่าของการเปลี่ยนแปลงในหน่วยความจำแบบไม่ลบเลือน
ดูแกนที่เปลี่ยนใหม่ดังนี้:

eeprom uint16_t EEP_Min อุณหภูมิ;

คำสำคัญอีกสองสามคำ: หากเราไม่ต้องการส่งข้อความถึงการเปลี่ยนแปลง eeprom จำเป็นต้องจำไว้ว่า eeprom เป็นพื้นที่ที่อยู่ และเพื่อสร้างไฟล์ที่กำหนดเองบน eeprom (และไม่อนุญาตให้เราสร้างคอมไพเลอร์) จำเป็นต้องพูดกับที่อยู่ใน eeprom:

Uint16_t __eeprom *EEP_MinTemperatureAddr;

หันไปที่ตัวควบคุมเตาอบและ EEPROM ในกรณีของเราสำหรับ EEPROM ของเครื่องเสมือนใด ๆ จะไม่ถูกถ่ายโอน ยิ่งไปกว่านั้น ลองคิดดูว่า ห้องสมุดประเภทใดที่จำเป็นสำหรับการทำงานกับหน่วยความจำที่ไม่ใช้พลังงาน - จำเป็นต้อง "กระจาย" สำหรับรายการบันทึกสำคัญ หากคุณต้องการแก้ไขไลบรารี คุณจะต้องทำงานแบบ cross-enabled: ที่ไลบรารีสำหรับ EEPROM ให้เชื่อมต่อไลบรารี ADC, องค์ประกอบความร้อน, การตั้งค่าส่วนกลาง และในห้องสมุดรอบนอกเหล่านี้ให้เชื่อมต่อไลบรารี EEPROM - pidhid นั้นไม่ใจดี
ตัวเลือกที่สองคือการเพิ่มไปยังไลบรารีสกิน ซึ่งคุณต้องบันทึกการตั้งค่า eeprom-change และบันทึกการตั้งค่าโดยตรงจากเครื่องเสมือน เราใช้ตัวเลือกนี้
การเปลี่ยนแปลงนั้นปลอดภัย ดังนั้นคุณต้องบันทึกไว้ใน EEPROM:

  1. จุดสอบเทียบ
  2. ค่าอุณหภูมิสูงสุด-ต่ำสุดที่ตั้งไว้และเพื่อปรับอุณหภูมิ
  3. ตั้งค่าอุณหภูมิ
  4. ค่าสัมประสิทธิ์ตัวควบคุม PID

ค่าของตัวจับเวลาในครัวไม่ได้รับการดูแล - สิ่งสำคัญคือตัวจับเวลามีหน้าที่ในการตั้งเวลาเอง
การปรับทั้งหมดทำได้ด้วยการกดสั้นๆ หลังจากหมุนตัวเข้ารหัสเพิ่มเติมและกดปุ่มแปรงสั้นๆ ค้างไว้ หากคุณจำไว้ว่าจำนวนรอบการอ่าน-เขียนของ EEPROM ยังคงไม่ชัดเจน อย่าเขียนทับข้อมูลเดิมเพียงครั้งเดียว (เช่น หากคุณเลือกค่าเดียวกันกับการตั้งค่าที่เป็นอยู่) ดังนั้น ก่อนที่สกินจะเปลี่ยน __eeprom-change จะสามารถย้อนกลับได้ และสิ่งที่ต้องเขียนใหม่:

//ค่าที่เปลี่ยนแปลงไปอย่างไร - เขียนทับในหน่วยความจำแบบไม่ลบเลือนถ้า (ADCTemperature.atMinTemperatureValue != (uint16_t)VMEncoderCounter.ecntValue) ( ​​​​ADCTemperature.atMinTemperatureValue = (uint16_t)VMEncoderMuture

ในการอ่าน EEPROM ทุกอย่างนั้นง่าย - ด้วยการเริ่มต้นของ "สตรีม" เราเพียงแค่อ่านค่าของหน่วยความจำที่ไม่ขึ้นกับพลังงาน:

ADCTemperature.atMinTemperatureValue = EEP_MinTemperature;

เพื่อที่จะทำให้สิ่งที่แนบมาของเราตั้งแต่เริ่มต้นไม่ว่าจะเป็นใน EEPROM โครงการสำหรับการลงทุนครั้งแรกสามารถรวบรวมด้วยการเริ่มต้นของการเปลี่ยนแปลงเหล่านี้:

eeprom uint16_t EEP_MinTemperature = 20; … // อาร์เรย์สำหรับจัดเก็บจุดสอบเทียบในหน่วยความจำแบบไม่คั่น __eeprom TCalibrationData EEP_CalibrationData = ((20, 1300), (300, 4092));

ในทางใดทางหนึ่ง คอมไพเลอร์จะเริ่มต้นการเปลี่ยนแปลงของ __eeprom เป็นจุดเริ่มต้นของการทำงานด้วยฟังก์ชันหลัก ในการลบไฟล์ออกจากหน่วยความจำอิสระ (.eep) จำเป็นต้องดาวน์โหลดในขั้นตอนถัดไป:
Project->Options..->Linker->Extra Options
หากช่องทำเครื่องหมาย "ใช้ตัวเลือกบรรทัดคำสั่ง" ไม่ใช่ varto ให้เลือก їїและเพิ่มบรรทัด
-มาตรฐาน Ointel,(XDATA)=.eep
รวบรวมโปรเจ็กต์ย้อนกลับด้วยการเปลี่ยนแปลงเริ่มต้น บันทึก eep-file okremo; จากนั้นเราจะรับการเริ่มต้นของชั่วโมงของการสร้างการเปลี่ยนแปลง

Axis และนั่นแหล่ะ - pіchkaของเราพร้อมแล้ว!

คราวที่แล้วเมื่อฉันเขียน "ความคิดเห็นที่เปิดกว้างเกี่ยวกับอาหาร" เกี่ยวกับวิธีการสำรองข้อมูลเฟิร์มแวร์จาก "Mega" ฉันได้รับแจ้งว่าฉันไม่ได้คาดเดาเกี่ยวกับการสำรองข้อมูล EEPROM ตอนนั้นฉันไม่รู้ว่าฉันรู้อะไรเพราะ การตัดสินอย่างถูกต้องว่าไม่ควรนำทุกอย่างมารวมกันในขั้นตอนแรกของ "แนวทางสู่กระสุนปืน" ทางด้านขวา ทุกคนไม่ชัดเจนว่า EEPROM จะไม่กะพริบเมื่อรวบรวมและอัปโหลดเฟิร์มแวร์จาก Arduino IDE นี่ไม่ได้หมายความว่าไม่มีสิ่งใดถูกโหลดเข้าสู่ EEPROM หากเฟิร์มแวร์ถูกโหลดจาก IDE และการปรับแต่งด้วย EEPROM (ซึ่งเหมือนกับอีกอันที่รวมอยู่ในเฟิร์มแวร์) นั้น viroblyayutsya ในระดับที่แตกต่างกันโดยสิ้นเชิง จากนั้นสำหรับการสำรองข้อมูลของเฟิร์มแวร์เปล่าที่ไม่มีแพตช์บาง ๆ การบันทึกใน EEPROM เป็นไปได้ (เป็นไปได้เท่านั้น) ก็เพียงพอที่จะบันทึกเฉพาะเฟิร์มแวร์เปล่าเท่านั้น เอล ถ้ามันเบื่อแล้วทำไมไม่ "เคี้ยว" yogo ล่ะ ผ่านมันไปตามลำดับ EEPROM คืออะไรและคุณกำลังพูดถึงอะไรตอนนี้
EEPROM - (หน่วยความจำแบบอ่านอย่างเดียวที่ตั้งโปรแกรมได้ซึ่งลบได้ด้วยไฟฟ้า) - พื้นที่ของหน่วยความจำแบบไม่ลบเลือนของไมโครคอนโทรลเลอร์ซึ่งคุณสามารถเขียนและอ่านข้อมูลได้ ส่วนใหญ่จำเป็นต้องชนะเพื่อบันทึกโปรแกรม ซึ่งสามารถเปลี่ยนแปลงได้ในกระบวนการทำงานและวิธีที่จำเป็นในการบันทึกโปรแกรมเมื่อปิดชีวิต

เครื่องพิมพ์ 3 มิติใช้ EEPROM อย่างไร
มาดูที่ก้นของ Marlin กัน Marlin Firmware ไม่มี EEPROM ออกจากกล่อง

#define EEPROM_SETTINGS
#define EEPROM_CHITCHAT

หากสังเกตเห็นการเปลี่ยนแปลง EEPROM เครื่องพิมพ์สามารถบันทึกและเปลี่ยนขั้นตอนต่อไป (แนะนำโดยชนชั้นนายทุน):

  • ปริมาณเมล็ดพืชต่อมิลลิเมตร
  • ความเร็วป้อนสูงสุด/ต่ำสุด [มม./วินาที]
  • อัตราเร่งสูงสุด [mm/s^2]
  • priskorennya
  • เร็วขึ้นในระหว่างการหดกลับ
  • การตั้งค่า PID
  • เข้าถึงตำแหน่งบ้าน
  • อัตราการไหลขั้นต่ำต่อชั่วโมงของการเคลื่อนไหว [มม./วินาที]
  • ชั่วโมงขั้นต่ำของล็อต [ms]
  • ความเร็วสูงสุดในการตัดตามแนวแกน X-Y [mm/s]
  • ความเร็วสูงสุดในการตัดตามแนวแกน Z [mm/s]
คุณสามารถแก้ไขจำนวนการปรับแต่งได้โดยใช้หน้าจอเครื่องพิมพ์และส่วนต่างๆ ของการแก้ไข เมื่อเลือก EEPROM ที่เลือก รายการต่อไปนี้จะปรากฏในเมนูเริ่มต้น:
  • หน่วยความจำจัดเก็บ
  • โหลดหน่วยความจำ
  • คืนค่า Failsafe
คุณยังสามารถปรับแต่ง GCode สำหรับหุ่นยนต์โดยไม่ต้องมีคนกลาง (ผ่าน Pronterface)
  • M500 บันทึกการตั้งค่าปัจจุบันใน EEPROM จนกว่าจะมีการเริ่มต้นครั้งถัดไปหรือหลังจากคำสั่ง M501
  • M501 อ่านการกำหนดค่าจาก EEPROM
  • M502 ข้ามการล็อคอินจาก Configurations.h. ทันทีที่มีการเปลี่ยน M500 ค่าล็อคจะถูกป้อนลงใน EEPROM
  • M503 แสดงการตั้งค่าปัจจุบัน - "Ti ซึ่งเขียนใน EEPROM"
คุณสามารถอ่านเกี่ยวกับ EEPROM ในเฟิร์มแวร์ Repitier

คุณต้องการเขียนข้อมูลไปยัง EEPROM อย่างไร?
คล้ายกับที่อธิบายไว้ในวิธีสำรองข้อมูลเฟิร์มแวร์ คีย์ -ยู. เฉพาะในกรณีนี้หากมีใหม่จะเป็นตัวบ่งชี้ว่าต้องอ่าน EEPROM ใด

avrdude.exe -p atmega2560 -c สายไฟ -PCOM5 -b115200 -Ueeprom:r:"printer_eeprom".eep:i

คำสั่งนี้อ่านข้อมูล EEPROM และไฟล์ "printer_eeprom.eep"

บันทึกนั้นไม่สามารถพับเก็บได้และได้รับชัยชนะจากคำสั่งที่คล้ายคลึงกันเช่นเดียวกับผู้ที่อยู่ในกุญแจ -ยูค่าใช้จ่ายไม่ "r" แต่ "w"

avrdude.exe -p atmega2560 -c สายไฟ -PCOM5 -b115200 -Ueeprom:w:"printer_eeprom".eep:i

ในช่วงเวลาแห่งความสำเร็จบนหน้าจอ คุณจะร้องเพลงเกี่ยวกับการมาของการโทรปลุก

ใช้ EEPROM อย่างไรและอย่างไร?
สำหรับซัง "Navіscho tse robiti?" ในกรณีนี้จำเป็นต้องใช้ Prati EEPROM เนื่องจากเฟิร์มแวร์ด้านหน้าของตัวเดียวกันนั้นบิดเบี้ยวและหน่วยความจำอาจเหลือจากหน่วยความจำ ที่นี่ฉันเจอคนที่มีปัญหาแล้ว หลังจากเปลี่ยนจากเฟิร์มแวร์ตัวหนึ่งเป็นอีกตัวหนึ่ง (จาก Marlin เป็น Repitier EMNIP) เครื่องพิมพ์ของพวกเขาก็ได้รับการซ่อมแซม สมมติว่า "อย่างสร้างสรรค์" นี่เป็นเพราะความจริงที่ว่าเฟิร์มแวร์ต่างกันบันทึกข้อมูลสำหรับที่อยู่ต่างกัน และถ้าคุณพยายามอ่านข้อมูลจากที่อยู่ที่ไม่ถูกต้อง นรกก็เริ่มขึ้น
คุณสามารถลบ EEPROM โดยทางโปรแกรมจากเฟิร์มแวร์เท่านั้น แต่สำหรับสิ่งนี้ - ให้เติมร่างพิเศษลงในคอนโทรลเลอร์ในบางครั้ง คุณสามารถอ่านรายงานเกี่ยวกับเรื่องนี้ได้ในเอกสาร Arduino อย่างเป็นทางการ
หาก EEPROM ถูกลบบนบอร์ด Arduino และหากเป็นตัวควบคุมนามธรรม จะต้องเปลี่ยนรหัสร่างเพื่อแก้ไขพื้นที่ EEPROM สำหรับคอนโทรลเลอร์เฉพาะบนบอร์ด สำหรับผู้ที่จำเป็นต้องเปลี่ยนตอนจบจิตในวงจร "สำหรับ" ตัวอย่างเช่น สำหรับ ATmega328 ที่มีหน่วยความจำ EEPROM 1kb ลูปจะมีลักษณะดังนี้:
วิสโนวอค
ฉัน dosit dovgo rozpinavsya และทั้งหมดเพื่ออะไร เพื่อแจ้งให้คุณทราบเมื่อสำรองข้อมูลเฟิร์มแวร์ คุณสามารถบันทึก EEPROM ได้ แม้ว่าคุณจะจำเป็นต้องบันทึกในการอัพเกรดใหม่ก็ตาม หากคุณพร้อมที่จะเสียสละพวกเขาให้เอาชนะพวกเขาให้ได้ นอกจากนี้ หากคุณเปลี่ยนเฟิร์มแวร์ตัวหนึ่งเป็นเฟิร์มแวร์ใหม่ หรือเปลี่ยนจากเวอร์ชันหนึ่งไปอีกเวอร์ชัน อย่าล้างข้อมูล EEPROM ก่อนอัปโหลดเฟิร์มแวร์ใหม่ ในขณะเดียวกัน เราก็ได้ค้นพบสิ่งใหม่ๆ มากมาย

การเขียนโปรแกรมไมโครเซอร์กิตหน่วยความจำถาวร (EEPROM) จะถูกลบด้วยไฟฟ้าโดยไมโครเซอร์กิตคอมพิวเตอร์ตัวนำออกไซด์ที่เป็นโลหะ ราวกับว่าถูกบิ่นบนบอร์ดอื่น ชิปประเภทนี้สามารถลบและตั้งโปรแกรมใหม่ได้โดยใช้สัญญาณอิเล็กทรอนิกส์ที่แรง เศษสามารถแตกได้โดยไม่ต้องเห็นชิปในเรือนหลัง เช่น การเชื่อมต่อ ชิป EEPROM นั้นพบได้ในกาลูซาห์ที่อุดมสมบูรณ์
Chip EEPROM เพื่อล้างแค้นหน่วยความจำอิสระดังนั้นข้อมูลนี้จึงไม่สูญเปล่าเมื่อชีวิตของชิปเสียหาย ไมโครเซอร์กิตประเภทนี้สามารถตั้งโปรแกรมแบบสุ่มได้ ซึ่งหมายความว่าหน่วยความจำบางส่วนสามารถเปลี่ยนแปลงได้เพื่อช่วยในการเขียนทับใหม่ โดยไม่ต้องเขียนทับหน่วยความจำ ข้อมูลที่เก็บไว้ตรงกลางของชิป EEPROM จะถาวร จนกว่าจะถูกลบหรือตั้งโปรแกรมใหม่ให้เป็นส่วนประกอบที่มีค่าในคอมพิวเตอร์และอุปกรณ์อิเล็กทรอนิกส์อื่นๆ

ไมโครวงจร EEPROM ที่ใช้ทรานซิสเตอร์เกทลอย ชิป EEPROM ถูกตั้งโปรแกรมด้วยวงจรข้อมูลที่ตั้งโปรแกรมไว้ล่วงหน้าเช่นเดียวกับทางอิเล็กทรอนิกส์ผ่านเกตออกไซด์ ให้ประตูลอยน้ำปลอดภัยสำหรับการประหยัดอุปกรณ์อิเล็กทรอนิกส์เหล่านี้ หน่วยความจำKomіrka vvazhaetsya ตั้งโปรแกรมไว้หากมีประจุด้วยอิเล็กตรอนจะเป็นศูนย์ เหมือนกับว่าหน่วยความจำตรงกลางไม่ชาร์จ ไม่ได้ตั้งโปรแกรม และไม่ทำงานเพียงลำพัง

สำหรับโครงสร้างภายนอกที่หลากหลาย จำเป็นต้องใช้หน่วยความจำ ดังนั้นชิป EEPROM จึงสามารถติดอยู่ในตู้เสื้อผ้าของอุปกรณ์อิเล็กทรอนิกส์สำหรับก้นได้โดยไม่ตั้งใจ กลิ่นเหม็น vikoristovuyutsya ในระบบเกม โทรทัศน์ และจอคอมพิวเตอร์ เครื่องช่วยฟัง กล้องดิจิตอล เทคโนโลยี Bluetooth และระบบเกมยังใช้ชิป EEPROM กลิ่นเหม็นได้รับชัยชนะในอุตสาหกรรมโทรคมนาคม การแพทย์ และอุตสาหกรรมทั่วไป คอมพิวเตอร์ส่วนบุคคลและคอมพิวเตอร์ธุรกิจอยู่ภายใต้ ESPCR

ชิป EEPROM ยังสามารถใช้ได้ในพื้นที่จัดเก็บรถยนต์ที่หลากหลาย Vіnvikoristovuєtsyaในระบบป้องกันการปิดกั้น, ถุงลมนิรภัย, ระบบควบคุมเสถียรภาพทางอิเล็กทรอนิกส์, ระบบส่งกำลังและบล็อกเครื่องยนต์ ชิป EEPROM ยังพบได้ในเครื่องปรับอากาศ จอแสดงผลอุปกรณ์เสริม โมดูลควบคุมแชสซี และระบบการเข้าออกแบบไม่ใช้กุญแจ ชิป Qi ช่วยควบคุมการมองเห็นของเพดานปาก และยังสั่นสะเทือนในระบบการวินิจฉัยต่างๆ

Іsnuє zamezhennya kіlkostіซ้ำ, จามรีสามารถเขียนทับโดยชิป EEPROM ลูกบอลที่อยู่ตรงกลางชิปจะค่อยๆ ลดลงโดยการเขียนตัวเลขใหม่ นี่ไม่ใช่ปัญหาใหญ่เพราะชิป EEPROM สามารถเปลี่ยนได้ถึงล้านครั้ง ความสำเร็จเพิ่มเติมในห้องโถงของเทคโนโลยี ดีกว่าสำหรับทุกสิ่ง เพื่อยึดติดกับผู้ที่สามารถรองรับไมโครวงจรของหน่วยความจำในอนาคต

© 2022 androidas.ru - ทั้งหมดเกี่ยวกับ Android