ዝርዝር ሁኔታ:

አርዱዲኖን በመጠቀም ለውጭ EEPROM መረጃን ማንበብ እና መጻፍ 5 ደረጃዎች
አርዱዲኖን በመጠቀም ለውጭ EEPROM መረጃን ማንበብ እና መጻፍ 5 ደረጃዎች

ቪዲዮ: አርዱዲኖን በመጠቀም ለውጭ EEPROM መረጃን ማንበብ እና መጻፍ 5 ደረጃዎች

ቪዲዮ: አርዱዲኖን በመጠቀም ለውጭ EEPROM መረጃን ማንበብ እና መጻፍ 5 ደረጃዎች
ቪዲዮ: የአርዱዪኖ ሶፍትዌርን እንዴት ማውረድ እና መጫን እንደሚቻል 2024, ሀምሌ
Anonim
አርዱዲኖን በመጠቀም ወደ ውጭ EEPROM መረጃን ማንበብ እና መጻፍ
አርዱዲኖን በመጠቀም ወደ ውጭ EEPROM መረጃን ማንበብ እና መጻፍ

EEPROM በኤሌክትሪክ የሚጠፋ ፕሮግራም ሊነበብ የሚችል-ብቻ ማህደረ ትውስታን ያመለክታል።

ተለዋዋጭ ያልሆነ የማስታወስ ችሎታ ስለሆነ EEPROM በጣም አስፈላጊ እና ጠቃሚ ነው። ይህ ማለት ቦርዱ ሲጠፋ እንኳን ፣ የ EEPROM ቺፕ አሁንም የተፃፈበትን ፕሮግራም ይይዛል። ስለዚህ ቦርዱን ሲያጠፉ እና እንደገና ሲያበሩት ፣ ለ EEPROM የተፃፈው ፕሮግራም ሊሠራ ይችላል። ስለዚህ በመሠረቱ ፣ EEPROM ምንም ይሁን ምን አንድ ፕሮግራም ያከማቻል እና ያካሂዳል። ይህ ማለት መሣሪያን ማጥፋት ፣ ለ 3 ቀናት አጥፍተው ተመልሰው መጥተው ማብራት ይችላሉ እና አሁንም በውስጡ የተቀረፀውን ፕሮግራም ማሄድ ይችላል። አብዛኛዎቹ የሸማቾች የኤሌክትሮኒክስ መሣሪያዎች የሚሠሩት በዚህ መንገድ ነው።

ይህ ፕሮጀክት በ LCSC ስፖንሰር ነው። ከ LCSC.com የኤሌክትሮኒክ ክፍሎችን እጠቀም ነበር። ኤልሲሲሲ ከ 200 ለሚበልጡ አገራት በዓለም አቀፍ የመርከብ አውታር እጅግ በጣም እውነተኛ ፣ ከፍተኛ ጥራት ያላቸውን የኤሌክትሮኒክስ ክፍሎች በጥሩ ዋጋ ሰፊ ምርጫን ለማቅረብ ጠንካራ ቁርጠኝነት አለው። ዛሬ ይመዝገቡ እና በመጀመሪያው ትዕዛዝዎ ላይ $ 8 ቅናሽ ያግኙ።

በባህላዊ EEPROM ውስጥ በግለሰብ ባይቶች ውስጥ ኢኢአርፒም እንዲሁ በብቃት ማንበብ ፣ መደምሰስ እና እንደገና መፃፍ ይችላል። በአብዛኛዎቹ በሌሎች የማይለዋወጥ ማህደረ ትውስታ ዓይነቶች ውስጥ ይህ ሊከናወን አይችልም። እንደ Microchip 24-series EEPROM ያሉ ተከታታይ የ EEPROM መሣሪያዎች I²C ን መናገር በሚችል በማንኛውም መሣሪያ ላይ ተጨማሪ ማህደረ ትውስታ እንዲያክሉ ያስችሉዎታል።

አቅርቦቶች

  1. EEPROM - 24LC512
  2. ATmega328P-PU
  3. 16 ሜኸ ክሪስታል
  4. የዳቦ ሰሌዳ
  5. Resistor 4.7k Ohm x 2
  6. Capacitor 22 pF x 2

ደረጃ 1: EEPROM መሠረታዊ ነገሮች

የ EEPROM መሠረታዊ ነገሮች
የ EEPROM መሠረታዊ ነገሮች

