attiny2313 මත DIY පරිපථ. අපි සරල වැඩසටහනක් වන ATtiny2313 microcontroller වෙත බොත්තම සම්බන්ධ කරමු. MK හි වැඩසටහනේ සම්පාදනය සහ ස්ථිරාංග

සරල පරිපථයක් එකලස් කරන්නේ කෙසේද, ක්‍රමලේඛකයෙකු ATtiny2313 ක්ෂුද්‍ර පාලකයකට සම්බන්ධ කරන්නේ කෙසේද, ලියන ආකාරය සරලම වැඩසටහන C භාෂාවෙන් සහ අපගේ වැඩසටහන සමඟ ATtiny2313 ක්ෂුද්‍ර පාලකය ෆ්ලෑෂ් කරන්නේ කෙසේද, ඔබට මේ සියල්ල මෙම ලිපියෙන් සොයාගත හැකිය.

ඔක්කොටම කලින් අපිට programmer කෙනෙක් ඕනේ, programmers වර්ග ගොඩක් ඉන්නවා, අපි තෝරගන්න ඕනේ programmer එක මොකක්ද?
සාමාන්‍ය ක්‍රමලේඛකයින් සිටින අතර ඔබට ක්ෂුද්‍ර පාලකයක් ඇතුළු කිරීමට, එය ෆ්ලෑෂ් කිරීමට, ක්ෂුද්‍ර පාලකය ඉවත් කිරීමට සහ ප්‍රති result ලය බැලීමට එය අපගේ පුවරුවට ඇතුළු කිරීමට අවශ්‍ය වන අතර, මෙම අනුපිළිවෙල මුලින්ම සිය ගණනක් සිදු කිරීමට සිදුවනු ඇත, මෙම විකල්පය, මගේ මතය, පහසු නොවේ.
අපගේ ක්ෂුද්ර පාලකය ATtiny2313 SPI port හරහා ISP (In-System Programming) ක්‍රියාකාරිත්වයට සහය දක්වයි, මෙම පරිපත ක්‍රමලේඛන භාවිත අවස්ථාව ISPමගේ මතය අනුව වඩාත්ම පහසු සහ වේගවත්, මන්ද ... එක් එක් ස්ථිරාංග යාවත්කාලීන කිරීමෙන් පසු අපගේ පුවරුවෙන් ක්ෂුද්‍ර පාලකය ඉවත් කිරීමට අවශ්‍ය නැත; ඔබට ක්ෂුද්‍ර පාලකය සිය වතාවක් ක්‍රමලේඛනය කළ හැකි අතර ක්‍රමලේඛකයා පරිගණකයෙන් සහ පුවරුවෙන් විසන්ධි නොකර වහාම ක්ෂුද්‍ර පාලකය දැල්වීමෙන් පසු ප්‍රති result ලය බලන්න, නිදොස් කිරීමේ ක්‍රියාවලිය මෘදුකාංගආධුනික ගුවන්විදුලි උපාංගයක් ස්ථාපනය කිරීම සැලකිය යුතු ලෙස සරල කර ඇති අතර ඒ සඳහා ගත කරන කාලය අඩු වේ.
ඔබට පරිපථයේ ISP ක්‍රමලේඛකයෙකු ඔබම සාදා ගත හැකිය, අන්තර්ජාලයේ බොහෝ දේ ඇත සරල පරිපථ LPT හරහා මෙය සිදු කරන්නේ කෙසේද, COM වරාය, උදාහරණයක් ලෙස වැඩසටහන්කරුවෙකු PonyProgඑය සාදා ගන්නේ කෙසේද යන්න පිළිබඳව ඔබට අන්තර්ජාලයේ රූප සටහන් සොයාගත හැකිය.

මෙම ලිපිය ක්ෂුද්‍ර පාලක සඳහා පරිපත ISP ක්‍රමලේඛකයෙකු සමඟ වැඩ කිරීම ගැන සාකච්ඡා කරනු ඇත AVR (PX-400)එය COM port හරහා ක්රියා කරයි.
ඔබේ පරිගණකයේ COM පෝට් එකක් නොමැති නම්, ඔබට ඇඩප්ටරයක් ​​ද අවශ්‍ය වේ USB port COM වරායට, එවැනි ඇඩප්ටර වර්ග බොහොමයක් තිබේ, මම වැඩ කළ ඇඩැප්ටරය නිර්දේශ කරමි: UCON-232S USB සිට අනුක්‍රමික වරාය පරිවර්තක පුවරුව
වැඩසටහන්කරුගේ ඡායාරූපය PX-400, ඇඩප්ටරය UCON-232S USB , දත්ත පත්‍රිකාව ATTiny2313

මෙම යෝජනා ක්රමයේ සියලු විස්තර වඩාත් විස්තරාත්මකව බලමු:
(හරියට, මම chipdip.ru හිදී සියලුම කොටස්, ක්‍රමලේඛකයා, ඇඩැප්ටරය (USB සිට COM port දක්වා) මිලදී ගත්තා)

1 - PBD-20 පුවරු සොකට් 2.54mm 2x10 කෙළින්ම- මම මෙය කළේ පහසුව සඳහා, ක්ෂුද්‍ර පාලක අල්ෙපෙනති වලින් සංඥා පරීක්ෂා කිරීම පහසු කිරීම සඳහා ය; මෙම කරුණ කළ නොහැකි විය.
2 - SCS-20 DIP පැනලය 20 පින්- අවශ්‍ය නම් පුවරුවේ ඇති ක්ෂුද්‍ර පාලකය ප්‍රතිස්ථාපනය කිරීමට හැකි වන පරිදි අපි පුවරුව පුවරුවට පාස්සන්නෙමු,
ATtiny2313-20PU, DIP20, MCU, 5V, 1K-Flash, 12MHz- අපි ක්ෂුද්ර පාලකය DIP පැනලයට ඇතුල් කරන්නෙමු.
3 - ක්වාර්ට්ස් ස්ඵටික 4.000 MHz (කප්පාදු) HC-49S- ක්වාර්ට්ස් ස්ඵටික 4 MHz
4 - සෙරමික් ධාරිත්‍රකය K10-17B imp. 22pF NPO,5%,0805- 22pF සෙරමික් ධාරිත්‍රක දෙකක්
5 - 78M05 (+5V, 0.5A) TO220- 5V වෝල්ටීයතා ස්ථායීකාරකයක් +5V ට නොඅඩු ස්ථායී බලයක් සහිත ක්ෂුද්‍ර පාලකය සපයයි, මේ අවස්ථාවේ දී මට 4.4V ලැබුණි, එය ප්‍රමාණවත් වේ.
6 - NP-116 බල ප්ලග් 1.3x3.4x9.5mm MP-331 (7-0026c)- බල ප්ලග් එක පැරණි එකට පෑස්සුවා චාජර්සිට ජංගම දුරකථන DC 5.7V/800mA
7 - පුවරුවේ DS-213 බල සොකට්- පහසු බල සම්බන්ධතාවය සඳහා NP-116 ප්ලග් සඳහා බල සැපයුම කොහෙද
8 - IDC-10MS (BH-10), සෘජු ප්ලග්- පරිපථයේ ISP ක්‍රමලේඛකයෙකු සම්බන්ධ කිරීම සඳහා පේනුව
9 - නියත ප්රතිරෝධක 0.25W 150 Ohm- MISO, SCK, MOSI පින් මත ඕම් 150 ප්‍රතිරෝධක තුනක්
10 - නියත ප්රතිරෝධක 0.25W 47 Ohm- RESET පින් එකකට 47 Ohm ප්‍රතිරෝධකයක්
11 - උපාය බොත්තම h=5mm, TC-0103 (TS-A2PS-130)- බොත්තම RESET නැවත සකසන්න, බොත්තම එබීමෙන් පසු, ක්ෂුද්ර පාලකයේ වැඩසටහන ආරම්භයේ සිට ආරම්භ වේ, බොත්තම නිර්මාණය කළ නොහැකි විය.
12 - හරිත LED d=3mm, 2.5V, 2mA - දර්ශකයක කාර්යය ඉටු කරයි, මෙම අයිතමය කළ නොහැකි විය.
13 - නියත ප්රතිරෝධක 0.25W 110 Ohm- LED මත 2V පවතින පරිදි LED සඳහා ප්රතිරෝධකයක්, මෙම පියවර මඟ හැරිය හැක
14 - LED එකට සම්බන්ධ වයර් දෙකක්, microcontroller pins වලින් සංඥා පරීක්ෂා කිරීමට, මෙම පියවර සිදු කළ නොහැක
15 - Dip-RM මුද්‍රිත පාන් පුවරුව 100x100mm

Points 3 සහ 4 තනි ඒකකයක් ලෙස ක්‍රියා කරයි, බාහිර ඔරලෝසු උත්පාදක යන්ත්‍රයක් මෙන්, ඔබ අභ්‍යන්තර RC ඔසිලේටරයේ නිරවද්‍යතාවය සහ ස්ථායීතාවය මත ඉහළ ඉල්ලීම් නොකරන්නේ නම්, මෙම ලකුණු මඟ හැරිය හැක, අභ්‍යන්තර RC ඔසිලේටරයේ 10% ක පමණ දෝෂයක් ඇත. සහ උෂ්ණත්වය වෙනස් වීම මගින් නිරවද්‍යතාවය බලපෑ හැකිය.

