PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và PIC

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 21-04-2008, 03:32 AM   #1
anhemFSA
Nhập môn đệ tử
 
Tham gia ngày: Oct 2007
Bài gửi: 5
:
Tại sao khi đụng tay vào mạch thì PIC mới chạy?

Mình dùng PIC18F45XX, nhưng khi chạm tay vào mạch ( cực dương hoặc âm ) thì PIC mới hoạt động. Không là nó thực hiện được 1 vài lệnh đầu rồi dừng luôn. Trong khi đó mình có lắp điện trở (mình đã thử 10K đến 30K) vào chân MCLR rồi.
Như vậy theo mình nghĩ là nguồn mình cấp có vấn đề, mình đã đo bằng đồng hồ là 5.3 - 5.4V? Mong các bạn giúp đỡ.
anhemFSA vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 21-04-2008, 06:38 AM   #2
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi anhemFSA View Post
Mình dùng PIC18F45XX, nhưng khi chạm tay vào mạch ( cực dương hoặc âm ) thì PIC mới hoạt động. Không là nó thực hiện được 1 vài lệnh đầu rồi dừng luôn. Trong khi đó mình có lắp điện trở (mình đã thử 10K đến 30K) vào chân MCLR rồi.
Như vậy theo mình nghĩ là nguồn mình cấp có vấn đề, mình đã đo bằng đồng hồ là 5.3 - 5.4V? Mong các bạn giúp đỡ.
"Tại sao khi đụng tay vào mạch thì PIC mới chạy?" Câu trả lời đương nhiên là do phần cứng có vấn đề.

Phần cứng có vấn đề nhưng bạn chỉ mô tả vài câu, không có sơ đồ mạch, không có hình chụp của mạch thử nghiệm, vậy làm sao chúng tôi chẩn bệnh cho nó?

PIC18F45xx có 7 từ cấu hình, vậy bạn đã cấu hình PIC ra sao?

Trong đa số các trường hợp bí ẩn như thế này, nguyên nhân sau cùng thường là do tác giả vô tình làm sai chỗ nào đó ở phần cứng, hoặc cấu hình chip sai.

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 22-04-2008, 08:25 AM   #3
tam_pascal
Nhập môn đệ tử
 
Tham gia ngày: Sep 2007
Bài gửi: 8
:
Trích:
Nguyên văn bởi anhemFSA View Post
Mình dùng PIC18F45XX, nhưng khi chạm tay vào mạch ( cực dương hoặc âm ) thì PIC mới hoạt động. Không là nó thực hiện được 1 vài lệnh đầu rồi dừng luôn. Trong khi đó mình có lắp điện trở (mình đã thử 10K đến 30K) vào chân MCLR rồi.
Như vậy theo mình nghĩ là nguồn mình cấp có vấn đề, mình đã đo bằng đồng hồ là 5.3 - 5.4V? Mong các bạn giúp đỡ.
- Mình đã gặp trường hợp này rồi: bạn phải kiểm tra xem đụng tay vào chỗ nào (chỗ đó có nguồn không ? nếu có nguồn thì nguồn âm hay dương) theo mình có thể do mạch của bạn tiếp không tốt (do hàn hoặc mạch in). Làm mất nguồn âm, hoặc dương một chỗ nào đó (thường là nguồn âm). Bạn cũng cần kiểm tra lại tụ lọc nguồn, có bị khô, hoặc không hàn không tiếp ?

thay đổi nội dung bởi: tam_pascal, 22-04-2008 lúc 09:01 AM.
tam_pascal vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 08-07-2008, 01:58 PM   #4
tallht
Đệ tử 5 túi
 
tallht's Avatar
 
Tham gia ngày: Mar 2008
Nơi Cư Ngụ: Bình Thạnh, TPHCM
Bài gửi: 98
:
có thể bạn bị vòng lặp vô tận ở đâu đó.mình cũng đã bị và sửa lại được@
tallht vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 08-07-2008, 02:09 PM   #5
falleaf
PIC Bang chủ
 