የማይክሮ ቺፕ 24LC2512 ቺፕ በ 8 ፒን DIP ጥቅል ውስጥ ሊገዛ ይችላል። በ 24LC512 ላይ ያሉት ፒኖች ቆንጆ ቀጥ ብለው ወደ ፊት እና ኃይል (8) ፣ GND (4) ፣ የመፃፍ ጥበቃ (7) ፣ SCL/SDA (6 ፣ 5) ፣ እና ሶስት የአድራሻ ካስማዎች (1 ፣ 2 ፣ 3) ናቸው።

የሮማ አጭር ታሪክ

ቀደምት “የተከማቸ -ፕሮግራም” ዓይነት ኮምፒውተሮች - እንደ ዴስክ ካልኩሌተሮች እና የቁልፍ ሰሌዳ አስተርጓሚዎች - ሮም በዲዲዮ ማትሪክስ ሮም መልክ መጠቀም ጀመሩ። ይህ በልዩ በተደራጀ ፒሲቢ ላይ በተቀመጡ ልዩ ሴሚኮንዳክተር ዳዮዶች የተገነባ ትውስታ ነበር። የተቀናጁ ወረዳዎች ሲመጡ ይህ ወደ ጭንብል ሮም ተሰጠ። ጭምብል ሮም ልክ እንደ ዲዲዮ ማትሪክስ ሮም በጣም ነበር ፣ ግን እሱ በጣም በትንሽ መጠን ተተግብሯል። ይህ ማለት ግን እርስዎ ሁለት ዳዮዶችን በብረት ብረት ማንቀሳቀስ እና እንደገና ማረም አይችሉም ማለት ነው። ጭምብል ሮም በአምራቹ ፕሮግራም መቅረብ ነበረበት እና ከዚያ በኋላ ሊለወጥ አይችልም።

እንደ አለመታደል ሆኖ ጭምብል ሮም ውድ ነበር እና ለማምረት ረጅም ጊዜ ፈጅቷል ምክንያቱም እያንዳንዱ አዲስ መርሃ ግብር በመሰረተ ልማት እንዲመረቱ አዲስ መሣሪያ ይፈልጋል። በ 1956 ግን ፣ ይህ ችግር ገንቢዎች እራሳቸውን ቺፕስ እንዲያዘጋጁ በሚያስችላቸው የ PROM (የፕሮግራም ሮም) ፈጠራ ተፈትቷል። ያ ማለት አምራቾች ዋጋው ርካሽ እና የበለጠ ተግባራዊ ያደረገው በሚሊዮን የሚቆጠሩ ተመሳሳይ ያልታቀደ መሣሪያን ማምረት ይችላሉ። PROM ፣ ግን ከፍተኛ-ቮልቴጅ የፕሮግራም መሣሪያን በመጠቀም አንድ ጊዜ ብቻ ሊፃፍ ይችላል። የ PROM መሣሪያ ፕሮግራም ከተደረገ በኋላ መሣሪያውን ወደ ያልተዘጋጀ ሁኔታ የሚመልስበት መንገድ አልነበረም።

ይህ በ 1971 በ ‹ኢፒኦኤም› (Erasable Programmable ROM) ፈጠራ ተለውጦ ነበር - ሌላ ፊደል ወደ ምህፃረ ቃል ከማከል በተጨማሪ - መሣሪያውን የመደምሰስ እና ጠንካራ የ UV ብርሃን ምንጭ በመጠቀም ወደ “ባዶ” ሁኔታ የመመለስ ችሎታን አመጣ። ትክክል ነው ፣ እሱን እንደገና ለማረም በአይሲው ላይ ደማቅ ብርሃን ማብራት ነበረብዎት ፣ ያ ምን ያህል አሪፍ ነው? ደህና ፣ በዚህ ሁኔታ የኤሌክትሪክ ምልክቶችን በመጠቀም መሣሪያውን እንደገና ማረም እንዲችሉ በ firmware ላይ ካልሠሩ በስተቀር በጣም ጥሩ ይመስላል። ይህ በመጨረሻ እ.ኤ.አ. በ 1983 በ EEPROM (በኤሌክትሪክ ሊጠፋ የሚችል መርሃግብር ሮም) ልማት እውን ሆነ እና በዚያም በአሁኑ ቀን የማይረባ ምህፃረ ቃል ደርሰናል።

ደረጃ 2 - የ EEPROM ተውኔቶች

እንደ EEPROM የመረጃ ማከማቻ ዘዴ ሁለት ዋና ዋና መሰናክሎች አሉ። በአብዛኛዎቹ አፕሊኬሽኖች ውስጥ ጥቅሞቹ ከሚያስከትላቸው ጉዳቶች ይበልጣሉ ፣ ነገር ግን በሚቀጥለው ንድፍዎ ውስጥ EEPROM ን ከማካተትዎ በፊት ሊያውቋቸው ይገባል።

