Saturday, April 6, 2013

පික් ප්‍රෝගැමින් වලට අවශය කම්පයිලර්ස් සහ ඇසෙම්බ්ලර්ස්


අදත් පික් ගැන මොනවා හරි ලියල යන්න තමයි හදන්නේ. අද ලියන්න හදන්නේ පික් ප්‍රෝග්‍රෑම් කරන්න අවශ්‍ය වෙන සොෆ්ට්වෙයා මොනවාද කියලා.
මුලින්ම අවශ්‍ය වෙනවා ප්‍රෝග්‍රෑම් එක ලියන්න ටෙක්ස්ට් එඩිටර් එකක්, ඊට පස්සේ අපි ලියපු ප්‍රෝග්‍රෑම් එක කම්පයිල් කරන්න කම්පයිලර් සොෆ්ට්වෙයා එකක් අවශ්‍ය වෙනවා අන්තිමට අපි ලියපු ප්‍රෝග්‍රෑම් එක පික් එකට Write(Burn) කරන්න සොෆ්ට්වෙයා එකක් අවශ්‍ය වෙනවා.මේ එක එකක් ගැන වෙන වෙනම බලමු.

ටෙක්ස්ට් එඩිටර්(Text Editors)

මේක අවශ්‍යය වෙන්නේ අපිට ප්‍රෝග්‍රෑම් එක ලියා ගන්න විතරයි.මේ සදහා ඕනම ප්ලේන් ටෙක්ස්‍ට් එඩිටර් එකක් භාවිතා කරන්න පුලුවන් උදාහරණ විදියට Notepad,Notepad++,Gedit,Vi,Vim,TextEdit(on Mac),Sublime Text etc. ඒ උනාට මීට වඩා පහසුකම්‍ තියන එඩිටර් තියනවා. ඒවා ගැන අන්තිමට කියන්නම්.

කම්පයිලර්/ඇසෙම්බ්ලර් සොෆ්ට්වෙයා(Compilers and Assembler software)

