ለ ATmega128RFA1 (እንደ ስማርት ምላሽ XE መሣሪያ አካል) የኦቲኤ ቡት ጫኚን በመጻፍ ላይ።

ለ ATmega128RFA1 (እንደ ስማርት ምላሽ XE መሣሪያ አካል) የኦቲኤ ቡት ጫኚን በመጻፍ ላይ።

ይህ ሁሉ የተጀመረው ደራሲው በሁለተኛ ገበያ ላይ አንድ አስደሳች መሣሪያ በመግዛት ነው - ስማርት ምላሽ XE (አጭር መግለጫ). ለትምህርት ቤቶች የታሰበ ነው፡ በክፍል ውስጥ ያለ እያንዳንዱ ተማሪ ከዘጠናዎቹ ዓመታት ጀምሮ እንደ ኤሌክትሮኒክ ማስታወሻ ደብተር ወይም ተርጓሚ አይነት መሳሪያ ይቀበላል፣ መምህሩ አንድ ጥያቄ ይጠይቃል እና ተማሪዎቹ መልሱን በመሳሪያዎቹ የቁልፍ ሰሌዳዎች ላይ ይተይቡ፣ ይህም በ የሬዲዮ ጣቢያ (802.15.4) ከመምህሩ ፒሲ ጋር የተገናኘ መቀበያ።

እነዚህ መሳሪያዎች ከበርካታ አመታት በፊት የተቋረጡ ሲሆን እያንዳንዳቸው ከ100-200 ዶላር የተገዙት ትምህርት ቤቶች አሁን በ10 ዶላር ወይም ከዚያ ባነሰ ዋጋ በ eBay ብቅ አሉ። እዚያ ያለው ሃርድዌር ለጂኪ ሙከራዎች በጣም ተስማሚ ነው-

  • 60 ቁልፍ ሰሌዳ
  • ማሳያ በ 384 × 136 ጥራት ፣ 2 ቢት በፒክሰል - ከBC ፣ CGA ጋር ተመሳሳይ ፣ ግን 4 ቀለሞች አይደሉም ፣ ግን የብሩህነት ደረጃዎች
  • ማይክሮ መቆጣጠሪያ ATmega128RFA1 (128 ኪባ ፍላሽ ማህደረ ትውስታ፣ 4 ኪባ ROM፣ 16 ኪባ ራም፣ 802.15.4 ትራንስሴቨር)
  • ውጫዊ (ከማይክሮ መቆጣጠሪያ ጋር በተዛመደ ፣ መላው መሣሪያ አይደለም) 1 ሜጋ ቢት (128 ኪሎባይት) ፍላሽ ማህደረ ትውስታ ከ SPI በይነገጽ ጋር።
  • ክፍል ለ 4 AAA አካላት.

ከማይክሮ መቆጣጠሪያው ስም የ AVR ቤተሰብ እንደሆነ ግልጽ ነው፣ ይህ ማለት መሣሪያውን አርዱኢኖ-ተኳሃኝ ማድረግ ከቀላል በላይ ስራ ነው…

ከዜና Hackaday ደራሲው ምን እንደሆነ አወቀ አስቀድመው አድርገዋል (ተመሳሳይ አገናኝ ከየት እንደሚገናኙ ይነግርዎታል) ፣ ጨዋታዎችን ለአርዱቦይ ለማሄድ እድሉን ማግኘት:


ግን ደራሲው በመሳሪያው ላይ ላለመጫወት እድሉን የበለጠ ፍላጎት አለው ፣ ግን ለማጥናት-

  • ፍላሽ ማህደረ ትውስታ ከተከታታይ SPI በይነገጽ ጋር
  • ቡት ጫኚዎች ለ AVR
  • መደበኛ 802.15.4