ඉතින් ඔබ බාගත කර ස්ථාපනය කර ඇත Atmel Studio :
අපි දියත් කරමු Atmel Studio LED එකක් දැල්වමින් C භාෂාවෙන් සරල වැඩසටහනක් ලියන්න:
ක්ලික් කරන්න: නව ව්‍යාපෘතිය... \ AVR GCC \ C \ C ක්‍රියාත්මක කළ හැකි ව්‍යාපෘතිය
ව්‍යාපෘතිය සුරැකිය යුතු ෆෝල්ඩරය සහ ව්‍යාපෘතියේ නම සඳහන් කරන්න, උදාහරණයක් ලෙස Test1, සහ OK ක්ලික් කරන්න.
ලැයිස්තුවෙන්, අපගේ ATtiny2313 microcontroller තෝරා OK ක්ලික් කරන්න.
අපි කවුළුවේ දිස්වන සියල්ල මකා අපගේ වැඩසටහන් කේතය පහත අලවන්න:

#F_CPU 4000000L නිර්වචනය කරන්න //අපගේ බාහිර ක්වාර්ට්ස් 4 MHz වල සංඛ්‍යාතය සඳහන් කරන්න
#ඇතුළත්
#ඇතුළත්
int ප්‍රධාන (ශුන්‍ය)
{
//සියලු PORTB පින් ප්‍රතිදානයන් ලෙස සකසන්න
DDRB=0xFF;//තොරතුරු මාරු කිරීමේ දිශාව ලියාපදිංචි කරන්න (1-ප්‍රතිදානය, 0-ආදානය)
අතරතුර (1)
{
//දත්ත ලේඛනය PORTB (තොරතුරු ප්‍රතිදානය කිරීමට භාවිතා කරයි)
PORTB=0b00000001;//අපි MK PB0 හි වරාය 12 වෙත 1 සපයන්නෙමු - LED එක සක්‍රිය කරන්න
PORTB=0b00000000;//MK PB0 හි වරාය 12 වෙත 0 යොදන්න - LED එක ක්‍රියා විරහිත කරන්න
_delay_ms(1000);//තත්පර 1ක් ප්‍රමාද කරන්න.
}
}

මෙනුව වෙත යන්න Build\Configuration manager\ක්\u200dරියාකාරී විසඳුම් වින්\u200dයාසය\
තෝරා නිදහස් කරන්න, ඔබන්න වසන්න
අපි මේක කළේ ප්‍රොජෙක්ට් එකේ ෆෝල්ඩරයක් තියෙන්න පුළුවන් විදියට නිදහස් කරන්න, මම පහත කතා කරන්නම්.

ක්ලික් කරන්න F7, සූදානම්, අපගේ යෙදුම සම්පාදනය කර ඇත!
ATtiny2313 microcontroller ස්ථිරාංග ෆ්ලෑෂ් කිරීමට, අපට අවශ්‍ය වන්නේ දිගුව සහිත එක් ගොනුවක් පමණි. හෙක්ස්
එය අපගේ ව්‍යාපෘති ෆෝල්ඩරයේ පිහිටා ඇත: ...
කරුණාකර ගොනුව සටහන් කරන්න Test1.hexඑය ෆෝල්ඩරයෙන් ගන්න නිදහස් කරන්න !
ව්යාකූල නොවන්න, මන්ද ෆෝල්ඩරය දෝෂහරණය කරන්නගොනුවක් ද තිබේ Test1.hex, නමුත් මෙම ගොනුවේ තවමත් අඩංගු වේ නිදොස් කිරීමේ තොරතුරුසහ මේ නිසා, ඔබට මෙම ගොනුව සමඟ ෆ්ලෑෂ් කිරීමට නොහැකි වනු ඇත. එය සාමාන්යයෙන් සිදු වේ විශාල ප්රමාණයසහ MK හි මතකයට නොගැලපේ.

අපට .hex ගොනුව හමු විය, දැන් අපට ATtiny2313 ක්ෂුද්‍ර පාලකය ෆ්ලෑෂ් කිරීමට වැඩසටහනක් අවශ්‍ය වේ, එවැනි වැඩසටහන් රාශියක් ඇත, නමුත් අපි වැඩසටහන භාවිතා කරන්නෙමු: Avr-Osp II
බාගත:

අපි ක්‍රමලේඛකයා අපගේ පරිපථයට සම්බන්ධ කර, පරිපථයට බලය සැපයීමට වග බලා ගන්න!

වැඩසටහන දියත් කරන්න Avr-Osp II, FLASH කොටසේ ගොනුව වෙත යන මාර්ගය සඳහන් කරන්න... \Test1\Test1\Release\Test1.hex, වැඩසටහනේ ඇති කොටු පරීක්ෂා කර බොත්තම ඔබන්න වැඩසටහනඒක තමයි, microcontroller ATtiny2313 දැල්වී ඇත!

In-circuit ISP ක්‍රමලේඛකයන්ගේ වාසිය කුමක්ද?දැන්, අපගේ පරිපථයෙන් වයර් විසන්ධි නොකර, ඔබට වැඩසටහනේ වෙනස්කම් කළ හැකි අතර, ඉහත විස්තර කර ඇති පරිදි, ක්ෂුද්‍ර පාලකය ෆ්ලෑෂ් කර වහාම ප්‍රති result ලය බලන්න.

කරුණාකර අපගේ සංසදයේ ප්‍රශ්න සහ අදහස් තබන්න

AVR RISC ගෘහ නිර්මාණ ශිල්පය:

RISC (අඩු කරන ලද උපදෙස් කට්ටල පරිගණකය). මෙම ගෘහ නිර්මාණ ශිල්පය ඇත විශාල කට්ටලයක්උපදෙස්, බහුතරයක් යන්ත්‍ර චක්‍රයක් තුළ ක්‍රියාත්මක වේ. CISC ගෘහ නිර්මාණ ශිල්පය (උදාහරණයක් ලෙස, MCS51) මත පදනම් වූ පෙර ක්ෂුද්‍ර පාලක හා සසඳන විට RISC ක්ෂුද්‍ර පාලක 12 ගුණයකින් වේගවත් බව එයින් කියවේ.

නැතහොත් අපි යම් කාර්ය සාධන මට්ටමක් පදනමක් ලෙස ගතහොත්, පසුව ඉටු කිරීමට මෙම කොන්දේසිය RISC (Attiny2313) මත පදනම් වූ ක්ෂුද්‍ර පාලක සඳහා උත්පාදකයේ ඔරලෝසු සංඛ්‍යාතය 12 ගුණයකින් අඩු අවශ්‍ය වන අතර එමඟින් බලශක්ති පරිභෝජනය සැලකිය යුතු ලෙස අඩු වේ. මේ සම්බන්ධයෙන්, එය නිර්මාණය කිරීමට හැකි වේ විවිධ උපාංග Attiny2313 මත, බැටරි බලය භාවිතා කරමින්.

මෙහෙයුම් ගබඩා උපාංගය (RAM) සහ දත්ත සහ වැඩසටහන් වල වාෂ්පශීලී නොවන මතකය:

  • 2 KB ස්වයං-ක්‍රමලේඛනය කළ හැකි ෆ්ලෑෂ් ක්‍රමලේඛ මතකයේ 10,000ක් ලිවීමට/මැකීමට පුනරාවර්තන ලබා දිය හැක.
  • පුනරාවර්තන 100,000ක් ලිවීම/මැකීම සැපයිය හැකි EEPROM ලිවිය හැකි දත්ත මතකයේ බයිට් 128ක්.
  • බයිට් 128 SRAM මතකය (කියවීමට පමණක් RAM).
  • වැඩසටහන් කේතය සහ EEPROM දත්ත ආරක්ෂා කිරීම සඳහා කාර්යය භාවිතා කළ හැකිය.

පර්යන්ත ගුණාංග:

  1. ක්ෂුද්ර පාලකය Attiny2313 256 ක උපරිම සංගුණකයක් සහිත වෙන වෙනම ස්ථාපනය කරන ලද ප්‍රෙස්කේලර් සමඟ බිට් අටක ටයිමර් කවුන්ටරයකින් සමන්විත වේ.
  2. වෙනම ප්‍රෙස්කේලර්, ග්‍රහණ සහ සැසඳීමේ පරිපථයක් සහිත දහසය-බිට් ටයිමර්-කවුන්ටරයක් ​​ද ඇත. ටයිමරය ඔරලෝසු කර ඇත - කවුන්ටරය වෙනස් විය හැක බාහිර මූලාශ්රයසංඥාව, සහ අභ්යන්තරයෙන්.
  3. නාලිකා දෙකක්. අදියර නිවැරදි කිරීම සමඟ වේගවත් PWM මොඩියුලේෂන් සහ PWM මෙහෙයුම් ආකාරයක් ඇත.
  4. අභ්යන්තර ඇනලොග් සංසන්දනකය.
  5. අභ්‍යන්තර ඔස්කිලේටරය සහිත මුර බල්ලා ටයිමරය (වැඩසටහන් කළ හැකි).
  6. Serial Universal Interface (USI).