ප්‍රධාන වශයෙන් පික් එකකට ප්‍රෝග්‍රෑම් එකක් ලියන්න පරිඝනක භාශා වර්ග 2ක් භාවිතා කරනවා High level Programming languages සහ low level programming languages.
මේ high level programming languages වලින් ප්‍රධාන වශයෙන් C කියන පරිඝනක භාශාව තමයි පික් ප්‍රෝග්‍රැම් කරන්න භාවිතා කරන්නේ( C හැර තව ගොඩක් ඒවා තියනවා). මේ හයි ලෙවල් ලැනග්වේජස් වලින් ලියන වැඩසටහනක් කෙලින්ම පික් එකකට ඇතුල් කරන්න බැහැ ඊට කලින් මේ වැඩසටහන පික් එකට තේරුම් ගන්න පුලුවන් තත්වයට පත් කරන්න වෙනවා අන්න ඒ සදහා භාවිතා කරන සොෆ්ට්වෙයා එකට තමයි කම්පයිලර් එකක් කියලා කියන්නේ, අපි C වගේ හයි ලෙවල් ලැන්ග්වෙජ් එකකින් ලියපු වැඩසටහන පික් එකට තේරුම් ගන්න පුලුවන් මැශින් ලැන්ග්වේජ් එකට  පත් කරන එකට කම්පයිල් කරනවා කියලා කියනවා. කම්පයිල් කරාට පස්සේ අවුට්පුට් එක විදියට .HEX (or .hex) එක්ස්ටෙන්ශන් එක තියන ෆයිල් එකක් ලැබෙනවා ඒකට සාමන්‍යෙන් හෙක්ස් ෆයිල් එක කියලා කියනවා. මේ සදහා භාවිතා කරන්න පුලුවන් කම්පයිලර්ස් විශාල සංඛ්‍යාවක් තියනවා උදාහරණ කිහිපයක් කිවුවොතින් Microchip XC8,HighTech C compiler,Mikro C,SDCC etc.  මේවායින් ගොඩක් හොඳ කම්පයිලර්ස් මුදල් ගෙවා ලබා ගන්න අවශ‍ය වෙන ඒවා. සමහර ඒවායේ නොමිලේ දෙන සංස්කරණයක් තියනවා හැබැයි ඒවයේ ලියන්න පුලුවන් වැඩසටහනේ සීමාවන් තියනවා(eg- Mikro c),සමහර ෆ්‍රී ඒවායේ කම්පයිල් කරලා ලැබෙන අවුට් හෙක්ස් ෆයිල් එකේ සයිස් එක වැඩියි(ex - Microchip XC8) පික් එක්ක මෙමරි තියෙන්නේ කුඩා ප්‍රමාණයක් නිසා මෙහෙම ලොකු හෙක්ස් ෆයිල් එකක් පික් එක්ට රයිට් කරන්න බැහැ හැබැයි ඒ කම්පයිලර් එකේම  ප්‍රෝ වර්ශන් එකේ කෝඩ් ඔප්ටිමසේශන් එක වැඩි නිසා පොඩි හෙක්ස් ෆයිල් එකක් තමයි අවුට්පුට් එකට ලැබෙන්නේ. මේ කොහොම වුනත් අපි පටන් ගන්නකොට ගොඩක් ලොකු කෝඩ් ලියනේ නැති නිසා ෆ්‍රී වර්ශන් එකක් හොඳටම ඇති.මම නම් සාමාන්‍යෙන් පාවිචිචි කරන්නේ Microchip XC8 කියන එක ඒකේ දවස් 60ක සම්පූර්ණ කෝඩ් ඔප්ටිමයිසේශන් එක්ක භාවිතා කරන්න පුලුවන්. දවස් 60 එක්ස්පයර් වුනාම වර්චුවල් මැශින් එකකට අලුතෙන් ඉන්ස්ටෝල් කරලා කෝඩ් එක සම්පූර්ණ ඔප්ටිමයිසේශන් එක්ක කම්පයිල් කර ගන්නවා :)

low level programming languages හෙවත් ඇසෙම්බ්ලි ලැන්ග්වේජ් වලින් MPASM කියන එක තමයි පික් සඳහා භාවිතා කරන්න පුලුවන් වෙන්නේ.මේක නොමිලේම ලබාගන්න පුලුවන් එකක් මේක මයික්‍රෝචිප් MPLAB IDE කියන IDE (Intregated development Environment) එකත් එක්ක නොමිලේම ලැබෙනවා. මේ ඇසෙම්බ්ලර් වලින් කරන්නෙත් කම්පයිලර් වලින් කෙරන කාර්යයට ටිකක් සමාන දෙයක්ම තමයි. මේකෙදි අපි ලියන ඇසෙම්බ්ලි කෝඩ් එක පික් එකට තේරුම් ගන්න පුලුවන් මැශින් ලැන්ග්වේජ් එකට පරිවර්තනය කරන එක තමයි කරන්නේ

high level programming languages වලදි අපි කෝඩ් එක ලියද්දි ඒ තරම් හාඩ්වෙයා ගැන දැන ගන්න ඔනේ වෙන්නේ නැහැ මේ භාශාවන් මැශින් ලැන්ග්වේජ් එකට වඩා අපි භාවිතා කරන භාශා(english) වලට සමීපයි මේ නිසා තමයි කියල කියන්නෙ හැබැයි ඇසෙම්බ්ලි ලැන්ග්වේජ් අපි භාව්තා කරන භාශා වලට වඩා මැශින් ලැන්ග්වේජ් එකට තම යි සමීප ඒක නිසා තමයි  ඒවාට low level programming languages කියලා කියන්නේ.

ප්‍රෝග්‍රැමර් සොෆ්ට්වෙයා