ደራሲው በመጻፍ ጀመረ ቤተመፃህፍት (GPL v3)፣ ይህም ማሳያውን ለማስጀመር፣ ጽሑፍን እና አራት ማዕዘኖችን ለማውጣት እና የ SPI ፍላሽ ማህደረ ትውስታን ለመድረስ የሚያስችል ነው። ከዚያም መሣሪያውን ተግባራዊ ለማድረግ ሀሳቦችን ማፍለቅ ጀመረ-ከ VT-100 ጋር ተኳሃኝ የሆነ የኪስ ተርሚናል ፣ ባለብዙ ተጫዋች ጨዋታዎች። ሦስት መሣሪያዎችን እንደገና ከገነባ በኋላ “በአየር ላይ” ንድፎችን እንዲቀበሉ “ለማስተማር” ወሰነ። ምን አስደሳች ብቻ ሳይሆን በጣም ምቹም ይሆናል-የመሳሪያው መያዣ ሁል ጊዜ ለመክፈት አስቸጋሪ ነው, እና በባትሪው ክፍል ሽፋን ስር የ JTAG ፕሮግራመርን ከቦርዱ ጋር ለማገናኘት የሚያስችሉት ቀዳዳዎች ብቻ ናቸው.

ለ ATmega128RFA1 (እንደ ስማርት ምላሽ XE መሣሪያ አካል) የኦቲኤ ቡት ጫኚን በመጻፍ ላይ።

ይህ የ Arduino ቡት ጫኚውን ለመጫን በቂ ነው, ግን ንድፍ አይደለም - ተከታታይ ወደብ እዚያ አልተገናኘም, ስለዚህ አሁንም ጉዳዩን ሳይከፍቱ ማድረግ አይችሉም. እንዲሁም የመጀመሪያው ተከታታይ ወደብ TX0 እና RX0 መስመሮች ከኪቦርዱ ማትሪክስ የድምጽ መስጫ መስመሮች ጋር ይጣመራሉ, ማለትም በማሳያው ጎኖች ላይ ያሉትን የተግባር ቁልፎችን የሚመረምሩ. ግን ምን ማድረግ ይችላሉ - ደራሲው ይህንን ገንብቷል-

ለ ATmega128RFA1 (እንደ ስማርት ምላሽ XE መሣሪያ አካል) የኦቲኤ ቡት ጫኚን በመጻፍ ላይ።

የ JTAG መስመሮችን እዚያ አመጣ, እና አሁን የባትሪውን ክፍል መክፈት አያስፈልግም. እና ንድፎች እንዲሰቀሉ፣ ሁለቱንም ተከታታይ ወደቦች ከአንድ ማገናኛ ጋር አገናኘኋቸው፣ እንዲሁም መቀየሪያን ጨምሬያለሁ፣ ምክንያቱም ባትሪዎቹ ሲጫኑ መሣሪያውን በሌላ መንገድ ለማጥፋት በአካል የማይቻል ነው።

ከተሸጠው ብረት፣ የመገልገያ ቢላዋ እና ሙጫ ጠመንጃ ጋር ለመስራት ብዙ ጊዜ ወስዷል። በአጠቃላይ ፣ ንድፎችን “በአየር ላይ” መስቀል የበለጠ ምቹ ነው ፣ ለዚህ ​​የሚሆን ነገር በአስቸኳይ መፍጠር አለብን።

