ඒ සියල්ල ආරම්භ වූයේ කතුවරයා ද්විතීයික වෙළඳපොලේ රසවත් උපාංගයක් මිලදී ගැනීමත් සමඟය - Smart Response XE (
මෙම උපාංග වසර කිහිපයකට පෙර නතර කරන ලද අතර, එක් එක් පාසල් $100-$200 සඳහා මිලදී ගත් දේ දැන් eBay හි $10 හෝ ඊට අඩු මුදලකට උත්පතන වේ. එහි ඇති දෘඩාංග ගීකි අත්හදා බැලීම් සඳහා ඉතා සුදුසු ය:
- 60 යතුරු පුවරුව
- 384×136 විභේදනයකින් සංදර්ශකය, පික්සලයකට බිටු 2 - BC, CGA වලට සමාන නමුත් 4 වර්ණ නොව, දීප්තියේ ශ්රේණිගත කිරීම්
- microcontroller ATmega128RFA1 (128 kB ෆ්ලෑෂ් මතකය, 4 kB ROM, 16 kB RAM, 802.15.4 සම්ප්රේෂකය)
- බාහිර (ක්ෂුද්ර පාලකයට අදාළව, සම්පූර්ණ උපාංගය නොවේ) SPI අතුරුමුහුණත සමඟ මෙගාබිට් 1 (කිලෝබයිට් 128) ෆ්ලෑෂ් මතකය
- AAA මූලද්රව්ය 4 සඳහා මැදිරිය.
ක්ෂුද්ර පාලකයේ නමෙන් එය AVR පවුලට අයත් බව පැහැදිලිය, එනම් උපාංගය Arduino-අනුකූල කිරීම සුළුපටු කාර්යයකට වඩා වැඩි දෙයක් ...
ප්රවෘත්ති වලින්
නමුත් කතුවරයා උපාංගයේ සෙල්ලම් කිරීමට නොව අධ්යයනය කිරීමට ඇති අවස්ථාව ගැන වැඩි උනන්දුවක් දක්වයි:
- අනුක්රමික SPI අතුරුමුහුණත සමඟ ෆ්ලෑෂ් මතකය
- AVR සඳහා bootloaders
- සම්මත 802.15.4
කතුවරයා ලිවීමෙන් පටන් ගත්තේය
Arduino ඇරඹුම් කාරකය උඩුගත කිරීමට මෙය ප්රමාණවත් වේ, නමුත් ස්කීච් එක නොවේ - අනුක්රමික වරාය එහි සම්බන්ධ වී නැත, එබැවින් ඔබට තවමත් නඩුව විවෘත නොකර කළ නොහැක. එසේම, පළමු අනුක්රමික වරායේ TX0 සහ RX0 රේඛා යතුරුපුවරු අනුකෘතියේ ඡන්ද රේඛා සමඟ සංයුක්ත වේ, එනම් සංදර්ශකයේ පැතිවල ඇති ක්රියාකාරී යතුරු මත විමසුම් කරන ඒවා. නමුත් ඔබට කුමක් කළ හැකිද - කතුවරයා මෙය ගොඩනඟා ඇත:
ඔහු එහි JTAG රේඛා ගෙනාවා, දැන් බැටරි මැදිරිය විවෘත කිරීමට අවශ්ය නැත. ස්කීච් උඩුගත කළ හැකි වන පරිදි, මම අනුක්රමික පෝට් දෙකම එකම සම්බන්ධකයට සම්බන්ධ කළෙමි, ස්විචයක් ද එක් කළෙමි, මන්ද බැටරි ස්ථාපනය කර ඇති බැවින්, වෙනත් ආකාරයකින් උපාංගය ක්රියා විරහිත කිරීම භෞතිකව කළ නොහැකි බැවිනි.
පෑස්සුම් යකඩ, උපයෝගිතා පිහියක් සහ මැලියම් තුවක්කුවක් සමඟ වැඩ කිරීමට සෑහෙන කාලයක් ගත විය. පොදුවේ ගත් කල, “ගුවන් හරහා” රූප සටහන් උඩුගත කිරීම වඩාත් පහසු ය; මේ සඳහා අපි හදිසියේ යමක් සොයා ගත යුතුය.
Arduino IDE ස්කීච් උඩුගත කිරීමට වැඩසටහන භාවිතා කරයි
මෙම ගැටළුව මඟහරවා ගැනීම සඳහා විවිධ ක්රම උත්සාහ කිරීමෙන් පසුව, කතුවරයා පහත සඳහන් කරුණු ඉදිරිපත් කළේය. උපාංගයට SPI අතුරුමුහුණතක් සහිත 128 KB ෆ්ලෑෂ් මතකයක් ඇත - අපට වයර් හරහා දත්ත ලැබේ (කතුවරයාට දැනටමත් පැත්තේ සම්බන්ධකයක් සහිත එක් උපාංගයක් ඇති බව මතක තබා ගන්න), මෙම මතකය බෆරයක් ලෙස භාවිතා කර රේඩියෝව හරහා දත්ත යවන්න වෙනත් උපාංගයකට නාලිකාව. Cybiko වෙතින් ආයුබෝවන්.
රේඩියෝ නාලිකාව සමඟ වැඩ කිරීමට කේතය ලිවීමෙන් පසුව, අකුරු මෙන්ම, පූරණය කිලෝබයිට් 4 කට වඩා දිගු විය. එබැවින්, HFUSE අගය 0xDA සිට 0xD8 දක්වා වෙනස් කිරීමට සිදු විය. දැන් ඇරඹුම් කාරකය කිලෝබයිට් 8ක් දක්වා දිග විය හැකි අතර ආරම්භක ලිපිනය දැන් 0x1E000 වේ. මෙය Makefile හි පිළිබිඹු වේ, නමුත් පිරවීමේදී ද සැලකිල්ලට ගත යුතුය
ATmega802.15.4RFA128 හි 1 සම්ප්රේෂකය මුලින් නිර්මාණය කර ඇත්තේ ප්රොටෝකෝලය භාවිතයෙන් ක්රියාත්මක වීමටය.
නාලිකා 15 සහ 26 WiFi වලට බාධා කිරීමට අවම වශයෙන් ගොදුරු වන බව පෙනී ගියේය. කතුවරයා ඒවායින් දෙවැන්න තෝරා ගත්තේය. වියාචනය: පරිවර්තකයා එය ZigBee මේ ආකාරයෙන් සරල කිරීමට ඉඩ දෙන්නේ දැයි නොදනී. සමහර විට අපි තව ටිකක් වැඩසටහන් කර එය සම්පූර්ණයෙන්ම ක්රියාත්මක කළ යුතුද?
පළමු උපාංගයේ, STK500 ප්රොටෝකෝලය හරහා දත්ත සම්ප්රේෂණය කරන පරිමිත රාජ්ය යන්ත්රයක් ක්රියාත්මක කිරීම අවශ්ය වේ. බොහෝ දුරට, සම්ප්රේෂණය කරන ලද සහ ලැබුණු පණිවිඩ ස්වයංපෝෂිත වේ, නමුත් සමහර ඒවා කලින් නාලිකාව හරහා ගිය ඒවාට සම්බන්ධ වේ. සංවාදයේ විස්තරය ලබා දී ඇත
මෙම සංවාදයේ වැදගත් අංගයක් වන්නේ ගමනාන්ත උපාංගයේ ෆ්ලෑෂ් මතකයට ලිවීමට අදහස් කරන පැකට් සම්ප්රේෂණය කිරීමයි. AVR පවුලේ සරල ක්ෂුද්ර පාලක සඳහා, පිටු ප්රමාණය බයිට් 128 ක් වන නමුත් ATmega128RFA1 සඳහා එය 256. සහ SPI ප්රොටෝකෝලය හරහා සම්බන්ධ කර ඇති ෆ්ලෑෂ් මතකය සඳහා එය සමාන වේ. පළමු උපාංගයේ ඇති වැඩසටහන, ස්කීච් එකක් උඩුගත කරන විට, එය වහාම දෙවන ස්ථානයට මාරු නොකරයි, නමුත් එය මෙම මතකයට ලියයි. Arduino IDE එක එන්ට්රි එකේ හරිද කියලා චෙක් කලාම එතන ලියාපු දේ එවනවා. දැන් අපි ලැබුණු දත්ත රේඩියෝ නාලිකාව හරහා දෙවන උපාංගයට සම්ප්රේෂණය කළ යුතුය. ඒ අතරම, ලැබීමේ සිට සම්ප්රේෂණයට සහ පසුපසට මාරු වීම බොහෝ විට සිදු වේ. STK500 ප්රොටෝකෝලය ප්රමාදයන් කෙරෙහි උදාසීන ය, නමුත් දත්ත නැතිවීම නොඉවසයි (අමුතුයි, නමුත් ප්රමාදයන් දත්ත හුවමාරුවට බලපාන බව ඉහත කීවේ). රැහැන් රහිත සම්ප්රේෂණයේදී සිදුවන පාඩු නොවැළැක්විය හැකිය. ATmega128RFA1 හි ඇති දෘඪාංග ක්රියාත්මක කිරීමේදී නැවත නැවත කරන ලද ඉල්ලීම් මාරු කිරීමේ නිවැරදිභාවය පිළිබඳව සැකයක් පවතින නමුත් කතුවරයා එයම මෘදුකාංගය තුළම ක්රියාත්මක කිරීමට තීරණය කළේය. ඔහු ප්රොටෝකෝලයක් ගොඩනඟා ගත් අතර එහි තවත් බොහෝ දත්ත එක් පැත්තකට වඩා ගලා යයි.
එය පරිපූර්ණ නොවේ, නමුත් එය ක්රියා කරයි. බයිට් 256 පිටුව කොටස් හතරකට බෙදා ඇති අතර, ඒ සෑම එකක්ම පැකට්ටුවක් ලෙස වාතය හරහා සම්ප්රේෂණය වේ. පැකට්ටුවක බයිට් 125ක් දක්වා දත්ත සහ දිග සඳහා එක් බයිටයක් සහ CRC සඳහා බයිට් දෙකක් අඩංගු විය හැක. එබැවින් පිටු සහ ඛණ්ඩ අංක (64 සිට 0 දක්වා) සමඟ බයිට් 3 ක් දිග කොටස් එහි තබා ඇත. ලැබෙන උපාංගයේ විචල්යයක් ඇති අතර එය කොපමණ කොටස් ලැබී ඇත්ද යන්න නිරීක්ෂණය කිරීමට ඉඩ සලසයි, සහ හතරම පැමිණි විට, යවන උපාංගයට සම්පූර්ණ පිටුවම ලැබී ඇති බවට තහවුරු කිරීමක් ලැබේ. තහවුරු කිරීමක් නැත (CRC නොගැලපේ) - සම්පූර්ණ පිටුව නැවත යවන්න. කේබල් හරහා සම්ප්රේෂණය කරන විට වඩා වේගය ඊටත් වඩා වැඩි ය. බලන්න:
නමුත් පොදුවේ ගත් කල, ස්කීච් උඩුගත කිරීම සඳහා සහ එය හරහා කේබලය උපාංග වෙත සම්බන්ධ කිරීම සඳහා පහසු ක්රමයක් සැපයීම අවශ්ය වනු ඇත. උදාහරණයක් ලෙස, ඡායාරූපයේ මෙන්, CP2102 හි එවැනි අතුරු මුහුණත් පරිවර්තකයක් තුළ තබා, මයික්රෝ USB කේබලය සම්බන්ධ කිරීම සහ විසන්ධි කිරීමේදී බලයට ඔරොත්තු දෙන පරිදි පුවරුවට එය ඇලවීම.
එහි වෝල්ට් 3,3 ස්ථායීකාරකයක් ද ඇත (සහ වෝල්ට් 6 ක බල සැපයුමක් සහිත උපාංගයක එය භාවිතා කරන්නේ කෙසේද - එකම ස්ථායීකාරකයක් තිබේ නම්, සහ ඔබට ඩයෝඩ දෙකක් එකතු කර ඒවායින් කුමන උපාංගය බල ගැන්විය යුතුද යන්න ස්වයංක්රීයව තෝරා ගත හැකිය) . LED තුනම අතුරුමුහුණත් පරිවර්තක පුවරුවෙන් අලෙවි නොකළ යුතුය, එසේ නොමැතිනම් ඒවා ක්රියාත්මක වන විට ඒවා අතිරේකව බැටරි පටවනු ඇති අතර යතුරුපුවරු ඡන්ද විමසීමට බාධා කරන අතර SPI අතුරුමුහුණතක් සමඟ ෆ්ලෑෂ් මතකය සමඟ ක්රියා කරයි.
ඉලක්කයක් ලුහුබැඳීම එය සාක්ෂාත් කර ගැනීමට වඩා සිත්ගන්නා සුළු විය (සහ බස් රථය ගැන විහිළුවක් අවශ්ය නොවේ). කතුවරයා AVR bootloaders, SPI ෆ්ලෑෂ් මතකය, STK500 ප්රොටෝකෝලය සහ 802.15.4 ප්රමිතිය ගැන බොහෝ දේ ඉගෙන ගත්තේය.
ඉහත විස්තර කර ඇති පුස්තකාලයට අමතරව අනෙකුත් සියලුම කේතයන් - -
මූලාශ්රය: www.habr.com