በመጀመሪያ ፣ EEPROM እንዲሠራ የሚያደርገው ቴክኖሎጂ እንዲሁ እንደገና ሊፃፍ የሚችልበትን ጊዜ ይገድባል። ይህ በ ‹1› እና በ ‹0› መካከል ያለው የክፍያ ልዩነት የማይታወቅ እስኪሆን ድረስ ሮም በሚፈጥሩት ትራንዚስተሮች ውስጥ ከተያዙ እና ከኤሌክትሮኖች ጋር የተያያዘ ነው። ግን አይጨነቁ ፣ አብዛኛዎቹ EEPROM 1 ሚሊዮን ወይም ከዚያ በላይ ከፍተኛ የመፃፍ ቁጥር አላቸው። ለ EEPROM ያለማቋረጥ እስካልጻፉ ድረስ ይህንን ከፍተኛ መምታትዎ የማይመስል ነገር ነው። በሁለተኛ ደረጃ ፣ ኃይልን ከእሱ ካስወገዱ EEPROM አይሰረዝም ፣ ግን ላልተወሰነ ጊዜ ውሂብዎን አይይዝም። ኤሌክትሮኖች በጊዜ ሂደት EEPROM ን በደንብ በመደምሰስ ከ ትራንዚስተሮች እና በመያዣው በኩል ሊንሸራተቱ ይችላሉ። ያ እንደተናገረው ፣ ይህ ብዙውን ጊዜ በዓመታት ውስጥ ይከሰታል (ምንም እንኳን በሙቀት ሊፋጠን ቢችልም)። አብዛኛዎቹ አምራቾች የእርስዎ ውሂብ በ EEPROM ለ 10 ዓመታት ወይም ከዚያ በላይ በክፍል ሙቀት የተጠበቀ ነው ይላሉ። እና ለፕሮጀክትዎ የ EEPROM መሣሪያ ሲመርጡ ማስታወስ ያለብዎት አንድ ተጨማሪ ነገር አለ። የ EEPROM አቅም የሚለካው ቢት ሳይሆን ባይት ነው። አንድ 512 ኪ.ኢ.ኢ.ፒ.ኦር 512 ኪ.ቢ. ውሂብን በሌላ አነጋገር 64 ኪባ ብቻ ይይዛል።

ደረጃ 3: አርዱዲኖ ሃርድዌር መንጠቆ

የአርዱዲኖ ሃርድዌር መንጠቆ
የአርዱዲኖ ሃርድዌር መንጠቆ
አርዱዲኖ ሃርድዌር መንጠቆ
አርዱዲኖ ሃርድዌር መንጠቆ

እሺ ፣ አሁን EEPROM ምን እንደ ሆነ እናውቃለን ፣ አንዱን አንጠልጥለን ምን ማድረግ እንደሚችል እንይ! መሣሪያችን እንዲናገር ፣ ኃይልን እንዲሁም የ I²C ተከታታይ መስመሮችን ማገናኘት አለብን። ይህ መሣሪያ በተለይ በ 5 ቪዲሲ ላይ ይሠራል ስለዚህ እኛ ከአርዱዲኖ UNO 5V ውፅዓት ጋር እናገናኘዋለን። እንዲሁም ፣ የ I²C መስመሮች ለግንኙነት በትክክል እንዲከሰት የሚጎትቱ ተከላካዮች ያስፈልጋቸዋል። የእነዚህ ተቃዋሚዎች ዋጋ እሱን ለማስተላለፍ በሚፈልጉት የመስመሮች እና ድግግሞሽ አቅም ላይ የተመሠረተ ነው ፣ ግን ወሳኝ ላልሆኑ ትግበራዎች ጥሩ የአሠራር ደንብ በ kΩ ክልል ውስጥ ብቻ እንዲቆይ ይደረጋል። በዚህ ምሳሌ ፣ 4.7 ኪΩ የሚጎትቱ ተከላካዮች እንጠቀማለን።

የ I²C አድራሻውን ለመምረጥ በዚህ መሣሪያ ላይ ሶስት ካስማዎች አሉ ፣ በዚህ መንገድ በአውቶቡሱ ላይ ከአንድ በላይ EEPROM ሊኖራቸው እና እያንዳንዳቸውን በተለየ መንገድ ሊያነጋግሯቸው ይችላሉ። ሁሉንም ልታስቀምጧቸው ትችላላችሁ ፣ ግን በትምህርቱ ውስጥ በኋላ ከፍተኛ አቅም ባለው መሣሪያ ውስጥ መጣል እንድንችል ሽቦ እናደርጋቸዋለን።

