K1986BE1QI (ගුවන් සේවා) සඳහා සංවර්ධන මණ්ඩලයක් සංවර්ධනය කිරීම

K1986BE1QI (ගුවන් සේවා) සඳහා සංවර්ධන මණ්ඩලයක් සංවර්ධනය කිරීම

මීට වසර කිහිපයකට පෙර මම මිලාන්ඩර් වෙතින් රුසියානු ක්ෂුද්‍ර පාලක සමඟ දැන හඳුනා ගත්තෙමි. 2013-2008 සඳහා ෆෙඩරල් ඉලක්ක වැඩසටහනේ "ඉලෙක්ට්‍රොනික සංරචක පදනම සහ ගුවන්විදුලි ඉලෙක්ට්‍රොනික උපකරණ සංවර්ධනය කිරීම" හි පළමු ප්‍රතිඵල ගැන ඉංජිනේරුවන් දැඩි ලෙස සාකච්ඡා කරමින් සිටියේ 2015 දී ය. ඒ වන විට, K1986BE9x පාලකය (Cortex-M3 core) දැනටමත් නිකුත් කර ඇති අතර, 1986BE1T පාලකය (Cortex-M1 core) දැන් දර්ශනය වී ඇත. ප්ලාස්ටික් නඩුවේ, LQFP-144, එය ලේඛනගත කිරීමෙහි K1986BE1QI (ගුවන් සේවා) යන නාමය ද, චිපයෙහිම MDR32F1QI යන නාමය ද විය. ගුවන් යානා කර්මාන්තයට විශේෂිත වූ අතුරු මුහුණත් ඇති බැවින් නිෂ්පාදකයාගේ වෙබ් අඩවියේ එයට "avia" යන උපසර්ගය ඇත (ARINC 429, MIL_STD_1553).

පුදුමයට කරුණක් නම්, මෙම පාලකයන් බෙදා හැරීමේදී, Milander සමාගම විසින් පර්යන්ත සමඟ වැඩ කිරීම සඳහා නිදොස් කිරීමේ කට්ටල සහ උපස්ථර පුස්තකාලයක් සකස් කරන ලදී, "නමුත් පුස්තකාලයේ නිවැරදිභාවය සම්බන්ධයෙන් කිසිදු අමතර සහතිකයක් හෝ වගකීමක් නොමැතිව." පුස්තකාලය STMicroelectronics වෙතින් සම්මත පර්යන්ත පුස්තකාලයට සමාන වේ. පොදුවේ ගත් කල, Cortex-M හරය මත ගොඩනගා ඇති සියලුම ARM පාලකයන් පොදු බොහෝ දේ ඇත. මෙම හේතුව නිසා, නව රුසියානු පාලකයන් සමඟ හුරුපුරුදු වීම ඉක්මනින් සිදු විය. සන්නාමගත නිදොස් කිරීමේ කට්ටල මිලදී ගත් අය සඳහා, භාවිතයේදී තාක්ෂණික සහාය ලබා දෙන ලදී.

K1986BE1QI (ගුවන් සේවා) සඳහා සංවර්ධන මණ්ඩලයක් සංවර්ධනය කිරීම
ක්ෂුද්‍ර පාලක 1986BE1T සඳහා නිදොස් කිරීමේ කට්ටලය, © Milander

කෙසේවෙතත්, කාලයත් සමඟම, නව ක්ෂුද්ර පරිපථ සහ පුස්තකාලවල "ළමා රෝග" පෙනෙන්නට පටන් ගත්තේය. ස්ථිරාංගයේ පරීක්ෂණ උදාහරණ දෘශ්‍යමාන ගැටළු නොමැතිව ක්‍රියා කළ නමුත් සැලකිය යුතු වෙනස් කිරීම්, බිඳවැටීම් සහ දෝෂ ඇති විය. මගේ භාවිතයේ පළමු "ගිලීම" වූයේ CAN පාලකයේ ක්‍රියාකාරිත්වයේ පැහැදිලි කළ නොහැකි අසාර්ථකත්වයයි. වසරකට පසුව, මුල් සංශෝධනයක 1986BE1T (ගුවන්) පාලකයේ මොඩියුලයේ ගැටලුවක් සොයා ගන්නා ලදී. MKIO (බහු තොරතුරු හුවමාරු නාලිකාව). පොදුවේ ගත් කල, 2016 වන තෙක් මෙම ක්ෂුද්‍ර පාලකයන්ගේ සියලුම සංශෝධන සීමිත භාවිතයක් විය. මෙම ගැටළු හඳුනා ගැනීම සඳහා බොහෝ කාලයක් සහ ස්නායු ගත වී ඇති අතර, එය තහවුරු කිරීම දැන් සොයාගත හැකිය දෝෂ ලැයිස්තු (දෝෂ).

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

එක් අතකින්, වෙළඳපොලේ සන්නාමගත නිදොස් කිරීමේ කට්ටල මෙන්ම Zelenograd වෙතින් LDM-Systems සමාගමෙන් අපූරු පුවරු ද විය. අනෙක් අතට, මෙම නිෂ්පාදන සඳහා මිල ගණන් පුදුම සහගත වන අතර, පුළුල් කිරීමේ කාඩ්පත් නොමැතිව මූලික ක්රියාකාරිත්වය අපේක්ෂාවන් සපුරාලන්නේ නැත. පෑස්සුම් පාලකයක් සහ පින් සම්බන්ධකයක් සහිත පුවරුවක් මට උනන්දුවක් නොදක්වයි. සහ වඩාත් රසවත් පුවරු මිල අධිකයි.

