සම්බන්ධතා

ආරම්භකයින් සඳහා attiny13 වැඩසටහන්කරණය. අපි AVR අතින් ෆ්ලෑෂ් කරන්නෙමු. වැඩසටහන් මාදිලියේ MK අතුරුමුහුණත

එබැවින් පළමු ස්ථිරාංග සඳහා කාලයයි. මෙම ස්ථිරාංග පරීක්ෂණයකි. නිශ්චිත ඇල්ගොරිතමයකට අනුව එහි කකුල් ඇඹරීම හැර එය කිසිදු ප්‍රයෝජනවත් ක්‍රියාවක් නිපදවන්නේ නැත. මෙම ස්ථිරාංග සමඟ, ඔබට සම්පූර්ණ ක්ෂුද්‍ර පාලකයේ ක්‍රියාකාරිත්වය සහ විශේෂයෙන් I / O වරායන් පරීක්ෂා කළ හැකිය.
ක්ෂුද්ර පාලකය පරීක්ෂා කිරීම සඳහා, ඔබ ස්ථිරාංග බාගත කර කකුල් මත සිදුවන දේ බලන්න. ඔබට බහුමාපකයකින් හෝ සරල පරීක්ෂණයකින් "නැරඹිය හැකිය" - 300 Ohm ප්‍රතිරෝධකයක් සහිත LED මාලාවක් - 1 kOhm. ප්‍රතිරෝධයක් නොමැතිව පරීක්ෂා කිරීම වටී නැත - ඔබට I / O වරාය පුළුස්සා දැමිය හැකිය. කකුල් වල සංඥා මට්ටම් "1" සිට "Z"-state හරහා "0" දක්වා සහ පසුපසට වෙනස් වේ. ආදාන මාදිලියේ වරායේ සෞඛ්‍යය නිරීක්ෂණය කිරීම සඳහා "Z" තත්වය අනුපිළිවෙලට ඇතුළත් කර ඇත.

ATMega48/88/168 ක්ෂුද්‍ර පාලකය සඳහා ස්ථිරාංග පරීක්ෂා කරන්න.
ATMega48/88/168 ස්ථිරාංග මෙහෙයුම් ඇල්ගොරිතම පින්තූරයේ පෙන්වා ඇත (ක්ෂුද්‍ර පාලකය කලින් විස්තර කර ඇති එකක් මත ස්ථාපනය කර ඇත).

ක්ෂුද්‍ර පාලකය බලගන්වන්නේ අභ්‍යන්තර ඔස්කිලේටරයෙනි, එබැවින් බාහිර ස්ඵටිකයක් අවශ්‍ය නොවේ. බාහිර ක්වාර්ට්ස් තිබේ නම්, කකුල් 9 සහ 10 (බාහිර ක්වාර්ට්ස් සම්බන්ධ කිරීම) භාවිතා නොකෙරේ. තවද, pins 1 (නැවත පිහිටුවීම) සහ 21 (ADC සඳහා යොමු වෝල්ටීයතාව) භාවිතා නොකෙරේ. ඔබට කාර්ය සාධනය ක්‍රම දෙකකින් පරීක්ෂා කළ හැකිය (රූපය බලන්න) - බිමට සාපේක්ෂව (GND) හෝ බල පින්ට (VCC) සාපේක්ෂව සංඥා මට්ටමේ වෙනස නරඹන්න.
- ATMega48/88/168 සඳහා ස්ථිරාංග පරීක්ෂා කරන්න

ක්ෂුද්‍ර පාලකයක් ෆ්ලෑෂ් කරන්නේ කෙසේද >


ATTiny2313 microcontroller සඳහා ස්ථිරාංග පරීක්ෂා කරන්න.
ATTiny2313 ස්ථිරාංගයේ ඇල්ගොරිතම පින්තූරයේ පෙන්වා ඇත (ක්ෂුද්‍ර පාලකය කලින් විස්තර කර ඇති එකක් මත ස්ථාපනය කර ඇත).

ක්ෂුද්‍ර පාලකය බලගන්වන්නේ අභ්‍යන්තර ඔස්කිලේටරයකින්, එබැවින් බාහිර එකක් අවශ්‍ය නොවේ. බාහිර ක්වාර්ට්ස් තිබේ නම් කකුල් 4 සහ 5 (බාහිර ක්වාර්ට්ස් සම්බන්ධ කිරීම) භාවිතා නොකෙරේ. එසේම, පින් 1 (නැවත පිහිටුවීම) භාවිතා නොකෙරේ. ඔබට ක්‍රියාකාරීත්වය ක්‍රම දෙකකින් පරීක්ෂා කළ හැකිය - බිමට සාපේක්ෂව (GND) සහ බල පින්ට (VCC) සාපේක්ෂව සංඥා මට්ටමේ වෙනස නරඹන්න.
- ATTiny2313 සඳහා ස්ථිරාංග පරීක්ෂා කරන්න

ක්ෂුද්‍ර පාලකයක් ෆ්ලෑෂ් කරන්නේ කෙසේද >


ATTiny13 microcontroller සඳහා ස්ථිරාංග පරීක්ෂා කරන්න.
ATTiny13 ස්ථිරාංගයේ ඇල්ගොරිතම පින්තූරයේ පෙන්වා ඇත (ක්ෂුද්‍ර පාලකය කලින් විස්තර කර ඇති එකක් මත ස්ථාපනය කර ඇත).

ක්ෂුද්‍ර පාලකය බලගන්වන්නේ අභ්‍යන්තර උත්පාදක යන්ත්‍රයකින් (බාහිර එකක් මෙම ක්ෂුද්‍ර පාලකය සඳහා විශාල සුඛෝපභෝගී වේ, එබැවින් අපි එය සලකන්නේවත් නැත). ස්වාභාවිකවම, කකුල 1 (නැවත පිහිටුවීම) සම්බන්ධ නොවේ. අපි පෙර ක්ෂුද්‍ර පාලක සමඟ මෙන් ක්‍රියාකාරීත්වය පරීක්ෂා කරමු.
- ATTiny13 සඳහා EUST ස්ථිරාංග

ක්ෂුද්‍ර පාලකයක් ෆ්ලෑෂ් කරන්නේ කෙසේද >


ආදාන-ප්‍රතිදාන වරායන්හි "Z"-තත්ත්වයේ සෞඛ්‍යය පරීක්ෂා කිරීම.


"Z" - රාජ්‍යය යනු ආදානය සඳහා කකුල වින්‍යාස කර ඇති අතර එහි මට්ටමක් නොමැති විට (එය වාතයේ එල්ලෙන බව පෙනෙන අතර කිසිම දෙයකට සම්බන්ධ නොවේ). එවැනි තත්වයක් ඇතිවීම පාලනය කිරීම සඳහා, ඔබට ප්රතිරෝධක බෙදුම්කරු භාවිතා කළ හැකිය. “1” මට්ටමේ දී, බෙදුම්කරුට සැපයුම් වෝල්ටීයතාව + 5v, “0” මට්ටමේ - බිම් 0v, සහ “Z” - රාජ්‍යයේදී, I / O වරාය බෙදුම්කරුට බාධා කිරීම නවත්වන අතර එය බෙදනු ඇත. සැපයුම් වෝල්ටීයතාවය සහ අපට + 2.5v ලැබෙනු ඇත.

ගොනු:
- ස්ථිරාංග මූලාශ්‍ර පරීක්ෂා කරන්න