ሁሉንም ነገር አንድ ላይ ለማገናኘት የዳቦ ሰሌዳ እንጠቀማለን። ከዚህ በታች ያለው ሥዕላዊ መግለጫ እኛ የምንሸጠውን የማይክሮ ቺፕ 24 ተከታታይ EEPROM ን ጨምሮ ለአብዛኞቹ የ I²C EEPROM መሣሪያዎች ትክክለኛውን መንጠቆ ያሳያል።

ደረጃ 4 - ማንበብ እና መጻፍ

ብዙ ጊዜ ከማይክሮ መቆጣጠሪያ ጋር በመሆን EEPROM ን ሲጠቀሙ በእውነቱ ሁሉንም የማህደረ ትውስታ ይዘቶች በአንድ ጊዜ ማየት አያስፈልግዎትም። ልክ እንደአስፈላጊነቱ እዚህ እና እዚያ ባይት ያንብቡ እና ይጽፋሉ። በዚህ ምሳሌ ውስጥ ግን አንድ ሙሉ ፋይል ወደ EEPROM እንጽፋለን እና በኮምፒውተራችን ላይ ለማየት እንድንችል ሁሉንም ወደ ኋላ እናነባለን። ይህ EEPROM ን ከመጠቀም ሀሳብ ጋር ምቾት ሊሰጠን እና እንዲሁም በትንሽ መሣሪያ ላይ ምን ያህል ውሂብ በትክክል ሊገጥም እንደሚችል ስሜት ሊሰጠን ይገባል።

የሆነ ነገር ይፃፉ

የእኛ ምሳሌ ንድፍ በቀላሉ በተከታታይ ወደብ ላይ የሚመጣውን ማንኛውንም ባይት ይወስዳል እና እኛ ምን ያህል ባይት ወደ ማህደረ ትውስታ እንደጻፍን በመንገድ ላይ በመከታተል ወደ EEPROM ይጽፋል።

የማስታወሻ ባይት ለ EEPROM መፃፍ በአጠቃላይ በሦስት ደረጃዎች ይከናወናል-

  1. ሊጽፉለት የሚፈልጉትን የማስታወሻ አድራሻ በጣም ጉልህ የሆነውን ባይት ይላኩ።
  2. ሊጽፉለት የሚፈልጓቸውን የማስታወሻ አድራሻውን ቢያንስ ጉልህ የሆነ ባይት ይላኩ።
  3. በዚህ ቦታ ላይ ሊያከማቹት የሚፈልጉትን የውሂብ ባይት ይላኩ።

ምናልባት እዚያ የሚያብራሩ ጥቂት ቁልፍ ቃላት አሉ-

የማህደረ ትውስታ አድራሻዎች

በ 512 Kbit EEPROM ውስጥ ያሉ ሁሉም ባይት ከ 0 እስከ 64000 ባለው መስመር ላይ ቆመው የሚገምቱ ከሆነ - 8 ቢት ወደ ባይት ስለሚኖር እና ስለዚህ በ 512 ኪቢ EEPROM ላይ 64000 ባይት መግጠም ይችላሉ - ከዚያ የማስታወሻ አድራሻ ቦታው ነው አንድ የተወሰነ ባይት የሚያገኙበት መስመር። እኛ የላክነውን ባይት የት ማስቀመጥ እንዳለበት ያውቅ ዘንድ ያንን አድራሻ ለ EEPROM መላክ አለብን።

በጣም ጉልህ እና ትንሹ ጉልህ ባይቶች

በ 256 Kbit EEPROM ውስጥ 32000 ሊሆኑ የሚችሉ ቦታዎች ስላሉ - እና 255 በአንድ ባይት ውስጥ ሊይዙት የሚችሉት ትልቁ ቁጥር ስለሆነ - ይህንን አድራሻ በሁለት ባይት መላክ አለብን። በመጀመሪያ ፣ በጣም አስፈላጊ የሆነውን ባይት (ኤምቢኤስ) እንልካለን - በዚህ ሁኔታ የመጀመሪያዎቹ 8 ቢቶች። ከዚያ አነስተኛውን ጉልህ ባይት (ኤልኤስቢ) እንልካለን - ሁለተኛው 8 ቢት። እንዴት? ምክንያቱም መሣሪያው እነሱን ለመቀበል የሚጠብቀው በዚህ መንገድ ነው ፣ ያ ብቻ ነው።

ገጽ መጻፍ