K1986BE1QI (ගුවන් සේවා) සඳහා සංවර්ධන මණ්ඩලයක් සංවර්ධනය කිරීම
සංවර්ධන මණ්ඩලය MILANDR LDM-HELPER-K1986BE1QI-FULL, © LDM පද්ධති

Milander සමාගමට අද්විතීය මිලකරණ ප්‍රතිපත්තියක් සහ අලෙවිකරණයක් ඇත. එබැවින්, සමහර ක්ෂුද්‍ර පරිපථවල නොමිලේ සාම්පල ලබා ගත හැකිය, නමුත් මෙය නීතිමය ආයතනවලට පමණක් ලබා ගත හැකි අතර එය නිලධාරිවාදී ගවේෂණයක් සමඟ සම්බන්ධ වේ. සාමාන්යයෙන්, ලෝහ-සෙරමික් නඩුවේ ක්ෂුද්ර පරිපථ යනු වචනාර්ථයෙන් සහ සංකේතාත්මක අර්ථයෙන් රත්රන් වේ. උදාහරණයක් ලෙස, 1986BE1T පාලකය මොස්කව්හි රුබල් 14 සිට 24 දහසක් දක්වා වැය වේ. 1645RU6U ස්ථිතික මතක චිපයේ මිල රුබල් 15000 සිට. තවද මෙය සියලුම නිෂ්පාදන සඳහා මිල අනුපිළිවෙලයි. මේ නිසා, රජයේ නියෝග සහිත විශේෂිත පර්යේෂණ ආයතන පවා මුදල් ඉතිරි කරන අතර එවැනි මිල ගණන් වලින් ඈත් වේ. සිවිල් භාවිතය සඳහා ප්ලාස්ටික් නඩුවේ ක්ෂුද්ර පරිපථය සැලකිය යුතු ලෙස ලාභදායී වේ, නමුත් ඒවා ජනප්රිය සැපයුම්කරුවන්ගෙන් ලබා ගත නොහැක. මීට අමතරව, ප්ලාස්ටික් නඩුවේ ක්ෂුද්ර පරිපථවල ගුණාත්මකභාවය, මට පෙනෙන පරිදි, "රන්" ඒවාට වඩා නරක ය. උදාහරණයක් ලෙස, ෆ්ලෑෂ් ප්‍රමාද පරාමිතිය වැඩි නොකර මට K1986BE1QI පාලකය 128 MHz දී ධාවනය කළ නොහැක. ඒ සමගම, මෙම පාලකයේ උෂ්ණත්වය 40-50C දක්වා ඉහළ ගියේය. නමුත් 1986BE1T ("රන්") පාලකය අතිරේක සැකසුම් නොමැතිව 128 MHz දී ආරම්භ වූ අතර එය සීතල විය. එයා ඇත්තටම හොඳයි.

K1986BE1QI (ගුවන් සේවා) සඳහා සංවර්ධන මණ්ඩලයක් සංවර්ධනය කිරීම
"ගෝල්ඩන්" ක්ෂුද්ර පාලකය 1986BE1T, (c) Milander

ප්ලාස්ටික් පෙට්ටියක ඇති ක්ෂුද්‍ර පාලකයක් තවමත් LDM පද්ධති වෙතින් සිල්ලර මිලට ගත හැකි වීම සහ සියලුම පුවරු රූප සටහන් නොමිලේ ලබා ගත හැකි වීම මම වාසනාවන්ත විය. නරක දෙය නම් පාලකයේ ඡායාරූපයෙහි වෙබ් අඩවියේ මෙය 4 2014 වන සංශෝධනය බව පවසන සලකුණු කිරීමක් දැකිය හැකිය, i.e. අඩුපාඩු සමඟ. මම ගොඩක් වෙලා කල්පනා කළා ගන්නවද නැද්ද කියලා. මේ විදියට අවුරුදු කිහිපයක් ගෙවිලා ගියා...

දෝශ නිරාකරණ පුවරුවක් නිර්මාණය කිරීමේ අදහස කොතැනකවත් අතුරුදහන් වී නැත. ක්‍රමානුකූලව, මම සියලු අවශ්‍යතා සකස් කර එය සංයුක්ත හා මිල අධික නොවන පරිදි එක පුවරුවක තබන්නේ කෙසේදැයි සිතුවෙමි. ඒ අතරම, මම චීන ජාතිකයන්ගෙන් අතුරුදහන් වූ සංරචක ඇණවුම් කළෙමි. මම ඉක්මන් නොවීමි - මම මා වෙනුවෙන් සෑම දෙයක්ම කළා. චීන සැපයුම්කරුවන් කුප්‍රකට අලසයි - මට අවශ්‍ය සියල්ල ලබා ගැනීමට මට විවිධ ස්ථාන වලින් එකම දේ ඇණවුම් කිරීමට සිදු විය. එපමණක්ද නොව, සමහර මතක චිප් භාවිතා කිරීමට හැරී ඇත - පෙනෙන පරිදි කැඩුණු උපාංග වලින් පෑස්සුම් කර ඇත. මෙය පසුව මට හොල්මන් කිරීමට පැමිණියේය.