Attiny2313 හි විශේෂ තාක්ෂණික දර්ශක:


  • නිෂ්ක්‍රීයයි- Idle mode. මෙම අවස්ථාවේදී, මධ්යම ප්රොසෙසරය පමණක් වැඩ කිරීම නතර කරයි. Idle SPI, analog comparator, A/D converter, counter timer, watchdog, හෝ interrupt system වල ක්‍රියාකාරිත්වයට බලපාන්නේ නැත. ඇත්ත වශයෙන්ම, එය කර්නල් සමමුහුර්තකරණය පමණක් නතර කරයි මධ්යම ප්රොසෙසරයසහ ෆ්ලෑෂ් මතකය. Attiny2313 ක්ෂුද්‍ර පාලකය බාහිර හෝ අභ්‍යන්තර බාධාවකින් Idle මාදිලියේ සිට සාමාන්‍ය ක්‍රියාකාරිත්වයට පැමිණේ.
  • බලය අඩු කිරීම- Attiny2313 ක්ෂුද්‍ර පාලකය ඇත්ත වශයෙන්ම බලශක්ති පරිභෝජනයෙන් ක්‍රියා විරහිත කර ඇති වඩාත්ම ආර්ථිකමය මාදිලිය. මෙම තත්වය තුළ, ඔරලෝසු උත්පාදක යන්ත්රය නතර වන අතර සියලුම පර්යන්තයන් නිවා දමනු ලැබේ. බාහිර මූලාශ්‍රයකින් ලැබෙන බාධා සැකසුම් මොඩියුලය පමණක් සක්‍රියව පවතී. බාධාවක් අනාවරණය වූ විට, Attiny2313 ක්ෂුද්‍ර පාලකය Power-down පිටවී සාමාන්‍ය ක්‍රියාකාරිත්වයට පැමිණේ.
  • සුදානමින් සිටීම- ක්ෂුද්‍ර පාලකය SLEE විධානය භාවිතයෙන් මෙම බල පරිභෝජන පොරොත්තු මාදිලියට මාරු වේ. මෙය වසා දැමීම හා සමානයි, එකම වෙනස වන්නේ ඔරලෝසුව දිගටම ක්‍රියාත්මක වීමයි.

Attiny2313 ක්ෂුද්‍ර පාලකයේ ආදාන-ප්‍රතිදාන වරායන්:

ක්ෂුද්‍ර පාලකයේ I/O පින් 18ක් ඇති අතර ඒවා සැලසුම් අවශ්‍යතා මත පදනම්ව වැඩසටහන්ගත කළ හැක නිශ්චිත උපාංගය. මෙම වරායන්හි නිමැවුම් බෆරවලට සාපේක්ෂව ඉහළ බරකට ඔරොත්තු දිය හැකිය.

  • වරාය A (PA2 - PA0) - බිටු 3. වැඩසටහන්ගත කළ හැකි පුල්-අප් ප්‍රතිරෝධක සහිත ද්විපාර්ශ්වික I/O වරාය.
  • වරාය B (PB7 - PB0) - බිටු 8 යි. වැඩසටහන්ගත කළ හැකි පුල්-අප් ප්‍රතිරෝධක සහිත ද්විපාර්ශ්වික I/O වරාය.
  • වරාය D (PD6 - PD0) - බිටු 7. වැඩසටහන්ගත කළ හැකි පුල්-අප් ප්‍රතිරෝධක සහිත ද්විපාර්ශ්වික I/O වරාය.

සැපයුම් වෝල්ටීයතා පරාසය:

ක්ෂුද්‍ර පාලකය වෝල්ට් 1.8 සිට 5.5 දක්වා සැපයුම් වෝල්ටීයතාවයකින් සාර්ථකව ක්‍රියාත්මක වේ. වත්මන් පරිභෝජනය පාලකයේ මෙහෙයුම් ආකාරය මත රඳා පවතී:

ක්‍රියාකාරී මාදිලිය:

  • 20 µA ඔරලෝසු සංඛ්‍යාතය 32 kHz සහ සැපයුම් වෝල්ටීයතාව 1.8 වෝල්ට්.
  • 300 µA ඔරලෝසු සංඛ්‍යාත 1 MHz සහ සැපයුම් වෝල්ටීයතාව 1.8 වෝල්ට්.

බලශක්ති ඉතිරිකිරීමේ මාදිලිය:

  • වෝල්ට් 1.8 ක සැපයුම් වෝල්ටීයතාවයකින් 0.5 µA.

(3.6 Mb, බාගත්: 5,934)

මෙම ලිපියේ උපාංගය SD කාඩ්පත් සමඟ වැඩ කරයි. මාතෘකාව පැරණි වන අතර තරමක් අපහසුයි, නමුත් SD කාඩ්පත් භාවිතය ඒ ගැන නැවත ලිවීම වටී.
සාමාන්යයෙන්, SD කාඩ්පත් (SDC, SD Card) බොහෝ වාසි ඇති අතර කුඩා කාවැද්දූ ව්යාපෘතිවල භාවිතා කිරීමට ඉතා සරල සහ පහසුය. සාධක ගණනාවක් මෙයට දායක වේ:
- කාඩ්පත සමඟ අන්තර් ක්රියා කිරීම සඳහා ඉතා සරල අතුරු මුහුණතක් (SPI හරහා ක්රියාත්මක කර ඇත);
- ඉහළ මෙහෙයුම් වේගය (ක්ෂුද්‍ර පාලකය 10 Mbit/s ට ආසන්න වේගයකින් SD කාඩ්පතකින් දත්ත මාරු කිරීමට සමත් වේ);
- අඩු බලශක්ති පරිභෝජනය (වචනාර්ථයෙන් මිලිඇම්ප් කිහිපයක් - තවත් නැත);
- කුඩා ප්රමාණ;
- ලබා ගත හැකි සහ අඩු පිරිවැය.
SD කාඩ්පත්වල ප්‍රායෝගිකව කිසිදු අඩුපාඩුවක් නොමැත (සමහර විට, ඒවායේ ආරම්භක ක්‍රියා පටිපාටිය හැර :)).

1. හැඳින්වීම.

මම මෙම ලිපියේ විස්තර කර ඇති උපාංගය SD Card Talking Device ලෙස හැඳින්වුවෙමි. ටිකක් මවාපෑමක්;), නමුත් මෙය කතා කරන උපාංගයක් බව නමෙන් පැහැදිලි වේ. එය ඔබගේ ව්‍යාපෘති සඳහා හඬක් නැගීමට අදහස් කෙරේ. කෙටියෙන් කිවහොත්, එය පහත පරිදි ක්‍රියා කරයි: අංකිත ශබ්ද ගොනු SD කාඩ්පතේ සටහන් කර ඇති අතර, උපාංගය ඔබගේ විධානය අනුව ක්‍රියා කරයි. යෙදුමේ විෂය පථය තරමක් පුළුල් ය - අනතුරු ඇඟවීමේ පද්ධති, සෙල්ලම් බඩු, රොබෝවරු, ස්මාර්ට් හවුස්ආදිය උපාංගයේ මානයන් තරමක් නිහතමානී ය (එය කුඩා විය හැක, නමුත් මම හිතාමතාම ATtiny2313 microcontroller තෝරා ගත්තෙමි, එය ලාභදායී සහ ලබා ගැනීමට පහසුය). මම සරල බව සහ උපරිම ක්රියාකාරිත්වය මත ප්රධාන වශයෙන් අවධාරණය කිරීමට උත්සාහ කළෙමි.
ඉදිරිය දෙස බලන විට, අවසානයේ සිදු විය යුතු දේ බලමු:

එවැනි උපකරණයක් ප්රයෝජනවත්ද? එහෙනම් එකතු කරමු!

2 මතක කාඩ්පත.

උපාංගය SD මතක කාඩ්පතක් භාවිතා කරයි. තෝරා ගැනීමට හේතු ගැන මම දැනටමත් ලියා ඇත, SD කාඩ්පත් සම්මත මතක කාඩ්පතක් බවට පත්වෙමින් පවතින බව පමණක් මම එකතු කරමි. ජංගම උපාංග. ඔවුන්ගේ මතක කාඩ්පත් වර්ග උමතුවෙන් ප්‍රවර්ධනය කරන/ප්‍රවර්ධනය කරන නිෂ්පාදකයින් පවා සෙමෙන් SD කාඩ්පත් භාවිතා කිරීමට පටන් ගනී. එවැනි ජනප්රියත්වයට හේතුව බොහෝ විට මෙම කාඩ්පත්වල අඩු මිල විය හැකිය. ආධුනික උපාංග සඳහා, SD කාඩ්පත, ඇත්ත වශයෙන්ම, භාවිතයට සුදුසු එකම කාඩ්පත වන අතර, මේ සඳහා හේතුව එය සමඟ වැඩ කිරීම සඳහා සරල අතුරු මුහුණතයි.