falleaf's Avatar
 
Tham gia ngày: May 2005
Bài gửi: 2,631
:
Send a message via Yahoo to falleaf
Trích:
Nguyên văn bởi anhemFSA View Post
Mình dùng PIC18F45XX, nhưng khi chạm tay vào mạch ( cực dương hoặc âm ) thì PIC mới hoạt động. Không là nó thực hiện được 1 vài lệnh đầu rồi dừng luôn. Trong khi đó mình có lắp điện trở (mình đã thử 10K đến 30K) vào chân MCLR rồi.
Như vậy theo mình nghĩ là nguồn mình cấp có vấn đề, mình đã đo bằng đồng hồ là 5.3 - 5.4V? Mong các bạn giúp đỡ.
Hai câu trả lời chính xác là:

1) Phần cứng của bạn có vấn đề? Không hẳn, bởi vấn đề của bạn là đụng tay vào con PIC ở mặt trên, hoặc thâm chí đặt ở một vị trí nào đó xác định, hoặc chỉ cần để bàn tay huơ huơ phía trên thôi, PIC cũng từ vị trí đang đứng im, chuyển qua chạy ngon lành. Do vậy, hầu hết vấn đề này không phải của phần cứng. Hơn nữa, một số mạch kể cả như PICDem 2 Plus cũng có thể bị hiện tượng này. F khẳng định, 90% vấn đề không phải tới từ phần cứng.

2) Phần mềm thì bị chỗ nào? Có mấy vấn đề phần mềm, đó là khi các bạn viết chương trình sai và lỗi, cái thứ hai là các bạn cấu hình sai, hoặc thiếu. Khi đó nó sẽ xuất hiện lỗi này. Hầu như, trong 90% còn lại của lỗi phần mềm, thì có tới 70% là do cấu hình sai.

Sai như thế nào, thiếu như thế nào? Câu hỏi này không thể trả lời hết cho từng loại, vì MCHP có tới hơn 10000 sản phẩm. Khi bạn làm việc với con PIC và một ngôn ngữ nào đó, hãy đọc kỹ lưỡng phần cấu hình của nó, và cài đặt cho đúng.

Như vậy, để vượt qua lỗi này, đầu tiên là kiểm tra cấu hình chip. Hai là tắt các WDT, và kiểm tra source code chương trình, sau đó mới kiểm tra phần cứng, bởi hầu hết phần cứng của các bạn khi được thiết kế, hoặc mua, đều đã qua kiểm tra.

Chúc vui
falleaf vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 25-07-2008, 12:06 AM   #6
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi falleaf View Post
...
1) Phần cứng của bạn có vấn đề? Không hẳn, bởi vấn đề của bạn là đụng tay vào con PIC ở mặt trên, hoặc thâm chí đặt ở một vị trí nào đó xác định, hoặc chỉ cần để bàn tay huơ huơ phía trên thôi, PIC cũng từ vị trí đang đứng im, chuyển qua chạy ngon lành. Do vậy, hầu hết vấn đề này không phải của phần cứng. Hơn nữa, một số mạch kể cả như PICDem 2 Plus cũng có thể bị hiện tượng này. F khẳng định, 90% vấn đề không phải tới từ phần cứng.
...
Câu khẳng định "phần cứng có vấn đề" của anh bao gồm luôn cả bản thân PIC. Và các từ cấu hình thuộc phần cứng chứ không phải phần mềm (phần mềm ở đây nói đến cái sản phẩm trí tuệ của người dùng). Do đó, việc thiết lập các từ cấu hình sai coi như phần cứng không làm việc như dự kiến.

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 24-07-2008, 11:37 PM   #7
hatnang87
Nhập môn đệ tử
 
