Monday, 16 February 2009

RTC, Timer And External Oscillator

RTC နဲ႔ TIMER ေတြ အေၾကာင္းကို ကၽြန္ေတာ္ ခဏခဏ ေရးေလ့ရွိပါတယ္။ အခုေျပာျပခ်င္တာက RTC ကို Timer နဲ႔ေရးတဲ့အခါ လိုအပ္တဲ့ လိုအပ္ခ်က္ေတြပါ။ အမ်ားအားျဖင့္ RTC သံုးခ်င္တဲ့အခါ External RTC chip ကိုသံုးေလ့ ရွိၾကပါတယ္။ ဒါေပမယ့္ Hardware overload ကိုေလွ်ာ့ခ်ခ်င္တဲ့ အခါမွာျဖစ္ျဖစ္၊ Boom Price ကိုေလွ်ာ့ခ်င္တဲ့အခါမွာ ျဖစ္ျဖစ္ RTC ကို routine ေရးၿပီးသံုးၾကပါတယ္။

အဲဒီအခါမွာ Timer တစ္ခုကို သံုးၿပီး ေရးရပါတယ္။ ေအာက္မွာ RTC ေရးရတဲ့ Assembly source codeကို ျပထားပါတယ္။ C language အျဖစ္လည္း ေျပာင္းၿပီးေရးလို႔ရပါတယ္။ ဒါေပမယ့္ RTC routine အမ်ားစုကို Assembly ေရးေလ့ရွိပါတယ္။ Instruction cycle ကိုေလွ်ာ့ခ်ခ်င္လို႔ပါ။

အဲလို ေရးတဲ့အခါမွာ Timer ရဲ႕ အခ်ိန္ကို တိက်ေအာင္ External Crystal (Oscillator) တစ္ခုကို ခ်ိတ္ဆက္ေပးရပါတယ္။ ေအာက္မွာ ျပထားတာကေတာ့ Timer1 ကိုသံုးၿပီးေတာ့ RTC routine ကိုေရးတဲ့အခါ လိုအပ္တဲ့ Crystal ခ်ိတ္ဆက္ေပးရတဲ့ ပံုပါ။



Friday, 6 February 2009

PIC18F85J90 Plug-In Module

TQFP (Thin Quad Flat Pack) MCU ေတြနဲ႔ အလုပ္လုပ္တဲ့အခါ။ Mass production (standard PCB လုပ္ၿပီးတဲ့အခါ) မွာေတာ့ သိပ္စဥ္းစားစရာ မလိုေပမယ့္ R & D လုပ္တဲ့အခါမွာေတာ့ တစ္ခ်က္စဥ္းစားရပါတယ္။ အဲဒါက TQFP ေတြက prototype PCB ေပၚမွာ solder လုပ္ဖို႔ အရမ္းခက္ခဲပါတယ္။ ရတယ္ထားဦး ၾကာမယ္ေလ။ အဲဒီေတာ့ သူ႔အတြက္ Daughter board (Plug-In Module) ေတြရွာရပါတယ္။ အဲဒီ Module ေလးေတြက Demo, Evolution Board ေတြမွာတပ္သံုးတာပါ။ ရွိရင္ေတာ့ အိုေကပါတယ္။ မရွိရင္ေတာ့ prototype board မွာပဲရေအာင္ solder လုပ္ရမွာေပါ့။ ဒါကေတာ့ အလုပ္ကေလး တစ္ခုလုပ္ဖို႔ ကၽြန္ေတာ့ အတြက္လိုအပ္တဲ့ PIC18F85J90 PIM ပါ။ သူက I/ O pin ေတြကို ေနာက္ေက်ာမွာ ထုတ္ေပးထားတဲ့အတြက္ က်န္တဲ့ Device ေတြနဲ႔ I/ O pin ေတြကေနတစ္ဆင့္ ဆက္ေပး႐ံုပါပဲ။ ဒီ Module ကေတာ့ LCD Interface အတြက္အဓိကပါ။

သတိထားရမွာက Interface တစ္ခုခ်င္းစီအတြက္ အဓိကထားၿပီး PIM ေတြက ရွိတတ္ပါတယ္။ ၀ယ္ရင္ေတာ့ ေသခ်ာစစ္ၿပီးမွ ၀ယ္သံုးပါ။

7 Segment LED Vs 7 Segment LCD

7 Segment LED နဲ႔ 7 Segment LCD ရဲ႕ ကြာျခားခ်က္ကို ေျပာခ်င္လို႔ပါ။

7 Segment LED Module က LED base ျဖစ္တဲ့အတြက္ General I/O ေတြသံုးၿပီး Display လုပ္လို႔ရပါတယ္။ Multliplex လည္းလုပ္လို႔ရပါတယ္။

LCD မွာေတာ့ ျပႆနာနဲနဲရွိပါတယ္။ LCD မွာ Dynamic နဲ႔ Static ဆိုၿပီး LCD ၂ မ်ိဳးရွိပါတယ္။ Static ကေတာ့ LED နဲ႔ခပ္ဆင္ဆင္ပါ။ ႐ိုး႐ိုး General I/O နဲ႔အလုပ္
လုပ္လို႔ရပါတယ္။ ဒါေပမယ့္ ေစ်းႀကီးပါတယ္။ Dynamic ကေတာ့ Oscillate လုပ္ေပးမွ Display ဆက္တိုက္ေပၚပါတယ္။ ႏို႔မို႔ဆို Dim ျဖစ္ၿပီး တျဖည္းျဖည္းေပ်ာက္သြားမွာပါ။ အဲဒါေၾကာင့္ Dynamic LCD နဲ႔ software ေရးတဲ့အခါ သံုးတဲ့ MCU ကိုသတိထားေရြးပါ။ LCD support လုပ္တဲ့ MCU ကိုေရြးခ်ယ္ရပါတယ္။ ဥပမာ - PIC ဆိုရင္ PIC16F91X, PIC18F85J90 series ေတြက LCD အတြက္ support လုပ္ပါတယ္။

ရွိၿပီးသား LCD Module (ေအာက္ကပံု) ေတြကိုသံုးရင္ေတာ့ အေပၚကကိစၥေတြ ထည့္စဥ္းစားစရာ မလိုပါဘူး။

Short Notes (3)

(1) Electrical အင္ဂ်င္နီယာ အမ်ားစုက Power နဲ႔ Ground ၾကားက Volt ကိုတိုင္းေလ့ရွိၿပီး၊ Electronic အင္ဂ်င္နီယာ အမ်ားစုက Reference နဲ႔ Ground ၾကားက Volt ကိုတိုင္းေလ့ရွိပါတယ္။ သေဘာကေတာ့ P - G က Power ေရာက္မေရာက္အတြက္ျဖစ္ၿပီးေတာ့ R - G ၾကားကေတာ့ Signal ေရာက္မေရာက္ကို တိုင္းတာပါ။ တစ္ခ်ိဳ႕ ပစၥည္းေတြ (ဥပမာ Sensor ေတြက ပါ၀ါေရာက္ေသာ္လည္း Signal မထြက္တာ ျဖစ္ႏိုင္ပါတယ္)။ အဲဒါေၾကာင့္ ၂ မ်ိဳးလံုးတိုင္းၿပီးမွ ေကာက္ခ်က္ခ်ပါ။