SD කාඩ්පත පරිණාමයේ දිගු ගමනක් පැමිණ ඇති අතර එය ක්‍රියාත්මක කිරීම සඳහා විකල්ප කිහිපයක් ඇත (MMC - SD කාඩ් විකල්පයක් ලෙස, SD ver1, SD ver2, SDHC, SDXC). කාඩ්පත සමඟ සන්නිවේදනය කිරීමේ ක්‍රියා පටිපාටිය සියලු වර්ගවල කාඩ්පත් සඳහා සරල සහ විශ්වීය ය, නමුත් එය ක්‍රියාත්මක කිරීම (කාඩ්පත ආරම්භ කිරීම) තරමක් අපැහැදිලි සහ ව්‍යාකූල ක්‍රියාවලියකි, චාරිත්‍රානුකූලව කාඩ්පත “ජර කිරීම”, හිස් “ඩමි” විධාන යැවීම. සහ වෙනත් තේරුම්ගත නොහැකි දේවල් (කෙටියෙන් කිවහොත්, රබන් සමඟ නැටීම අවශ්ය වේ :)). SDC ප්‍රොටෝකෝලය සඳහා වන පිරිවිතරයන් විසින්ම ආරම්භ කිරීමේ ක්‍රියාවලිය තරමක් විස්තරාත්මකව විස්තර කරයි, එය තේරුම් ගත හැකි ය; කාඩ්පත් නිෂ්පාදකයින් විශාල ප්‍රමාණයක් ඇත, සෑම කෙනෙකුටම තමන්ගේම දෘඩාංග ඇත, ඔවුන්ගේම ලක්ෂණ ඇත... මා ලබා ගන්නේ කුමක් ද? - මම ආරම්භක ක්‍රියා පටිපාටිය හැකි තරම් විශ්වීය කිරීමට උත්සාහ කළ නමුත් සමහර කාඩ්පත් ක්‍රියා නොකරනු ඇති බවට සූදානම්ව සිටින්න. එමනිසා, ඔබගේ උපාංගය සමඟ යමක් හොඳින් සිදු නොවන්නේ නම්, වෙනත් මතක කාඩ්පතක් උත්සාහ කරන්න - මෙය හේතුව විය හැකිය.

තුල මෙම උපාංගයප්‍රමාණයෙන් 2 GB දක්වා SD කාඩ්පත් සඳහා සහය දක්වයි. ඉහළ සියල්ල (SDHC සහ SDXC) සහය නොදක්වයි.
කාඩ්පත කුමන ආකාර සාධකය (SD, MiniSD හෝ MicroSD) යන්න උපාංගයට වෙනසක් නැත, නමුත් ඔබ එය නිවැරදිව සම්බන්ධ කළ යුතුය, කාඩ්පත් pinout අනුව.

3 ගොනු පද්ධතිය.

උපාංගය FAT16 ගොනු පද්ධතිය සමඟ කාඩ්පත් භාවිතා කරයි. මෙම ක්‍රමය අප වැනි උපාංග සඳහා ඉතා යෝග්‍ය වේ, එය සරල සහ ක්‍රියාත්මක කිරීමට පහසු බැවින් (FAT12 සහ FAT32, ප්‍රතිපත්තිමය වශයෙන්, ක්‍රියාත්මක කිරීම අපහසු නැත, නමුත් FAT16 හා සසඳන විට කිසිදු වාසියක් නොමැතිකම නිසා මෙය ප්‍රායෝගික නොවේ).

කාඩ්පත හැඩතල ගැන්වීම සඳහා විශේෂ අවශ්‍යතා නොමැත - එය පවතින ඕනෑම උපාංගයකින් ආකෘතිගත කළ හැක. සම්මත කවුළු හැඩතල ගැන්වීමමෙම අරමුණු සඳහා බෙහෙවින් සුදුසු ය.

උපාංගය නිවැරදිව ක්‍රියාත්මක වීමට නම්, SD කාඩ්පතේ ඇති ශබ්ද ගොනු ඇතැම් අවශ්‍යතා සපුරාලිය යුතුය:
අ) ගොනු ආකෘතිය සම්පීඩනය නොකළ WAV විය යුතුය.
ගොනු පරාමිතීන් පහත පරිදි වේ:
- බිට්රේට් - නියැදීමේ සංඛ්යාතය (සංඛ්යාතය) - 32000 Hz;
- නාලිකා ගණන (නාලිකා) - 1 (මොනෝ);
- නියැදි ප්රමාණය - බිටු 8 යි.
හැකි තවත් අඩු කිරීමක් වන්නේ WAV PCM 8U ය

b) ගොනුව විශේෂ ආකාරයකින් නම් කළ යුතුය. පළමු, දෙවන, තෙවන, යනාදිය කුමන ගොනුව දැයි උපාංගය දැන ගැනීම සඳහා. ගොනු නාමයේ පළමු අක්ෂරය ලතින් හෝඩියේ ලොකු අකුරක් විය යුතුය (ගොනු දිගුව වැනි ඉතිරි නම නොසලකා හරිනු ලැබේ).
උදාහරණයක් ලෙස, පහත ගොනු නාමයන් නිවැරදි වනු ඇත:
A_Lai_dog.wav - පළමු ධාවන පථය
B-මෙය දෙවන ධාවන පථයයි.wav - දෙවන ධාවන පථයයි
අනතුරු ඇඟවීමක් සමඟ! දෝෂය!.wav - තුන්වන ධාවන පථය

ඇ) උපාංගයේ අතිරේක විශේෂාංග භාවිතා කිරීම සඳහා, ගොනු "1" සහ "2" නම් ෆෝල්ඩර දෙකක ස්ථානගත කළ හැක. උපාංගයට සක්‍රීය ෆෝල්ඩරය තේරීම සඳහා ස්විචයක් ඇත, එනම්, නැවත ධාවනය ආරම්භ කිරීමට ඇති එකම විධානය මාරු කිරීමේ ආදානයේ මට්ටම මත පදනම්ව “1” හෝ “2” ෆෝල්ඩරයෙන් ධාවන පථ වාදනය කළ හැකිය (ශබ්ද යෝජනා ක්‍රමයේ තේරීමක් - ඉතා ප්රයෝජනවත් දෙයක්!) . ෆෝල්ඩර වලින් එකක් (හෝ දෙකම) නොපවතියි නම්, ගොනු මූල නාමාවලියෙන් වාදනය වේ.

ඔබට වෙනත් ඕනෑම ගොනු ශ්‍රව්‍ය පීලි සමඟ ගබඩා කළ හැකිය, ඒවා ඔවුන්ගේ නම් සමඟ ගැටුම් ඇති නොකරන්නේ නම් (ඒවා වෙනම නාමාවලියක තැබීම වඩා හොඳය, එවිට ඒවා එහි නම් කර ඇති ආකාරය පිළිබඳව අවධානය යොමු කිරීමට අවශ්‍ය නොවේ).

d) ATtiny2313 හි SRAM කුඩා ප්‍රමාණය නිසා, දත්ත පෙර කියවීම සඳහා බෆරයක් සෑදිය නොහැක, එබැවින් ගොනුවේ දත්ත නැවත ධාවනය සඳහා සෘජුවම ප්‍රතිදානය වේ. ඒ අනුව, FAT වගුව භාවිතයෙන් ගොනු කොටස් සෙවීමට ක්‍රමයක් (ප්‍රමාණවත් කාලයක් නොමැත) නොමැත. වෙනත් වචන වලින් කිවහොත්, කාඩ්පතට ලියා ඇති ගොනු ඛණ්ඩනය නොකළ යුතුය.

ඇත්ත වශයෙන්ම, මෙය විශාල ගැටළුවක් නොවේ, මන්දයත් මෙහෙයුම් පද්ධතියසෑම විටම ගොනුව සම්පූර්ණ කොටසක් ලෙස ලිවීමට උත්සාහ කරන අතර ඔබට කාඩ්පතේ ඉඩ ඇති තාක් කල්, ගොනු සමඟ ඕනෑම ක්රියාවක් (මකා දැමීම, පිටපත් කිරීම, නැවත නම් කිරීම) ඒවායේ අඛණ්ඩතාවට බලපාන්නේ නැත. ඔබට ඉතා කුඩා කාඩ්පතක් තිබේ නම් හෝ ඔබ විශාල කාඩ්පතක් ධාරිතාවයට පුරවා ඇත්නම්, ගොනු වල අඛණ්ඩතාව සහතික කිරීම සඳහා, ඒවා සරලව පිටපත් කරන්න HDDපරිගණකය, කාඩ්පත ෆෝමැට් කර ගොනු නැවත ලබා ගන්න.

4 යෝජනා ක්රමය. මුද්රිත පරිපථ පුවරුව.