Arduino IDE ንድፎችን ለመስቀል ፕሮግራሙን ይጠቀማል አዋርደ. ፕሮቶኮሉን በመጠቀም ከማይክሮ መቆጣጠሪያ ጋር ይገናኛል። STK500, ይህም በሁለቱም አቅጣጫዎች ፋይሎችን ለማስተላለፍ ያስችልዎታል. ተለዋዋጭ መዘግየቶች፣ ማዛባት እና የውሂብ መጥፋት ከሚቻሉባቸው ቻናሎች ጋር በደንብ ተኳሃኝ አይደለም። በተከታታይ ቻናሉ ላይ የሆነ ነገር ከፈታ ወይም ከተዘበራረቀ ምክንያቱን በመፈለግ ማበድ ይችላሉ። አንድ ጊዜ ደራሲው ችግሩ መጥፎ ገመድ እና እንዲሁም ከፍተኛ የ CP2102 በይነገጽ መቀየሪያ መሆኑን እስኪያውቅ ድረስ ለግማሽ ቀን ተሠቃይቷል. አብሮገነብ የበይነገጽ መቀየሪያ ያለው ማይክሮ መቆጣጠሪያ እንኳን፣ ለምሳሌ ATmega32u4 አንዳንድ ጊዜ እንደዚህ ሊሰራ ይችላል። ንድፎችን ሲሰቅሉ ስህተቶች እምብዛም እንዳልሆኑ እያንዳንዱ የአርዱዪኖ ተጠቃሚ አስተውሏል። አንዳንድ ጊዜ ቀረጻው በጥሩ ሁኔታ ይሄዳል, ነገር ግን በሙከራ ጊዜ አንብብ ስህተት ተገኝቷል. ይህ ማለት ግን በሚጽፉበት ጊዜ ስህተት ነበር ማለት አይደለም - በማንበብ ጊዜ ውድቀት ነበር. አሁን "በአየር ላይ" ሲሰሩ ተመሳሳይ ነገር እንደሚከሰት አስቡ, ግን ብዙ ጊዜ.

ይህንን ችግር ለመፍታት የተለያዩ መንገዶችን ከሞከሩ በኋላ, ደራሲው የሚከተለውን አቅርቧል. መሣሪያው 128 ኪባ ፍላሽ ማህደረ ትውስታ ከ SPI በይነገጽ ጋር አለው - በሽቦዎቹ ላይ መረጃን እንቀበላለን (ጸሐፊው ቀድሞውኑ አንድ ማገናኛ ያለው በጎን በኩል እንዳለው አስታውስ) ፣ ይህንን ማህደረ ትውስታ እንደ ቋት ይጠቀሙ እና መረጃውን በሬዲዮ ይላኩ ሰርጥ ወደ ሌላ መሳሪያ. ሰላም ከሳይቢኮ።

ከሬዲዮ ቻናሉ ጋር አብሮ ለመስራት ኮዱን ከፃፈ በኋላ እንዲሁም ቅርጸ-ቁምፊው ጫኚው ከ 4 ኪሎባይት በላይ ሆነ። ስለዚህ የHFUSE እሴት ከ0xDA ወደ 0xD8 መቀየር ነበረበት። አሁን የማስነሻ ጫኚው እስከ 8 ኪሎባይት ሊረዝም ይችላል፣ እና የመነሻ አድራሻው አሁን 0x1E000 ነው። ይህ በ Makefile ውስጥ ይንጸባረቃል, ነገር ግን በሚሞሉበት ጊዜ ግምት ውስጥ መግባት አለበት ቡት ጫኝ avrdude በኩል.