Milander K1986BE1QI (වාතය) ක්ෂුද්‍ර පාලකයක් මිලට ගැනීම පහසු කාර්යයක් නොවේ. එම චිප් සහ ඩිප් වෙළඳසැලේ, “ඇණවුම් කිරීමට අයිතම” කොටසේ, මට රූබල් 1986 ක් සඳහා K92BE740QI පමණක් හමු වූ නමුත් එය මට නොගැලපේ. එකම විකල්පය වන්නේ රූබල් 2000 ක් සඳහා LDM-Systems වෙතින් නැවුම් නොවන සංශෝධනයක් මිලදී ගැනීමයි. මට වෙනත් තැනක ආදේශකයක් සොයාගත නොහැකි වූ නිසා, මා සතුව ඇති දේ මිලදී ගැනීමට මම තීරණය කළෙමි. මා පුදුමයට පත් කරමින්, ඔවුන් මට 2018 දෙසැම්බර් මාසයේදී නිෂ්පාදනය කරන ලද නවතම පාලකයක් විකුණුවා, සංශෝධනය 6+ (1820). නමුත් වෙබ් අඩවියේ තවමත් පැරණි ඡායාරූපයක් ඇති අතර, ලියන අවස්ථාවේදී පාලකය නොමැත...

K1986BE1QI (ගුවන් සේවා) සඳහා සංවර්ධන මණ්ඩලයක් සංවර්ධනය කිරීම
ක්ෂුද්‍ර පාලක K1986BE1QI (ගුවන් සේවා) තාක්ෂණික ඇසුරුම්වල, (ඇ) ඡායාරූපය කතුවරයා විසිනි

මගේ දෝශ නිරාකරණ පුවරුවේ ප්රධාන තාක්ෂණික ලක්ෂණ MDB1986 පහත සඳහන් දෑ:

  • සාදන ලද නිදොස්කරණය-ක්‍රමලේඛකයා, J-Link සහ CMSIS-DAP සමඟ අනුකූල වේ;
  • ස්ථිතික මතකය 4Mbit (256k x 16, 10 ns);
  • ෆ්ලෑෂ් මතක චිපය 64Mbit, Winbond 25Q64FVSIG;
  • RTS සහ CTS රේඛා සහිත RS-232 අතුරුමුහුණත් සම්ප්‍රේෂකය;
  • Ethernet, USB, CAN සඳහා අතුරුමුහුණත් සහ සම්බන්ධක;
  • MAX7 7221-කොටස් සංදර්ශක පාලකය;
  • MKIO (MIL_STD_1553) සහ ARINC429 සමඟ වැඩ කිරීම සඳහා පින් සම්බන්ධකය;
  • phototransistor Everlight PT17-21C;
  • වර්ණ පහක් LED, යළි පිහිටුවීමේ බොත්තම සහ පරිශීලක බොත්තම් දෙකක්;
  • USB පෝට් වෙත බල සැපයුම වෝල්ට් 5 කි;
  • මුද්රිත පරිපථ පුවරු මානයන් 100 x 80, මි.මී

මම STM-Discovery ශ්‍රේණි පුවරු වලට කැමති වූයේ ඒවායේ ගොඩනඟන ලද ක්‍රමලේඛක-දෝෂ නිදොස්කරණයක් - ST-Link ඇති බැවිනි. සන්නාමගත ST-Link ක්‍රියා කරන්නේ STMicroelectronics හි පාලකයන් සමඟ පමණි, නමුත් වසර කිහිපයකට පෙර ST-Link හි ස්ථිරාංග යාවත්කාලීන කිරීමට සහ SEGGER J-Link OB (on-board) Debugger ලබා ගැනීමට හැකි විය. නීත්‍යානුකූලව, STMicroelectronics පුවරු සමඟ පමණක් එවැනි නිදොස්කරණයක් භාවිතා කිරීමට සීමාවක් ඇත, නමුත් ඇත්ත වශයෙන්ම විභවය සීමා නොවේ. මේ අනුව, J-Link OB එකක් තිබීම, ඔබට දෝශ නිරාකරණ පුවරුවේ ඇති ක්‍රමලේඛක-නිදොස්කරණයක් ඇත. LDM-Systems නිෂ්පාදන CP2102 (Usb2Uart) පරිවර්තකය භාවිතා කරන බව මම සටහන් කරමි, එය ෆ්ලෑෂ් පමණක් කළ හැකිය.

K1986BE1QI (ගුවන් සේවා) සඳහා සංවර්ධන මණ්ඩලයක් සංවර්ධනය කිරීම
STM32F103C8T6 ක්ෂුද්‍ර පාලක, සැබෑ සහ එතරම් සත්‍ය නොවන, (ඇ) කතුවරයාගේ ඡායාරූපය

එබැවින්, හිමිකාර ස්ථිරාංග ක්ලෝනය සමඟ නිවැරදිව ක්‍රියා නොකරන බැවින් මුල් STM32F103C8T6 මිලදී ගැනීමට අවශ්‍ය විය. මම මෙම නිබන්ධනය සැක කළ අතර චීන සමාගමක් වන CKS වෙතින් CS32F103C8T6 පාලකය උත්සාහ කිරීමට තීරණය කළෙමි. පාලකය ගැන මට පැමිණිලි නැත, නමුත් හිමිකාර ST-Link ස්ථිරාංග එහි ක්‍රියා කළේ නැත. J-Link අර්ධ වශයෙන් ක්‍රියා කළේය - USB උපාංගය අනාවරණය විය, නමුත් ක්‍රමලේඛකයා එහි කාර්යයන් ඉටු නොකළ අතර එය “දෝෂ සහිත” බව නිරන්තරයෙන් මතක් කළේය.

K1986BE1QI (ගුවන් සේවා) සඳහා සංවර්ධන මණ්ඩලයක් සංවර්ධනය කිරීම
නිදොස්කරණය මුල් නොවන පාලකයක ධාවනය කිරීමේදී දෝෂයකි