(18 359 වරක් පැමිණ ඇත, අද පැමිණීම් 4)

  • ක්ෂුද්‍ර පාලක වැඩසටහන්කරණය
    • නිබන්ධනය

    අවධානය පින්තූරය - xkcd

    ඔබ සිටින්නේ පාළු දූපතක යැයි සිතන්න. තවද ඔබට ක්ෂුද්‍ර පාලකය ක්‍රමලේඛනය කිරීම ඉතා වැදගත් වේ. ඇයි, ඔබ අහන්නේ? හොඳයි, අපි කියමු, හදිසි රේඩියෝ බීකන් එකක් සවි කිරීමට, එය නොමැතිව ගැලවීමේ අවස්ථා පහත වැටේ.

    එකලස් භාශා පාඨමාලාව අමතක නොවීම ගැන සතුටු වෙමින් ඔබ කෙසේ හෝ වැල්ලේ පොල්ලකින් වැඩසටහන ලිව්වා. ඉතිරිව ඇති දේවල් අතර, යම් ආශ්චර්යයකින්, පාලකය සඳහා ලියකියවිලි මුද්‍රණයක් තිබුණි (ඔබට එය දැල්වීම සඳහා තවමත් ආරම්භ කිරීමට කාලය නොමැති වීම හොඳය!), සහ වැඩසටහන යන්ත්‍ර කේත බවට පරිවර්තනය විය. වඩාත්ම විකාරය ඉතිරිව ඇත - එය පාලකයට දැල්වීම. නමුත් කිලෝමීටර් 500 ක අරයක් තුළ පරිගණක ගැන සඳහන් නොකර එක ක්‍රමලේඛකයෙක් නොමැත. ඔබට ඇත්තේ බලශක්ති ප්‍රභවයක් (පොල් අල වලින් සාදන ලද බැටරියක්) සහ වයර් කැබලි කිහිපයක් පමණි.

    ඇත්ත වශයෙන්ම හිස් අතින් MK ෆ්ලෑෂ් කරන්නේ කෙසේද?

    Atmel වෙතින් ATtiny13 MK පරීක්ෂණ විෂයක් ලෙස ක්‍රියා කරයි. විස්තර කරන ලද තාක්ෂණය AVR පවුලේ ඕනෑම පාලකයක් සමඟ ක්‍රියා කරයි, විධාන කේත තරමක් වෙනස් විය හැකිය.

    අතුරුමුහුණත

    AVR ස්ථිරාංග සඳහා වඩාත් පොදු සහ පහසු අතුරු මුහුණත වේ SPI(Serial Peripheral Interface). SPI හරහා සම්බන්ධ වීමට ඔබට අවශ්‍ය වන්නේ බිම ගණන් නොගෙන වයර් හතරක් පමණි:
    • SCK- ඔරලෝසු සංඥා, සියලු දත්ත හුවමාරු මෙහෙයුම් සමමුහුර්ත කරයි;
    • MOSI(Master Out Slave In) - ස්වාමියාගේ සිට වහල් දක්වා දත්ත රේඛාව;
    • MISO(මාස්ටර් ඉන් ස්ලේව් අවුට්) - දත්ත රේඛාව, ඊට ප්‍රතිවිරුද්ධව, වහලාගේ සිට ස්වාමියා දක්වා;
    • යළි පිහිටුවන්න- SPI හරහා ස්ථිරාංග සක්‍රීය කිරීමට, ඔබ මෙම පින් එකට තාර්කික "0" යෙදිය යුතුය.
    මේ අනුව, අපි සංඥා තුනක් ජනනය කළ යුතු අතර (විකල්ප ලෙස) එකක් කියවිය යුතුය. මේ සඳහා සරලම යෝජනා ක්රමය පෙනෙන්නේ මෙයයි:


    සහල්. 1. සරලම SPI සම්බන්ධතා යෝජනා ක්රමය.

    ඔබේ පහසුව සඳහා, ඔබට ආදාන සංඥා පිළිබඳ ඇඟවීමක් එක් කළ හැකිය. යෝජනා ක්රමය වඩාත් සංකීර්ණ වේ, නමුත් අධික නොවේ:


    සහල්. 2. සංඥා සංඥා සහිත යෝජනා ක්රමය.

    කතාබස් ආරක්ෂාව

    අවාසනාවන්ත ලෙස, SPI සංඥා උත්පාදනය කිරීම සඳහා බොත්තම් භාවිතා කිරීම පමණක්, අපි හොඳ ප්රතිඵලය ලබා නොගනු ඇත. මෙයට හේතුව ලෙස හැඳින්වෙන අප්රසන්න ප්රපංචයකි සම්බන්ධතා bounce. වසා දැමීමේදී, යාන්ත්රික සම්බන්ධතා එකිනෙක ගැටෙන අතර, එකිනෙකින් ඉවතට පැනීම සහ එක් ආවේගයක් වෙනුවට කිහිපයක් ලබා ගනී. කතාබස් යටපත් කිරීමට, ඔබට තාර්කික මූලද්‍රව්‍ය යුගලයකින් සරල පරිපථයක් එකලස් කිරීමට සිදුවේ.


    සහල්. 3. කතාබස් මර්දනය සඳහා RS-ප්රේරකය.

    මෙය RS flip-flop එකක් වන අතර එය ස්විචයේ පහළ ස්පර්ශය වැසෙන මොහොතේ "1" තත්ත්වයට මාරු වන අතර ඉතිරි වන ස්පන්දන නොසලකා හරියි. ප්‍රේරකය නැවත "0" වෙත යළි පිහිටුවීම සිදුවන්නේ ඉහළ සම්බන්ධතාවය වසා ඇති විට, එනම් බොත්තම මුදා හරින විටය.

    "බලන්න, පලා යන්න!" - පාඨකයා පවසනු ඇත, - "මම කාන්තාර දූපතක වාඩි වී සිටිමි. මට මෙහි ප්‍රේරක ලබා ගත හැක්කේ කොතැනින්ද? හොඳයි, ඔබට ඉලෙක්ට්රොනික පරිපථ නොමැතිව bounce ඉවත් කළ හැකිය. එය අවශ්ය වන්නේ තෙත් දියරයක් සමඟ "වියළි" ස්පර්ශය ප්රතිස්ථාපනය කිරීම පමණි. ස්විචය සන්නායක ද්රවයක ගිල්වන ලද ඉලෙක්ට්රෝඩ දෙකක් වනු ඇත.

    MOSI සහ RESET සංඥාවලට SCK මෙන් නොව debounce අවශ්‍ය නොවේ: නියැදීමේ මොහොතේදී සංඥාවේ මට්ටම පමණක්, එහි දාර නොවේ.

    SPI ක්‍රියා කරන ආකාරය



    සහල්. 4. SPI මෙහෙයුමේ කාල සටහන.

    SPI යනු සමමුහුර්ත අතුරුමුහුණතකි: සියලුම මෙහෙයුම් මාස්ටර් විසින් ජනනය කරන ලද ඔරලෝසු සංඥාවක (SCK) දාරවල ඔරලෝසු කර ඇත. උපරිම බෝඩ් අනුපාතය පාලක ඔරලෝසුවෙන් 1/4 කට සීමා වේ. අවම වේගය සඳහා සීමාවන් නොමැත: ඔරලෝසු සංඥාවක් නොමැතිව, දත්ත හුවමාරුව "ශීත කළ", සහ අතුරු මුහුණත අත්තනෝමතික ලෙස දිගු කාලයක් ස්ථිතික තත්වයක පැවතිය හැකිය.

    SPI සම්ප්‍රේෂණය සම්පූර්ණ ඩුප්ලෙක්ස් ප්‍රකාරයේදී සිදු කෙරේ, සෑම දිශාවකටම ඔරලෝසුවකට බිට් එකක්. SCK සංඥාවේ නැගී එන දාරයේ, වහල් උපාංගය MOSI රේඛාවෙන් මීළඟ බිට් එක කියවන අතර, වැටෙන දාරයේ, එය මීළඟ බිට් එක MISO රේඛාවට ප්‍රතිදානය කරයි. සියල්ලන්ගේම නෙත් 4 රූපය දෙසට.

    ස්ථිරාංග ප්රොටෝකෝලය

    ක්‍රමලේඛකයා සහ MK අතර ඇති සියලුම සන්නිවේදනයන් සමන්විත වන්නේ 32-bit විධාන යැවීම සහ පාලක ප්‍රතිචාර ලැබීමයි. සම්පූර්ණ විධාන ලැයිස්තුවක් "e" දත්ත පත්‍රිකාවේ ඇත, නමුත් MK ෆ්ලෑෂ් කිරීමට සිදු කළ යුතු මෙහෙයුම් මොනවාදැයි අපි ලැයිස්තුගත කරමු:
    1. පාලකය ක්‍රමලේඛන මාදිලියට මාරු කිරීම;
    2. (විකල්ප) උපාංග හැඳුනුම්පත කියවන්න;
    3. මකන්න;
    4. ෆ්ලෑෂ් කිරීමට ලියන්න;
    5. (විකල්ප) වාර්තාගත පරීක්ෂා කිරීම;
    එක් එක් පියවර විස්තරාත්මකව සලකා බලමු.

    ක්‍රමලේඛන මාදිලිය සක්‍රීය කිරීම

    RESET කකුලට "0" යෙදීමෙන් ක්‍රමලේඛන මාදිලිය සක්‍රිය වේ. නමුත් සමහර සියුම්කම් තිබේ. Atmel නිර්දේශ කරන්නේ ඔබ මුලින්ම RESET සහ SCK පින් අඩුවෙන් සකසා පසුව පමණක් පාලකයට බලය යොදන ලෙසයි. මෙය කළ නොහැකි නම්, බල සැපයුම SCK වෙත “0” සක්‍රිය කිරීමෙන් පසුව, නැවත සැකසීමට ධනාත්මක ස්පන්දනයක්:


    සහල්. 5. MK ක්‍රමලේඛන මාදිලියට මාරු කරන්න.


    සහල්. 6. "වැඩසටහන් සක්රිය කරන්න" විධානය.

    ලෙස ලකුණු කර ඇති බිටු x, ඕනෑම විය හැක. තෙවන බයිටය සම්ප්‍රේෂණය කිරීමේදී, පාලකය දෙවන බයිටය ආපසු යැවිය යුතුය ( 01010011 ) මෙය සිදුවුවහොත්, සියල්ල හොඳයි, විධානය පිළිගනු ලැබේ, පාලකය වැඩිදුර උපදෙස් සඳහා බලා සිටී. පිළිතුර වෙනස් නම්, ඔබ MK නැවත ආරම්භ කර සියල්ල නැවත උත්සාහ කළ යුතුය.

    හැඳුනුම්පත තහවුරු කිරීම


    සහල්. 7. "අත්සන කියවන්න" විධානය.

    එම්කේගේ මතකයට යමක් ලිවීමට පෙර, අපට අවශ්‍ය ආකෘතිය හරියටම අප සතුව ඇති බවට ඔබ සහතික විය යුතුය. සෑම පාලක මාදිලියකටම තමන්ගේම බයිට් තුනක හඳුනාගැනීමක් (අත්සන) ඇත. වැනි විධාන සමඟ ඔබට එය කියවිය හැකිය
    00110000 000xxxxx xxxxxxbb xxxxxxxx
    වෙනුවට bb(විධානයේ තුන්වන බයිටය) ආදේශ කළ යුතුය 00 හඳුනාගැනීමේ පළමු බයිටය සඳහා, 01 - දෙවන සඳහා සහ 10 - තුන්වන සඳහා. විධානයේ 4 වන බයිටය යැවීමේදී අනුරූප හඳුනාගැනීමේ බයිටය පාලකය විසින් සම්ප්රේෂණය කරනු ලැබේ.

    ATtiny13 සඳහා, හඳුනාගැනීමේ අගය වේ 00011110 10010000 00000111 (0x1E 90 07).

    පාලකය පිරිසිදු කිරීම

    සහල්. 8. "චිප් මකන්න" විධානය.

    මීලඟ පියවර වන්නේ "චිප් මකන්න" විධානය යැවීමෙන් සිදු කරනු ලබන MK හි මතකය ඉවත් කිරීමයි.
    10101100 100xxxxx xxxxxxxxxxxxxxx
    මෙම විධානය Flash සහ EEPROM හි අන්තර්ගතය මකා දමයි (සියලු සෛල FF අඩංගු වනු ඇත), මෙන්ම ඒවා සකසා ඇත්නම් අගුළු බිටු ඉවත් කරයි.

    ෆ්ලෑෂ් මතකයට ලියන්න

    ATtiny13 හි වැඩසටහන් මතකය (Flash) ද්විත්ව බයිට් වචන 512 කින් (1K බයිට්) සමන්විත වේ. ලිපිනය යන වචනය බිටු 9ක් පළලයි. ෆ්ලෑෂ් මතකය පිටු වලට බෙදා ඇත, සෑම පිටුවක්ම වචන 16ක් දිගයි (මුළු පිටු 32ක් සඳහා). ෆ්ලෑෂ් කිරීමට ලිවීම අදියර දෙකකින් සිදු කෙරේ.

    පළමුව ඔබ පිටු බෆරයට දත්ත පැටවිය යුතුය, මේ සඳහා "වැඩසටහන් මතක පිටුව පූරණය කරන්න" විධානය භාවිතා කරයි.
    01000000 000xxxxx xxxxbbbb iiiiiiii- වචනයේ අඩු බයිටය පැටවීමට, සහ 01001000 000xxxxx xxxxbbbb iiiiiiii- පැරණි එක බාගත කිරීමට.
    3 වන විධාන බයිටයේ අඩු බිටු 4 ක් bbbb- පිටුවේ ඇති වචනයේ ලිපිනය, iiiiiiiii- පටවන ලද බයිටය. වචනයක අඩු බයිටය සෑම විටම පළමුව පූරණය කළ යුතු අතර පසුව එම වචනයේ ඉහළ බයිටය.

    සහල්. 9. වැඩසටහන් මතක පිටු විධානය පූරණය කරන්න.

    පිටු බෆරය පූරණය වූ පසු, ඔබට "වැඩසටහන් මතක පිටුව ලියන්න" විධානය ක්‍රියාත්මක කළ යුතුය. 01001100 0000000a bbbbxxxx xxxxxxxxපාලකයාගේ මතකයට කෙලින්ම පිටුව ලිවීමට.
    දෙවන බයිටයේ අඩු බිට් සහ තුන්වන බයිට් 4 ඉහළ a:bbbb- ඇතුල්වීම සඳහා බිටු පහක පිටු අංකය.

    සහල්. 10. "වැඩසටහන් මතක පිටුව ලියන්න" විධානය.

    මේ සියල්ල තරමක් අවුල් සහගත බව පෙනේ, නමුත් කිසිවක් සංකීර්ණ නොවේ. වැඩසටහන් මතකයේ ඕනෑම බයිටයක ලිපිනය බිටු 10 කින් සමන්විත වේ: ppppp:bbbb:w, කොහෙද
    ppppp- පිටු අංකය ("Write Program Memory Page" විධානයේ භාවිතා වේ);
    bbbb- පිටුවේ ඇති වචනයේ ලිපිනය ("Load Program Memory Page" විධානයෙහි);
    w- වචනයේ ඉහළ හෝ අඩු බයිටය තීරණය කරන ටිකක් ("Load Program Memory Page" විධානයේ පළමු බයිටයේ සංකේතනය කර ඇත).

    ෆ්ලෑෂ් කියවීම


    සහල්. 11. "වැඩසටහන් මතකය කියවන්න" විධානය.

    MK වෙත ස්ථිරාංග ලිවීමෙන් පසු, දත්ත අඛණ්ඩතා පරීක්ෂාවක් සිදු නොකළ බැවින්, ලියා ඇති දේ පරීක්ෂා කිරීම සතුටක් වනු ඇත. පරීක්ෂා කිරීමට ඇති එකම මාර්ගය වන්නේ ෆ්ලෑෂ් මතකයේ සම්පූර්ණ ප්රමාණය කියවීම සහ මුල් පිටපත සමඟ සංසන්දනය කිරීමයි.

    වැඩසටහන් මතකය කියවීම එයට ලිවීමට වඩා පහසුය. පේජ් කිරීම අමතක කරන්න, කියවීම බයිට් බයිට් වලින් සිදු කෙරේ. "වැඩසටහන් මතකය කියවන්න" විධානය මේ වගේ ය:
    00100000 0000000a bbbbbbbb xxxxxxxx- වචනයේ අඩු බයිටය කියවීමට, සහ 00101000 0000000a bbbbbbbb xxxxxxxx- ජ්යෙෂ්ඨ සඳහා.
    දෙවන බයිටයේ සහ සම්පූර්ණ තුන්වන බයිටයේ අවම සැලකිය යුතු බිට් එක a:bbbbbbbbමතකයේ ඇති වචනයේ ලිපිනය වේ. විධානයේ 4 වන බයිටය සම්ප්‍රේෂණය කිරීමේදී කියවීමේ බයිටය ආපසු ලබා දෙනු ලැබේ.

    වැඩසටහන්කරණය සම්පූර්ණ කිරීම

    සමහර විට සරලම මෙහෙයුම. ක්‍රමලේඛනය සම්පූර්ණ කිරීමට සහ MK මෙහෙයුම් ප්‍රකාරයට තැබීමට, RESET කිරීමට තාර්කික මට්ටම "1" යෙදීම ප්‍රමාණවත් වේ. පාලකය නව වැඩසටහන සමඟ ආරම්භ කර ක්‍රියාත්මක වේ.

    පුරුදු කරන්න

    ඔබ ඉගෙන ගත් දේ ක්‍රියාවට නැංවීමට කාලයයි. අත්හදා බැලීමේ ගොදුර - ATtiny13 - බ්‍රෙඩ්බෝඩ් එකට සම්බන්ධ කර ඇත, සං signal ා කන්ඩිෂනර් ඒ අසල එකලස් කර ඇත, සියල්ල සූදානම්:


    සහල්. 12. පර්යේෂණාත්මක යෝජනා ක්රමය.

    අපි "කිසිම තැනක පහසු නැත" වැනි වැඩසටහනක් මහනවා:
    ldi R24, 0x02 DDRB, R24 out PORTB,R24 L1: rjmp L1
    එය කරන්නේ PB1 කකුලකට එකක් ප්‍රතිදානය කර අනන්ත ලූපයකට යාමයි. යන්ත්‍ර කේත වලදී, එයට ගත වන්නේ වචන හතරක් පමණි:
    E082BB87BB88CFFF
    එය පාලකයට ෆ්ලෑෂ් කිරීමට, ඔබ පහත විධාන ටයිප් කළ යුතුය:
    1010 1100 0101 0011 0000 0000 0000 0000 // වැඩසටහන සක්රිය කරන්න 1010 1100 1000 0000 0000 0000 0000 0000 0000 0000 0000 0010 // 000 000 000 000 load 000 000 000 අඩු 01 විසින් 0000 0000 0000 1110 0000 / / load addr.0000 high byte E0 0100 0000 0000 0000 0000 0001 1000 0111 // load addr.0001 low byte 87 0100 1000 0000 0000 0000 0001 1011 1011 BB 0100 0000 0001 00 // load addr.0010 low byte 88 0100 1000 0000 0000 0000 0010 1011 1011 // load addr.0010 high byte BB 0100 0000 0000 0000 0000 0011 1111 1111 FF 0100 1000 0000 0000 0000 0000 0000 0000 0011 1100 1111 0000 0000 0000 0000 0000 0000 // ලියන්න පිටුව
    ආරම්භ කිරීමට යතුර, අපි යමු!

    2015 දෙසැම්බර්

    1. යෝජිත ක්රමයේ වාසි

    ක්ෂුද්‍ර පාලක (MC) මත පදනම් වූ උපාංග පරිපථ සාමාන්‍යයෙන් ඒකාබද්ධ කිරීමට අපහසු ගුණාංග දෙකක එකතුවකින් වෙන්කර හඳුනාගත හැකිය: උපරිම සරල බව සහ ඉහළ ක්‍රියාකාරිත්වය. මීට අමතරව, පරිපථයේ කිසිදු වෙනසක් සිදු නොකර අනාගතයේදී ක්‍රියාකාරීත්වය වෙනස් කර පුළුල් කළ හැකිය - වැඩසටහන ප්‍රතිස්ථාපනය කිරීමෙන් (දැල්වීම). නවීන ක්ෂුද්‍ර පාලකයන්ගේ නිර්මාතෘවරුන් ඉලෙක්ට්‍රොනික උපාංග සංවර්ධකයෙකුට අවශ්‍ය විය හැකි සෑම දෙයක්ම එක් චිපයක් මත තැබීමට උත්සාහ කර ඇති බව මෙම විශේෂාංග පැහැදිලි කරයි - අවම වශයෙන් හැකි තරම්. එහි ප්‍රතිඵලයක් වශයෙන්, පරිපථ සහ එකලස් කිරීමේ සිට මෘදුකාංග වෙත අවධාරණය කිරීමේ වෙනසක් ඇති විය. MK භාවිතා කිරීමත් සමඟ, විස්තර සහිත පරිපථය "පූරණය" කිරීම දැන් අඩු අවශ්‍ය වේ, සංරචක අතර සම්බන්ධතා අඩුය. මෙය ඇත්ත වශයෙන්ම, පළපුරුදු සහ නවක ඉලෙක්ට්‍රොනික ඉංජිනේරුවන්ට එය නැවත කිරීමට පරිපථය වඩාත් ආකර්ශනීය කරයි. නමුත්, සුපුරුදු පරිදි, ඔබ සියල්ල සඳහා ගෙවිය යුතුය. මෙහිදීද අපහසුතා නැතුවා නොවේ. ඔබ නව MK එකක් මිලට ගන්නේ නම්, එය සේවා කළ හැකි කොටස් වලින් නිවැරදිව එකලස් කර ඇති පරිපථයක ස්ථාපනය කර බලය යොදන්න, එවිට කිසිවක් ක්රියා නොකරනු ඇත - උපාංගය ක්රියා නොකරයි. ක්ෂුද්‍ර පාලකයට වැඩසටහනක් අවශ්‍යයි.

    මේ සමඟ සෑම දෙයක්ම සරල බව පෙනේ - අන්තර්ජාලයේ ඔබට නොමිලේ ස්ථිරාංග සමඟ බොහෝ යෝජනා ක්‍රම සොයාගත හැකිය. නමුත් මෙහි එක් උගුලක් තිබේ: ස්ථිරාංග කෙසේ හෝ ක්ෂුද්‍ර පාලකය තුළට "පිරවිය යුතුය". මෙයට පෙර කවදාවත් සිදු කර නැති කෙනෙකුට, එවැනි කාර්යයක් බොහෝ විට ගැටලුවක් වන අතර ප්‍රධාන පිළිකුල් සහගත සාධකය බවට පත්වේ, බොහෝ විට ඔවුන්ට MK භාවිතා කිරීමේ චමත්කාරය අත්හැර දමා "ලිහිල්" සහ දෘඩ තර්කනය මත පදනම් වූ යෝජනා ක්‍රම සෙවීමට බල කරයි. නමුත් සෑම දෙයක්ම මුලින්ම බැලූ බැල්මට පෙනෙන තරම් අපහසු නැත.

    අන්තර්ජාලයේ ප්‍රකාශන විශ්ලේෂණය කිරීමෙන් පසු, මෙම ගැටළුව බොහෝ විට ක්‍රම දෙකෙන් එකකින් විසඳා ඇති බව ඔබට පෙනෙනු ඇත: සූදානම් කළ ක්‍රමලේඛකයෙකු මිලදී ගැනීම හෝ ගෙදර හැදූ එකක් සෑදීම. ඒ අතරම, ගෙදර හැදූ ක්‍රමලේඛකයන්ගේ ප්‍රකාශිත යෝජනා ක්‍රම බොහෝ විට අසාධාරණ ලෙස සංකීර්ණ වේ - ඇත්ත වශයෙන්ම අවශ්‍ය ප්‍රමාණයට වඩා සංකීර්ණ ය. ඇත්ත වශයෙන්ම, එය සෑම දිනකම MK ෆ්ලෑෂ් කිරීමට අදහස් කරන්නේ නම්, එය "සිසිල්" වැඩසටහන්කරුවෙකු සිටීම වඩා හොඳය. නමුත් එවැනි ක්රියා පටිපාටියක් සඳහා අවශ්යතාවය කලාතුරකින් පැන නගින්නේ නම්, වරින් වර, ඔබට සාමාන්යයෙන් ක්රමලේඛකයෙකු නොමැතිව කළ හැකිය. නැත, ඇත්ත වශයෙන්ම, එය සිතීමේ බලයෙන් එය කිරීමට ඉගෙන ගැනීම නොවේ. මෙයින් අදහස් කරන්නේ එහි ක්‍රමලේඛන මාදිලියේ තොරතුරු ලිවීමේදී සහ කියවීමේදී ක්‍රමලේඛකයා ක්ෂුද්‍ර පාලකය සමඟ අන්තර්ක්‍රියා කරන ආකාරය තේරුම් ගැනීම, අපට පුළුල් අරමුණක් සඳහා පවතින මෙවලම් සමඟින් ලබා ගත හැකි බවයි. මෙම මෙවලම් ක්රමලේඛකයාගේ මෘදුකාංග සහ දෘඪාංග යන දෙකම ප්රතිස්ථාපනය කිරීමට සිදු වනු ඇත. දෘඪාංග කොටස MK චිපයට භෞතික සම්බන්ධතාවයක් සැපයිය යුතුය, එහි යෙදවුම් වලට තාර්කික මට්ටම් සැපයීමේ හැකියාව සහ එහි ප්‍රතිදාන වලින් දත්ත කියවීම. මෘදුකාංග කොටස අවශ්ය සියලු ක්රියාවලි පාලනය කරන ඇල්ගොරිතමයේ ක්රියාකාරිත්වය සහතික කළ යුතුය. MK හි තොරතුරු පටිගත කිරීමේ ගුණාත්මකභාවය ඔබේ ක්‍රමලේඛකයා කෙතරම් "සිසිල්" ද යන්න මත රඳා නොපවතින බව අපි සටහන් කරමු. "වඩා හොඳ" "නරක" කියා දෙයක් නැත. ඇත්තේ විකල්ප දෙකක් පමණි: "ලියාපදිංචිය" සහ "ලියාපදිංචි වී නැත". මෙයට හේතුව MC විසින්ම ස්ඵටිකය තුළ පටිගත කිරීමේ ක්‍රියාවලිය පාලනය කිරීමයි. එය අවශ්‍ය වන්නේ එය උසස් තත්ත්වයේ බලයක් (මැදිහත්වීම් සහ රැළි නොමැතිව) ලබා දීම සහ අතුරු මුහුණත නිසි ලෙස සංවිධානය කිරීම පමණි. පාලන කියවීමේ ප්‍රති results ල අනුව, කිසිදු දෝෂයක් අනාවරණය නොවූයේ නම්, සියල්ල පිළිවෙලට තිබේ - ඔබට එහි අපේක්ෂිත අරමුණ සඳහා පාලකය භාවිතා කළ හැකිය.

    ක්‍රමලේඛකයෙකු නොමැතිව MK වෙත වැඩසටහනක් ලිවීමට, අපට USB-RS232TTL වරාය පරිවර්තකයක් අවශ්‍ය වේ. USB-RS232TTL පරිවර්තකය ඔබට USB පෝට් එක භාවිතයෙන් COM පෝට් එකක් නිර්මාණය කිරීමට ඉඩ සලසයි, එය "සැබෑ" එකට වඩා වෙනස් වන්නේ TTL තාර්කික මට්ටම් එහි යෙදවුම් සහ ප්‍රතිදානයන්හි භාවිතා වන අතර, එනම් 0 සිට 5 දක්වා පරාසයක වෝල්ටීයතාවය. වෝල්ට් (වැඩි විස්තර සඳහා, "" ලිපිය බලන්න). ඕනෑම අවස්ථාවක, "ගෘහස්ථ" තුළ එවැනි පරිවර්තකයක් තිබීම ප්රයෝජනවත් වේ, එබැවින් ඔබ තවමත් එය නොමැති නම්, ඔබ අනිවාර්යයෙන්ම එය මිලදී ගත යුතුය. තාර්කික මට්ටම් සම්බන්ධයෙන් ගත් කල, අපගේ නඩුවේදී TTL යනු සාමාන්‍ය COM පෝට් එකකට වඩා වාසියකි, මන්ද එවැනි වරායක යෙදවුම් සහ ප්‍රතිදානයන් ATtiny සහ ATmega ඇතුළුව 5 V මගින් බල ගැන්වෙන ඕනෑම ක්ෂුද්‍ර පාලකයකට කෙලින්ම සම්බන්ධ කළ හැකි බැවිනි. නමුත් සාමාන්‍ය COM පෝට් එකක් භාවිතා කිරීමට උත්සාහ නොකරන්න - -12 සිට +12 V (හෝ -15 ... + 15V) පරාසයේ වෝල්ටීයතා එහි භාවිතා වේ. මෙම නඩුවේ ක්ෂුද්ර පාලකය වෙත සෘජු සම්බන්ධතාවය පිළිගත නොහැකිය !!!

    ක්‍රමලේඛකයෙකුගේ කාර්යයන් ක්‍රියාත්මක කරන "Perpetuum M" වැඩසටහන සඳහා ස්ක්‍රිප්ට් එකක් නිර්මාණය කිරීමේ අදහස මතු වූයේ MK ස්ථිරාංග සඳහා නිශ්චිත විසඳුම් ඉදිරිපත් කරන අන්තර්ජාලයේ ප්‍රකාශන ගණනාවක් කියවීමෙන් පසුවය. සෑම අවස්ථාවකදීම බරපතල අඩුපාඩු හෝ අධික සංකීර්ණතා සොයා ගන්නා ලදී. අපට බොහෝ විට ක්ෂුද්‍ර පාලකයක් අඩංගු ක්‍රමලේඛක පරිපථ හමු වූ අතර, ඒ සමඟම, උපදෙස් තරමක් බැරෑරුම් ලෙස ලබා දෙන ලදී: "... සහ මෙම ක්‍රමලේඛකයා සඳහා ක්ෂුද්‍ර පාලකය ක්‍රමලේඛනය කිරීම සඳහා, අපට අවශ්‍ය ... එය හරි - වෙනත් ක්‍රමලේඛකයෙක්!" . තවද, මිතුරෙකු වෙත යාමට, ගෙවන සේවාවක් සෙවීම යනාදිය යෝජනා කරන ලදී. මෙම අරමුණු සඳහා ජාලයේ බෙදා හරින ලද මෘදුකාංගයේ ගුණාත්මකභාවය ද සිත් ඇදගන්නා සුළු නොවීය - ක්‍රියාකාරීත්වය සහ පරිශීලක අතුරුමුහුණතේ "කැළඹීම" යන දෙකෙහිම ගැටළු රාශියක් දක්නට ලැබුණි. වැඩසටහන භාවිතා කරන්නේ කෙසේද යන්න තේරුම් ගැනීමට බොහෝ විට බොහෝ කාලයක් ගත වේ - සරලම ක්රියාවන් සිදු කිරීම සඳහා පවා එය ඉගෙන ගත යුතුය. වෙනත් වැඩසටහනකට දිගු කාලයක් හා කඩිසරව යමක් කළ හැකි නමුත්, පරිශීලකයා MK වෙත කිසිවක් ලියා නොමැති බව දැන ගන්නේ සම්පූර්ණ ස්ථිරාංග සම්පූර්ණ කර පසුව පාලන කියවීම සම්පූර්ණ කිරීමෙන් පසුව පමණි. එවැනි ගැටළුවක් ද තිබේ: පරිශීලකයා සහාය දක්වන ස්ඵටික ලැයිස්තුවෙන් ඔහුගේ MK තෝරා ගැනීමට උත්සාහ කරයි, නමුත් එය ලැයිස්තුවේ නොමැත. මෙම අවස්ථාවේදී, වැඩසටහන භාවිතා කිරීමට නොහැකි වනු ඇත - රීතියක් ලෙස, අතුරුදහන් වූ MK ලැයිස්තුවට ඇතුළත් කිරීම ලබා නොදේ. ඊට අමතරව, බොහෝ අවස්ථාවලදී ක්‍රමලේඛකයාට MK වර්ගය තීරණය කළ හැකි බැවින්, ලැයිස්තුවෙන් පාලකයක් අතින් තෝරා ගැනීම අමුතු දෙයක් ලෙස පෙනේ. මේ සියල්ල පවසන්නේ දැනට පවතින නිෂ්පාදනවලට මඩ ගැසීමට නොව, මෙම ලිපියේ විස්තර කර ඇති "Perpetuum M" වැඩසටහන සඳහා පිටපත පෙනුමට හේතුව පැහැදිලි කිරීම සඳහා ය. ගැටළුව සැබවින්ම පවතින අතර, එය මූලික වශයෙන් ක්ෂුද්‍ර පාලක ලෝකයට ඔවුන්ගේ පළමු පියවර ගැනීම සඳහා මෙම "පවුර" ජය ගැනීමට සැමවිටම සමත් නොවන ආරම්භකයින් ගැන සැලකිලිමත් වේ. යෝජිත ස්ක්‍රිප්ටය වෙනත් වැඩසටහන් වල ඇති අඩුපාඩු සැලකිල්ලට ගනී. ඇල්ගොරිතමයේ උපරිම "විනිවිදභාවය" ක්‍රියාත්මක කර ඇත, අධ්‍යයනය අවශ්‍ය නොවන අතිශය සරල පරිශීලක අතුරුමුහුණතක් සහ ව්‍යාකූල වීමට සහ "වැරදි තැනක ක්ලික් කරන්න" අවස්ථාවක් ඉතිරි නොකරයි. සහාය දක්වන ඒවා අතර අවශ්‍ය MK නොමැති විට, MK සංවර්ධකයාගේ වෙබ් අඩවියෙන් බාගත කර ඇති ලේඛනයෙන් අවශ්‍ය දත්ත ලබා ගනිමින් එහි විස්තරය ඔබම එකතු කළ හැකිය. තවද, වඩාත්ම වැදගත් දෙය නම්, ස්ක්‍රිප්ට් අධ්‍යයනය සහ වෙනස් කිරීම සඳහා විවෘතය. ඕනෑම කෙනෙකුට, එය පෙළ සංස්කාරකයක් තුළ විවෘත කර, ඔවුන්ගේ අභිමතය පරිදි එය අධ්‍යයනය කර සංස්කරණය කළ හැකිය, පවතින කාර්යයන් ඔවුන්ගේ රසයට වෙනස් කිරීම සහ නැතිවූ ඒවා එකතු කිරීම.

    පිටපතේ පළමු අනුවාදය 2015 ජුනි මාසයේදී නිර්මාණය කරන ලදී. මෙම අනුවාදය Atmel's ATtiny සහ ATmega MCUs සඳහා පමණක් සහය දක්වයි ෆ්ලෑෂ් මතකය ලිවීම / කියවීම, වින්‍යාස බිටු සැකසීම සහ පාලක වර්ගය ස්වයංක්‍රීයව හඳුනා ගැනීම. EEPROM ලිවීම සහ කියවීම ක්‍රියාත්මක නොවේ. ස්ක්‍රිප්ට් වල ක්‍රියාකාරීත්වයට අතිරේකව සැලසුම් කර ඇත: එකතු කරන්න. EEPROM ලිවීම සහ කියවීම, PIC පාලක සඳහා සහය ක්‍රියාත්මක කිරීම යනාදිය. මේ හේතුව නිසා පිටපත තවමත් ප්‍රකාශයට පත් කර නොමැත. නමුත් කාලය නොමැතිකම නිසා සැලැස්ම ක්‍රියාත්මක කිරීම ප්‍රමාද වූ අතර හොඳම දේ සතුරා බවට පත් නොවනු ඇත. හොඳ, පවතින අනුවාදය ප්‍රකාශයට පත් කිරීමට තීරණය කරන ලදී. ක්‍රියාත්මක කරන ලද කාර්යයන් ප්‍රමාණවත් නොවනු ඇත, කරුණාකර කලබල නොවන්න, මෙම අවස්ථාවේදී, ඔබට අවශ්‍ය කාර්යය ඔබම එකතු කිරීමට උත්සාහ කළ හැකිය. මම එය සඟවන්නේ නැත: අදහස මෙම ස්ක්‍රිප්ටය නිර්මාණය කිරීම මුලදී අධ්‍යාපනික අර්ථයක් දරයි.ඇල්ගොරිතම තේරුම් ගෙන එයට ඔබේම දෙයක් එකතු කිරීමෙන්, ඔබට ක්‍රමලේඛන මාදිලියේදී MK ගේ ක්‍රියාකාරිත්වය වඩාත් හොඳින් අවබෝධ කර ගැනීමට හැකි වනු ඇත, එවිට අනාගතයේදී කැඩුණු මෝටර් රථයක් ඉදිරිපිට ගැහැණු ළමයෙකුගේ ස්ථානයේ ඔබ නොසිටිනු ඇත, කල්පනාකාරීව එහි ඇතුළත දෙස බලා එය "නොයන්නේ" මන්දැයි නොතේරෙනු ඇත.

    2. වැඩසටහන් මාදිලියේ MK අතුරුමුහුණත

    පාලකය ක්‍රමලේඛන ප්‍රකාරයට දමා එය සමඟ මෙම ප්‍රකාරයේදී වැඩ කිරීමට විවිධ ක්‍රම කිහිපයක් තිබේ. ATtiny සහ ATmega ශ්‍රේණි පාලකයන් සඳහා ක්‍රියාත්මක කිරීමට පහසුම එක SPI වේ. අපි ඒවා භාවිතා කරන්නෙමු.

    එහෙත්, SPI පිහිටුවීම සඳහා අවශ්ය සංඥා සලකා බැලීමට පෙර, අපි වෙන් කිරීම් ගණනාවක් සිදු කරන්නෙමු. ක්ෂුද්‍ර පාලකයේ වින්‍යාස බිටු ඇත. මෙය ටොගල් ස්විචයන් වැනි දෙයකි, එය මාරු කිරීම ව්‍යාපෘතියේ අවශ්‍යතා අනුව ක්ෂුද්‍ර පරිපථයේ සමහර ගුණාංග වෙනස් කිරීමට ඔබට ඉඩ සලසයි. භෞතිකව, මේවා වැඩසටහන ලියා ඇති ඒවා වැනි වාෂ්පශීලී නොවන මතකයේ සෛල වේ. වෙනස වන්නේ ඒවායින් ඉතා ස්වල්පයක් (ATmega සඳහා බයිට් තුනක් දක්වා) ඇති අතර ඒවා කිසිදු මතකයක ලිපින අවකාශයට ඇතුළත් නොවේ. වින්‍යාස දත්ත ලිවීම සහ කියවීම සිදු කරනු ලබන්නේ MK ක්‍රමලේඛන මාදිලියේ වෙනම විධාන මගිනි. දැන් සමහර වින්‍යාස බිටු SPI භාවිතා කිරීමේ හැකියාවට බලපාන බව සැලකිල්ලට ගැනීම වැදගත්ය. ඒවායේ සමහර අගයන් සමඟ, SPI භාවිතා කළ නොහැකි බව පෙනී යා හැකිය. ඔබට එවැනි ක්ෂුද්‍ර පාලකයක් හමු වුවහොත්, මෙම ලිපියේ යෝජනා කර ඇති ක්‍රමය උපකාරී නොවේ. මෙම අවස්ථාවේදී, ඔබට වෙනත් ක්‍රමලේඛන මාදිලියකට සහය දක්වන ක්‍රමලේඛකයේ වින්‍යාස බිටු වල සැකසුම් වෙනස් කිරීමට හෝ වෙනත් ක්ෂුද්‍ර පාලකයක් භාවිතා කිරීමට සිදුවනු ඇත. නමුත් මෙම ගැටළුව අදාළ වන්නේ භාවිතා කරන ලද MKs හෝ යමෙකු දැනටමත් අසාර්ථක ලෙස "සෙල්ලම් කර ඇති" ඒවා පමණි. කාරණය නම් SPI භාවිතය වළක්වන්නේ නැති වින්‍යාස බිටු සැකසුම් සමඟ නව MK පැමිණේ. විවිධ MKs හතරක් (ATmega8, ATmega128, ATtiny13, ATtiny44) සාර්ථකව දැල්වෙන "Perpetuum M" වැඩසටහන සඳහා ක්‍රමලේඛක ස්ක්‍රිප්ටයේ පරීක්ෂණ ප්‍රතිඵල මගින් මෙය සනාථ වේ. ඔවුන් සියල්ලෝම අලුත් විය. වින්‍යාස බිටු වල ආරම්භක සැකසුම ලේඛනගත කිරීම සමග අනුකූල වූ අතර SPI භාවිතයට බාධාවක් නොවීය.

    ඉහත කරුණු සැලකිල්ලට ගෙන, ඔබ පහත සඳහන් කරුණු කෙරෙහි අවධානය යොමු කළ යුතුය. SPIEN bit පැහැදිලිවම SPI භාවිතය සක්‍රීය කරයි හෝ අක්‍රිය කරයි, එබැවින් අපගේ නඩුවේදී එහි අගය අවසර සහිත විය යුතුය. RSTDISBL bit එකට microcircuit outputs වලින් එකක් (පෙර තීරණය කර ඇති) "reset" signal input බවට හැරවීමට හෝ එය හැරවීමට නොහැකි වේ (මෙම bit එකට ලියා ඇති අගය අනුව). අපගේ නඩුවේදී, "නැවත පිහිටුවීම" ආදානය අවශ්ය වේ (එය නොමැති නම්, SPI හරහා MK ක්රමලේඛන මාදිලියට මාරු කිරීමට නොහැකි වනු ඇත). ඔරලෝසු සංඥාවේ මූලාශ්රය සඳහන් කරන CKSEL කාණ්ඩයේ බිටු ද ඇත. ඔවුන් SPI භාවිතය වළක්වන්නේ නැත, නමුත් ඒවා ද මතක තබා ගත යුතුය, මන්ද ඔරලෝසු ස්පන්දන නොමැති නම් හෝ ඔවුන්ගේ සංඛ්‍යාතය ලබා දී ඇති SPI වේගයට වඩා අඩු නම්, එයින් හොඳ කිසිවක් නොලැබෙනු ඇත. සාමාන්‍යයෙන්, අභ්‍යන්තර RC ඔස්කිලේටරයක් ​​ඇති නව MCU වල එය භාවිතා කිරීමට CKSEL කණ්ඩායම් බිටු සකසා ඇත. අපි මේ ගැන සෑහීමකට පත්වෙමු - අපගේ අමතර උත්සාහයකින් තොරව ඔරලෝසුව සපයනු ලැබේ. ඔබට ක්වාර්ට්ස් අනුනාදකය පෑස්සීමට අවශ්‍ය නැත, ඔබට බාහිර උත්පාදකයක් සම්බන්ධ කිරීමට අවශ්‍ය නැත. නිශ්චිත බිටු වෙනස් සැකසුමකින් සමන්විත වේ නම්, ඔබට සැකසීමට අනුකූලව ඔරලෝසුව ගැන සැලකිලිමත් විය යුතුය. මෙම අවස්ථාවෙහිදී, ක්වාර්ට්ස් අනුනාදකයක් හෝ බාහිර ඔරලෝසු උත්පාදක යන්ත්රයක් MK වෙත සම්බන්ධ කිරීම අවශ්ය විය හැකිය. නමුත් මෙම ලිපියේ රාමුව තුළ, මෙය සිදු කරන්නේ කෙසේදැයි අපි සලකා බලන්නේ නැත. මෙම ලිපියේ අඩංගු වැඩසටහන්කරණය සඳහා MK සම්බන්ධ කිරීමේ උදාහරණ සරලම අවස්ථාව සඳහා නිර්මාණය කර ඇත.

    සහල්. 1. ක්‍රමලේඛන මාදිලියේ SPI සන්නිවේදනය

    දැන් අපි MK ATmega128A සඳහා ලියකියවිලි වලින් ලබාගත් රූපය 1 වෙත හැරෙමු. එය MCU වෙත එක් බයිටයක් යැවීමේ ක්‍රියාවලිය සහ MCU වෙතින් එක් බයිට් එකක් ලබා ගැනීමේ ක්‍රියාවලිය පෙන්වයි. මෙම ක්‍රියාවලි දෙකම, අප දකින පරිදි, එහි SCK ආදානයේදී ක්‍රමලේඛකයාගේ සිට ක්ෂුද්‍ර පාලකය වෙත එන එකම ඔරලෝසු ස්පන්දන භාවිතා කරයි - ක්ෂුද්‍ර පරිපථයේ පින් වලින් එකක්, මෙම භූමිකාව SPI ක්‍රමලේඛන මාදිලියේ පවරා ඇත. තවත් සංඥා රේඛා දෙකක් දත්ත ලබා ගැනීම සහ සම්ප්‍රේෂණය කිරීම ඔරලෝසුවකට බිට් එකක් සපයයි. MOSI ආදානය හරහා, දත්ත ක්ෂුද්‍ර පාලකයට ඇතුළු වන අතර, කියවීමේ දත්ත MISO ප්‍රතිදානයෙන් ලබා ගනී. SCK සිට MISO සහ MOSI දක්වා ඇද ඇති තිත් රේඛා දෙක සටහන් කරන්න. MOSI ආදානයේදී සකසන ලද දත්ත බිට් එක ක්ෂුද්‍ර පාලකය "ගිලන්නේ" කුමන මොහොතේද, සහ එය MISO ප්‍රතිදානයේදී තමන්ගේම දත්ත බිට් එකක් සකසන්නේ කුමන මොහොතේද යන්න ඔවුන් පෙන්වයි. සෑම දෙයක්ම තරමක් සරල ය. නමුත් MK ක්‍රමලේඛන මාදිලියට ඇතුළු කිරීම සඳහා, අපට තවමත් RESET සංඥාවක් අවශ්‍ය වේ. පොදු GND වයර් සහ VCC බල සැපයුම ගැනද අමතක නොකරමු. සමස්තයක් වශයෙන්, SPI හරහා එය ෆ්ලෑෂ් කිරීම සඳහා වයර් 6 ක් පමණක් ක්ෂුද්ර පාලකයට සම්බන්ධ කළ යුතු බව පෙනේ. පහත අපි මෙය වඩාත් විස්තරාත්මකව විශ්ලේෂණය කරන්නෙමු, නමුත් දැනට අපි SPI හරහා ක්‍රමලේඛන මාදිලියේ MK සමඟ දත්ත හුවමාරුව බයිට් 4 ක පැකට් වලින් සිදු කරන බව එකතු කරන්නෙමු. සෑම පැකට්ටුවකම පළමු බයිටය මූලික වශයෙන් විධානය සංකේතනය කිරීම සඳහා සම්පූර්ණයෙන්ම වෙන් කර ඇත. දෙවන බයිටය, පළමු එක මත පදනම්ව, විධාන කේතයේ අඛණ්ඩ පැවැත්මක් හෝ ලිපිනයේ කොටසක් විය හැකිය, නැතහොත් එය අත්තනෝමතික අගයක් තිබිය හැකිය. තෙවන බයිටය ප්‍රධාන වශයෙන් ලිපින සම්ප්‍රේෂණය කිරීම සඳහා භාවිතා කරයි, නමුත් බොහෝ විධාන වලදී එයට අත්තනෝමතික අගයක් තිබිය හැකිය. සිව්වන බයිටය සාමාන්‍යයෙන් දත්ත රැගෙන යයි, නැතහොත් අත්තනෝමතික අගයක් ඇත. හතරවන බයිටය මාරු කිරීමත් සමඟම, සමහර විධානයන් MK වෙතින් එන දත්ත ලබා ගනී. එක් එක් උපදෙස් පිළිබඳ විස්තර "SPI අනුක්‍රමික ක්‍රමලේඛන උපදෙස් කට්ටලය" නම් වගුවක ඇති පාලක ලියකියවිලි වලින් සොයාගත හැකිය. දැනට, අපි සටහන් කරන්නේ පාලකය සමඟ සම්පූර්ණ හුවමාරුව බිට් 32 පැකට් අනුපිළිවෙලකින් ගොඩනගා ඇති අතර, ඒ සෑම එකක් තුළම ප්‍රයෝජනවත් තොරතුරු එක් බයිටයකට වඩා සම්ප්‍රේෂණය නොවේ. මෙය ඉතා ප්රශස්ත නොවේ, නමුත් සාමාන්යයෙන් එය හොඳින් ක්රියා කරයි.

    3. වැඩසටහන්කරණය සඳහා MK සම්බන්ධ කිරීම

    SPI අතුරුමුහුණත සංවිධානය කිරීම සහ එහි MISO ප්‍රතිදානයෙන් දත්ත කියවීම සඳහා අවශ්‍ය සියලුම සංඥා ක්ෂුද්‍ර පාලක යෙදවුම් වෙත සපයා ඇති බව සහතික කිරීම සඳහා, ක්‍රමලේඛකයෙකු නිර්මාණය කිරීම අවශ්‍ය නොවේ. මෙය වඩාත් පොදු USB-RS232TTL පරිවර්තකය සමඟ කිරීමට පහසුය.

    අන්තර්ජාලය තුළ, එවැනි පරිවර්තකයන් බාල බව, ඔවුන් සමඟ බරපතල කිසිවක් කළ නොහැකි බව ඔබට බොහෝ විට තොරතුරු සොයාගත හැකිය. නමුත් බොහෝ පරිවර්තක මාදිලි සඳහා මෙම මතය වැරදියි. ඔව්, සම්මත COM port (උදාහරණයක් ලෙස, TXD සහ RXD පමණක්) හා සසඳන විට ලබා ගත හැකි සියලුම යෙදවුම් සහ ප්‍රතිදානයන් නොමැති පරිවර්තක විකිණීමට ඇත (උදාහරණයක් ලෙස, TXD සහ RXD පමණි), නමුත් වෙන් කළ නොහැකි සැලසුමක් ඇත (ක්ෂුද්‍ර පරිපථය ප්ලාස්ටික් වලින් පුරවා ඇත - එය එහි නිගමනවලට එළඹිය නොහැක). නමුත් මේවා මිලදී ගැනීම වටින්නේ නැත. සමහර අවස්ථාවල දී, ඔබට වයර් සෘජුවම ක්ෂුද්‍ර පරිපථයට පෑස්සීමෙන් වරායේ නැතිවූ යෙදවුම් සහ ප්‍රතිදානයන් ලබා ගත හැකිය. එවැනි "වැඩිදියුණු කළ" පරිවර්තකයක උදාහරණයක් රූප සටහන 2 හි පෙන්වා ඇත (PL-2303 microcircuit - "" ලිපියේ එහි අල්ෙපෙනතිවල අරමුණ ගැන වැඩි විස්තර). මෙය ලාභම මාදිලි වලින් එකකි, නමුත් ගෙදර හැදූ මෝස්තරවල භාවිතා කරන විට එහිම වාසි ඇත. COM පෝට් එකක් වැනි අවසානයේ සම්මත නව-පින් සම්බන්ධකයක් සහිත සම්පූර්ණ විශේෂාංග සහිත ඇඩැප්ටර රැහැන් ද පුළුල් ලෙස පැතිරී ඇත. ඒවා සාමාන්‍ය COM පෝට් එකකින් වෙනස් වන්නේ TTL මට්ටම් සහ යල් පැන ගිය මෘදුකාංග සහ සමහර පැරණි දෘඪාංග සමඟ නොගැලපීම පමණි. විවිධ ආන්තික පරීක්ෂණ වලදී CH34x චිපය මත පදනම් වූ රැහැන් PL-2303 මත පදනම් වූ පරිවර්තකයන්ට සාපේක්ෂව වඩා විශ්වාසදායක සහ ස්ථාවර බව පෙන්නුම් කරන බව ද සටහන් කළ හැකිය. කෙසේ වෙතත්, සාමාන්ය භාවිතයේදී, වෙනස සැලකිය නොහැකිය.

    USB-RS232TTL පරිවර්තකයක් තෝරාගැනීමේදී, භාවිතා කරන මෙහෙයුම් පද්ධතියේ අනුවාදය සමඟ එහි ධාවකයේ ගැළපුම පිළිබඳවද ඔබ අවධානය යොමු කළ යුතුය.

    ATtiny13, ATtiny44, ATmega8 සහ ATmega128 යන විවිධ MK මාදිලි හතරක උදාහරණය භාවිතා කරමින් ක්ෂුද්‍ර පාලකයක් සහ USB-RS232TTL පරිවර්තකයක් සම්බන්ධ කිරීමේ මූලධර්මය අපි වඩාත් විස්තරාත්මකව සලකා බලමු. රූප සටහන 3 එවැනි සම්බන්ධතාවයක පොදු යෝජනා ක්රමය පෙන්වයි. RS232 සංඥා (RTS, TXD, DTR සහ CTS) වැරදි ලෙස භාවිතා කිරීම ඔබව පුදුමයට පත් කළ හැකිය. නමුත් ඒ ගැන කරදර නොවන්න: Perpetuum M වැඩසටහනට ඔවුන් සමඟ කෙලින්ම වැඩ කිරීමට හැකි වේ - ප්‍රතිදාන අගයන් සකසා ආදාන තත්වයන් කියවන්න. ඕනෑම අවස්ථාවක, CH34x සහ PL-2303 චිප්ස් මත පදනම් වූ බහුලව භාවිතා වන USB-RS232TTL පරිවර්තක එවැනි අවස්ථාවක් සපයයි - මෙය තහවුරු කර ඇත. වෙනත් ජනප්‍රිය පරිවර්තක ද ගැටළුවක් නොවිය යුතුය, මන්ද සම්මත වින්ඩෝස් ක්‍රියාකාරකම් වරායට ප්‍රවේශ වීමට භාවිතා කරයි.

    සාමාන්‍ය රූප සටහනේ පෙන්වා ඇති ප්‍රතිරෝධක, ප්‍රතිපත්තිමය වශයෙන්, ස්ථාපනය කළ නොහැක, නමුත් තවමත් එය ස්ථාපනය කිරීම වඩා හොඳය. ඔවුන්ගේ අරමුණ කුමක්ද? පරිවර්තකයේ TTL "ආදාන සහ ප්‍රතිදානයන් සහ ක්ෂුද්‍ර පාලකයේ වෝල්ට් පහක බල සැපයුම භාවිතා කරමින්, එමඟින් අපි තාර්කික මට්ටම් වලට ගැලපීමේ අවශ්‍යතාවයෙන් මිදෙන්නෙමු - කෙසේ වෙතත් සියල්ල තරමක් නිවැරදි ය. මෙයින් අදහස් කරන්නේ සම්බන්ධතා සෘජු විය හැකි බවයි. නමුත් අත්හදා බැලීම් වලදී ඕනෑම දෙයක් සිදු විය හැකිය, උදාහරණයක් ලෙස, නීච නීතියට අනුව, ඉස්කුරුප්පු නියනක් කිසිදු ආකාරයකින් වැටිය නොහැකි ස්ථානයකට වැටිය හැකි අතර, කිසිම අවස්ථාවක වසා නොගත යුතු දෙයක් වසා දැමිය හැකිය. ඉස්කුරුප්පු නියනක්", ඇත්ත වශයෙන්ම, ඕනෑම දෙයක් සිදු විය හැක. මෙම නඩුවේ ප්රතිරෝධක සමහර විට ප්රතිවිපාක අඩු කරයි. ඔවුන්ගේ තවත් එක් අරමුණක් වන්නේ ප්රතිදාන ගැටුමක් ඉවත් කිරීමයි. ඇත්ත වශයෙන්ම ක්රමලේඛනය අවසානයේ ක්ෂුද්ර පාලකය සාමාන්ය ක්රියාකාරීත්වයට යයි. පරිවර්තකයේ (RTS, TXD හෝ DTR) ප්‍රතිදානයට සම්බන්ධ එහි ප්‍රතිදානය ද ප්‍රතිදානයක් බවට පත් විය හැකිය, MK හි දැන් වාර්තා කර ඇති වැඩසටහනකට අනුව, මෙම අවස්ථාවෙහිදී, සෘජුවම සම්බන්ධ ප්‍රතිදානයන් දෙකක් නම් එය ඉතා නරක වනු ඇත " අරගලය" - විවිධ තාර්කික මට්ටම් සැකසීමට උත්සාහ කිරීම. එවැනි "රණ්ඩුවකදී" කෙනෙකුට "පරාජය" කළ හැකිය, නමුත් අපට මෙය අවශ්ය නොවේ.

    ප්රතිරෝධක තුනේ අගයන් 4.3 kOhm මට්ටමින් තෝරා ඇත. පරිවර්තකයේ ප්රතිදානය සහ ක්ෂුද්ර පාලකයේ ආදානය අතර සම්බන්ධතා සඳහා මෙය අදාළ වේ. ප්‍රතිරෝධකවල නිරවද්‍යතාවය කාර්යභාරයක් ඉටු නොකරයි: ඔබට ඔවුන්ගේ ප්‍රතිරෝධය 1 KΩ දක්වා අඩු කළ හැකිය හෝ එය 10 KΩ දක්වා වැඩි කළ හැකිය (නමුත් දෙවන අවස්ථාවේ දී, MK වෙත යන මාර්ගයේ දිගු වයර් භාවිතා කරන විට මැදිහත් වීමේ අවදානම වැඩි වේ). පරිවර්තක ආදානය (CTS) සහ ක්ෂුද්‍ර පාලක ප්‍රතිදානය (MISO) අතර සම්බන්ධය සඳහා, 100 Ohm ප්‍රතිරෝධයක් මෙහි භාවිතා වේ. මෙය භාවිතා කරන ලද පරිවර්තකයේ ආදානයේ සුවිශේෂතා නිසාය. පරීක්ෂණ අතරතුර, PL-2303 චිපයක් මත පරිවර්තකයක් භාවිතා කරන ලද අතර, එහි යෙදවුම්, සාපේක්ෂව අඩු ප්‍රතිරෝධයක් සහිත (ඕම් සිය ගණනක අනුපිළිවෙලින්) බලය ප්ලස් දක්වා ඉහළට ඇද දමනු ලැබේ. "අල්-අප් මරන්න" මට මෙතරම් කුඩා ප්‍රතිරෝධයක් සහිත ප්‍රතිරෝධයක් දැමීමට සිදු විය. කෙසේ වෙතත්, ඔබට එය කිසිසේත් තැබිය නොහැක. පරිවර්තකය මත, මෙය සැමවිටම ආදානය වේ. එය පිටවීමක් බවට පත් විය නොහැක, එයින් අදහස් වන්නේ සිදුවීම් වර්ධනය වීමේදී පිටවීම් ගැටුමක් ඇති නොවන බවයි.

    IC සතුව A/D පරිවර්තකයක් බලගැන්වීම සඳහා වෙනම AVCC පින් එකක් තිබේ නම් (ATmega8 හෝ ATmega128 වැනි), එය VCC පොදු බල පින් එකට සම්බන්ධ කළ යුතුය. සමහර IC වල VCC power pin එකකට වඩා හෝ GND එකකට වඩා තිබේ. උදාහරණයක් ලෙස, ATmega128 හි GND පින් 3 ක් සහ VCC පින් 2 ක් ඇත. ස්ථිර සැලසුමක දී, එකම නමේ නිගමන එකිනෙකට සම්බන්ධ කිරීම වඩා හොඳය. අපගේ නඩුවේදී, ක්රමලේඛනය කරන අවස්ථාවේදී, ඔබට VCC සහ GND හි එක් ප්රතිදානයක් භාවිතා කළ හැකිය.

    මෙන්න ATtiny13 සම්බන්ධතාවය පෙනෙන්නේ කෙසේද යන්නයි. SPI හරහා ක්‍රමලේඛනය කිරීමේදී භාවිතා කරන පින් පැවරුම් රූපයේ දැක්වේ. ඡායාරූපය අසල - තාවකාලික සම්බන්ධතාවයක් යථාර්ථයේ පෙනෙන ආකාරය.


    යමෙක් මෙය බරපතල නොවන බව පැවසිය හැකිය - රැහැන් සම්බන්ධතා. නමුත් අපි සංවේදී මිනිස්සු. අපගේ ඉලක්කය වන්නේ අවම කාලයක් සහ වෙනත් සම්පත් සමඟ ක්ෂුද්‍ර පාලකය ක්‍රමලේඛනය කිරීම මිස යමෙකු ඉදිරියේ පෙන්වීම නොවේ. ගුණාත්මක භාවය දුක් විඳින්නේ නැත. මෙම නඩුවේ "පළ කිරීම් මත" ක්රමය බෙහෙවින් ඵලදායී සහ යුක්ති සහගත ය. පාලක ස්ථිරාංග යනු එක් වරක් ක්‍රියා පටිපාටියකි, එබැවින් එය "ස්ට්‍රැසීස්" සමඟ එල්ලීම තේරුමක් නැත. පරිපථයෙන් (නිමි භාණ්ඩයේ) ​​පාලකය ඉවත් නොකර අනාගතයේදී ස්ථිරාංග වෙනස් කිරීමට අදහස් කරන්නේ නම්, උපාංගය නිෂ්පාදනය කිරීමේදී ස්ථාපනය කිරීමේදී මෙය සැලකිල්ලට ගනී. සාමාන්‍යයෙන්, මෙම කාර්යය සඳහා සම්බන්ධකයක් ස්ථාපනය කර ඇත (RESET, SCK, MOSI, MISO, GND), සහ MK පුවරුවේ ස්ථාපනය කිරීමෙන් පසුව පවා දැල්විය හැකිය. නමුත් මේවා දැනටමත් නිර්මාණාත්මක සතුටක්. අපි සරලම නඩුව සලකා බලමු.

    දැන් අපි ATtiny44 MK වෙත යමු. මෙහි සෑම දෙයක්ම සමාන වේ. ඇඳීම සහ ඡායාරූපය අනුව, ආරම්භකයකුට පවා සම්බන්ධතාවය සොයා ගැනීමට අපහසු නොවනු ඇත. ATtiny44 මෙන්, ඔබට MK ATtiny24 සහ ATtiny84 සම්බන්ධ කළ හැකිය - මෙම ත්‍රිත්වය සඳහා පින් පැවරුම සමාන වේ.


    එහි ක්‍රමලේඛනය සඳහා පාලකයේ තාවකාලික සම්බන්ධතාවයේ තවත් උදාහරණයක් වන්නේ ATmega8 ය. මෙහි තවත් නිගමන ඇත, නමුත් මූලධර්මය එකම වේ - වයර් කිහිපයක්, සහ දැන් පාලකය එය තුලට තොරතුරු "පිරවීමට" සූදානම් වේ. පින් 13 වෙතින් එන ඡායාරූපයේ ඇති අමතර කළු වයරය ක්‍රමලේඛනයට සහභාගී නොවේ. MK ක්‍රමලේඛන මාදිලියෙන් පිටවීමෙන් පසු එය ශබ්ද සංඥාවක් ඉවත් කිරීමට සැලසුම් කර ඇත. මෙයට හේතුව "Perpetuum M" සඳහා ස්ක්‍රිප්ට් දෝෂහරණය කිරීමේදී සංගීත පෙට්ටි වැඩසටහන එම්කේ වෙත බාගත කිරීමයි.


    බොහෝ විට එක් පාලකයක් විවිධ අවස්ථා වලදී ලබා ගත හැකිය. මෙම අවස්ථාවෙහිදී, එක් එක් සිද්ධිය සඳහා නිගමන පැවරීම තමන්ගේම ආකාරයෙන් බෙදා හරිනු ලැබේ. ඔබගේ පාලකයේ නඩුව රූපයේ පෙන්වා ඇති ආකාරයට නොපෙනේ නම්, MK සංවර්ධකයාගේ වෙබ් අඩවියෙන් බාගත කළ හැකි තාක්ෂණික ලියකියවිලි අනුව අල්ෙපෙනතිවල අරමුණ සඳහන් කරන්න.

    පින්තූරය සම්පූර්ණ කිරීම සඳහා, "කකුල්" විශාල සංඛ්යාවක් සමඟ MK චිපයේ සම්බන්ධතාවය දෙස බලමු. පින් 15 න් එන ෆොටෝ එකේ තියෙන අමතර කළු වයර් එකේ අරමුණ හරියටම ATmega8 එකේ වගේ තමයි.


    සෑම දෙයක්ම ඉතා සරල බව ඔබ දැනටමත් දැක ඇති. ක්ෂුද්‍ර පරිපථවල නිගමන ගණනය කරන්නේ කෙසේදැයි දන්නේ කවුද (රවුමේ වාමාවර්තව ඇති සලකුණෙන්), ඔහු එය තේරුම් ගනීවි. ඒ වගේම පරිස්සම් වෙන්නත් අමතක කරන්න එපා. ක්ෂුද්‍ර පරිපථ පිළිවෙලට ආදරය කරන අතර තමන් කෙරෙහි නොසැලකිලිමත් ආකල්පයට සමාව නොදේ.

    මෘදුකාංග කොටස වෙත යාමට පෙර, USB-RS232TTL පරිවර්තක ධාවකය නිවැරදිව ස්ථාපනය කර ඇති බවට වග බලා ගන්න (වින්ඩෝස් උපාංග කළමනාකරු පරීක්ෂා කරන්න). ඔබ පරිවර්තකය සම්බන්ධ කරන විට දිස්වන අතථ්‍ය COM පෝට් අංකය මතක තබා ගන්න හෝ ලියන්න. මෙම අංකය ඔබට පහතින් කියවිය හැකි ස්ක්‍රිප්ටයේ පෙළෙහි ඇතුළත් කිරීමට අවශ්‍ය වනු ඇත.

    4. Script - "Perpetuum M" සඳහා ක්‍රමලේඛකයා

    අපි "ක්‍රමලේඛකයේ" දෘඪාංග කොටස හදුනා ගත්තෙමු. එය දැනටමත් සටනෙන් අඩකි. දැන් එය මෘදුකාංග කොටස සමඟ කටයුතු කිරීමට ඉතිරිව ඇත. ක්ෂුද්‍ර පාලකය සමඟ අන්තර්ක්‍රියා කිරීම සඳහා අවශ්‍ය සියලුම කාර්යයන් ක්‍රියාත්මක කරන ස්ක්‍රිප්ට් පාලනය යටතේ "Perpetuum M" වැඩසටහන මඟින් එහි කාර්යභාරය ඉටු කරනු ඇත.

    ස්ක්‍රිප්ට් සහිත ලේඛනාගාරය perpetuum.exe වැඩසටහන පිහිටා ඇති එකම ෆෝල්ඩරය තුළට ඉවත් කළ යුතුය. මෙම අවස්ථාවේදී, ඔබ perpetuum.exe ගොනුව ධාවනය කරන විට, ස්ථාපිත ස්ක්‍රිප්ට් ලැයිස්තුවක් සහිත මෙනුවක් තිරය මත දිස්වනු ඇත, ඒ අතර "MK AVR ක්‍රමලේඛකයා" යන පේළිය ඇත (එය එකම එක විය හැකිය). අපට අවශ්‍ය රේඛාව මෙයයි.

    ස්ක්‍රිප්ට් එක "MK Programmer AVR.pms" ගොනුවේ PMS ෆෝල්ඩරයේ පිහිටා ඇත. Windows Notepad වැනි පොදු පෙළ සංස්කාරකයක මෙම ගොනුව බැලීමට, අධ්‍යයනය කිරීමට සහ අවශ්‍ය පරිදි සංස්කරණය කිරීමට හැකිය. ස්ක්‍රිප්ට් භාවිතා කිරීමට පෙර, ඔබට බොහෝ විට වරාය සැකසීමට අදාළ පෙළට වෙනස්කම් කිරීමට අවශ්‍ය වනු ඇත. මෙය සිදු කිරීම සඳහා, වින්ඩෝස් උපාංග කළමනාකරු භාවිතා කරන වරායේ නම පරීක්ෂා කර, අවශ්ය නම්, "PortName="COM4" යන පේළියට සුදුසු සංශෝධනයක් කරන්න; - අංක 4 වෙනුවට වෙනත් අංකයක් තිබිය හැක. එසේම, වෙනත් USB-RS232TTL පරිවර්තක ආකෘතියක් භාවිතා කරන විට, සංඥා ප්‍රතිලෝම සැකසුම් වෙනස් කිරීමට අවශ්‍ය විය හැකිය ("ඉහළ" යන වචනයෙන් ආරම්භ වන ස්ක්‍රිප්ට් රේඛා). Perpetuum M වැඩසටහන (වරාය සමඟ වැඩ කිරීම සඳහා වන කාර්යයන් කොටස) සඳහා වන උපදෙස් වල එක් උදාහරණයක් භාවිතා කරමින් USB-RS232TTL පරිවර්තකය මඟින් සංඥා ප්‍රතිලෝම පරීක්ෂා කළ හැකිය.

    MK_AVR උප ෆෝල්ඩරයේ සහය දක්වන පාලකයන් පිළිබඳ විස්තර සහිත ගොනු අඩංගු වේ. අවශ්‍ය පාලකය ඔවුන් අතර නොමැති නම්, ඔබට අවශ්‍ය එක ඔබම එකතු කළ හැකිය, ප්‍රතිසමයෙන් ක්‍රියා කරයි. එක් ගොනුවක් නියැදියක් ලෙස ගෙන, පෙළ සංස්කාරකයක් භාවිතයෙන්, අවශ්‍ය දත්ත ඇතුළත් කරන්න, ඒවා ඔබේ ක්ෂුද්‍ර පාලකය සඳහා වන ලේඛනයෙන් ලබා ගන්න. ප්රධාන දෙය නම් ප්රවේශම් වන්න, දෝෂ නොමැතිව දත්ත ඇතුල් කරන්න, එසේ නොමැති නම් MK වැඩසටහන්ගත නොකෙරේ, නැතහොත් එය වැරදි ලෙස වැඩසටහන්ගත කරනු ලැබේ. මුල් පිටපත ක්ෂුද්‍ර පාලක 6ක් සඳහා සහය දක්වයි: ATtiny13, ATtiny24, ATtiny44, ATtiny84, ATmega8 සහ ATmega128. ස්ක්‍රිප්ට් සම්බන්ධිත පාලකය ස්වයංක්‍රීයව හඳුනාගැනීම ක්‍රියාත්මක කරයි - ඔබට එය අතින් නියම කිරීමට අවශ්‍ය නොවේ. පවතින විස්තර අතර MK වෙතින් කියවන හඳුනාගැනීමක් නොමැති නම්, පාලකය හඳුනාගත නොහැකි බවට පණිවිඩයක් දර්ශනය වේ.

    ස්ක්‍රිප්ට් සහිත ලේඛනාගාරයේ අමතර තොරතුරු ද අඩංගු වේ. "AVR controllers inc files" ෆෝල්ඩරයේ ඉතා ප්‍රයෝජනවත් සහ පුළුල් පාලක විස්තර ගොනු එකතුවක් අඩංගු වේ. MK සඳහා ඔබේම වැඩසටහන් ලිවීමේදී මෙම ගොනු භාවිතා වේ. තවත් ෆෝල්ඩර හතරක "MusicBox_..." එකලස් කිරීමේ වැඩසටහනක් සහ ATtiny13, ATtiny44, ATmega8 සහ ATmega128 සඳහා වෙන වෙනම MK වෙත බාගත කිරීමට සූදානම් ස්ථිරාංග සහිත ගොනු අඩංගු වේ. මෙම ලිපියේ යෝජනා කර ඇති පරිදි, ඔබ දැනටමත් මෙම MK වලින් එකක් වැඩසටහන්කරණය සඳහා සම්බන්ධ කර ඇත්නම්, ඔබට එය දැන් ෆ්ලෑෂ් කළ හැකිය - ඔබට සංගීත පෙට්ටියක් ලැබෙනු ඇත. ඒ පිළිබඳ වැඩි විස්තර පහතින්.

    ඔබ ස්ක්‍රිප්ට් මෙනුවේ "ක්‍රමලේඛක එම්කේ ඒවීආර්" පේළිය තෝරාගත් විට, ස්ක්‍රිප්ට් ක්‍රියාත්මක වීමට පටන් ගනී. ඒ සමගම, එය වරාය විවෘත කරයි, MC වෙත ක්‍රමලේඛන මාදිලියට මාරු වීමට විධානයක් යවයි, සාර්ථක සංක්‍රාන්තියක් පිළිබඳව MC වෙතින් තහවුරු කිරීමක් ලබා ගනී, MC හඳුනාගැනීම් ඉල්ලයි සහ මෙම MC පිළිබඳ විස්තරයක් එහි හැඳුනුම්කාරකය මගින් සොයයි. විස්තර සහිත ගොනු තිබේ. එය අවශ්ය විස්තරය සොයා නොගන්නේ නම්, එය සුදුසු පණිවිඩයක් නිකුත් කරයි. විස්තරය සොයාගතහොත්, ක්‍රමලේඛකයාගේ ප්‍රධාන මෙනුව විවෘත වේ. ඔබට එහි තිර රුවක් රූප සටහන 8 හි දැකිය හැකිය. එය තවදුරටත් හඳුනා ගැනීම අපහසු නැත - මෙනුව ඉතා සරල ය.

    ස්ක්‍රිප්ට් හි පළමු අනුවාදයේ, සම්පූර්ණ ක්‍රමලේඛකයෙකුගේ සමහර කාර්යයන් ක්‍රියාත්මක නොවේ. උදාහරණයක් ලෙස, EEPROM වෙත කියවීමට සහ ලිවීමට ක්‍රමයක් නොමැත. නමුත් ඔබ පෙළ සංස්කාරකයක් තුළ ස්ක්‍රිප්ට් එක විවෘත කළහොත්, එහි ප්‍රධාන දෙය දැනටමත් ක්‍රියාත්මක කර ඇති බවක් තිබියදීත්, එය ඉතා කුඩා ප්‍රමාණයක් ඇති බව ඔබට පෙනෙනු ඇත. මෙයින් ඇඟවෙන්නේ නැතිවූ විශේෂාංග එකතු කිරීම එතරම් අපහසු නොවන බවයි - භාෂාව ඉතා නම්‍යශීලී වේ, එය කුඩා වැඩසටහනක පොහොසත් ක්‍රියාකාරිත්වය ක්‍රියාත්මක කිරීමට ඔබට ඉඩ සලසයි. නමුත් බොහෝ අවස්ථා සඳහා, පවතින කාර්යයන් පවා ප්රමාණවත් වනු ඇත.

    සමහර ක්‍රියාකාරීත්ව සීමාවන් ස්ක්‍රිප්ට් පෙළෙහි කෙලින්ම විස්තර කර ඇත:
    //ක්‍රියාවට නැංවූ ලේඛනය ලිපින බිංදුවෙන් පමණි (දිගු කරන ලද කොටස් ලිපින වාර්තාව නොසලකා හරිනු ලැබේ, LOAD OFFSET ද වේ)
    //HEX ගොනුවේ වාර්තාවල අනුපිළිවෙල සහ අඛණ්ඩතාව පරීක්ෂා නොකෙරේ
    // චෙක්සම් පරීක්ෂා කර නැත
    MK සඳහා ස්ථිරාංග කේතය ලබා ගන්නා HEX ගොනුවක් සමඟ වැඩ කිරීමට මෙය අදාළ වේ. මෙම ගොනුව දූෂිත නොවේ නම්, චෙක්සම් පරීක්ෂා කිරීම කිසිවක් බලපාන්නේ නැත. එය විකෘති වී ඇත්නම්, පිටපත මගින් එය හඳුනා ගැනීමට නොහැකි වනු ඇත. බොහෝ අවස්ථාවන්හීදී ඉතිරි සීමාවන් හානියක් නොවනු ඇත, නමුත් ඔබ තවමත් ඒවා මතක තබා ගත යුතුය.

    5. සංගීත පෙට්ටිය - ආරම්භකයින් සඳහා පහසු අත්කම්

    ඔබට මෙම ක්ෂුද්‍ර පාලකයන්ගෙන් එකක් තිබේ නම්: ATtiny13, ATtiny44, ATmega8 හෝ ATmega128, ඔබට එය පහසුවෙන් සංගීත පෙට්ටියක් හෝ සංගීත කාඩ්පතක් බවට පත් කළ හැකිය. මෙය සිදු කිරීම සඳහා, ස්ක්‍රිප්ට් සමඟ එක් ලේඛනාගාරයක "MusicBox_..." ෆෝල්ඩරවල පිහිටා ඇති හතරෙන් එකක් වන MK වෙත සුදුසු ස්ථිරාංග ලිවීම ප්‍රමාණවත් වේ. ස්ථිරාංග කේත ".hex" දිගුව සහිත ගොනු වල ගබඩා කර ඇත. එවැනි යාත්රාවක් සඳහා ATmega128 භාවිතා කිරීම, ඇත්ත වශයෙන්ම, ATmega8 මෙන් "මේදය" වේ. නමුත් එය පරීක්ෂා කිරීම හෝ අත්හදා බැලීම සඳහා ප්රයෝජනවත් විය හැකිය, වෙනත් වචන වලින් - අධ්යාපනික අරමුණු සඳහා. Assembler වැඩසටහන් පෙළ ද අමුණා ඇත. වැඩසටහන් මුල සිටම නිර්මාණය කර නැත - A.V. Belov "ආධුනික ගුවන්විදුලි පුහුණුවීම්වල AVR මයික්‍රොකොන්ට්‍රෝලර්" පොතෙන් සංගීත පෙට්ටියේ වැඩසටහන පදනමක් ලෙස ගන්නා ලදී. මුල් වැඩසටහන සැලකිය යුතු වෙනස්කම් ගණනාවකට භාජනය වී ඇත:
    1. MK හතරෙන් එකක් සඳහා අනුවර්තනය කර ඇත: ATtiny13, ATtiny44, ATmega8 සහ ATmega128
    2. බොත්තම් ඉවත් කර ඇත - බලය සහ ශබ්ද විමෝචකයක් හැර වෙනත් කිසිවක් පාලකයට සම්බන්ධ කිරීම අවශ්‍ය නොවේ (තනු එකින් එක නිමක් නැති ලූපයකින් වාදනය වේ)
    3. සංගීත රිද්ම කැළඹීම් තුරන් කිරීම සඳහා එක් එක් සටහනේ කාලසීමාව සටහන් අතර විරාමයේ කාලසීමාව මගින් අඩු වේ
    4. අටවන තනුව සම්බන්ධ වී ඇත, පොත් අනුවාදයේ භාවිතා නොවේ
    5. ආත්මීය: ඇල්ගොරිතමයේ ප්‍රශස්තකරණය සහ පහසු සංජානනය සඳහා සමහර "වැඩිදියුණු කිරීම්"

    සමහර තනු වලදී කෙනෙකුට අසත්‍ය සහ වැරදි පවා ඇසෙනු ඇත, විශේෂයෙන් "සිනහව" - මැද. තනු කේත පොතෙන් ලබාගෙන ඇත (වඩාත් නිවැරදිව, මුල් asm-ගොනුව සමඟ කර්තෘගේ වෙබ් අඩවියෙන් බාගත කර ඇත) සහ වෙනස් කර නොමැත. පෙනෙන විදිහට, තනු සංකේතනය කිරීමේදී දෝෂ තිබේ. නමුත් මෙය ගැටළුවක් නොවේ - සංගීතය සමඟ "මිතුරන්" සිටින අය එය පහසුවෙන් හඳුනාගෙන සියල්ල නිවැරදි කරනු ඇත.

    ATtiny13 හි, සටහන් වාදනය කිරීම සඳහා 16-bit කවුන්ටරයක් ​​නොමැතිකම හේතුවෙන්, 8-bit එකක් භාවිතා කිරීමට අවශ්ය වූ අතර, එය සටහන් වල ශබ්දයේ නිරවද්යතාවයේ යම් අඩුවීමක් ඇති විය. නමුත් කනෙන් එය නොපෙනේ.

    වින්‍යාස බිටු ගැන. ඔවුන්ගේ සැකසුම නව ක්ෂුද්ර පාලකයේ තත්වයට අනුරූප විය යුතුය. ඔබගේ MCU මීට පෙර කොතැනක හෝ භාවිතා කර ඇත්නම්, ඔබ එහි වින්‍යාස බිටු වල තත්ත්වය පරීක්ෂා කළ යුතු අතර, අවශ්‍ය නම්, ඒවා නව ක්ෂුද්‍ර පාලකයේ සැකසුම් වලට අනුකූලව ගෙන එන්න. මෙම MK සඳහා වන ලියකියවිලි වලින් ඔබට නව ක්ෂුද්‍ර පාලකයේ වින්‍යාස බිටු වල තත්වය සොයාගත හැකිය ("ෆියුස් බිටු" කොටස). ව්යතිරේකය ATmega128 වේ. මෙම MCU සතුව M103C බිට් එකක් ඇති අතර එය පැරණි ATmega103 සමඟ අනුකූලතා මාදිලිය සක්‍රීය කරයි. M103C බිට් සක්‍රිය කිරීම ATmega128 හි හැකියාවන් බෙහෙවින් අඩු කරයි, සහ මෙම බිට් නව MK මත සක්‍රීය වේ. ඔබ M103C අක්‍රිය තත්වයට නැවත සැකසිය යුතුය. වින්‍යාස බිටු හැසිරවීමට, ක්‍රමලේඛක ස්ක්‍රිප්ට් මෙනුවේ අනුරූප කොටස භාවිතා කරන්න.

    සංගීත පෙට්ටියේ රූප සටහනක් ලබා දීම තේරුමක් නැත: එයට ඇත්තේ ක්ෂුද්‍ර පාලකයක්, බල සැපයුමක් සහ පීසෝ ශබ්ද විමෝචකයක් පමණි. එම්කේ ක්‍රමලේඛනය කිරීමේදී අප කළ ආකාරයටම විදුලිය සපයනු ලැබේ. ශබ්ද විමෝචකය පොදු වයරය (පාලකයේ GND ප්‍රතිදානය) සහ MK හි එක් ප්‍රතිදානයක් අතර සම්බන්ධ වී ඇති අතර, එම සංඛ්‍යාව වැඩසටහනේ එකලස් කිරීමේ කේතය (*.asm) සමඟ ගොනුවේ සොයාගත හැකිය. අදහස් දැක්වීම්වල එක් එක් MK සඳහා වැඩසටහනේ පෙළ ආරම්භයේ දී රේඛාවක් ඇත: "ශබ්ද සංඥාව ප්රතිදානය XX දී ජනනය වේ". ස්ක්‍රිප්ට්-ක්‍රමලේඛකය අවසන් වූ විට, ක්ෂුද්‍ර පාලකය ක්‍රමලේඛන මාදිලියෙන් පිටවී සාමාන්‍ය ක්‍රියාකාරී මාදිලියට මාරු වේ. ගීත නැවත ධාවනය වහාම ආරම්භ වේ. ශබ්ද විමෝචකයක් සම්බන්ධ කිරීමෙන්, ඔබට මෙය පරීක්ෂා කළ හැකිය. SPI හි භාවිතා නොකරන පින් එකකින් ශබ්දය ලබා ගන්නේ නම් පමණක් චිපය ක්‍රමලේඛනය කරන අතරතුර සවුන්ඩරය සම්බන්ධ කර තබන්න, එසේ නොමැතිනම් පින් එකේ ඇති අමතර ධාරිතාව ක්‍රමලේඛනයට බාධා කළ හැකිය.

    • වැඩසටහන් සඳහා මතකය (FLASH) - 1Kb
    • RAM - බයිට් 64
    • ආදාන / ප්‍රතිදාන ගණන - 6
    • PWM නිමැවුම් - 2
    • Analog inputs (ADC 10bit) - 4
    • ටයිමර් 8 බිට් - 1
    • සැපයුම් වෝල්ටීයතාව 1.8 - 5.5V
    • මෙහෙයුම් සංඛ්යාතය - 20 MHz දක්වා
    • ක්රියාකාරී මාදිලියේ පරිභෝජනය 1.8V / 1MHz - 190uA
    • නින්ද මාදිලියේ පරිභෝජනය 1.8V / 1MHz - 24uA

    ATtiny13 වැඩසටහන්කරණය

    වැඩසටහන්කරණය සඳහා, මම Arduino IDE සකස් කළෙමි. ඔබ දන්නා පරිදි, මෙම සංවර්ධන පරිසරය අතිරේක පාලකයන්ට සහාය විය හැක. උදාහරණයක් ලෙස, මෙම ලිපියෙන් මම Arduino IDE හි "ජනතාවගේ WiFi" ESP8266 ක්‍රමලේඛනය කරන්නේ කෙසේද යන්න ගැන කතා කළෙමි. arduino.cc වෙබ් අඩවියේ Arduino පරිසරයේ ATTiny13 ක්‍රමලේඛනය මගින් පිවිසි ත්‍රෙඩ් එකක් ඇත. මම 1.6.5 අනුවාදය ස්ථාපනය කර ඇත. මම Arduino archive සඳහා ATTiny core එක බාගන්නවා. මම එය c:\Program Files (x86)\Arduino\hardware\ ෆෝල්ඩරයට ගලවන අතර අමතර පුවරු Arduino IDE හි දිස්වේ.

    දැන් වැඩසටහන් බාගන්න. මයික්‍රොප්‍රොසෙසර මතක ප්‍රමාණය 1Kb පමණක් වන අතර එහි කිසිදු bootloader එකක් නොගැලපේ. එබැවින්, ස්කීචස් බාගත කිරීම ISP හරහා වැඩසටහන්කරු විසින් සිදු කරනු ලැබේ. මම Atmega328 වැඩසටහන්ගත කළ USBAsp, ටින්කා සමඟ වැඩ කිරීමට කැමති නොවීය. මට විශේෂ ක්‍රමලේඛක ස්ථිරාංගයක් අවශ්‍යයි, එය මට අවුල් කිරීමට අවශ්‍ය නොවීය. ඔබට ඕනෑම Arduino භාවිතයෙන් ක්ෂුද්‍ර පාලකය වැඩසටහන්ගත කළ හැක. මෙය සිදු කිරීම සඳහා, මම පහත යෝජනා ක්රමය එකතු කරමි:

    Arduino IDE හි, "File->Samples->ArduinoISP" තෝරා ක්‍රමලේඛක සටහන Arduino වෙත උඩුගත කරන්න. ඊට පස්සේ මම "Tools->Programmer->Arduino as ISP" තෝරන්න. දැන් ඔබට ටින්කා වෙත රූප සටහන් උඩුගත කළ හැකිය. Arduino සඳහා ATTiny13 core හි සීමිත Arduino ශ්‍රිත මාලාවක් අඩංගු බව සටහන් කළ යුතුය.

    වැඩ කරන විට, මම සැහැල්ලු මාර්ගෝපදේශ සහිත මේස නත්තල් ගසක් ඇත.

    නත්තල් ගසේ 12V හැලජන් බල්බයක් සහ ආලෝක මාර්ගෝපදේශවල වර්ණය වෙනස් කරන වර්ණ රවුම්-වර්ණ පෙරහනක් හරවන මෝටරයක් ​​තිබුණි. අවුරුදු 3ක් තිස්සේ විදුලි බුබුල සහ මෝටරය දෙකම මිය ගියා.

    එබැවින් ATtiny13 විසින් පාලනය කරන ලද RGB ටේප් කැබැල්ලකින් මෙම නත්තල් ගස ප්‍රතිසංස්කරණය කිරීමට මම තීරණය කළෙමි. ටේප් පාලනය ඉවත් කිරීම මේ ආකාරයෙන් සිදු විය:

    ට්‍රාන්සිස්ටර සහ ප්‍රතිරෝධක තුනක්, රේඛීය වෝල්ටීයතා නියාමකය සහ ටින්කා ම ය.

    ස්කීච් යනු විවිධ නාලිකා වල දීප්තියේ වෙනසක් සහිත නාලිකා තුනක PWM මෘදුකාංගයකි, එහි ප්‍රතිඵලයක් ලෙස ටේප් විවිධ වර්ණවලින් දිලිසෙනවා

    ඊට පසු, එය ඉතිරිව ඇත්තේ නත්තල් ගස් නඩුවේ පුවරුව සහ ටේප් සවි කිරීමට පමණි

    නඩුවේ ඇතුළත ආලෝකයේ පරාවර්තනය වැඩි දියුණු කිරීම සඳහා සුදු පටිය අලවා ඇත.



    ලිපියට කැමතිද? එය හුවමාරු කරගන්න