උපාංග රූප සටහන හැකි තරම් සරල ය. ඇත්ත වශයෙන්ම, ක්ෂුද්ර පාලකය සහ SD කාඩ්පත හැරුණු විට, එහි කිසිවක් නොමැත. මා වෙනුවෙන්, මම මෙම උපාංගය සීමිත මානයන් සහිත ස්ථානයක භාවිතා කිරීමට අදහස් කරන බැවින්, SMD සංරචක සඳහා සංඥාවක් සෑදුවෙමි. මානයන් ඔබට තීරණාත්මක නොවේ නම්, ඔබට DIP අනුවාදයේ පාන් පුවරුවක පරිපථය එකලස් කළ හැකිය. බ්‍රෙඩ්බෝඩ් එකක නම්, උපාංගය එකලස් කිරීමට ඔබට උපරිම වශයෙන් විනාඩි 15ක් ගතවේ. SD කාඩ්පතක් සඳහා අවසර ලත් සැපයුම් වෝල්ටීයතාවය වෝල්ට් 2.7 සිට 3.6 දක්වා වේ. ක්ෂුද්‍ර පාලකය ද මෙම කාල පරතරය තුළ සාමාන්‍යයෙන් ක්‍රියා කරයි, එබැවින් ගැලපෙන සංරචක භාවිතා කිරීමට අවශ්‍ය නොවේ. මම සම්පූර්ණ උපාංගයේ ක්‍රියාකාරිත්වය සහ වෝල්ට් 5 ක බල සැපයුමක් සමඟ පරීක්ෂා කළෙමි - සියල්ල හොඳින් ක්‍රියාත්මක විය, නමුත් මෙය කිරීමට මම නිර්දේශ නොකරමි ස්ථිර පදනම, විවිධ කාඩ්පත් අධි වෝල්ටීයතාවයට වෙනස් ලෙස ප්‍රතික්‍රියා කළ හැකි බැවිනි. මම මයික්‍රෝ එස්ඩී කාඩ් දරන්නා ලෙස ඇඩැප්ටරයක් ​​භාවිතා කළෙමි, එය කෙලින්ම එහි සම්බන්ධතා වෙත පෑස්සුවෙමි. ඔබට කුඩා මානයන් අවශ්ය නම්, microSD සඳහා සැබෑ කාඩ්පත් හිමියෙකු භාවිතා කිරීම වඩා හොඳය.

මයික්‍රොකොන්ට්‍රෝලර් ස්ථිරාංග ෆ්ලෑෂ් කිරීම සඳහා, SD කාඩ්පත සඳහා එකම සම්බන්ධකය භාවිතා කරයි, එබැවින් ක්‍රමලේඛකයා එයට සම්බන්ධ කරන්නේ කෙසේදැයි ඔබට සිතා බැලිය යුතුය (මම විශේෂයෙන් ඇඩැප්ටරයක් ​​සාදන ලදී).

පුවරුව පෑස්සීමෙන් පසු, ඔබට ක්ෂුද්ර පාලකය ෆ්ලෑෂ් කළ හැකිය.

නිමි උපාංගයේ කුඩා ගැලරිය:




යෝජනා ක්රමය සම්බන්ධයෙන් කුඩා සූක්ෂ්මතාවයක්.
SD කාඩ්පතක් කාඩ්පත් හිමියෙකුට ස්ථාපනය කරන විට (කාඩ්පත බල ප්‍රභවයකට සම්බන්ධ කිරීම), ධාරා රැල්ලක් නිර්මාණය වන අතර, ඒ අනුව, පරිපථයේ වෝල්ටීයතා පහත වැටීමක් (මේ අවස්ථාවේ කාඩ්පතේ සැලකිය යුතු ධාරිතාවක් අය කරන බව පෙනේ). ක්ෂුද්‍ර පාලකය නැවත සකසන තරමට ඇද වැටීම ඉතා වැදගත් වේ. කාඩ්පත් ආරම්භ කිරීමේ ක්‍රියා පටිපාටිය ආරම්භ කිරීමට මම මෙය භාවිතා කරමි (කාඩ්පත ස්ථාපනය කිරීමෙන් ක්ෂුද්‍ර පාලකය නැවත ආරම්භ වන අතර ස්ථිරාංග කරන පළමු දෙය වන්නේ කාඩ්පත සෙවීම සහ ආරම්භ කිරීමයි). කාඩ්පතක් ස්ථාපනය කිරීමේදී ඔබ ක්ෂුද්‍ර පාලකය නැවත සකසන්නේ නැතිනම් (බලවත් බල සැපයුමක් හෝ විශාල සුමට ධාරිත්‍රකයක්), එවිට ඔබ ක්ෂුද්‍ර පාලකය අතින් නැවත සැකසීම සඳහා පරිපථයේ යළි පිහිටුවීමේ බොත්තම ගැන සැලකිලිමත් විය යුතුය (මෙය ඔබ “උණුසුම්” කිරීමට අදහස් කරන්නේ නම්. කාඩ්පත් වෙනස් කරන්න).

5 උපාංග ක්‍රියාකාරිත්වය.

මා ඉහත ලියා ඇති පරිදි, උපාංගය සමඟ වැඩ කිරීම ඉතා සරල ය: නිවැරදිව නම් කරන ලද පීලි SD කාඩ්පතට පිටපත් කරන්න, කාඩ්පත කාඩ්පත් හිමියාට ඇතුල් කරන්න, උපාංගය ස්වයංක්‍රීයව කාඩ්පත සොයා ගනී, හරිත LED සක්‍රිය කරන්න - එයයි, උපාංගය ධාවන පථ වාදනය කිරීමට සූදානම්. දැන් ඔබට අවශ්‍ය වන්නේ ඔබට වඩාත් ගැලපෙන ආකාරයෙන් ධාවන පථය තෝරාගෙන වාදනය කිරීම ආරම්භ කිරීමයි.

5.1 උපාංග බොත්තම් සහ ඒවායේ ක්‍රියා.

මම උපාංගය හැකිතාක් ක්‍රියාකාරී කිරීමට උත්සාහ කළෙමි, එබැවින් ක්ෂුද්‍ර පාලක කකුල් බොහොමයක් මෙහෙයුම් මාදිලියේ ස්විච සඳහා භාවිතා වේ (මෙය උපාංගය හෙඩ්ජෝග් එකකට සමාන කරයි :)). ඔබට කිසිදු කාර්යයක් අවශ්ය නොවේ නම්, ඔබේ කකුල "වාතයේ" එල්ලා තබන්න.
ක්‍රියාව මාරු කරන්න:
- "Monster" - ධාවන පථයේ නැවත ධාවනය මන්දගාමී කිරීමට (2 වතාවක්) ඔබට ඉඩ සලසයි - අඩු හඬක බලපෑම නිර්මාණය කරයි. ස්විචය "පියාසරයේදී" ක්‍රියා කරයි - මාරුවීමේදී වේගය වෙනස් වේ;
- "හීලියම්" - ධාවන පථයේ නැවත ධාවනය වේගවත් කරයි (1/3 කින්) - උස් හඬක බලපෑම නිර්මාණය කරයි. ස්විචය පියාසර කිරීමේදී ක්රියා කරයි;
- "නැවත කරන්න" මෙම ස්විචය බිමට කෙටි නම්, තෝරාගත් ධාවන පථය නිමක් නැතිව වාදනය වේ (ස්විචය විවෘත වන තුරු). මෙය ප්‍රයෝජනවත් විය හැකිය, උදාහරණයක් ලෙස, ඔබට නිශ්චිත ශබ්ද පසුබිමක් නිර්මාණය කිරීමට අවශ්‍ය නම් - වැසි ශබ්දය, දැවෙන ගින්නක්, ඇළක මැසිවිලි...;
- නැවත ධාවනය සඳහා ධාවන පථය ආරම්භ කරන "තෝරන්න / වාදනය කරන්න" බොත්තම (පහත විස්තරය);
- "පථය තෝරන්න" - ධාවන පථයේ අංකය සැකසීම (පහත විස්තරය);
- "Dir1 / Dir2" - ශබ්ද පටිපාටියක් තෝරන්න (පහත විස්තරය).

5.2 නැවත ධාවනය ආරම්භ කරන්න.

නිශ්චිත ධාවන පථයක් වාදනය කිරීම ආරම්භ කිරීමට ක්රම තුනක් තිබේ:
- UART හරහා ලතින් හෝඩියේ ලොකු අකුරක් යැවීමෙන්, නමේ ආරම්භයේ ඇති මෙම අකුර අඩංගු ගොනුව නැවත ධාවනය කිරීම වහාම ආරම්භ වේ;
- "පථය තෝරන්න" භාවිතා කරන්නේ නම්, ගොනු අංකය තෝරා ඇත (ද්වීය කේතය 0001="A", 0010="B", ආදිය. 1 - කකුල බිම වැසී ඇත, 0 - "වාතයේ" එල්ලී ඇත), එවිට "තෝරන්න / වාදනය කරන්න" බොත්තම නැවත ධාවනය සඳහා අනුරූප ගොනුව ආරම්භ කරනු ඇත;
- "පථය තෝරන්න" (0000 - "වාතයේ" කකුල් "එල්ලෙන්න") භාවිතයෙන් කිසිවක් තෝරා නොගන්නේ නම්, "තෝරන්න / සෙල්ලම් කරන්න" බොත්තම නිශ්චිත වාර ගණනක් එබීමෙන් අපි අනුරූප ධාවන පථය දියත් කරමු (1 වරක් = "A", 2 වරක් ="B", ආදිය).

5.3 ශබ්ද යෝජනා ක්රම.

ඉතා ප්රයෝජනවත් අංගයක් වන්නේ ශබ්ද යෝජනා ක්රම දෙකෙන් එකක් තෝරාගැනීමේ කාර්යයයි. මෙයින් අදහස් කරන්නේ “Dir1 / Dir2” ස්විචය ධාවන පථය වාදනය වන කාඩ්පතේ ෆෝල්ඩරය තෝරා ගන්නා බවයි.