මම මෙයින් සෑහීමකට පත් නොවූ අතර පළමුව LED දැල්වීම සඳහා ස්ථිරාංග ලියා, පසුව JTAG ප්‍රොටෝකෝලය භාවිතයෙන් IDCODE ඉල්ලීම ක්‍රියාත්මක කළෙමි. ඩිස්කවරි බෝඩ් එකේ මා සතුව තිබූ ST-Link ක්‍රමලේඛකයා සහ ST-Link Utility වැඩසටහන කිසිදු ගැටළුවක් නොමැතිව CS32F103C8T6 දැල්වීය.අවසානයේ මගේ පුවරුව ක්‍රියාත්මක වන බව මට ඒත්තු ගියේය. මගේ සතුටට, ඉලක්ක පාලක K1986BE1QI (ගුවන් සේවා) TDO රේඛාව හරහා සතුටු සිතින් එහි IDCODE නිකුත් කළේය.

K1986BE1QI (ගුවන් සේවා) සඳහා සංවර්ධන මණ්ඩලයක් සංවර්ධනය කිරීම
කේතනය කරන ලද IDCODE ප්‍රතිචාරයක් සහිත TDO සංඥා රේඛාවක Oscillogram, (c) කර්තෘගේ ඡායාරූපය

K1986BE1QI (ගුවන් සේවා) සඳහා සංවර්ධන මණ්ඩලයක් සංවර්ධනය කිරීම
ඒ නිසා SWD port එක debugger එකේම debugging සහ IDCODE චෙක් කරන්න ප්‍රයෝජනවත් වුනා

නිදොස්කරණයක් සමඟ විකල්පයක් විය CMSIS-DAP (Debug Access Port). ARM මූලාශ්‍ර වලින් ව්‍යාපෘතියක් ගොඩනඟන එක ලේසි වැඩක් නෙවෙයි, මම ව්‍යාපෘතිය ගත්තේ X893, ඊට පස්සේ මම DAP42 උත්සාහ කළා. අවාසනාවකට, Keil uVision ශීත කළ අතර ඔවුන් සමඟ වැඩ කිරීමට අවශ්ය නොවීය. එහි ප්‍රතිඵලයක් වශයෙන්, මම දෝශ නිරාකරණ චිපය හිමිකාර STM32F103C8T6 සමඟ ප්‍රතිස්ථාපනය කළ අතර කිසි විටෙකත් මෙම ගැටලුව වෙත ආපසු නොගියෙමි.

K1986BE1QI (ගුවන් සේවා) සඳහා සංවර්ධන මණ්ඩලයක් සංවර්ධනය කිරීම
බිල්ට් නිදොස්කරණය J-Link STLink V2 හි සාර්ථක ක්‍රියාකාරිත්වය

අනාගත සංවර්ධන මණ්ඩලයේ සියලුම ප්‍රධාන කොටස් තිබෙන විට, මම Eagle CAD වෙත ගොස් ඒවා මූලද්‍රව්‍ය පුස්තකාලයේ නොමැති බව සොයා ගතිමි. යාමට තැනක් නැත - මට ඒවා මා විසින්ම ඇඳීමට සිදු විය. ඒ සමගම, මම මතකය සඳහා සවිකරන ස්ථාන, Ethernet සඳහා HanRun සම්බන්ධකයක් සහ ප්රතිරෝධක සහ ධාරිත්රක සඳහා රාමු එකතු කළෙමි. ව්යාපෘති ගොනුව සහ සංරචක පුස්තකාලය සොයා ගත හැක මගේ GitHub මත.

MDB1986 සංවර්ධන මණ්ඩලයේ ක්‍රමානුරූප රූප සටහනK1986BE1QI (ගුවන් සේවා) සඳහා සංවර්ධන මණ්ඩලයක් සංවර්ධනය කිරීම

පුවරුව USB පෝට් එකෙන් ලබාගත් 5 වෝල්ට් DC ප්‍රභවයකින් බල ගැන්වේ. පුවරුවේ සම්පූර්ණ USB Type-B ports දෙකක් ඇත. එකක් ක්‍රමලේඛකයා සඳහා වන අතර, දෙවැන්න K1986BE1QI පාලකය සඳහා වේ. මණ්ඩලයට මෙම මූලාශ්‍ර දෙකෙන් එකක් හෝ දෙකම එකවර ක්‍රියා කළ හැක. D2 සහ D3 (SS24) පරිපථයේ Schottky diodes භාවිතයෙන් සරලම බර නියාමනය සහ විදුලි රැහැන් ආරක්ෂණය ක්රියාත්මක වේ. රූප සටහනෙහි ඔබට 1 mA හි ස්වයං-ප්‍රතිස්ථාපන ෆියුස් F2 සහ F500 දැකිය හැකිය. USB පෝට් එකේ සංඥා රේඛා USBLC6-2SC6 ඩයෝඩ එකලස් කිරීමකින් ආරක්ෂා කර ඇත.

ST-Link debugger-programmer පරිපථය බොහෝ දෙනා දන්නා කරුණකි; එය STM32-Discovery පුවරු සහ වෙනත් මූලාශ්‍ර සඳහා ලේඛනගත කර ඇත. ST-Link/J-Link-OB/DAP ක්ලෝනයේ ආරම්භක ස්ථිරාංග සඳහා (විකල්ප), මම SWDIO (PA13), SWCLK (PA14), GND රේඛා ගෙනාවා. බොහෝ අය ස්ථිරාංග සඳහා UART භාවිතා කරන අතර BOOT ජම්පර් අදින්නට බල කෙරෙයි. නමුත් මම SWD වඩාත් පහසු වන අතර, මෙම ප්රොටෝකෝලය දෝෂහරණය කිරීමට ඉඩ සලසයි.