በ ATmega802.15.4RFA128 ውስጥ ያለው 1 አስተላላፊ በመጀመሪያ ፕሮቶኮሉን ተጠቅሞ እንዲሰራ ታስቦ የተሰራ ነው። ዚግቢ, ይህም በጣም የተወሳሰበ ነው, ስለዚህ ደራሲው በምትኩ ፓኬቶችን ብቻ ለማስተላለፍ ወሰነ. ይህ በ ATmega128RFA1 ውስጥ በሃርድዌር ውስጥ ተተግብሯል, ስለዚህ ትንሽ ኮድ ያስፈልጋል. እንዲሁም, ለቀላልነት, ደራሲው ቋሚ ቻናል ለመጠቀም ወሰነ, በእጅ እንኳን እንዲመርጡ አይፈቅድልዎትም. 802.15.4 ስታንዳርድ 16 ቻናሎችን ከ11 እስከ 26 ቁጥሮችን ይደግፋል። በጣም የተጨናነቁ ናቸው፣ አንዳንዶቹ ደግሞ የዋይፋይ ቻናሎች ይደራረባሉ (ቀይ ዚግቢ ቻናሎች፣ ሰማያዊ፣ አረንጓዴ እና ቢጫ ዋይፋይ ናቸው።

ለ ATmega128RFA1 (እንደ ስማርት ምላሽ XE መሣሪያ አካል) የኦቲኤ ቡት ጫኚን በመጻፍ ላይ።

15 እና 26 ቻናሎች ለዋይፋይ ጣልቃገብነት በጣም የተጋለጡ መሆናቸውን ታወቀ።ጸሃፊው ሁለተኛውን መርጧል። የክህደት ቃል፡ ተርጓሚው ዚግቢን በዚህ መንገድ ለማቃለል ይፈቀድለት እንደሆነ አያውቅም። ምናልባት ትንሽ ተጨማሪ ፕሮግራሚንግ አድርገን ሙሉ በሙሉ ተግባራዊ ማድረግ አለብን?

በመጀመሪያው መሣሪያ ላይ በ STK500 ፕሮቶኮል በኩል መረጃን የሚያስተላልፍ ውሱን ግዛት ማሽንን መተግበር አስፈላጊ ነው. በአብዛኛው, የሚተላለፉ እና የተቀበሉት መልእክቶች እራሳቸውን የቻሉ ናቸው, ነገር ግን አንዳንዶቹ ቀደም ብለው በሰርጡ ውስጥ ካለፉት ጋር የተሳሰሩ ናቸው. የንግግሩ መግለጫ ተሰጥቷል። እዚህ.

የዚህ ምልልስ አስፈላጊ አካል ወደ መድረሻ መሳሪያው ፍላሽ ማህደረ ትውስታ ለመፃፍ የታቀዱ ፓኬቶችን ማስተላለፍ ነው. ለአቪአር ቤተሰብ ቀላል ማይክሮ ተቆጣጣሪዎች የገጹ መጠን 128 ባይት ነው ፣ ለ ATmega128RFA1 ግን 256 ነው ። እና በ SPI ፕሮቶኮል በኩል ለተገናኘው ፍላሽ ማህደረ ትውስታ ተመሳሳይ ነው። በመጀመሪያው መሣሪያ ውስጥ ያለው ፕሮግራም ንድፍ ሲሰቅል ወዲያውኑ ወደ ሁለተኛው አያስተላልፍም, ነገር ግን ወደዚህ ማህደረ ትውስታ ይጽፋል. Arduino IDE የመግቢያውን ትክክለኛነት ሲፈትሽ እዚያ የተጻፈውን ይላካል። አሁን የተቀበለውን መረጃ በሬዲዮ ቻናል ወደ ሁለተኛው መሳሪያ ማስተላለፍ አለብን. በተመሳሳይ ጊዜ ከመቀበል ወደ ማስተላለፍ እና ወደ ኋላ መቀየር ብዙ ጊዜ ይከሰታል. የSTK500 ፕሮቶኮል ለመዘግየቶች ደንታ ቢስ ነው፣ ነገር ግን የውሂብ መጥፋትን አይታገስም (የሚገርም ነገር ግን መዘግየቶች የውሂብ ማስተላለፍ ላይም ተጽዕኖ እንደሚያሳድሩ ከላይ ተነግሯል)። እና በገመድ አልባ ስርጭት ጊዜ ኪሳራዎች የማይቀሩ ናቸው. ATmega128RFA1 ስለ ዝውውሩ ትክክለኛነት ጥርጣሬዎች በሚፈጠሩበት ጊዜ ተደጋጋሚ ጥያቄዎችን የሚያካትት የሃርድዌር አተገባበር አለው ፣ ግን ደራሲው በራሱ በሶፍትዌር ውስጥ ተግባራዊ ለማድረግ ወስኗል። ከሌላኛው መንገድ ብዙ መረጃ የሚፈስበት ፕሮቶኮል አዘጋጅቷል።

ፍፁም አይደለም፣ ግን ይሰራል። ባለ 256 ባይት ገጽ በአራት ክፍሎች የተከፈለ ሲሆን እያንዳንዳቸው በአየር ላይ እንደ ፓኬት ይተላለፋሉ። አንድ ፓኬት እስከ 125 ባይት ዳታ እና አንድ ባይት ርዝመት እና ሁለት ባይት ለ CRC መያዝ ይችላል። ስለዚህ 64 ባይት ረዣዥም ቁርጥራጮች ከገጽ እና ክፍል ቁጥሮች (ከ 0 እስከ 3) እዚያ ተቀምጠዋል። መቀበያ መሳሪያው ምን ያህል ክፍሎች እንደተቀበሉ ለመከታተል የሚያስችል ተለዋዋጭ አለው, እና አራቱም ሲደርሱ, መላኪያ መሳሪያው ሙሉውን ገጽ እንደተቀበለ ማረጋገጫ ይቀበላል. ምንም ማረጋገጫ የለም (CRC አልተዛመደም) - ሙሉውን ገጽ እንደገና ይላኩ። ፍጥነቱ በኬብል ከሚተላለፉበት ጊዜ የበለጠ ነው። ተመልከት፡


ነገር ግን በአጠቃላይ ንድፎችን ለመስቀል እና በእሱ በኩል ገመዱን ከመሳሪያዎቹ ጋር ለማገናኘት ምቹ መንገድ ማቅረብ አስፈላጊ ይሆናል. ለምሳሌ በፎቶው ላይ እንደሚታየው በሲፒ2102 ውስጥ እንደዚህ ያለ በይነገጽ መቀየሪያ ውስጥ ያስቀምጡ እና የማይክሮ ዩኤስቢ ገመድ ሲገናኙ እና ሲያላቅቁ ኃይሉን እንዲቋቋም ከቦርዱ ጋር ይለጥፉ።

ለ ATmega128RFA1 (እንደ ስማርት ምላሽ XE መሣሪያ አካል) የኦቲኤ ቡት ጫኚን በመጻፍ ላይ።

እንዲሁም ባለ 3,3 ቮልት ማረጋጊያ አለው (እና ባለ 6 ቮልት ሃይል ባለው መሳሪያ ውስጥ እንዴት እንደሚጠቀሙበት - ተመሳሳይ ማረጋጊያ ካለው ብቻ እና ከመካከላቸው የትኛውን መሳሪያውን እንደሚያንቀሳቅስ በራስ-ሰር ለመምረጥ ሁለት ዳዮዶችን ማከል ይችላሉ) . ሶስቱም ኤልኢዲዎች ከኢንተርኔት መቀየሪያ ሰሌዳ ያልተሸጡ መሆን አለባቸው፣ አለበለዚያ ባትሪዎቹን በላያቸው ላይ ሲሰሩ በተጨማሪ ይጭናሉ፣ እና በቁልፍ ሰሌዳ ምርጫ ላይ ጣልቃ ይገባሉ እና በፍላሽ ማህደረ ትውስታ በ SPI በይነገጽ ይሰራሉ።

ግብን ማሳደድ እሱን ከማሳካት የበለጠ አስደሳች ሆኖ ተገኝቷል (እና ስለ አውቶቡሱ ቀልድ አያስፈልግም)። ደራሲው ስለ AVR ቡት ጫኚዎች፣ ስለ SPI ፍላሽ ማህደረ ትውስታ፣ ስለ STK500 ፕሮቶኮል እና ስለ 802.15.4 መስፈርት ብዙ ተምሯል።

ከላይ ከተገለጸው ቤተ-መጽሐፍት በተጨማሪ ሁሉም ሌሎች ኮድ - እዚህ፣ እና እንዲሁም በGPL v3 ስር ነው። የጸሐፊው ትዊተር - እዚህ.

ምንጭ: hab.com

አስተያየት ያክሉ