මේවා අවශ‍ය වෙන්නේ අපි ලියලා කම්පයිල් කර ගනිපු ප්‍රෝගෑම් එක පික් එක තුලට කර ගැනිම සඳහා. ප්JDM ‍රෝග්‍රැමර් එකක් භාවිතා කරනවා නම් icproj,winpic800 කියන ප්‍රෝග්‍රැමර් භාවිතා කරන්න පුලුවන් පික් කිට් 2 එකක් භාවිතා කරනවා නම් මයික්‍රෝචිප් IPE කියන එක භාවිතා කරන්න පුලුවන්


අපි මොනවද මේවායින් භාවිතා කරන්නේ?

අපිට භාවිතා කරන්න පුලුවන් පහසුම සොෆ්ට්වෙයා තමයි මයික්‍රෝචිප් ආයතනය මගින් ලබා දෙන MPLAB IDE, MPLABX, MPASM, Microchip XC8 කියන සොෆ්ට්වෙයා.
මේවායින් MPLAB IDE කියන්නේ ඇසෙම්බ්ලර් එක ප්‍රෝග්‍රැමර් එක සහ ටෙක්ස් එඩිටර් එක යන තුනම එකට ඇතුලත් කරල හදපු IDE එකක් මේක භාවිතා කරනවා නම් ඇසෙම්බ්ලර් එකක් වෙනම ඉන්ස්ටෝල් කරන්න ඔනේ නැහැ මේකත් එක්කම ඉන්ස්ටෝල් වෙනවා කෝඩ් සිමියුලේශන් සහ ඩිබගින් සපොර්ට්නුත් තියන බොහොම පවර්ෆුල් සොෆ්ට්වෙයා පැකේජ් එකක් මේක මගින් වැඩසටහන ලිවීමේ සිට පික් එක තුලට ඇතුලත් කිරීම දක්වා සියලුම දේ කර ගන්න පුලුවන්.Micorchip XC8 කම්පයිලර් එක වෙනම ඉන්ස්ටෝල් කරල මේ IDE ත් එක්ක භාවිතා කරන්නත් පුලුවන් හැබැයි වින්ඩෝස් උඩ විතරයි ඉන්ස්ටෝල් කරන්න පුලුවන් වෙන්නේ.

MPLABX කියන්නේ මයික්‍රෝචිප් ආයත්නය ලඟදි හඳුන්වා දීපු IDE එක මේක නෙට්බීන්ස් කියන ඔපන්සෝස් IDE එක මත පදනම් වෙලා තියන එකක් මේකෙත් MPLAB IDE එකේ තියන පහසුකම් සියල්ල තියනවා ඊට අමතරව මේක Windows,Linux,Mac OSX කියන ප්ලැට්ෆොම් 3ම භාවිතා කරන්න පුලුවන්.මයික්‍රොචිප් ආයතනයේ අනාගත IDE එක මේක නිසා මේකට පුරුදු වෙන එක හොඳයි.

මේ සොෆ්ට්වෙයා වින්ඩෝස් වල ඉන්ස්ටෝල් කරන්න කිසිම අපහසුවක් නැහැ සමාන්‍ය විදියට ඩබල් ක්ලික් කරලා සෙටප් එක කම්ප්ලීට කරන්න තියෙන්නේ. වින්ඩෝස් 8 වලදි නම් පහල කියල තියන විදියට .NET Framework 2.0 එනේබල් කරන්න ඔන ඉන්ස්ටෝල් කරන්න කලින්