Tham gia ngày: Jul 2008
Bài gửi: 2
:
Em cũng gặp vấn đề gần giống thế, kèm thêm vấn đề với nạp icsp. Em đã trình bày bên clb thức trắng cùng dientuvietnam, tuy nhiên chưa có lời giải. Bây giờ em xin trình bày lại cho các anh giúp đỡ, em đã loay hoay mấy ngày nay chưa được.
1.Em nạp pic 16f877a theo kiểu icsp bằng mạch nạp p2g của pnlab thì vấn đề như sau:
- Em dùng dây nối vào chân nạp ở demo board của anh Bình Anh cho thì ok, vì vậy mà nạp được chip 16f690.
- Em cũng cắm như thế, dùng dây nối câu ra board trắng để nạp 16f877a, chân nguồn và đất thì xác định đúng rồi, chân gần chân đất nối với chân 40, chân tiếp nối chân 39, chân đầu tiên phía kia là MCLR thì nối vào chân 1, ở đó có dùng trở 10k nối lên nguồn 5v lấy luôn ở chân nguồn kia dùng chung.
Lúc đầu thì em thêm con tụ 33p nối đất nhưng không thấy nhận chip, loay hoay mãi em bỏ chân nối đất ở tụ ra thì bất ngờ nó nhận chip, em nạp được 1 lần sau đó tháo bớt dây ra, chỉ dùng dây nguồn và đất cho tiện, nhưng bây giờ lại không nạp được nữa! Em mắc giống ở ICSP guide rồi, cũng đảo qua chân 39,40 nhưng chưa được.
Em đã đo thử thì nguồn đủ (5,2V luôn), chân 1 thì lại là -0,15
--->các bác xem hộ em sao vậy nhỉ?
2. Em làm cái mạch led chạy như trong tutorial của pvn, nạp bình thường (không nạp icsp nữa), cắm vào board, kiểm tra tiếp xúc tốt, cắm thạch anh ghi là 20.000, 2 con tụ ghi 33 (chắc là tụ 33p và thạch anh 20Mhz)-->không hiện tượng!
Em dùng que đo kiểm tra, điện áp ra ở các chân portB chỉ có 0,6V là cùng, chẳng led nào sáng. Em đo thử ở thạch anh thì kì lạ thay, led sáng!! Cứ mỗi lần em dí que đỏ vào chân thạch anh hay tụ thì nó lại sáng và chạy, nói chung thành ra mình điều khiển nó chạy chứ không phải do lập trình luôn! (Hôm nay em nối thạch anh và tụ chắc chắn hơn nên ban đầu nó sáng ngay led đầu tiên sau đó tịt! Hơ tay trên con pic thôi là nó chạy đúng luôn! )
Các bác xem hộ em. Nói chung lập trình là form chuẩn (em copy ở tut của anh chính, có chỉnh sửa chút) nên chắc không có vấn đề