පුවරුවේ සියලුම සංරචක පාහේ AMS3.3-1117 වෝල්ටීයතා නියාමකයෙන් එන වෝල්ට් 3.3 කින් බල ගැන්වේ. විද්‍යුත් චුම්භක මැදිහත්වීම් සහ ධාරා රැල්ල මැඩපැවැත්වීම සඳහා, BLM31PG ශ්‍රේණියේ ධාරිත්‍රක සහ චෝක්ස් වලින් LC ෆිල්ටර භාවිතා වේ.

අපි MAX7 7221-කොටස් සංදර්ශක ධාවකය ද සඳහන් කළ යුතුය. පිරිවිතරයන්ට අනුව, නිර්දේශිත බල සැපයුම වෝල්ට් 4 සිට 5.5 දක්වා වන අතර ඉහළ සංඥා මට්ටම (තාර්කික එකක්) අවම වශයෙන් 3.5V (0.7 x VCC), 5V සැපයුමක් ඇත. K1986BE1QI (ගුවන්) පාලකය සඳහා තාර්කික ඒකකයක ප්‍රතිදානය 2.8 සිට 3.3V දක්වා වෝල්ටීයතාවයකට අනුරූප වේ. පැහැදිලිවම සාමාන්‍ය ක්‍රියාකාරිත්වයට බාධාවක් විය හැකි සංඥා මට්ටම් අතර නොගැලපීමක් පවතී. මම MAX7221 4V දී බල ගැන්වීමට සහ සංඥා මට්ටම් 2.8V (0.7 x 4 = 2.8) දක්වා අඩු කිරීමට තීරණය කළෙමි. මෙය සිදු කිරීම සඳහා, ඩයෝඩය D4 (RS1A හෝ FR103) ධාවක බල පරිපථයේ ශ්රේණිගතව ස්ථාපනය කර ඇත. සම්පූර්ණ වෝල්ටීයතා පහත වැටීම 0.9V (Schottky diode 0.3V සහ diode 0.6V), සහ සියල්ල ක්රියා කරයි.

K1986BE1QI (ගුවන්) ක්ෂුද්ර පාලකයේ බොහෝ වරායන් 5V දක්වා සංඥා සමඟ අනුකූල වේ. එබැවින්, 2551V මත ද ක්‍රියාත්මක වන MCP5 CAN සම්ප්‍රේෂකය භාවිතා කිරීමේ ගැටලුවක් නොමැත. MAX232 චිපය රූප සටහනේ RS-3232 සම්ප්‍රේෂකයක් ලෙස දක්වා ඇත, නමුත් ඇත්ත වශයෙන්ම මම Texas Instruments වෙතින් SN65C3232D භාවිතා කළෙමි. එය 3.3V සිට ක්‍රියාත්මක වන අතර 1Mbit/s දක්වා වේගයක් සපයයි.

පුවරුවේ ක්වාර්ට්ස් අනුනාදක 4ක් අඩංගු වේ - එකක් නිදොස්කරණය සඳහා (8 MHz) සහ 1986 kHz, 1 MHz, 32.768 MHz ශ්‍රේණිගත කිරීම් සහිත ඉලක්කගත ක්ෂුද්‍ර පාලක K16BE25QI (ගුවන් සේවා) සඳහා තුනක්. මේවා අවශ්ය සංරචක, මන්ද සාදන ලද RC ඔස්කිලේටරයේ පරාමිතීන් 6 සිට 10 MHz දක්වා පුළුල් පරාසයක පවතී. සාදන ලද ඊතර්නෙට් පාලකයේ ක්‍රියාකාරිත්වය සඳහා 25 MHz සංඛ්‍යාතයක් අවශ්‍ය වේ. කිසියම් හේතුවක් නිසා, මිලෙන්ද්‍රාගේ වෙබ් අඩවිය (සමහර විට වැරදීමකින්) ප්ලාස්ටික් නඩුවේ ඊතර්නෙට් නොමැති බව සඳහන් කරයි. නමුත් අපි පිරිවිතර සහ කරුණු මත රඳා සිටිමු.

මගේම සංවර්ධන මණ්ඩලයක් නිර්මාණය කිරීම සඳහා වැදගත් දිරිගැන්වීමක් වූයේ අත්‍යවශ්‍යයෙන්ම සමාන්තර වරායක් වන EBC (බාහිර බස් පාලකය) සමඟ වැඩ කිරීමට අවස්ථාව ලැබීමයි. K1986BE1QI microcontroller (ගුවන් යානා) ඔබට බාහිර මතක චිප්ස් සහ පර්යන්ත උපාංග සමඟ සම්බන්ධ වීමට සහ වැඩ කිරීමට ඉඩ සලසයි, උදාහරණයක් ලෙස, ADCs, FPGAs, ආදිය. බාහිර පද්ධති බසයේ හැකියාවන් තරමක් විශාලයි - ඔබට 8-bit, 16-bit සහ 32-bit ස්ථිතික RAM, ROM සහ NAND Flash සමඟ වැඩ කළ හැකිය. 32-bit දත්ත කියවීමට/ලිවීමට, පාලකයට 2-bit චිප් සඳහා අනුරූප මෙහෙයුම් 16ක් සහ 8-bit චිප් සඳහා මෙහෙයුම් 4ක් ස්වයංක්‍රීයව සිදු කළ හැක. නිසැකව ම, 32-bit I/O මෙහෙයුමක් 32-bit දත්ත බසයක් සමඟින් වේගයෙන් සම්පූර්ණ වනු ඇත. අවාසි අතරට 32-bit දත්ත සමඟ වැඩසටහන ක්‍රියාත්මක වීමේ අවශ්‍යතාවය ඇතුළත් වන අතර පුවරුවට ධාවන පථ 32 ක් තැබීමට සිදුවේ.

K1986BE1QI (ගුවන් සේවා) සඳහා සංවර්ධන මණ්ඩලයක් සංවර්ධනය කිරීම
ස්ථිතික RAM චිප්ස්, භාවිතා කර ඇත (කුමක් දෝෂ සහිතදැයි අනුමාන කරන්න)

සමතුලිත විසඳුමක් වන්නේ 16-bit මතක චිප් භාවිතා කිරීමයි. මා සතුව Integrated Silicon Solutions Inc. චිප්ස් තොගයේ තිබී ඇත. (ISSI IS61LV25616AL, 16 x 256k, 10 ns, 3.3V). ඇත්ත වශයෙන්ම, Milander සමාගමට තමන්ගේම ස්ථිතික මතක චිප් ඇත මාලාව 1645RU, නමුත් ඒවා ඉතා මිල අධික වන අතර ලබා ගත නොහැක. විකල්පයක් ලෙස, පින්-අනුකූල Samsung K6R4016V1D ඇත. ක්ෂුද්‍ර පරිපථ භාවිතා කර ඇති බව මම කලින් සඳහන් කළ අතර මා ස්ථාපනය කළ පිටපත මුලින් 15 වන දත්ත රේඛාවේ අසාර්ථකත්වය සහ අවුල් සහගත අගයන් ලබා දුන්නේය. දෘඪාංග දෝෂ සොයා ගැනීමට දින කිහිපයක් ගත වූ අතර, හානියට පත් චිප් එක වැඩ කරන එකක් සමඟ ප්‍රතිස්ථාපනය කළ විට තෘප්තියේ හැඟීම වැඩි විය. එය එසේ වුවද, බාහිර මතකය සමඟ වැඩ කිරීමේ වේගය අපේක්ෂා කිරීමට බොහෝ දේ ඉතිරි වේ.

බාහිර බස්රථ සහ StandAlone මාදිලියK1986BE1QI ක්ෂුද්‍ර පාලකය (ගුවන් යානා) සතුව අද්විතීය StandAlone මාදිලියක් ඇත, එය බාහිර බස් රථයක් හරහා Ethernet සහ MKIO පාලක (MIL_STD_1553) වෙත සෘජු බාහිර ප්‍රවේශය සඳහා නිර්මාණය කර ඇත, හරය යළි පිහිටුවීමේ තත්වයේ ඇත, i.e. භාවිතා නොකරනලද. මෙම මාදිලිය Ethernet සහ/හෝ MKIO නොමැති ප්‍රොසෙසර සහ FPGA සඳහා පහසු වේ.
සම්බන්ධතා රූප සටහන පහත පරිදි වේ:

  • දත්ත බසය MCU(D0-D15) => SRAM(I/O0-I/O15),
  • ලිපින බසය MCU(A1-A18) => SRAM(A0-A17),
  • පාලනය MCU(nWR,nRD,PortC2) => SRAM (WE,OE,CE),
  • SRAM(UB,LB) ප්‍රතිරෝධකයක් හරහා සම්බන්ධ කර හෝ බිමට ඇද දමයි.

CE රේඛාව ප්‍රතිරෝධකයක් හරහා බල සැපයුමට සම්බන්ධ කර ඇත; MCU බයිටය (BE0-BE3) නියැදීම සඳහා පින් භාවිතා නොකෙරේ. ස්පොයිලර් යටතේ, මම වරායන් සහ බාහිර බස් පාලකය ආරම්භ කිරීම සඳහා කේතය ලබා දෙමි.

වරායන් සහ EBC පාලකය (බාහිර බස් පාලකය) ආරම්භ කිරීම