යෙදුම් රාශියක් ඇත: රුසියානු සහ ඉංග්‍රීසි (අධ්‍යාපනික සෙල්ලම් බඩු), ළමා සහ වැඩිහිටි කටහඬ, ගලා යන ජලය සහ දැවෙන ගින්නේ ශබ්දය, බළලා / බල්ලා, හොඳ සහ නරක පොලිස්කාරයා :), සන්සුන් / ප්‍රබෝධමත් කරන ශබ්ද සහ තවත් බොහෝ දේ ඇත. සමාන විකල්ප.

උදාහරණයක් ලෙස, පිරිමි සහ ගැහැණු කටහඬකින් සන්නිවේදනය කිරීමට ඔබට ඔබගේ උපාංගය අවශ්‍ය වේ. එය මේ ආකාරයට ක්‍රියාත්මක වේ:
- ගැහැණු සහ පිරිමි අනුවාදවල පිළිවෙලින් පණිවිඩ කට්ටල දෙකක් සාදන්න;
- විකල්ප දෙකම සඳහා ගොනු අංකනය සමාන වේ. උපාංගය "දකින්නේ" ගොනු නාමයේ පළමු අකුර පමණක් බව අමතක නොකරන්න, එවිට ඔබට නම් වඩාත් තේරුම්ගත හැකි පරිදි සකස් කළ හැකිය, උදාහරණයක් ලෙස, "S_Waiting for command_male.wav" සහ "S_Waiting for command_female.wav" වේ. නිවැරදි;
- පිරිමි පණිවිඩ කට්ටලය "1" ෆෝල්ඩරයට සහ කාන්තාවන්ගේ පණිවිඩ "2" ෆෝල්ඩරයට පිටපත් කරන්න.
දැන්, "Dir1 / Dir2" ස්විචයේ තත්වය අනුව, එම විධානය "පිරිමි" හෝ "කාන්තා" ෆෝල්ඩරයෙන් ධාවන පථ වාදනය කරනු ඇත.

5.4 උපාංගයේ ක්රියාකාරිත්වය පිළිබඳ ඇඟවීම.

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

5.5 දෝශ නිරාකරණ තොරතුරු.

ගැටළු සහිත ප්රදේශ සොයා ගැනීම පහසු කිරීම සඳහා (උපාංගය වැඩ කිරීමට අවශ්ය නොවේ නම්), මම UART හරහා පණිවිඩ සමඟ වැඩසටහනේ එක් එක් ආරම්භක අදියර අනුපිටපත් කළෙමි. සෑම සාර්ථක පියවරකටම පසුව, අනුරූප අක්ෂරය UART වෙත යවනු ලැබේ:
- “S” - (ආරම්භය) ක්ෂුද්‍ර පාලක පර්යන්ත සාමාන්‍යයෙන් ආරම්භ කර ඇත;
- “C” - (Card Init) SD කාඩ්පත සාමාන්‍යයෙන් ආරම්භ කර ඇති අතර සහය දක්වයි;
- "F" - (FAT Init) FAT පද්ධතියආධාරක;
- “1” - (අංක 1 Dir) ෆෝල්ඩරයක් නොමැත “1” කියවීම මූල නාමාවලියෙන් සිදු කෙරේ;
- “2” - (අංක 2 Dir) ෆෝල්ඩරයක් නොමැත “2” කියවීම මූල නාමාවලියෙන් සිදු කෙරේ;
- "R" - (සූදානම්) උපාංගය සම්පූර්ණයෙන්ම සූදානම් - ධාවන පථය ආරම්භ කිරීමට විධානය බලාපොරොත්තුවෙන්;
- ඊට අමතරව, ධාවන පථයක් ආරම්භ කරන සෑම අවස්ථාවකම, ධාවන පථයේ නමේ ලොකු අකුර UART වෙත සම්ප්‍රේෂණය වේ.

6 ඔබේ උපාංග හඬකැවීම් සඳහා ඛණ්ඩ.

6.1 ධාවන පථ පරිවර්තනය කිරීම

ඉහත පුස්තකාලයේ ඔබ සුදුසු කිසිවක් සොයා නොගත්තේ නම්, ඔබට අවශ්‍ය පීලි අන්තර්ජාලයෙන් ලබා ගත හැකිය (සංගීත ශිල්පීන් සහ වීඩියෝ සංස්කරණය සඳහා විශේෂ අඩවි රාශියක් ඇත, විශාල ශබ්ද පුස්තකාල දැනටමත් එකතු කර ඇත), ක්‍රීඩා ස්ථාපනයන් ( බොහෝ විට ක්‍රීඩා ශබ්ද ධාවන පථවලට බෙදා වෙනම ෆෝල්ඩරයකට දමනු ලැබේ). ඔබට චිත්‍රපට සහ සංගීත සංයුති වලින් ශබ්ද ප්‍රයෝග කපා හැරිය හැක. සොයාගත් ධාවන පථ උපාංගය සහාය දක්වන ආකෘතියක් බවට පරිවර්තනය කළ යුතුය. ගොනු ආකෘතිය සංකෝචනය නොකළ WAV විය යුතු බව මම ඔබට මතක් කරමි. 32000 Hz, 1 නාලිකාව, 8 bit (WAV PCM 8U)
ඕනෑම සංගීත සංස්කාරකයක් මෙම ආකෘතියට පරිවර්තනය කිරීම සඳහා සුදුසු වේ, හෝ, ඔබට එය සංස්කරණය නොකර ධාවන පථයක් පරිවර්තනය කිරීමට අවශ්‍ය නම් -

සාපේක්ෂව මෑත නිෂ්පාදන වසරවල බොහෝ ගෘහස්ත උපකරණ සහ කාර්මික ස්වයංක්‍රීයකරණ උපාංග යාන්ත්‍රික කවුන්ටර සවි කර ඇත. ඒවා වාහක පටියක නිෂ්පාදන, වංගු කිරීමේ යන්ත්‍රවල කම්බි හැරීම් යනාදිය අසාර්ථක වූ විට, සමාන මීටරයක් ​​සොයා ගැනීම පහසු නැත, අමතර කොටස් නොමැතිකම නිසා එය අලුත්වැඩියා කළ නොහැක. යාන්ත්රික කවුන්ටරය ඉලෙක්ට්රොනික එකක් සමඟ ප්රතිස්ථාපනය කිරීමට කතුවරයා යෝජනා කරයි. යාන්ත්‍රික එකක් ප්‍රතිස්ථාපනය කිරීම සඳහා සංවර්ධනය කරන ලද ඉලෙක්ට්‍රොනික කවුන්ටරයක්, එය අඩු සහ මධ්‍යම මට්ටමේ ඒකාබද්ධතාවයකින් යුත් ක්ෂුද්‍ර පරිපථ මත ගොඩනගා ඇත්නම් (උදාහරණයක් ලෙස, K176, K561 ශ්‍රේණිය) ඉතා සංකීර්ණ වේ. විශේෂයෙන්ම ප්‍රතිලෝම ගිණුමක් අවශ්‍ය නම්. තවද බලය නිවා දැමූ විට ප්රතිඵලය සුරැකීම සඳහා, එය සැපයීම අවශ්ය වේ උපස්ථ බැටරියපෝෂණය.

නමුත් ඔබට එක් චිපයක් මත කවුන්ටරයක් ​​සෑදිය හැකිය - විශ්වීය වැඩසටහන්ගත කළ හැකි ක්ෂුද්‍ර පාලකයක්, එයට විවිධ පර්යන්තසහ ඉතා පුළුල් පරාසයක ගැටළු විසඳීමට හැකියාව ඇත. බොහෝ ක්ෂුද්‍ර පාලකයන්ට විශේෂ මතක ප්‍රදේශයක් ඇත - EEPROM. එයට ලියා ඇති දත්ත (වැඩසටහන් ක්‍රියාත්මක කිරීමේදී ඇතුළුව), උදාහරණයක් ලෙස, වත්මන් ගණන් කිරීමේ ප්‍රති result ලය, බලය අක්‍රිය කිරීමෙන් පසුව පවා සුරකිනු ලැබේ.

යෝජිත කවුන්ටරය Almel වෙතින් AVR පවුලෙන් Attiny2313 microcontroller භාවිතා කරයි. උපාංගය ප්‍රතිලෝම ගණන් කිරීම ක්‍රියාත්මක කරයි, නොසැලකිය යුතු අවලංගු කිරීම සමඟ ප්‍රතිඵලය පෙන්වයි

බලය අක්‍රිය වූ විට ප්‍රතිඵලය EEPROM හි ගබඩා කරමින් ඉලක්කම් හතරක LED දර්ශකයක් මත වද කරන්න. සැපයුම් වෝල්ටීයතාවයේ අඩු වීමක් කාලෝචිත ලෙස හඳුනා ගැනීම සඳහා ක්ෂුද්ර පාලකය තුළට ගොඩනගා ඇති ඇනලොග් සංසන්දකය භාවිතා කරයි. කවුන්ටරය බලය අක්රිය කරන විට ගණන් කිරීමේ ප්රතිඵලය මතක තබා ගනී, එය ක්රියාත්මක වන විට එය ප්රතිෂ්ඨාපනය කරයි, සහ, යාන්ත්රික කවුන්ටරය හා සමානව, යළි පිහිටුවීමේ බොත්තමකින් සමන්විත වේ.