በአንድ ባይት በአንድ ጊዜ መጻፍ ጥሩ ነው ፣ ግን አብዛኛዎቹ የ EEPROM መሣሪያዎች “ባይት ፃፍ ቋት” የሚባል ነገር አላቸው ፣ ይህም እርስዎ በአንድ ባይት በተመሳሳይ መንገድ ብዙ ባይት በአንድ ጊዜ እንዲጽፉ ያስችልዎታል። በእኛ ምሳሌ ንድፍ ውስጥ ይህንን እንጠቀማለን። EEPROM በሚቀበለው እያንዳንዱ የውሂብ ባይት የማህደረ ትውስታ ቦታን በራስ -ሰር የሚጨምር የውስጥ ቆጣሪ ይጠቀማል። የማስታወሻ አድራሻ አንዴ ከተላከ እስከ 64 ባይት ውሂብ ድረስ ልንከተለው እንችላለን። የ EEPROM (በትክክል) የ 312 አድራሻ 10 ባይት ተከትሎ በአድራሻ 312 ፣ ባይት 1 በአድራሻ 313 ፣ ባይት 2 በአድራሻ 314 እና የመሳሰሉትን ይመዘግባል ብሎ ያስባል (በትክክል)።

የሆነ ነገር ያንብቡ

ከ EEPROM ን ማንበብ በመሠረቱ ለ EEPROM እንደ መፃፍ ተመሳሳይ ሶስት-ደረጃ ሂደትን ይከተላል-

  1. ሊጽፉለት ከሚፈልጉት የማስታወሻ አድራሻ በጣም አስፈላጊ የሆነውን ባይት ይላኩ።
  2. ሊጽፉለት የሚፈልጓቸውን የማስታወሻ አድራሻን ትንሹ ጉልህ ባይት ይላኩ።
  3. በዚያ ቦታ ላይ የውሂብ ባይት ይጠይቁ።

ደረጃ 5: መርሃግብሮች እና ኮድ

መርሃግብሮች እና ኮድ
መርሃግብሮች እና ኮድ

ኮድ ፦

#ያካትቱ

#define eeprom 0x50 // የ EEPROM ን መሰረታዊ አድራሻ ይገልጻል

ባዶነት ማዋቀር () {

Wire.begin (); // የሽቦ ነገርን ይፈጥራል

Serial.begin (9600);

ያልተፈረመ int አድራሻ = 0; // የ EEPROM የመጀመሪያ አድራሻ

Serial.println ("እኛ ዚፕ ኮድ 22222 ፣ ዚፕ ኮድ እንጽፋለን"); ለ (አድራሻ = 0 ፤ አድራሻ <5 ፤ አድራሻ ++) writeEEPROM (eeprom ፣ address, '2'); // 22222 ን ወደ EEPROM ይጽፋል

ለ (አድራሻ = 0 ፤ አድራሻ <5 ፤ አድራሻ ++) {Serial.print (readEEPROM (eeprom ፣ address) ፣ HEX) ፤ }}

ባዶነት loop () {

/*በ loop () ተግባር ውስጥ ምንም ነገር የለም ምክንያቱም አርዱዲኖ ለ EEPROM ተመሳሳይ ነገር ደጋግሞ እንዲጽፍ አንፈልግም። እኛ አንድ ጊዜ ብቻ እንዲጽፍ እንፈልጋለን ፣ ስለዚህ የ loop () ተግባሩ በ EEPROMs ይርቃል።*/}

// የ WriteEEPROM ተግባርን ይገልጻል

ባዶ መጻፍ EEPROM (int deviceaddress ፣ ያልተፈረመ int eeaddress ፣ ባይት ውሂብ) {Wire.beginTransmission (deviceaddress); Wire.write ((int) (eeaddress >> 8)); // MSB Wire.write ((int) (eeaddress & 0xFF)) ይጽፋል ፤ // የ LSB Wire.write (ውሂብ) ይጽፋል ፤ Wire.endTransmission (); }

// የ readEEPROM ተግባርን ይገልጻል

ባይት readEEPROM (int deviceaddress ፣ ያልተፈረመ int eeaddress) {byte rdata = 0xFF; Wire.begin ማስተላለፍ (የመሣሪያ አድራሻ); Wire.write ((int) (eeaddress >> 8)); // MSB Wire.write ((int) (eeaddress & 0xFF)) ይጽፋል ፤ // LSB Wire.endTransmission () ይጽፋል ፤ Wire.requestFrom (የመሣሪያ አድራሻ ፣ 1); ከሆነ (Wire.available ()) rdata = Wire.read (); ተመለስ rdata; }

የሚመከር: