BàiviếtnàyviếtchoIRF.
Grenoble,12/05/2005
Chàocácbạn,
Cóthểnói,hiệnnayviđiềukhiểnđãrấtphổbiếnởViệtNam,vàđượcứng
dụngrấtnhiều.NhữngsinhviênngànhĐiện,ĐiệnTử,CơĐiện
Tử,TinHọc,
ViễnThông hầunhưaicũngbiếtcáchđểlàmviệcvớiviđiềukhiển.Tuy
nhiên,đểviếtmộtbàiviếttổngquátvềviđiềukhiểnvàviệclậptrình
chovi
điềukhiển,quảthậtlàquákhókhănđốivớitôi.
Dovậy,tôiđặtngayvấnđềlàbàiviếtnàysẽhướngvàonhữngbạnsinhviên
mớibắtđầutiếpcận
vớiviđiềukhiển.Bàiviếtsẽđượcchiathành3nộidung
chính.Nộidungthứnhất,tôitrìnhbàykháiquátvềviđiềukhiển.Nộidung
nàyđượcđềcậptrongrấtnhi ềutàiliệ
u,vàdườngnhưlàvấnđềcơbản,do
vậy,tôichỉtrìnhbàynhữngýkiếncánhâncủatôisaochothậtphùhợpvới
cácbạnsinhviênmớitiếpcậnvớivi
điềukhiển.Nộidungthứhai,tôitrình
bàyvềcáchtiếpcậnmộthọviđiềukhiển,haycụthểhơnlàcácbạncầngìđể
bắtđầuhọcviđiềukhiển.Nội
dungcuốicùng,tôisẽliệtkêcácbướchọcvi
điềukhiểnmộtcáchtươngđốirõràng,màcánhântôichorằngnóhữuích
cho các bạn. Bởi vì những bước này
tôi cũng tham khảoởmột số tài liệu
hướngdẫn,vàkhihọcthìtôicũngphảilầnmòvàđitheoconđườngđó.
1)Viđiềukhiển
Trongrấtnhiềutàiliệucơbảnđềuđềcậpđếnkháiniệmviđiềukhiểnlàgì.
Dovậy,tôilướtquacáckháiniệmcơbảnnày.Tôichỉđềcậpđếncáckhái
niệm,mà
cácbạncầnquantâmkhibắtđầuhọc,hoặclựachọnmộtviđiều
khiểnchomộtứngdụngnàođócủacácbạn.Từnhữngkháiniệmtôiđềcập,
cácbạ
ncóthểthamkhảotừcáctàiliệuchitiếthơn,vàrồicácbạnsẽnắm
đượctoànbộnhữngvấnđềcơbảncủamộthọviđiềukhiểnnàođó.
a)Kiếntrúcviđiềukhiển
Thựcraviđiềukhiểncũnglàmộtcấutrúcsiêunhỏ,gồmcáclinhkiệnđiểntử
ởkíchthướcmicrohoặcnano,cáclinhkiệnnàyđượckếthợpvớinhauvà
đượcnốivớicácthiếtbịbênngoàiquacácchânviđiềukhiển.Chínhvìvậy,
hiểurõđượckiếntrúcviđiềukhiển,cácbạnsẽhiểurõđượcmìnhđanglàm
việcvớicái
gì,vàcáiđólàmviệcnhưthếnào.
Kiếntrúcmáy tínhhaykiếntrúcviđiềukhiểncũngtươngtựnhau.Dođó,
cácbạncóthểtìmhiểuvềkiếntrúcmáytính,đểhiểurõvềki
ếntrúcviđiều
khiển. Hai kiến trúc viđiều khiển phổ biến hiện nay, là kiến trúc Von
NeumannvàkiếntrúcHarvard.Sựkhácbiệtchủyếugiữahaikiếntrúcnày,
chínhlàviệ
ctổchứcbộnhớdữliệuvàbộnhớchươngtrình.KiếntrúcVon
Neumanntổchứcbộnhớdữliệuvàbộnhớchươngtrìnhchungvớinhau,
chính vì vậy,đường truyền (bus) của kiến trúc
Von Ne umann làđường
truyềnchung.Trongkhiđó,kiếntrúcHarvardtá chrờibộnhớdữliệuvàbộ
nhớchươngtrình.
Mỗi kiến trúc này có m ột lợiđiểm riêng rẽ khác nhau. Kiến trúc Von
Neumann
tậndụngđượctàinguyênbộnhớ,trongkhiđókiếntrúcHarvard
sẽđạttốcđộxửlýcaohơn,mặtkhácđườngtruyềndữliệuvàđườngtruyền
lệnhđiềukhiển(chươngtrình)cóthể
códunglượngkhácnhau.
b)Tậplệnh
Tậplệnhởđâyđượccoilàtậpmãlệnhnhịphân,vàchúngtachưanênvộiđề
cậpđếnngônngữlậptrình.Bảnchấtcủatậplệnhlàmộttậphợpcácmã
nhị
phân,màtừđócácđơnvịxửlýtrungtâm(CPU)nhậnbiếtvàthựchiện.Dữ
liệuđượcCPUxửlýlàcácsốnhịphân.Chínhvìvậy,tậplệnhdùthếnàođi
nữacũng
sẽthựchiệnmấyviệcchínhsauđây:
‐tínhtoáncácconsốnhịphân.
‐cáclệnhđểchuyểncácgiátrịrathànhtínhiệuđiệntửởchânlinhkiện
‐cáclệnhdichuyểncácgiátrịgi
ữacácthanhghi
‐cáclệnhđiềukhiểncontrỏchươngtrình
Nhữngđiềunàytưởngchừngđơngiản,nhưngthiếtnghĩnósẽgiúpíchcho
cácbạnkhihọcvàhiểumộttậplệnh,cácbạncóthểphânloạichúngđúng
cách.
Tậpl
ệnhhiệnnayđượcphânlàmhailoại,tậplệnhRISCvàtậplệnhCISC.
Cácbạncóthểtìmhiểusâuhơnquacácbàiviếttrêncácdiễnđànđiệntử,tin
học,hoặ
cnhữngtàiliệutinhọckhác.
Nhưvậy,từkiếnthứcnày,nhữngkhókhănmàrấtnhiềungườigặpphảikhi
thựchiệnlệnhtácđộnglênnhữngthanhghilệnh
(vìnócũngchỉlàdãysốnhị
phân)sẽđượcgiảmbớtđikhánhiều.
c)Chứcnăng
Câu hỏi lớn nhấtđặt ra khi cầm một con viđiều khiển trên tay, chính là
chúngtasẽlàm gìvớinó?Hiệnnayrấtnhiềuloạiviđiềukhiểnrađời,vàrấ
t
nhiềutínhnăngđượctíchhợpvàotrongviđiềukhiểndướidạngphầncứng.
Tuynhiên,tựuchunglạithìmọiviệccũngđềunằmởviệcđiềukhiểnđộng
cơvà
đọccảmbiến.Mộtcánhcửatựđộnglàmộtcáicảmbiếnhồngngoạivà
mộtcáiđộngcơ.Đạiđasốnhữnggìtựđộngđềucódínhđếnđộngcơtrong
đó,vìnếu
khôngcóđộngcơthìlàmsaonóbiếnđổiđiệnnăngthànhcơnăng
được?Màcáigìcóđithìcũngcólại,đãcóđộngcơlàmviệc,thìphảicócảm
biếnđểquansát.
Cáilý
luậnnàysâucũngkhôngsâu,mànôngcũngkhôngnông,nhưngnólại
làcơsởđểnhữngnhàsảnxuấttungracácsảnphẩmviđiềukhiểncủamình.
Vàcũngtừđó,các
bạncũngdễphânloạiđểlựachọnviđiềukhiểnchomình
dùng.Ngoạitrừhailoạinày,thìnhữngloạikhácchúngtacứxemlàloạithứ
ba.
Chúngtacầnnhómloạiđểlàmgì?
Bởivìtínhnăngcủaviđiềukhiển,cóliên
quantrựctiếpđếnsốchâncủaviđiềukhiển.Chonênviệcphânloạivàhình
dungramộtbảnđồđầyđủcácloại,các
chứcnăngcủaviđiềukhiển,sẽgiúp
cácbạnlựachọnviđiềukhiểntốthơn.Mộtngườimớihọc,đểcómộttầm
nhìnrộngvềviđiềukhiển
màlựachọncũngthậtlàkhó,nhưngnếutìmtòi,
hiểuvàphânloạiđượcmộtsốloạiviđiềukhiển,tựnhiênsẽhiểurõđượccái
bảnđồtươngđốiphứctạpnày.
Làmthếnàođểbiết?Đơngiảnthôi,trongtấtcảcácdatasheetđượ
ccungcấp
chotừngloạiviđiềukhiển,đềucómôtảrõtínhnăngcủatừngloại.Cácbạn
tựmìnhtìmhiểuvàphânloạimộtsốviđiềukhiểnthôngdụng
(màcácbạn
cóthểmua)rồitựđánhgiáchúngvềmặttínhnăngquacácdatasheet.Vàđể
đọchiểuđượccáctínhnăngnày,thìcácbạnphảicómộtkiếnthứcnền,vd
nhưtimerlà
gì?pwmlà gì?capturelà gì?i2clàgì?usartlàgì?giaotiếpCAN
là gì? Những cáiđó, bạn không cần học từ nhiều con viđiều khiển, vì
nhữngtínhnăngđóhoàntoàngiống
nhau,chỉcócáchđểlàmchonóhoạt
độnglàkhácnhauthôi.Vậy nên,cácbạncứlấymộtdatasheetcủamộtconvi
điềukhiểnbấtkỳnàođó,đọcvàcốgắnghiểumục
đích củacáctínhnăngđó,
vàchúngtacóthểdùngkiếnthứcnàychobấtkỳconviđiềukhiểnnàokhác.
2)Tiếpcậnvớiviđiềukhiển
Vềmặtkhoahọcmànói,chúngtacóhaihướngtiếpcậnchínhvớimộtđối
tượng, một là nghiên cứuđểphát triểnđối tượngđó, hai là sử dụngđối
tượngđó.Đốiv
ớiviđiềukhiển,ởthờiđiểmhiệntạinăm2005,tôikhuyên
rằngchúngtakhôngnênnghiêncứuđểpháttriểnviđiềukhiển,mànênhọc
đểsửdụngnó.
Vậychúngtacần
nhữnggìđểtiếpcậnvàhọcviđiềukhiển?
Trướctiên,nênhiểuquátrìnhthaotáctừđầuđếncuốiđểchomộtconviđiều
khiểnbấtkỳhoạtđộngđólà:
a)Chúng
tacầnlàmcáigì?
Khiđặtcâuhỏinày,chúngtanghĩngayđếntínhnăng,sốchân,vàkíchthước
cầnthiếtcủaviđiềukhiển.Vàchúngtaphảilựachọnđượcconviđiềukhiển
chúngtacầ
ndùng,tấtnhiênkèmtheongaysauđólàchúngtacóthểmua
đượcnónữa.
Tôinóirằngchúngtaphảibiếtrằngchúngtacóthểmuađượcnó,chứđừng
đimuanóvội,màhãyxemnhữngvấnđềtiếptheo.
b)Lậptrình
Tấtnhiêncôngviệccủa bạnlàcông việclập trình,đểlàmcho conviđiều
khiểnđóhoạtđộngtheoýbạnmuốntronggiớihạncáctínhnăngcủanó.Ở
đâycó
mộtđiểmrấtvuiđólànếubạnxétlạitừthưởʺkhaisinhlậpđịaʺcủa
conviđiềukhiển,chứcnăngvàtậplệnhcủanóthậtđơngiản,nhưngnh
ững
côngviệcnhưbâygiờnóvẫnhoàntoànlàmđược.Đólàvisao?Làvìbản
chấtcủanóvẫnchỉlàthaotácvớinhữngconsốnhịphân.Dovậy,nếumột
conviđ
iềukhiểnkhông hỗtrợmộttínhnăngnàođó,thìchúngtacũngđều
cóthểthựchiệntínhnăngđóbằngphầnmềmvàmộtvàiphầncứnghỗtrợ
bênngoài.
Nhưng
tạmd ừngchuyệnđólại,cácbạnmuốnconviđiềukhiểnhiểuđược
nhữngchữlàchữmàcácbạnsẽdùngđểlậptrình,thìcácbạnphảibiếnđổi
cácchữđóthànhra
cácconsốnhịphân,thểhiệndướidạngfile.HEX
Muốnlàmđượcđiềunày,cácbạncầncómộtchươngtrìnhdịch.
Việcsauđólàbạnphảibiếtngônngữlập
trìnhnàođó,thôngthườngkhimới
bắtđầu,ngườitadùngASM
c)Nạpchươngtrình
Bạnviếtchươngtrìnhtrênmáytính,bạnđãdịchrađượcfileHEXđểviđiều
khiểnkhinhậnđượccóthểhiểuđượcbạnmuốnlàmgì.Vậylàmsaođểđưa
nộidungđóvàocho
viđiềukhiển?
Cácbạncầncómộtmạchnạpvàmộtchươngtrìnhnạpphùhợpvớimạch
nạpđó. Côngviệc nạpđượccụthểhoábằng việccắm
mạchnạpvào máy
tính,bậtchươngtrìnhnạp,loadfile.HEXvàochươngtrìnhnạp,lựachọnvi
điềukhiểncầnnạp,càiđặtcácthôngsốnạp,nhấnnútProgramtrênchương
trìnhnạp.Saukhinạpxong,chươngtrìnhnạpnàocũngthôngbáokếtquả
nạpđượchaykhôngnạpđược.Nếukhôngcógìsai,nhấnOKlàxong.
d)Mạchchạyviđiềukhiển
Một mạch chạy viđiều khiểntốithiểu cần có nguồn cấpđiện cho viđiều
khiểnhoạtđộng.Nguồnnàyphảicấpđiệnáptừ2.5Vđến5.5Vvàdòngt
ừ
150mAđến300mAtuỳtheomỗiloạiviđiềukhiển.Nguồnnàychỉcungcấp
choviđiềukhiểnhoạtđộng,khôngcungcấpchocácthiếtbịngoạivi.Mạch
resetđểresethoạtđộngcủ
aviđiềukhiển.Mạchdaođộng(cóhoặckhôngcó)
cóthểđượctíchhợpsẵntrongviđiềukhiển,chếđộnàygọilàdaođộngnội.
Nếukhôngcómạchdaođộngnội,phảidùng
thạchanhđểtạođaođộngcho
viđiềukhiển.Thạchanhthường dùngtừ 38KHzchođến40MHztuỳtheo
từngloạiviđiềukhiển.
Chínhvìnhữngđặcđiểmnày,nếuchúngtakhôngtínhđến
tấtcảcácthiếtbị
ngoạivicầnđiềukhiển,chúngtahãymạnhdạnthiếtkếmộtmạchchuẩncho
viđiềukhiển, cungcấpđiệnáp5V,dòng300mA,mạch reset
vàmạchdao
động.Khidùngbấtkỳloạiviđiềukhiểnnào,cũngcóthểdùngmạchnày.
Nguồnchothiếtbịngoạivi,tôikhuyênrằngnênthiếtkếriêngchotừngthiết
b
ịngoạivi,vàchorằngthiếtbịngoạivilàbấtkỳthiếtbịnàonốitrựctiếpvới
mạchviđiềukhiểnnêutrên.
Ngoàira,cầnlưuýrằng,viđiều
khiểnnhậnvàxuấttínhiệuđiệntrêncác
chântừ2.5Vđến5.5V(phụthuộcvàonguồn),vàtừ12mAđến20mA(tuỳ
loại).Vìvậy,cácthiếtbịngoạiviphảiđượcthiếtkếsao
chokhigiaotiếpvới
viđiềukhiển,trựctiếpnốivàocácchânviđiềukhiển,vàcódòngxuấtnhập,
cũngnhưđiệnáplogicnhưtrên.
e)Kếtluận
Trongtấtcảnhữngvấnđềcầncónày,chúngtathấyrằngcácmạchnguồn,
resetvàdaođộnglàkháđơngiản,vàhầunhưđượccungcấpmộtcáchchi
tiếtbởinhàsả
nxuất.Chínhvìthế,chỉcầnlậtdatasheetravàthiếtkếgiống
hệt.
Đốivớithiếtbịngoạivi,thìtuỳtheoứngdụngmàchúngtathiếtkế.Tôichưa
đềcậpđếnởđây.
Đốivớichươngtrìnhnạpvàmạchnạp,chúngtahoàntoàncóthểlên
cácdiễn
đànđiệntửtrongvàngoàinước,hoặctìmcácnguồncungcấpmạchnạpcho
từngloạiviđiềukhiển.Đasốcácloạiviđiềukhiểnđềucónhữngng
ườithiết
kếmạchnạplàmsẵn,chỉviệctìmvàsửdụng.Chúngtatuyệtđốikhôngnên
quantâmđếnviệclàmsaođểlàmramạchnạp,hayviếtrađượcchươngtrình
nạp,hoặ
cgiảnguyênlýnạpnhưthếnào.
Nhữngngườitìmhiểusâuvớimụcđíchgiảngdạythìcầnthiếtlàmviệcnày,
đểgiúpsinhviênhiểurõhơnvấnđề,hoặcphòngkhi
sinhviênđặtcâuhỏi.
Nhưngnhữngngườidùng,khôngcầnquantâmđếnviệcnày.Chúngta chỉ
cầntìmmạchnguyênlý,làmmạch,vàtừđóvềsaucứthếlàdùng.Thông
thường,vàgần
nhưlàmặcđịnh,bấtcứngườinàocungcấpmạchnạp,cũng
đềucungcấptheođóchươngtrìnhnạp.Vậykểtừđây,chúngtacũngkhông
cầnquantâmđếnmạchnạp
vàchươngtrìnhnạpnữa.
Chươngtrìnhdịch,hầuhếtcácnhàsảnxuấtcungcấpchươngtrìnhdịchcho
ngônngữASMlàmiễnphí.Cómộtsốnhàsảnxuấtcungcấ
pcảmôitrường
soạnthảomiễnphíluôn(nhưMicrochipPICchẳnghạn).Cácchươngtrình
dịchtừngônngữcấpcaoC,Pascal,Basic, thườngđượcbánvớigiákhácao.
Tuynhiên,ởViệt Nam, th
ựctế làchúng ta dùng rấtnhiều nhữngchương
trìnhkhôngcóbảnquyền.Tôikhôngcổvũchoviệcdùngtrìnhdịchkhôngcó
bảnquyền,nhưngthựctếlàthựctế,bâygiờ
hầunhưcácchươngtrìnhdịch
ngônngữcấpcaochohầuhếtcácloạiviđiềukhiểnđềuđượccungcấpđầy
đủtrêncácdiễnđàncủa cảViệtNamlẫnnướcngoài.Vì
vậy,vềphầnchương
trìnhdịch,cácbạncũngchẳngphảilolắnggìnữa.
Vậyđiềuquantrọngnhất,cácbạncầnphảihọc,đólàhọccáchviết
chương
trình. Tôiđã phân tích vấnđềnàyởdiễnđànđiện tử
www.diendandientu.comvàsẽđănglạibàiviếtnàytạiwww.picvietnam.com
(diễnđànmàtôisắpmởra).Đểviếtđượcchươngtrình,cácbạnphảihiểu
rằng,bạnviếtchươngtrìnhchom ộtviđiềukhiển,tứclàsửdụngcáctính
năngcủaviđiềukhiển.Vậycácbạnphảitheocácbướcsau:
‐tínhnăngđóhoạtđộngnhưthếnào?tạisaochúngtadùngtínhnăngđó?
‐làmsaođểkíchhoạtchoviđiềukhiểnhiểurằngchúngtacầndùngtính
năngđó?
‐khilàmviệcvớ
imộttínhnăngbấtkỳ,chúngtaphảitươngtácvớinhững
thanhghiđặcbiệtnàotrongviđiềukhiển?
‐mộtsốthuậttoánđểthựchiệncôngviệc
Nhưvậy,các
bạnsẽnắmngay đượcrằng,đểđiềukhiểnmộtthiếtbịngoạivi
nàođó,chúngtaphảixácđịnhcôngviệccầnphảilàm,xácđịnhxemdùng
tínhnăngnàocủaviđiềukhi
ểnđểgiảiquyếtcôngviệc,khiđãnắmrõhếtcác
tínhnăngcủaviđiềukhiển,phầncònlạilàmộtchútlogicđểsắpxếpchương
trìnhchạychocóhệthống.
Chínhvìvậy,cácbạnsẽthấyrằngcórấtnhiềuthuậttoánkinhđiểnđãđược
xây dựng,các thư viện code Bởivì thực tế, công việccũng chỉ quanhđi
quẩn
lạicóbaonhiêuđó.Đầuóclogicvàkhảnănglậptrìnhmộtphầnlàdo
thiênphú,mộtphầnlàdosựrènluyệnvàtíchluỹmàcó.
Chínhvìvậy,cùngmộtviệclàm,ngườ
inàylàmtốthơnngườikia,chủyếulà
sựlogicvàbiếtnhiềuthuậttoánxửlýcôngviệc.
Tómlại,điềuquantrọngnhấtcácbạnph ảihọclàcáchthực
hiệnmộtch ương
trìnhsaochothậtlogic,hiệuquả,nhờsựhướngdẫncủamọingườiđểtìm
đếncácthưviệncode,nhữngbàitậpmẫuđểđỡmấtcôngsuynghĩnhững
vấ
nđềbénhỏmàngườikhácđãgiảiquyếttốt.
Rấtnhiềungườitựtinvàokhảnăngsángtạocủamình,màthiếusựrènluyện
vàtíchluỹkinhnghiệmlậptrình,chonên
chorằngbàiviếtcủatôicóphầndở
hơi,vìkhôngcungcấpthêmcáckỹthuậtgìchohọ.Tuynhiêntôilạichorằng
khihiểumìnhcầnphảilàmgì,họcgì,tích
luỹgì,giảmbớtcáigì,nóquan
trọnghơnrấtnhiềusovớiviệcbiếtthêmmộtthứkiếnthứcnhỏmọntừngười
khác.Cánhântôikhuyêncácsinhviênmớib
ắtđầulàmviệcvớiviđiềukhiển
mộtlờikhuyênchânthànhlàcácbạnhãytheonhữngbướctôitrìnhbày,học
tậpvàtựmìnhđánhgiácácvấnđề,hìnhthànhmộtbả
nđồkiếnthức,rồitự
thựchiệnmộtđềtàibấtkỳ.Saukhilàmxongmộtđềtàibấtkỳ,kểcảđềtàiđó
chỉlàlàmnhấpnháymộtcáiđènled,cá cbạnsẽthấy
rằng,cácđềtàikhácrồi
cũngtươngtự.Nhưngvấnđềquantrọnglàphảixácđịnhđượcnhữngbước
thựchiệnnhưtôiđềcậptrênkiavàtiếpsauđây.
3)Cácbướcthựchiệnmộtđềtàivớ
iviđiềukhiển
Tôiviếtrađâycácbướcđểmộtngườimớihọccóthểtheovàtiếpcậnngay
đượcvớiviđiềukhiển
a)Tìmhiểumộtsốkháiniệmcầnthiết:
‐Hiệnnaycó3họ viđiềukhiểnnổi tiếng là8051(baogồm AVR),PICvà
Motorola.Nếubắtđầuhọc,chọnmộttrong3loạinàyđểbắtđầu.
‐Tìmhiểuvềkiến
trúcmáytính,hiểucơbảnvềkiếntrúcHarvardvàkiến
trúcVonNeumann
‐TìmhiểukháiniệmRISCvàCISC
‐Kháiniệmthanhghi
‐KháiniệmStack
‐Kháiniệmcontrỏ(pointer)
‐Kháiniệmđịachỉ
vàđịachỉgiántiếpcủamộtthanhghi
‐Kháiniệmtimer
‐Kháiniệmngắt
Vìsaocầnnhữngkháiniệmnày,bởivìnhữngkháiniệmnàysẽlànềntảng
đềcácbạn
hiểusâuhơnvềtínhnăngvàphươngthứclàmviệccủamộtvi
điều khiển. Hơn nữa, những khái niệm nàyđều là những khái niệm tổng
quát,vàđềubắt
nguồntừkiếntrúcmáytínhmàra.Dovậy,việctìmkiếmtài
liệucũngkhôngkhókhăngì.
b)Hiểucáctínhnăngcủaviđiềukhiển:
Cácbạndownloadngaymộtdatasheetbấtkỳloạiviđiềukhiểnnào,tôilấy
thídụdownloaddatasheetcủaPIC16F877A,chodùlàcácbạnhọcAVRhay
Motorolahay89C51 Cácbạncứdownloaddatasheetnàyv
ề.
Trongđó,cácbạnkhôngcầnchúýchitiếtđếnkiếntrúccủaviđiềukhiểnđó,
màcácbạnchỉcầnxemphầnmôtảtínhnăng.Cácbạnsẽthấytrangđầutiên
của
datasheetluônliệtkêđầyđủcáctínhnăngcủaviđiềukhiển.Mộtsốtính
năngnhư:timer8bit,timer16bit,cóbao nhiêungắt,tínhnăngADC,DAC,
tính năng PWM, Comparator, Capture, giao tiếp
USB, CAN, I2C, UASRT,
Parallel, Đâylàcáctínhnăngphổbiếncủaviđiềukhiểnhiệnnay.Cácbạn
lậtvàotrong,đọcđểhiểunhữngtínhnăngnàylàmnhữnggì.
Vd:
ChỉcầnhiểuADC(AnalogtoDigitalConverter)dùngđểbiếnđổimộttín
hiệuđiệnápAnalogvàomộtchânnàođócủaviđiềukhiển,biếnđổinóqua
giátrịsố(Digital)bằngcáchsosánh
vớim ộtđiệnápthamchiếu(Reference
Voltage).Điệnáp thamchiếu cóthể làđiệnápVDD(điện áp nguồn)hoặc
điệnáp thamchiếuđượcđưa vàomộtchân khác.Nguyênlý biếnđổ
inày
đượcthựchiệnnhưthếnào?ThếnàolàADC10bit,12bit,8bit
Chỉcầnnhưvậythôi,cácbạnkhôngcầnhiểunhiềuhơnnữa.
Nóiđiềunàycũngthậtbu
ồncườichocácbạnđãhọclâurồi,nhưngđâylà
cácbạnmớihọc,thìviệcnàyvôcùngquantrọng.Vìrấtnhiềubạnlênmạng
vàhỏirằngPWMlà
cáigì?ThếnàolàDutycycle?
Dovậy,nhữngkháiniệmnày,nếucácbạnnắmvàhiểuđượcrồi,thìvấnđề
chỉcònlàứngdụngsửdụngnóthôngquaviệclậptrìnhtrên
viđiềukhiển
màbạnchọnnữathôi.Màcáctínhnăngnàythìviđiềukhiểnnàocũnggiống
nhau,chonênchỉcầnđọcmộtdatasheetthìsẽbiếthết.
c)Tìmdụng
cụhọctập
Tấtnhiên,đihọcphảicódụngcụhọctập.BạnmuốnhọcconviđiềukhiểnA,
thời buổi này không phải là thời buổi bao cấp, phát phiếuđi l
ĩnh viđiều
khiểnvềxài.Chonên,tốtnhấtlàbạnlàmcáchnàođómuốnhọcthìphảitìm
muabằngđượcnórồitínhchuyệnhọcgìrồihọc.
Cầmcon viđ
iềukhiểntrongtayrồimớitínhchuyệnhọc,lỡhọckhôngđược
thìsao?Thìkiếmcáibúaphangmạnhmộtcáivàoconviđiềukhiển,mởruột
nóraxemcoinócócáigì
trongđó,thấynóđenthui,chẳngcógì.Mộtcáicục
đenthuimàmìnhphảihọcv ềnómàlàmgì?Thôivứtmẹnóđi.Cáchđólà
haynhất.
Tiếptụctrangbịdụngcụhọctập,nhưtôiđãnói,chúngtacầncó:chương
trình
dịch, mạch nạp và chương trình nạp. Hiện nay diễnđànđiện tử
www.diendandientu.com và diễnđàn tôi sắp mở www.picvietnam.com có
cungcấpđủcáccôngcụnày.Muốntìmhiểuthêm,cácbạnlêncác
diễnđàn
nước ngoài,họ cung cấpkhông thiếumột thứgì. Thậm chíkhôngcần lên
diễnđàn,đihỏithằngGooglelàcóngay.
Keyword: PIC programmer, PIC bootloader, AVR programmer, free pcb
programmer, nhiềulắmđ
ánhcáigìvàocũngtìmrađượchết.Nhưngcác
bạnnêntìmcáinàomiễnphí.Saukhitìmxongnh ớquaylạisharecáilinkđó
chomọingườiđểmọingườiđỡmấtcôngtìmkiếm.
Keyword:PICCcompiler,AVRCcompiler cứvậymàtìmtớitới
Saukhitìmđượcsơđồ nguyênlýmạchnạp,chươngtrìnhnạpchoconvi
điềukhiển củamình,các bạnnhanh chónglàmngaymạ
ch nạp.Loadmột
chươngtrìnhmẫubấtkỳđơngiảnvàoviđiềukhiểnđểkiểmtramạchnạp
hoạtđộngtốthaykhông.Nếutốtthìoki,nếukhôngthìlạibòlên
cácdiễn
đànđểhỏi.Nhữngthằngrảnhrỗinhưtôisẵnsàngtrảlờichocácbạn.
d)Họcviếtchươngtrình
Họcviếtchươngtrìnhcóthểchiacụthểlàm2cáchhọc,họcđểviếtchovi
điềukhiểnchạyđượcthìnhảythẳngvàohọcngônngữcấpcao,họccấptốc
đểđốiphóvớimộtđồánnàođó.Thậmchívàidònglệnhbanđầuviếtsai,
nhảylêndiễnđànhỏi,tìmthầyhướngdẫnhỏi,tìmbạnhỏi cuốicùngrồi
cũng
viếtxongchonóchạyđược.Cáinàothấykhókhăn,khôngbiếtlàmthì
tìmcodemẫubằngngônngữcấpcao,thếlàxong.
Cáchthứhairườmrahơn,đólàhọcviếtASM.Họ
cASMkhácôngph u,phải
hiểuchitiếtcấutrúcviđiềukhiển,phảiđiềukhiểntừngthanhghi
Tuynhiên,tôikhuyênkhimớihọc,cácbạnnênbắtđầubằngviệchọcASM.
KhinắmvữngcáchviếtASMchomộtconviđiềukhiểnnàođó,chuyểnsang
conviđiềukhi
ểnkháckhôngmấykhókhăn,vàcácbạnsẽgiốngnhưmột
chuyêngiavềnómộtkhicácbạnđãhiểutườngtậnmọivấnđề.
Banđầucóvẻsẽhơikhóxơi
vàmệtmỏi,nhưngsaunàythìcácbạnsẽthấy
hoàntoàntựtinvàokiếnthứcmìnhthuthậpđược.
e)Làmcácbàiứngdụng
Saukhicóchươngtrìnhnạpvàmạchnạp,cácbạnthườnghaylàmngaybài
tậpnhấpnháyđènledlàbàitậpkhákinhđiển.Thựcrađólàgì,cácbạnthực
hiện
mộtmạchchạychoviđiềukhiển,vàthiếtbịngoạivilàcáiđènled.Nhớ
lạilàthôngthườngviđiềukhiểnxuấttínhiệu5V,12mA.
Nhưngcái đènledchỉdùngởkho
ảng2.5V12mA,nênchúngtanốimộtcái
điệntrởnốitiếpvớicáiđènled.
Nhưvậy,chúngtaxácđịnhrõ,chúngta phảilàmmộtmạchchạychoviđiều
khiển,bao
gồmnguồn,mạchreset,mạchdaođộng.Cácchâncònlạiđượcnối
vớidãychâncắmđểnốirangoài.Cáinày,chúngtasẽgọilàmạchtest.Và
chođếnkhichúngtahọcthànhthạo
mộtconviđiềukhiểnnàođó,thậmchi
saunàydùngvàoviệcthựchiệnnhữngdựánlớnvớiconviđiềukhiểnđó,
mạchtestnàyvẫncógiátrịcủanó.
Làmmộtmạchtestlàđiềuthứtưphảilàm.
Quaylạichuyệncáiđènled.Cáiđènledvàđiệntrở,thìvàitròcủacáiđènled
vàđiệntrởlàthiếtbịngoạivi,cáiđ
ènledlàthiếtbịcầnđiềukhiển,cáiđiện
trởlàʺmạchʺgiaotiếp.Điềunàycónghĩalà,khôngcầnbiếtbạnlàmcáigì,
nhưngcácbạnthiếtkếđượcmộtm
ạchngoạivi,cắmvàoviđiềukhiểnđể
điềukhiểnnó,thìbạnchỉviệccắmnóvàocácchânđượcđưarangoàicủa
mạchtest(cácsocket,châncắm ).NhớrằngMassphảiđược
nốichungtrong
tấtcảcácmạchđiệntử.Mộtsốmạchđiệntửphứctạpdùngnhiềumasskhác
nhau,thìítnhấtcũngphảicómộtmasschungvớimasscủa
viđiềukhiển.
f)Cácbướchọctínhnăngviđiềukhiển
Saukhiùùcạccạclàmnhấpnháycáiđènled,theomộtsựhướngdẫnnào
đó,thậmchílàcopyandpaste,nhưngcáiđènnónhấpnháy,chứngtỏbạn
làmtốtmọ
iviệctừđầuđếnkhichínhthứcbắtđầuhọcviđiềukhiển.
Hãytiếnhànhcácbàitậpsau:
‐Họccácthanhghiđặcbiệt,bảnđồbộnhớ(memorymap)(họclýthuyết)
‐Họ
ccáchxuấttrêntừngchânviđiềukhiển(bàitậptắtmởđènled)
‐Họcviếthàmdelay(làmđènnhấpnháy)
‐Đènnhấpnháydùngtimer
‐Bấmmộtnút,đènbật/tắt(nhập
port,nhậptrêntừngchân,dùngngắtngoài)
‐Điềukhiểnđộngcơ(PWM)
‐Đọcencoder(Capture/Comparator)
‐ĐọcADCbằngcáchxoaybiếntrở
‐GiaotiếpRS232
‐GiaotiếpI2C
Saukhicácbạnhọcxongcácbài
họcnày,việchọctiếpcácbàihọckhácsẽ
không phảilà vấnđềkhó khănvớicácbạn nữa,các bạn hoàntoàncó thể
thamkhảodatasheetđểthựchiệnmộtmình.
Các
bạncầnphảiphânbiệtthậtrõvấnđềhọccácchứcnăngcủaPIC,vớiviệc
họcđểsử dụng một số thiếtbịngoại vi thông dụng. Ví dụnhưviệcđi
ều
khiển LCD, chẳng qua chỉ là việc xuất nhập PORT, hoặc như bảngđiện,
quangbáo,led7đoạn,nócũngchỉlàviệcxuấtnhậpport.Trongcácbàihọc
này,đólàcác
bạnhọccácthiếtbịngoạivithôngthườngkhidùngviđiều
khiển,chứkhôngphảihọccáctínhnăngcủaviđiềukhiển.
Nhưngtráilại,nếucácbạnhọcm
ộtbàihọcđơngiảnvôcùngđólàdùngtính
năngPWMđểlàmbộbiếnđổiDAC(DigitaltoAnalogConverter)thìchínhlà
cácbạnlạihọccáchdùngtínhnăngPWM.
Việcđịnhhướngcácbàih
ọc,vàmụctiêugiảngdạyphụthuộcchủyếuvào
ngườihướngdẫn,tuynhiêntôiphântíchýnàyởđâyđểcácbạnsinhviên
hiểuvìsaocóthểmộtsốbạnđãthựchànhrấtnhiềuđềtài,nhưngvẫncảm
thấymìnhkhôngđủkiếnthứcđểthựchiệnmộtđềtàilớnvớiviđiềukhiển.
Đ
ólàvìcácbạnchưathựcsựdùnghếtcáctínhnăngcủaviđiềukhiển,mà
mớichỉdùngmộtvàitínhnăngvàđượcrènluyệnđirènluyệnlại.
4)Kết
luận:
Tôidànhthờigianviết bàiviếtnày,khôngmongmuốngìhơnlàgiúpcácbạn
sinhviênmớihọc,mớibắttaylàmquenvớiviđiềukhiểncóm ộtcáinhìn
tổng
quátbanđầuvàcómộtđịnhhướngrõràngchoviệchọctậpcủamình.
Cánhântôicũngtừnglàngườimớihọc,vàbấtquáthìtôichỉhọctr ướccác
bạn
mộtvàinăm.Đếnbâygiờtôikhôngcòndùngviđiềukhiểnvàlậptrình
cho viđiều khiển nhiều nữa, nhưng tôi cũng muốn chia sẻ những kinh
nghiệmcủatôikhibắt
đầuhọcđếnkhilàmđượcmộtsốviệchữuíchbằngvi
điềukhiển,đếnchocácbạn.Hyvọngcácbạnbắtđầuhọc,vàhọctậpmau
tiếnbộ.
Nếu
cácbạncónhữngthắcmắcgìvềviđiềukhiểnMicrochipPIC,cácbạncó
thểemailtheođịachỉ
hoặcthamdựvàodiễnđàn
www.picvietnam.com
Chúcmọiđiềutốtlành!
FALLEAF–IRF
Bàiviếtnàyđãgửicho IRF,vàđượcđăngtrênwww.irfvn.com
.Vìvậy,bài
viếtnàylàphiênbảncopytừtrangwebtrên.Tôichuyểndạngthànhfile.pdf.