void SRAM_Init (void)
{
	EBC_InitTypeDef          EBC_InitStruct = { 0 };
	EBC_MemRegionInitTypeDef EBC_MemRegionInitStruct = { 0 };
	PORT_InitTypeDef         initStruct = { 0 };

	RST_CLK_PCLKcmd (RST_CLK_PCLK_EBC, ENABLE);

	PORT_StructInit (&initStruct);
	//--------------------------------------------//
	// DATA PA0..PA15 (D0..D15)                   //
	//--------------------------------------------//
	initStruct.PORT_MODE      = PORT_MODE_DIGITAL;
	initStruct.PORT_PD_SHM    = PORT_PD_SHM_ON;
	initStruct.PORT_SPEED     = PORT_SPEED_FAST;
	initStruct.PORT_FUNC      = PORT_FUNC_MAIN;
	initStruct.PORT_Pin       = PORT_Pin_All;
	PORT_Init (MDR_PORTA, &initStruct);	
	//--------------------------------------------//
	// Address PF3-PF15 (A0..A12), A0 - not used. //
	//--------------------------------------------//
	initStruct.PORT_FUNC      = PORT_FUNC_ALTER;
	initStruct.PORT_Pin       = PORT_Pin_4  | PORT_Pin_5  |
	                            PORT_Pin_6  | PORT_Pin_7  |
	                            PORT_Pin_8  | PORT_Pin_9  |
								PORT_Pin_10 | PORT_Pin_11 |
	                            PORT_Pin_12 | PORT_Pin_13 |
								PORT_Pin_14 | PORT_Pin_15;
	PORT_Init (MDR_PORTF, &initStruct);	
	//--------------------------------------------//
	// Address PD3..PD0 (A13..A16)                //
	//--------------------------------------------//
	initStruct.PORT_FUNC      = PORT_FUNC_OVERRID;
	initStruct.PORT_Pin       = PORT_Pin_0 | PORT_Pin_1 |
	                            PORT_Pin_2 | PORT_Pin_3;
	PORT_Init (MDR_PORTD, &initStruct);	
	//--------------------------------------------//
	// Address PE3, PE4 (A17, A18)                //
	//--------------------------------------------//
	initStruct.PORT_FUNC      = PORT_FUNC_ALTER;
	initStruct.PORT_Pin       = PORT_Pin_3 | PORT_Pin_4;
	PORT_Init (MDR_PORTE, &initStruct);	
	//--------------------------------------------//
	// Control PC0,PC1 (nWE,nOE)                  //
	//--------------------------------------------//
	initStruct.PORT_FUNC      = PORT_FUNC_MAIN;
	initStruct.PORT_Pin       = PORT_Pin_0 | PORT_Pin_1;
	PORT_Init (MDR_PORTC, &initStruct);	
	//--------------------------------------------//
	// Control PC2 (nCE)                          //
	//--------------------------------------------//
	initStruct.PORT_PD        = PORT_PD_DRIVER;
	initStruct.PORT_OE        = PORT_OE_OUT;
	initStruct.PORT_FUNC      = PORT_FUNC_PORT;
	initStruct.PORT_Pin       = MDB_SRAM_CE;
	PORT_Init (MDR_PORTC, &initStruct);	

	//--------------------------------------------//
	// Initialize EBC controler                   //
	//--------------------------------------------//
	EBC_DeInit();
	EBC_StructInit(&EBC_InitStruct);
	EBC_InitStruct.EBC_Mode             = EBC_MODE_RAM;
	EBC_InitStruct.EBC_WaitState        = EBC_WAIT_STATE_3HCLK;
	EBC_InitStruct.EBC_DataAlignment    = EBC_EBC_DATA_ALIGNMENT_16;
	EBC_Init(&EBC_InitStruct);
	
	EBC_MemRegionStructInit(&EBC_MemRegionInitStruct);
	EBC_MemRegionInitStruct.WS_Active   = 2;
	EBC_MemRegionInitStruct.WS_Setup    = EBC_WS_SETUP_CYCLE_1HCLK;
	EBC_MemRegionInitStruct.WS_Hold     = EBC_WS_HOLD_CYCLE_1HCLK;
	EBC_MemRegionInitStruct.Enable_Tune = ENABLE;
	EBC_MemRegionInit (&EBC_MemRegionInitStruct, EBC_MEM_REGION_60000000);
	EBC_MemRegionCMD(EBC_MEM_REGION_60000000, ENABLE);

	// Turn ON RAM (nCE)
	PORT_ResetBits (MDR_PORTC, MDB_SRAM_CE);
}

LQFP-144 පැකේජයේ ඇති ක්ෂුද්‍ර පාලකය සහ TSOP-44 පැකේජයේ ඇති මතකය බොහෝ ආශ්‍රිත පින් ඇති අතර මුද්‍රිත පරිපථ පුවරුවේ විශාල ඉඩක් ගනී. ආර්ථික විද්‍යා ක්ෂේත්‍රයේ ප්‍රශස්තිකරණ ගැටළු විසඳීමේ අත්දැකීම් ඇති මට මෙම ක්ෂුද්‍ර පරිපථ මුලින්ම පුවරුවේ තැබීම අවශ්‍ය බව පැහැදිලි විය. විවිධ මූලාශ්‍රවල මම ගැන ප්‍රශංසනීය සමාලෝචන හමු වී ඇත CAD TopoR (Topological Router). මම අත්හදා බැලීමේ අනුවාදය බාගත කළ අතර එහි Eagle CAD වෙතින් මගේ ව්‍යාපෘතිය අපනයනය කිරීමට හැකි වූයේ මම සියලුම සංරචක ඉවත් කිරීමෙන් පසුවය. අවාසනාවකට, TopoR වැඩසටහන මට පුවරුවේ මූලද්‍රව්‍ය 10 ක් වත් තැබීමට උදව් කළේ නැත. පළමුව, සියලුම සංරචක කෙළවරක තබා, පසුව දාරය දිගේ සකස් කර ඇත. මම මෙම විකල්පය ගැන සෑහීමකට පත් නොවූ අතර, දිගු කලක් මම හුරුපුරුදු ඊගල් CAD පරිසරය තුළ පුවරුව අතින් ලුහුබැඳ ගියෙමි.

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

K1986BE1QI (ගුවන් සේවා) සඳහා සංවර්ධන මණ්ඩලයක් සංවර්ධනය කිරීම
නිෂ්පාදනය කරන ලද MDB1986 මුද්‍රිත පරිපථ පුවරු, (ඇ) ඡායාරූපය කතුවරයා විසිනි

වොට් 40 ක පෑස්සුම් යකඩ සහ POS-61 පෑස්සුම් සමග "මගේ දණහිස් මත" සංරචක පෑස්සීමට සිදු විය, මම කලාතුරකින් වසරකට 1-2 වතාවක් පෑස්සුම් කරන ලද අතර, පෑස්සුම් පේස්ට් වියළී ගොස් ඇත. මට චීන CS32F103 පාලකය මුල් STM32F103 වෙත වෙනස් කිරීමටත්, පසුව මතකය ප්‍රතිස්ථාපනය කිරීමටත් සිදු විය. පොදුවේ ගත් කල, මම තවමත් RS-232 සහ CAN වල ක්‍රියාකාරිත්වය පරීක්ෂා කර නොමැති වුවද, දැන් මම ප්‍රති result ලය සමඟ සම්පුර්ණයෙන්ම සෑහීමකට පත්වෙමි.