ඉස්සෙල්ලම මෙතනට යන්න Control Panel -> Program and Features -> Turn Windows Features on or off ඊට පස්සේ ඒ එන ඩයලොග් බොක්ස් එකේ .NET Frame woek 3.5 (Inclused .NET 2.0 and 3.0)  ටික් එක දාලා ඕකේ කරන්න පොඩි ඩවුන්ලෝඩ් එකක් (20MB-40MB i don't remember) වේවි එච්චරයි.


මැක් වල නම් .dmg එක මවුන්ට් කරල සෙටප් එක ඩබල් ක්ලික් කරාම ඉන්ස්ටෝල් කරන්න පුලුවන් මෙ ප්ලැට්ෆෝම් දෙකේදිම MPLAB-X  ඉන්ස්ටෝල් කරද්දි  කී එකක් ඉල්ලනවා ඒකට කී එකක් නැතුව නෙක්ස්ට් කරලා ෆ්‍රී වර්ශ්න් එක විදියට ඉන්ස්ටෝල් කරන්න පුලුවන්.
ඊලඟ දවසේ ප්‍රෝගෑම් එකක් ලියන හැටි බලමු

Download Links

MPLAB IDE and MPLAB-X
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en019469&part=SW007002

Microchip XC8 Compilers
http://www.microchip.com/pagehandler/en_us/devtools/mplabxc/

Sunday, March 31, 2013

PIC Microchips ප්රෝගෑම් කරන්නේ කොහොමද

පහුගිය දවසක පොඩි වැඩක් කරද්දි මටත් බ්ලොග්එකක් තිබුනා නේද කියලා මතක් වුනා. ඒපාර ආපහු ලිවුවොතින් හොඳයි කියලා හිතුනා ඒක නිසා මේක ආපහු ලියන්න කියලා හදන්නේ.
අද බලමු මේ පික් එකක් පරෝගෑම් කරන්න මොනවද අව්ශ්‍ය වෙන්නේ කියලා. ඉස්සෙල්ලම ප්‍රෝගෑම් කරන්න පික් එකක් තියෙන්න ඕන ඊට අමතරව පික් ප්‍රරෝග්‍රැමර් එකක් තියෙන්න ඔනේ කම්පියුටරේකුත් ඕනේ. අද ගොඩක්ම කියල දෙන්න හදන්නේ මේ පික් ප්‍රෝග්‍රැමර් ගැන තමයි.
පික් ප්‍රෝග්‍රැමර් එකක් කියන්නේ අපි පික් එක සඳහා ලියන ලද වැඩසටහන(ප්‍රෝග්‍රෑම් එක ) පික් එක් තුලට ලිවීම සඳහා භාවිතා කරන උපකරණයට.සාමාන්‍යයෙන් විවිද මිල ගනන් වලට මේ ප්‍රෝග්‍රැමර් අපිට මිලදී ගන්න පුලුවන්, නැතිනම් අපිටම එකක් හදා ගන්නත් පුලුවන්.මේ පික් කියන මයික්‍රෝක්‍රොන්ට්‍රෝලරය නිශ්පාදනය කරන්නේ මයික්‍රෝචිප් කියන සමාගමෙන් මේ සමාගමෙන්ම නිශ්පාදනය කරන පික් ප්‍රෝග්‍රැමර්ස් කිහිපයක්ම තියනවා ඒ වුනාට සාමාන්යෙන් විනෝදාංශයක් වශයෙන් පික් ප්‍රෝග්‍රෑම් කරනවා නම් පාවිච්චි කරන්න පුලුවන් වෙන්නේ පික් කිට් 2 කියන ප්‍රෝග්‍රැමර් එක හරි පික් කිට් 3 කියන ප්‍රෝග්‍රෑමර් එක තමයි.හැබැයි  මේ පික් කිට් 2 කියන එකේ සියලුම තාක්ශනික දත්ත මයික්‍රෝචිප් ආයතනය මගින් විවෘත කේත විදියට නිකුත් කරා ඒක නිසා වෙනත් ආයතනත්(ලංකාවේ ආයතන පවා ) මේ පික් කිට් 2 ප්‍රෝග්‍රෑමර්ස් හදලා විකුනනවා මෙවාට පික් කිට් 2 ක්ලෝන්/පික් කිට්2 කම්පැටිබල් ප්‍රෝග්‍රැමර්ස් කියල කියනවා. මේ පික් කිට්2/3 දෙකම පරිඝනකය හා සම්භන්ද වෙන්නේ  USB port එක හරහා තමයි.
සාමාන්‍යෙන් විනෝදාංශයක් විදියට කරන කෙනෙකුට මේ පික්කිට් 2 කියන එක හොඳටම ඇති. ඇත්තම කිවුවොතින් මමත් ඔය පික් කිට් 3 කියන එකක් අතින් අල්ලලාවත් නැහැ.මම භාවිතා කරන්නේ පික් කිට් 2 ක්ලෝන් එකක් තමයි සාමාන්‍යයෙන් රුපියල් 2000.00 කට අඩුවෙන් මේ පික් කිට් 2 ක්ලෝන් එකක් මිලදී ගන්න පුලුවන් එහෙම නැතිනම් පික්කිට් 2 එකක් හදාගන්න පුලුවන් රුපියල් 1100.00 වගේ මුදලකට.


මේ තියෙන්නේ මගේ පික් කිට් 2 ක්ලෝන් එක


මීට ටික කාලෙක්ට කලින් හැම කම්පියුටර් එකකම වාගේ සීරියල් පොර්ට් කියල එකක් තිබුනා නේ ආන්න ඒ කාලෙ ගොඩක්ම ලේසියෙන් (සමහර ) පික් ප්‍රෝගෑම් කිරීමේ හැකියාව තිබුනා ඒවිදියට හදපු ප්‍රෝග්‍රෑමර්ස්නුත් තිබුනා ඒවාට පොදුවේ JDM ප්‍රෝග්‍රැමර්ස් කියලා තමයි කිවුවේ ඇත්තටම ඒ ප්‍රෝග්‍රැමර් එකේ තිබුනේ බොහොම සරල පරිඵතයක් මගින් පික් එක් සීරයල් පොර්ට් එක හා සම්භන්ද කිරීමයි.මේ ක්‍රමයෙන් සියලුම මාදිලි වල පික් ප්‍රෝග්‍රෑම් කරන්න බැහැ ඒ වුනාට ඉගන ගන්න කේනෙකුට නම් මේ ක්‍රමය වුනත් හොඳටම ඇති.මමත් මුලින්ම් පාවිච්චි කරේ මේ වගේ එකක් තමයි නමුත් දැන් ගොඩක් කම්පියුටර් වල සීරියල් පෝර්ට් නැති නිසා පික් කිට් 2 වගේ එකක් භාවිතා කරන්න ලේසියි



මේ තියෙන්නේ මගෙ පරණ JDM ප්‍රෝග්‍රෑමර් එක(ගොඩක් පරන නිසා තමයි පරණ ලුක් එකක් තියෙන්නේ )


ඇත්තටම මේ පික් කිට් 2 කියන ප්‍රෝග්‍රෑමර් එකත් PIC 18F2550 කියන පික් මයික්‍රෝකොන්ට්‍රෝලර් එක මත තමයි පාදක වෙලා තියෙන්නේ ඒක් නිසා අපි මේ පික් කිට් 2 එකක් හැදුවොතින් අපිට පලවෙනි වතාවට ප්‍රෝග්‍රෑමර් එකේ තියන පික්  එක ප්‍රෝගෑම් කරන්න වෙනත් ප්‍රෝග්‍රෑමර් එකක් අවශ‍ය වෙනවා, හැබැයි ඊට පස්සේ ප්‍රෝග්‍රෑමර් එකේ තියන පික් එකේ වැඩසටහන අප්ඩෙට් කරන්න පුලුවන් වෙනත් ප්‍රෝගැමර් එකක් නැතිව මේක කොහොම ද කරලා තියෙන්නේ කියල ඉස්සරහට ඉගෙන ගන්න පුලුවන් වේවි.කාට හරි අවශනම් තමන්ටම පික් කිට් 2 එකක් හදා ගන්න මම ඉස්සරහදි අවශ්‍ය තොරතුරු සියල්ලම දෙනවා(පීසීබී ලේයවුට් එකත් එක්කම ) ඔනේ අයට පික් එකත් පලවෙනි සැරේට ප්‍රෝගෑම් කරල දෙන්නත් බලන්නම් නැතිනම් ප්‍රොගැමරි එකක් තියන කාට හරි කියල ඒක කර ගන්න වෙනවා.

සාමාන්යෙන් පික් එකක් ප්‍රෝගෑම් කරන විදි දෙකක් තියනවා එකක් තමයි පික් එක තියන පරිඵතයෙන් ගලවලා ප්‍රෝග්‍රැමර් එකට සම්භන්ද කරලා ප්‍රෝගැම් කරලා අවසානයේ නැවත පික් එක පරිඵතයට සම්භන්ද කිරීම මේක ටිකක් කරදර කාරි වැඩක් හැබැයි අපි ඉගෙනගන්න පටන් ගනිත්දි මේ ක්‍රමය තමයි පාවිච්චි කරන්නේ මොකද මීලඟට කියන්න යන අනිත් ක්‍රමයෙන් පික් එකක් ප්‍රෝගෑම් කරන්න යම් කිසි මට්ටමක පික් ගැන දැනුමක් අවශය වෙනවා.

පික් එකක් ප්‍රෝගෑම් කරන්න තියන අනිත් ක්‍රමය(ICSP - In Circuit Serial Programming) තමයි පික් එක අදාල පරිඵතයෙන් ඉවත් නොකර ප්‍රෝග්‍රැමර් එක හා සම්භන්ද කර ප්‍රොග්‍රෑම් කිරීම් මේක පහසු ක්‍රමයක් ඒ වගේම පික් එකක් යොදාගෙන මොකක් හරි නිශ්පාදනයක් කරනවා නම් මේ ක්‍රමයට තමඉ ප්‍රෝග්‍රෑම් කරන්නේ මොකද පික් එක ප්‍රෝගෑමර් එකට සවිකර කර ගලවන එක කරදර කාරි වැඩක් මෙන්ම් කාලය  ගතවීමත් වැඩියි ඒ වගේම පරිඵතයෙන් ඉවත් කරන්න බැරි විදිටය පාස්සලා තියන පික් එක වුනත් මේ ක්‍රමයෙන් ප්‍රෝග්‍රෑම් කරන්න පුලුවන්, ඒ නිසා යම් කිසි නිශ්පාදනයක අවසාන මොහොතේ වුනත් ප්‍රෝග්‍රෑම් එකේ වෙනස්කමක් වුනොත් ඒ අලුත් ප්‍රෝග්‍රෑම් එක ඉතා පහසුවෙන් පික් එකට ප්‍රෝග්‍රෑම් කරන්න පුලුවන්. සාමාන්යෙන් මේ විදියට ප්‍රෝග්‍රෑම් කරන්න පරිඵතයේ සම්භන්දතාවයක් ඉතිරි කරලා තියනවා මේකට කියන්නේ ICSP හෙඩර් එක කියලා මේක පින් 6ක් තියන මේල් හෙඩර් එකක්.මේක මගින් තමයි පරිඵතයේ තියන මයික්‍රෝකොන්ට්‍රෝලර් එක ප්‍රෝග්‍රැමර් එක හා සම්භන්ද කරන්නේ.


අදට ඇති කියලා හිතෙනවා ඊලඟ දවසේ බලමු මොනවද ඕන කරන සොෆ්ට්වෙයා සහ ඒවා ඉන්ස්ටෝල් කරගන්න හැටි. තේරුනේ නැති දෙයක් තියනවා නම් කමෙන්ට් එකක් දාලා යන්න.