H điu hành LINUX
PHIÊN BN FEDORA CORE 5
NG DNG LINUX
(PIC16F877A và giao tiếp RS-232 vi PC)
Auth: Nguyn Quang Phú
Rev: gnuPICuC-FC5-200607
Đây là mt tài liu min phí. Bn hoàn toàn có th phân phi nó li cho nhng người s dng
khác hoc có th chnh sa li cho phù hp nhưng phi tuân theo nhng yêu cu trong giy phép bn
quyn GNU (phiên bn 2.0 hay các phiên bn khác).
Tài liu này được phát hành vi hy vng rng nó s tr nên hu ích, nhưng nó KHÔNG KÈM
THEO BT K S ĐẢM BO NÀO, ngay c nhng đảm bo NGM HIU V VIC THƯƠNG MI
HOÁ hay PHI PHÙ HP VI MT MC ĐÍCH C TH NÀO ĐÓ .(Vn đề này bn có th tham kho
giy phép GNU General Public License để biết thêm chi tiết).
Thông thường bn s nhn được mt bn sao ca giy phép GNU General Public License
kèm theo tài liu này; nếu chưa có bn có th gi thư đến địa ch sau Free Software Foundation, Inc.,
675 Mass Ave, Cambridge, MA 02139, USA để có mt bn giy phép.
Mc lc
1. Gii thiu
2. To file asm bng chương trinh son tho gedit
3. Công c v mch (EDA)
4. Các chương trình biên dch và np chíp
5. Quá trình biên dch và np chíp
6. Kim tra chương trình
7. Mã ngun các chương trình
Tài liu này được biên son vi hy vng khuyến khích mi người tôn trng bn quyn
s hu trí tu và không s dng các phn mm b b khoá trên các máy tính cá nhân.
Bn có
th liên h vi người viết theo địa ch
opentdoors@yahoo.com
nếu bn cm thy tài liu này có thiếu
sót, chưa đầy đủ cũng như nếu nó hu ích đối vi bn. Hoc bn cũng có th liên h vi người viết ti
các web site (
http://www.dientuvietnam.net
) ti các ch đề liên quan đến các ng dng ca Linux
trong đin t.
1. Gii thiu:
Đây là tài liu gii thiu v các công c lp trình và np chương trình cho vi điu khin h
16FxxA (16F84a, 16f876a và 16F877a) ca Microchip trên h điu hành Linux phiên bn
Fedora Core 5.
Ni dung tài liu này bao gm :
Viết chương trình.
Biên dch
Np chương trình vào vi điu khin
Kim tra hot động ca vi điu khin thông qua giao tiếp RS-232.
Nhng ni dung ca tài liu này được viết thông qua vic thc hin mch và đã được kim tra
trên máy tính ca người viết.
2. To file asm bng chương trinh son tho gedit
Trên các phiên bn Linux ca Red Hat, các chương trình son tho luôn là gEdit hoc
kEdit. Mt s người khác thích s dng chương trình vim, hay emacs để son tho các source
code t dòng lnh, tuy nhiên cách này ch dành cho nhng ai thành tho Unix và Linux.
Chương trình gEdit tương t như Notepad trên Windows, nhưng trong các trường hp
viết chương trình C/C++, nó t ra tin ích hơn do nó có phân bit các hng, hàm hay biến
được định nghĩa trong ngôn ng C/C++.
Mt chương trình viết cho vi điu khin PIC16 trên linux luôn tuân theo các cú pháp viết
trên Windows hay MPLAB.
3. Công c v mch (EDA)
nhiu công c GNU h tr vic thiết mch, layout mch in trên Linux. Tuy nhiên
đây gii thiu Eagles, mt phiên bn min phí trên các phiên bn Linux ca Red Hat (RH8.0
cho đến FC5), do nó quen thuc vi nhng người s dng Eagles trên Windows, thư vin
phong phú vi các chip ca Microchip, Atmel ... và không có gii hn nào trong vic thiết kế
mch vi phiên bn min phí này.
4. Các chương trình biên dch và np chíp
GNU PIC Utilties: Trình biên dch gpasm, mt phn ca b chương trình gputils. Nó h tr
tt c các h PIC.
Picprog ca Jaakko Hyvätti . Np chíp qua cng ni tiếp, bng JDM.
Vic s dng 2 công c này rt đơn gin. Ti các gói gputils và picprog dưới dng các file nén
gzip, gii nén các gói này vào thư mc nào đó. S dng chưong trình gii nén được tích hp
sn trong FC 5, bng cách kích đúp hoc kích chut phi để bung ra, hoc s dng lnh :
$ tar-xzvf “tên đầy đủ”.tar.gz
Biên dch, và cài đặt 2 công c này như sau (theo các file hướng dn cài đặt INSTALL trong
gputils và README trong picprog):
1. Logon vi tư cách root.
2. “cd” vào thư mc đã được bung nén ca gputils.
3. Đánh các lnh
#./configure
# make
# make install
# make clean
1. Logon vi tư cách root.
2. “cd” vào thư mc đã được bung nén ca picprog.
3. Đánh các lnh
# make dep
# make
# make install
5. Quá trình biên dch và np chíp
đây chúng ta s dng trình son tho gedit to ra file ttydemo.asm, mã ngun được
trình bày cui tài liu này. Biên dch mã s dng gpasm như sau:
[opd@localhost firmware]$ gpasm ttydemo.asm
ttydemo.asm:17:Warning [230] found lower case match for include filename
[
opd@localhost firmware]$ dir
main.asm main.cod main.lst ttydemo.asm ttydemo.cod ttydemo.lst
Sau đó chúng ta gn chíp vào JDM và gn JDM vào cng COM2. Thc hin các lnh sau:
[opd@localhost firmware]$ su
Password:
[root@localhost firmware]# picprog --erase --burn --input ttydemo.hex --pic /dev/ttyS1
CPU clock speed: 1818 MHz
/dev/ttyS1: id 0x0e27: detected pic16f877a version 0x07
Device pic16f877a, program memory: 8192, data memory: 256.
Erased and removed code protection.
Burning program memory, 113 locations,
burning data memory, 0 locations,
burning id words, 0 locations,
burning fuses, 1 locations,
done.
[root@localhost firmware]#exit
6. Kim tra chương trình
Do đây là mt chương trình giao tiếp USART ca 16F877A, nên chúng ta kim tra nó
giao tiếp vi máy tính thông qua cng COM1.
S dng chương trình ttydevinit ca tác gi Guido Socher. Dùng trình son tho to mt
file ttydevinit.c ( mã ngun trình bày cui tài liu). Sau đó thc hin các lnh sau:
[opd@localhost firmware]$ gcc ttydevinit.c -o ttydevinit