ප්රති පරිපථය රූපයේ දැක්වේ. LED දර්ශකය HL1 මත ගණන් කිරීමේ ප්‍රතිඵලයේ ගතික ඇඟවීම සංවිධානය කිරීම සඳහා වරාය B (РВ2-РВ7) පේළි හයක් සහ වරාය D (PDO, PD1, PD4-PD6) පේළි පහක් භාවිතා කරයි. ෆොටෝට්‍රාන්සිස්ටර VT1 සහ VT2 වල එකතුකරන්නන් ලෝඩ් යනු ක්ෂුද්‍ර පාලකය තුළට ගොඩනගා ඇති ප්‍රතිරෝධක වන අතර ක්ෂුද්‍ර පාලකයේ අනුරූප කටු එහි බල සැපයුම් පරිපථයට සම්බන්ධ කරන මෘදුකාංගයක් මඟින් සක්‍රීය කර ඇත.

විමෝචන ඩයෝඩය VD1 සහ ෆොටෝට්‍රාන්සිස්ටරය VT1 අතර දෘශ්‍ය සම්බන්ධතාවයට බාධා වන මොහොතේදී N හි ගණන් කිරීමේ ප්‍රති result ලය එකකින් වැඩි වීමක් සිදු වේ, එමඟින් ක්ෂුද්‍ර පාලකයේ INT0 ආදානයේදී වැඩිවන මට්ටමේ වෙනසක් ඇති කරයි. මෙම අවස්ථාවේදී, INT1 ආදානයේ මට්ටම අඩු විය යුතුය, එනම්, ෆොටෝට්‍රාන්සිස්ටරය VT2 විමෝචක ඩයෝඩය VD2 මගින් ආලෝකමත් කළ යුතුය. INT1 ආදානයේ වැඩිවන අවකලනයක් සහ INT0 ආදානයේ අඩු මට්ටමක පවතින මොහොතේදී, ප්‍රතිඵලය එකකින් අඩු වනු ඇත. වෙනත් මට්ටම් සංයෝජන සහ INT0 සහ INT1 යෙදවුම් වල ඒවායේ වෙනස්කම් ගණන් කිරීමේ ප්‍රතිඵලය වෙනස් නොකරයි.

9999 උපරිම අගයට ළඟා වූ පසු, ගණන් කිරීම බිංදුවෙන් දිගටම සිදු වේ. ශුන්‍ය අගයෙන් එකක් අඩු කිරීමෙන් 9999 ප්‍රතිඵලය ලැබේ. ගණන් කිරීම අවශ්‍ය නොවේ නම්, ඔබට විමෝචක ඩයෝඩ VD2 සහ ෆොටෝට්‍රාන්සිස්ටර VT2 කවුන්ටරයෙන් බැහැර කර ක්ෂුද්‍ර පාලකයේ INT1 ආදානය පොදු වයරයට සම්බන්ධ කළ හැක. ගණන් කිරීම දිගටම වැඩි වනු ඇත.

දැනටමත් සඳහන් කර ඇති පරිදි, සැපයුම් වෝල්ටීයතාවයේ අඩු වීමක් අනාවරකය වන්නේ ක්ෂුද්ර පාලකය තුළට ගොඩනගා ඇති ඇනලොග් සංසන්දකයයි. එය සෘජුකාරකයේ (ඩයෝඩ පාලම VD3) නිමැවුමේ අස්ථායී වෝල්ටීයතාවය ඒකාබද්ධ ස්ථායීකාරක DA1 හි නිමැවුමේ ස්ථායී වෝල්ටීයතාවය සමඟ සංසන්දනය කරයි. වැඩසටහන චක්‍රීයව සංසන්දකයාගේ තත්වය පරීක්ෂා කරයි. ජාලයෙන් මීටරය විසන්ධි කිරීමෙන් පසු, සෘජුකාරක පෙරහන් ධාරිත්රක C1 මත වෝල්ටීයතාව පහත වැටෙන අතර, ස්ථාවර වෝල්ටීයතාව යම් කාලයක් සඳහා නොවෙනස්ව පවතී. ප්රතිරෝධක R2-R4 පහත පරිදි තෝරා ඇත. මෙම තත්වය තුළ සංසන්දනය කරන්නාගේ තත්වය ආපසු හැරෙන බව. මෙය අනාවරණය කර ගැනීමෙන් පසු, බලය අක්‍රිය වීම හේතුවෙන් ක්‍රියා විරහිත වීමට පෙර පවා ක්ෂුද්‍ර පාලකයේ EEPROM වෙත වත්මන් ගණන් කිරීමේ ප්‍රතිඵලය ලිවීමට වැඩසටහන කළමනාකරණය කරයි. ඊළඟ වතාවේ ඔබ එය සක්රිය කරන විට, වැඩසටහන EERROM හි ලියා ඇති අංකය කියවා එය දර්ශකයේ පෙන්වනු ඇත. මෙම අගයෙන් ගණන් කිරීම දිගටම කරගෙන යනු ඇත.

සීමිත ක්ෂුද්‍ර පාලක කටු සංඛ්‍යාව හේතුවෙන්, කවුන්ටරය නැවත සකසන SB1 බොත්තම සම්බන්ධ කිරීම සඳහා, pin 13 භාවිතා කරන ලදී, එය සංසන්දකයේ (AIM) ප්‍රතිලෝම ප්‍රතිසම ආදානය ලෙස සහ ඒ සමඟම “ඩිජිටල්” ආදානය ලෙස ක්‍රියා කරයි. PB1. මෙහි ඇති වෝල්ටීයතා බෙදුම්කරු (ප්‍රතිරෝධක R4, R5) ක්ෂුද්‍ර පාලකය මගින් අවබෝධ වන මට්ටම ඉහළ තාර්කික ලෙස සකසයි.ඔබ SB1 බොත්තම එබූ විට එය අඩු වේ. AIN0 ආදානයේ වෝල්ටීයතාව තවමත් AIN1 ට වඩා වැඩි බැවින් මෙය සංසන්දකයේ තත්වයට බලපාන්නේ නැත.

SB1 බොත්තම එබූ විට, වැඩසටහන දර්ශකයේ සියලුම ඉලක්කම්වල සෘණ ලකුණක් පෙන්වයි, එය මුදා හැරීමෙන් පසු එය බිංදුවෙන් ගණන් කිරීමට පටන් ගනී. බොත්තම එබූ විට ඔබ මීටරයේ බලය අක්රිය කළහොත්, වත්මන් ප්රතිඵලය EEPROM වෙත නොලියනු ඇති අතර, එහි ගබඩා කර ඇති අගය එලෙසම පවතිනු ඇත.

වැඩසටහන සැලසුම් කර ඇත්තේ එය වෙනත් දර්ශක සමඟ (උදාහරණයක් ලෙස, පොදු කැතෝඩ සමඟ) විවිධ රැහැන් සහිතව මීටරයකට පහසුවෙන් අනුවර්තනය කළ හැකි ආකාරයට ය. මුද්රිත පරිපථ පුවරුවආදිය භාවිතා කරන විට වැඩසටහනේ සුළු නිවැරදි කිරීමක් අවශ්ය වනු ඇත ක්වාර්ට්ස් අනුනාදකයනිශ්චිත සංඛ්‍යාතයෙන් 1 MHz ට වඩා වෙනස් වන සංඛ්‍යාතයකට.

ප්‍රභව වෝල්ටීයතාවය 15 V වන විට, සාමාන්‍ය වයරයට සාපේක්ෂව ක්ෂුද්‍ර පාලක පැනලයේ 12 සහ 13 pins හි වෝල්ටීයතාවය මැන බලන්න (pin 10). පළමුවැන්න 4 ... 4.5 V පරාසයක තිබිය යුතු අතර, දෙවනුව 3.5 V ට වඩා වැඩි විය යුතුය, නමුත් පළමු එකට වඩා අඩුය. ඊළඟට, මූලාශ්ර වෝල්ටීයතාව ක්රමයෙන් අඩු වේ. එය 9 ... 10 V දක්වා පහත වැටෙන විට, අල්ෙපෙනති 12 සහ 13 හි වෝල්ටීයතා අගයන්හි වෙනස ශුන්‍ය බවට පත් විය යුතු අතර පසුව ලකුණ වෙනස් කළ යුතුය.

දැන් ඔබට ක්‍රමලේඛනගත ක්ෂුද්‍ර පාලකය පැනලයට ස්ථාපනය කර, ට්‍රාන්ස්ෆෝමරය සම්බන්ධ කර එයට ප්‍රධාන වෝල්ටීයතාව යෙදිය හැකිය. 1.5 ... 2 s පසු ඔබට SB1 බොත්තම එබිය යුතුය. කවුන්ටර දර්ශකය මඟින් අංක 0 පෙන්වනු ඇත. දර්ශකයේ කිසිවක් නොපෙන්වයි නම්, ක්ෂුද්‍ර පාලකයේ AIN0.AIN1 ආදානවල වෝල්ටීයතා අගයන් නැවත පරීක්ෂා කරන්න. පළමුවැන්න දෙවැන්නට වඩා විශාල විය යුතුය.