K1986BE1QI (ගුවන් සේවා) සඳහා සංවර්ධන මණ්ඩලයක් සංවර්ධනය කිරීම
MDB1986 දෝශ නිරාකරණ පුවරුව ක්‍රියාත්මක වේ - එය බැබළෙයි සහ උණුසුම් කරයි, (ඇ) ඡායාරූපය කතුවරයා විසිනි

Milandra වෙබ් අඩවියේ ඔබට ප්රමාණවත් තරම් සොයා ගත හැකිය ඉගෙනුම් පාලකයන් සඳහා අධ්යාපනික ද්රව්ය මාලාව 1986BE9 (Cortex-M3 core), නමුත් K1986BE1QI (ගුවන්) ක්ෂුද්‍ර පාලකය සඳහා මට එහි කිසිවක් නොපෙනේ. එහි ප්‍රකාශයට පත් කරන ලද විශ්ව විද්‍යාල සඳහා ද්‍රව්‍ය, අත්පොත් සහ රසායනාගාර කටයුතු දෙස බැලීමෙන් පසු, රුසියානු පාලකයන් සමඟ වැඩ කිරීමට රට පුරා පුද්ගලයින් පුහුණු කිරීම ගැන මම සතුටු වෙමි. බොහෝ පුහුණු ද්‍රව්‍ය I/O වරායන්, ටයිමර්, ADC, DAC, SPI, UART සමඟ වැඩ කිරීමට සූදානම් වේ. විවිධ IDE සංවර්ධන පරිසරයන් භාවිතා වේ (Keil, IAR, CodeMaster). කොතැනක හෝ ඔවුන් CMSIS රෙජිස්ටර් භාවිතයෙන් වැඩසටහන් කරන අතර තවත් තැනක ඔවුන් MDR පුස්තකාලය භාවිතා කරයි. සම්පත සඳහන් කළ යුතුය Milandr ආරම්භ කරන්න, පුහුණු වැඩසටහන්කරුවන්ගෙන් බොහෝ ලිපි අඩංගු වේ. සහ, ඇත්ත වශයෙන්ම, අපි ඒ ගැන අමතක නොකළ යුතුයි මිලන්ද්‍රා සංසදය.

මිලන්ද්‍රා ගැන සිතුවාක්ෂුද්‍ර ඉලෙක්ට්‍රොනික්ස් රුසියාවේ සංවර්ධනය වෙමින් පවතින අතර මෙම ක්‍රියාවලියේදී මිලාන්ඩර් සමාගම ප්‍රමුඛ කාර්යභාරයක් ඉටු කරයි. නව රසවත් ක්ෂුද්‍ර පාලකයන් දිස්වේ, උදාහරණයක් ලෙස, SpaceWire සහ MKIO අතුරුමුහුණත් සමඟ 1986BE81T සහ Elektrosila (1986BE1 හි මෙන් සහ, සමහර විට, එම ගැටළු සමඟ) යනාදිය. නමුත් සාමාන්‍ය සිසුන්ට, ගුරුවරුන්ට සහ සිවිල් ඉංජිනේරුවන්ට එවැනි ක්ෂුද්‍ර පරිපථ මිලදී ගත නොහැක. මෙයින් අදහස් කරන්නේ මෙම චිපය සමඟ ඇති දෝෂ සහ ගැටළු ඉක්මනින් හඳුනා ගැනීමට ඉංජිනේරු ප්රජාවට නොහැකි වනු ඇති බවයි. මට පෙනෙන පරිදි, මුලින්ම ප්ලාස්ටික් නඩුවක ක්ෂුද්‍ර පරිපථ නිෂ්පාදනය කිරීම, උනන්දුවක් දක්වන සියලුම පාර්ශවයන්ට ඒවා බෙදා හැරීම අවශ්‍ය වන අතර, විශේෂඥයින් විසින් අනුමත කිරීමෙන් පසු (ලතින් අනුමත කිරීම, පිළිගැනීම) ඔවුන්ට ලෝහ-සෙරමික් නඩුවක සංශෝධනයක් සකස් කළ හැකිය. සියලු භයානක සාධක වලින් ආරක්ෂාව. නුදුරු අනාගතයේ දී ප්‍රදර්ශනවලදී ප්‍රකාශයට පත් කරන ලද නව ව්‍යාපෘති පිළිබඳව අප සියලු දෙනා සතුටු වනු ඇතැයි මම බලාපොරොත්තු වෙමි.
මා විසින් සකස් කරන ලද දෝශ නිරාකරණ පුවරුව අධ්‍යාපන ක්‍රියාවලියේදී ඕනෑම අයෙකුට නැවත නැවත, වෙනස් කිරීම් සහ භාවිතා කළ හැක. පළමුවෙන්ම, මම මා වෙනුවෙන් පුවරුව සෑදුවෙමි, නමුත් එය ඉතා හොඳින් සිදු විය මම හැමෝම සමඟ බෙදා ගැනීමට තීරණය කළා.

K1986BE1QI (වාතය) යනු සිසුන්ට ඉගැන්වීම සඳහා විශ්ව විද්‍යාලවල භාවිතා කළ හැකි අද්විතීය අතුරුමුහුණත් සහිත ඉතා සිත්ගන්නා පාලකයකි. පාලකයේ හඳුනාගත් දෝෂ නිවැරදි කර සහතික කිරීමේ පරීක්ෂණ සමත් වූ පසු, පාලකය වචනයේ පරිසමාප්ත අර්ථයෙන්ම පියාසර කරයි යැයි මම සිතමි!

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න