;Su dung vi dieu khien microchip: PIC16F877A
title “delay_ms.asm”
processor 16f877a
include <p16f877a.inc>
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _XT_OSC & _WRT_OFF & _LVP_OFF & _CPD_OFF
;Mo ta chuong trinh: chuong trình rotate led, dich phai
;Mo ta phan cung: 8 LED duoc gan vao PORTB thong qua cac dien tro, cac
; thanh phan di kem bao gom thach anh, mach reset va nguon
;================================================= ============================
;Khoi tao cac bien
cblock 0x20count1 ;cac bien dung cho chuong trinh delay
counta
countb
endc
;================================================= ==============
;Bat dau chuong trinh chinh
org 0
main
;Khoi tao PORTB
bsf STATUS,RP0 ;chon bank 1
clrf TRISB ;toan bo PORTB la output
bcf STATUS,RP0 ;chon bank 0 de lam viec
movlw 0x80
movwf PORTB ;bat led dau tien o portB
loop ;vong lap chinh
call delay100ms
rrf PORTB,1 ;dich phai thanh ghi PORTB, ket qua ghi vao thanh ghi PORTB
goto loop
;====================
;chuong trinh con
delay100ms
movlw 0xC8
movwf count1
d1
movlw 0xC7
movwf counta
movlw 0x01
movwf countb
delay
decfsz counta,1
goto $+2
decfsz countb,1
goto delay
decfsz count1,1
goto d1
return
END ; ket thúc chuong trình
hatnang87 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 24-07-2008, 11:56 PM   #8
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi hatnang87 View Post
Em cũng gặp vấn đề gần giống thế, kèm thêm vấn đề với nạp icsp. Em đã trình bày bên clb thức trắng cùng dientuvietnam, tuy nhiên chưa có lời giải. Bây giờ em xin trình bày lại cho các anh giúp đỡ, em đã loay hoay mấy ngày nay chưa được.
1.Em nạp pic 16f877a theo kiểu icsp bằng mạch nạp p2g của pnlab thì vấn đề như sau:
- Em dùng dây nối vào chân nạp ở demo board của anh Bình Anh cho thì ok, vì vậy mà nạp được chip 16f690.
- Em cũng cắm như thế, dùng dây nối câu ra board trắng để nạp 16f877a, chân nguồn và đất thì xác định đúng rồi, chân gần chân đất nối với chân 40, chân tiếp nối chân 39, chân đầu tiên phía kia là MCLR thì nối vào chân 1, ở đó có dùng trở 10k nối lên nguồn 5v lấy luôn ở chân nguồn kia dùng chung.
Lúc đầu thì em thêm con tụ 33p nối đất nhưng không thấy nhận chip, loay hoay mãi em bỏ chân nối đất ở tụ ra thì bất ngờ nó nhận chip, em nạp được 1 lần sau đó tháo bớt dây ra, chỉ dùng dây nguồn và đất cho tiện, nhưng bây giờ lại không nạp được nữa! Em mắc giống ở ICSP guide rồi, cũng đảo qua chân 39,40 nhưng chưa được.
Em đã đo thử thì nguồn đủ (5,2V luôn), chân 1 thì lại là -0,15
--->các bác xem hộ em sao vậy nhỉ?
"chân gần chân đất" là chân nào, của cái gì?
"con tụ 33p" nối vào đâu?
ICSP Guide nào?

Bạn không cho biết sơ đồ mạch (ngay cả trường hợp nhà sản xuất đã có tài liệu thì bạn cũng nên đưa link, nếu không thì bạn post ảnh chụp của sơ đồ mạch).

Thử chẩn bệnh phần cứng mà đọc xong mô tả của bạn tôi hoàn toàn không hình dung được bạn nối cái gì vào đâu, và làm theo hướng dẫn nào.Tôi cho là hiếm có ai có khả năng chẩn bệnh kiểu này.

Trích:
Nguyên văn bởi hatnang87 View Post
2. Em làm cái mạch led chạy như trong tutorial của pvn, nạp bình thường (không nạp icsp nữa), cắm vào board, kiểm tra tiếp xúc tốt, cắm thạch anh ghi là 20.000, 2 con tụ ghi 33 (chắc là tụ 33p và thạch anh 20Mhz)-->không hiện tượng!
Em dùng que đo kiểm tra, điện áp ra ở các chân portB chỉ có 0,6V là cùng, chẳng led nào sáng. Em đo thử ở thạch anh thì kì lạ thay, led sáng!! Cứ mỗi lần em dí que đỏ vào chân thạch anh hay tụ thì nó lại sáng và chạy, nói chung thành ra mình điều khiển nó chạy chứ không phải do lập trình luôn! (Hôm nay em nối thạch anh và tụ chắc chắn hơn nên ban đầu nó sáng ngay led đầu tiên sau đó tịt! Hơ tay trên con pic thôi là nó chạy đúng luôn! )
Các bác xem hộ em. Nói chung lập trình là form chuẩn (em copy ở tut của anh chính, có chỉnh sửa chút) nên chắc không có vấn đề