කවුන්ටරය සාර්ථකව දියත් කළ විට, ඉතිරිව ඇත්තේ IR කිරණවලට පාරාන්ධ තහඩුවකින් ෆොටෝ ට්‍රාන්සිස්ටර විකල්ප වශයෙන් සෙවන කිරීමෙන් ගණන් කිරීමේ නිවැරදි භාවය පරීක්ෂා කිරීමයි. සදහා වඩා විශාල වෙනසරතු කාබනික වීදුරු පෙරහන සමඟ දර්ශක ආවරණය කිරීම යෝග්ය වේ.

අද අපි වැඩිපුර ප්‍රයෝජන ගැනීමට උත්සාහ කරමු සරල ක්ෂුද්ර පාලකය ATtiny2313සහ සංකේතාත්මක එකක් එයට සම්බන්ධ කරන්න LCD සංදර්ශකය, අක්ෂර 16 ක පේළි දෙකක් අඩංගු වේ.

අපි සංදර්ශකය සම්බන්ධ කරන්නෙමු සම්මත ආකාරයෙන් 4-බිට් මාර්ගය.

පළමුව, අපි පෙර පාඩම් වලින් සංදර්ශකය ගැන දැනටමත් හොඳින් දන්නා බැවින්, ඇත්ත වශයෙන්ම, ක්ෂුද්‍ර පාලකය සමඟ ආරම්භ කරමු.

අපි පාලක දත්ත පත්‍රිකාව විවෘත කරමු ATtiny2313සහ අපි බලමු එහි පින්අවුට් එක

අපි ඒක දකිනවා මෙම පාලකයඅවස්ථා දෙකකින් පවතී, නමුත් එය ඩීඅයිපී නඩුවක මගේ අතට පැමිණි බැවින්, අපි මෙම නඩුවේ මෙම විශේෂිත අනුවාදය සලකා බලමු, ප්‍රතිපත්තිමය වශයෙන්, ඒවා පෙනුමෙන් හැර බොහෝ වෙනස් නොවේ, මන්ද කකුල් ගණන එකම - 20 දී.

ATMega8 පාලකයේ කකුල් 28 හා සසඳන විට කකුල් 20 ක් ඇති බැවින්, අප දිගින් දිගටම වැඩ කරමින් සිටින අතර දිගටම වැඩ කරනු ඇත, එවිට, ඒ අනුව, අඩු හැකියාවන් ද ඇත.

ප්‍රතිපත්තිමය වශයෙන්, ATmega8 සතුව තිබූ සියල්ල මෙහි ඇත, එකම දෙය නම් වරාය නියපොතු අඩු වීමයි. නමුත් අප ඉදිරියේ ඇති කාර්යය වන්නේ වෙනත් පාලකයක් සමඟ SPI බසය හරහා එය සම්බන්ධ කිරීමට උත්සාහ කිරීම නිසා, මෙය අපව බොහෝ කලකිරීමට පත් නොකරයි.

වෙනත් වෙනස්කම් ඇත, නමුත් ඒවා සුළු වන අතර අවශ්‍ය පරිදි අපි ඒවා දැන හඳුනා ගන්නෙමු.

අපි මේ වගේ පරිපථයක් එකතු කරමු (රූපය විශාල කර බැලීමට පින්තූරය මත ක්ලික් කරන්න)

සංදර්ශකය D වරායේ අල්ෙපෙනති වලට සම්බන්ධ කර ඇත. PD1 සහ PD2 පාලන ආදාන වලට වන අතර ඉතිරිය D4-D7 දර්ශණ මොඩියුලයේ අල්ෙපෙනති වලට සම්බන්ධ වේ.

අපි TINY2313_LCD නමින් ව්‍යාපෘතියක් නිර්මාණය කරමු, සංදර්ශකය Atmega8 වෙත සම්බන්ධ කිරීමේ ව්‍යාපෘතියේ ප්‍රධාන මොඩියුලය හැර සියල්ල එයට මාරු කරමු.

ඇත්ත වශයෙන්ම, සමහර දේවල් නැවත කිරීමට අවශ්ය වනු ඇත. මෙය සිදු කිරීම සඳහා, ඔබ කුමන කකුලට සම්බන්ධ වී ඇත්දැයි හොඳින් අධ්‍යයනය කළ යුතුය. සංදර්ශකයේ E බසය PD2 වෙත සම්බන්ධ කර ඇති අතර RS බස් රථය PD1 වෙත සම්බන්ධ කර ඇත, එබැවින් අපි ගොනුවේ වෙනස්කම් සිදු කරමු. lcd.h

#නිර්වචනය කරන්නe1PORTD|=0b0000 01 00 // පේළිය E සිට 1 දක්වා සකසන්න

#නිර්වචනය කරන්නe0PORTD&=0b1111 10 11 // පේළිය E සිට 0 දක්වා සකසන්න

#නිර්වචනය කරන්නරු.1PORTD|=0b00000 01 0 // RS රේඛාව 1 ට සකසන්න (දත්ත)

#නිර්වචනය කරන්නරුපියල් 0PORTD&=0b11111 10 1 // RS රේඛාව 0 ලෙස සකසන්න (විධානය)

තේරීමෙන් අපට පෙනෙන පරිදි තද අකුරින්, අපට එවැනි දරුණු වෙනස්කම් සිදු වී නොමැත.

දැන් තොරතුරු ආදාන. මෙන්න අපි කකුල් PD3-PD6 භාවිතා කරමු, එනම්, Atmega8 සමඟ ඇති සම්බන්ධතාවයට සාපේක්ෂව ඒවා 1 ලක්ෂයකින් මාරු කරනු ලැබේ, එබැවින් අපි ගොනුවේ යමක් නිවැරදි කරන්නෙමු. lcd.cකාර්යයේ sendhalfbyte

PORTD&=0b 1 0000 111; // ආදාන DB4-DB7 පිළිබඳ තොරතුරු මකන්න, ඉතිරිය තනි කරන්න

නමුත් එය පමණක් නොවේ. අපි කලින් සම්ප්‍රේෂණය කළ දත්ත 4 කින් මාරු කළා, නමුත් දැන්, ඉහත වෙනස්කම් නිසා, අපට එය මාරු කිරීමට සිදු වන්නේ 3 කින් පමණි. එබැවින්, එම කාර්යයේදීම අපි පළමු පේළිය නිවැරදි කරන්නෙමු.

c<<=3 ;

වෙනස්කම් එච්චරයි. එකඟ වන්න, ඔවුන් එතරම් විශිෂ්ට නොවේ! මෙය සාක්ෂාත් කරගනු ලබන්නේ අප සෑම විටම විශ්ව කේතය ලිවීමට සහ සාර්ව ආදේශක භාවිතා කිරීමට උත්සාහ කිරීමෙනි. අපි මේ සඳහා එකවර කාලය ගත නොකළේ නම්, අපගේ පුස්තකාලයේ සෑම කාර්යයකම පාහේ කේතය නිවැරදි කිරීමට අපට සිදුවනු ඇත.

ප්‍රධාන මොඩියුලයේ, අපි වරාය D ආරම්භ කිරීම ස්පර්ශ නොකරමු; 12 පාඩමේ මෙන් මුළු මොඩියුලයම ප්‍රතිදාන තත්වයට යාමට ඉඩ දෙන්න.

අපි ව්‍යාපෘතිය එකලස් කර ප්‍රථමයෙන් ප්‍රෝටියුස් හි ප්‍රති result ලය බැලීමට උත්සාහ කරමු, මන්ද මමත් ඒ සඳහා ව්‍යාපෘතියක් කළ බැවින් එය Atmel Studio සඳහා වන ව්‍යාපෘතිය සමඟ අමුණා ඇති ලේඛනාගාරයේ ද ඇත.

සෑම දෙයක්ම අපට විශිෂ්ටයි! ඔබට එක් පාලකයක් සඳහා තවත් ව්‍යාපෘතියක් ඉක්මනින් ප්‍රතිනිර්මාණය කළ හැකි ආකාරය මෙයයි.

Proteus ඉතා හොඳයි, නමුත් සෑම විටම සැබෑ විස්තර දෙස බැලීම වඩා හොඳය. මම මෙම පාලකය සඳහා දෝශ නිරාකරණ පුවරුවක් සාදා හෝ එකලස් නොකළ නිසා මුළු පරිපථයම පාන් පුවරුවක එකලස් කර ඇත. අපි මේ වගේ සම්මත සම්බන්ධකයක් හරහා ක්‍රමලේඛකයා සම්බන්ධ කරමු

මෙන්න සම්පූර්ණ රූප සටහන

මෙහි සෑම දෙයක්ම සම්මතය. පුල්-අප් ප්‍රතිරෝධය රීසෙට් යනාදිය.

දැන්, පාලකය avrdude හි දැල්වීමට පෙර, අපි පාලකය තෝරා එහි ෆ්ලෑෂ් මතකය කියවිය යුතුය

ඉන්පසු FUSES ටැබ් එකට ගොස් ෆියුස් නිවැරදිව සකසන්න. අපට ක්වාර්ට්ස් අනුනාදකයක් නොමැති බැවින්, අපි මේ ආකාරයෙන් ෆියුස් ස්ථාපනය කරමු




ඉහල