;Su dung vi dieu khien microchip: PIC16F877A
title “delay_ms.asm”
processor 16f877a
include <p16f877a.inc>
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _XT_OSC & _WRT_OFF & _LVP_OFF & _CPD_OFF
;Mo ta chuong trinh: chuong trình rotate led, dich phai
;Mo ta phan cung: 8 LED duoc gan vao PORTB thong qua cac dien tro, cac
; thanh phan di kem bao gom thach anh, mach reset va nguon
;================================================= ============================
;Khoi tao cac bien
cblock 0x20count1 ;cac bien dung cho chuong trinh delay
counta
countb
endc
;================================================= ==============
;Bat dau chuong trinh chinh
org 0
main
;Khoi tao PORTB
bsf STATUS,RP0 ;chon bank 1
clrf TRISB ;toan bo PORTB la output
bcf STATUS,RP0 ;chon bank 0 de lam viec
movlw 0x80
movwf PORTB ;bat led dau tien o portB
loop ;vong lap chinh
call delay100ms
rrf PORTB,1 ;dich phai thanh ghi PORTB, ket qua ghi vao thanh ghi PORTB
goto loop
;====================
;chuong trinh con
delay100ms
movlw 0xC8
movwf count1
d1
movlw 0xC7
movwf counta
movlw 0x01
movwf countb
delay
decfsz counta,1
goto $+2
decfsz countb,1
goto delay
decfsz count1,1
goto d1
return
END ; ket thúc chuong trình
Thạch anh 20 MHz cần dùng cấu hình _HS_OSC chứ không phải _XT_OSC.

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 24-07-2008, 11:59 PM   #9
nguyenchituyen
Nhập môn đệ tử
 
Tham gia ngày: May 2007
Bài gửi: 8
:
Send a message via Yahoo to nguyenchituyen
Trích:
Nguyên văn bởi anhemFSA View Post
Mình dùng PIC18F45XX, nhưng khi chạm tay vào mạch ( cực dương hoặc âm ) thì PIC mới hoạt động. Không là nó thực hiện được 1 vài lệnh đầu rồi dừng luôn. Trong khi đó mình có lắp điện trở (mình đã thử 10K đến 30K) vào chân MCLR rồi.
Như vậy theo mình nghĩ là nguồn mình cấp có vấn đề, mình đã đo bằng đồng hồ là 5.3 - 5.4V? Mong các bạn giúp đỡ.
thuc ra ly do nay rat don gian:
mình đã từng gặp trường hợp giống bạn với pic28f2550 va pic8f252 cũng có tình trạng tượng tự như bạn, và mình đã đọc trên diễn đàn của CCS thì biết là do thiết lập dao đông không đúng, bạn nên coi kỹ datasheet và thiết lập lại là chạy ok.(vì mạch bạn khi chạm tay vào thì chạy ok vậy mach bạn đã chạy tốt). thân chao bạn TUYẾN.
nguyenchituyen vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 25-07-2008, 02:47 PM   #10
hatnang87
Nhập môn đệ tử
 
Tham gia ngày: Jul 2008
Bài gửi: 2
:
thanks bác nam nhiều! Em vừa hỏi hôm qua hôm nay đã có câu trả lời, rất vui với tinh thần nhiệt tình của bác và mọi người! Em đã sửa lại code như bác nói, đúng là em không để ý là tutorial dùng thạch anh 4Mhz còn em dùng loại 20Mhz, sửa lại cái là được ngay, không còn phải phù phép như trước nữa!!
Còn cái nạp ICSP thì em loay hoay cắm cắm lại thì nó lại được rồi, chưa rõ nguyên nhân thế nào vì vẫn mạch như trước, tháo ra cắm lại nó lại được (hôm trước cũng nạp được 1 lần nhưng sau đó tháo ra lắp lại thì lại không được), còn việc trình bày của em thì hơi lung tung, vì em trình bày theo ý nghĩ của mình nên nó không rõ ràng, còn nói chung thì vẫn là như theo hướng dẫn của microchip.
Thanks bác lần nữa, nhờ bác mà em có thêm hứng thú làm việc tiếp với pic, diễn đàn nhà ta cứ phát huy tinh thần như bác nam thì hẳn sẽ phát triển tốt.
Em có câu hỏi mới, xin phép sang luồng khác.
hatnang87 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 05:40 PM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam