PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Cơ bản về vi điều khiển và PIC (http://www.picvietnam.com/forum/forumdisplay.php?f=8)
-   -   Dạy bang chủ học PIC18 (http://www.picvietnam.com/forum/showthread.php?t=810)

namqn 23-10-2007 05:46 PM

Trích:

Nguyên văn bởi tungtot_vl (Post 12262)
đã có mạch tẽt thủ nhưng không thấy chạy gì cả không biết có phải config sai không. mạch text thì em dùng mạch của của con 16f877a chạy tốt và chỉ thêm mấy cái tụ 104 và 5v và mass thôi.
xin mấy đại ca chỉ giáo

Bạn so sánh sơ đồ chân của PIC16F877A và PIC18F4550. Hai chip này không hoàn toàn giống nhau. Trong luồng này đã có một vài mạch thử nghiệm cho PIC18F4550 rồi. Bạn cũng có thể vào các trang sau để tham khảo mạch thử nghiệm tối thiểu.

http://www.sixca.com/eng/articles/usbdaq/index.html (chân 18 cần tụ 470 nF chứ không phải 470 pF)
http://www.electronicfr.com/usb.html
http://pic18fusb.online.fr/wiki/wikk...wakka=WikiHome

Trong những sơ đồ trên bạn đều thấy là chân 18 của PIC18F4550 cần phải có một tụ 470 nF.

Thân,

hampic 23-10-2007 10:34 PM

Trích:

Nguyên văn bởi namqn (Post 6547)
Chú ý: xem hình 17-1, trang 163 của datasheet cho PIC18F4550 family (DS39632C), nếu có dùng điện trở pull-up bên ngoài thì người ta nối nó với nguồn ngoài 3.3V. Lý do chính để đưa chân VUSB ra vỏ chip là cần có một tụ (mà RedRose nói là tụ điện nhỏ).

RedRose nói tụ điện nhỏ thì bao nhiêu có thể coi là nhỏ, và bao nhiêu có thể coi là đủ? (câu này hỏi RedRose)

Một câu hỏi nữa là tại sao cần có tụ điện cho chân VUSB (mà Microchip nhắc nhở rất nhiều lần về việc dùng giá trị đúng cho nó)?

Hy vọng chú F cũng tính điểm cho phần trả lời của các câu hỏi này.

Thân,

hehe, nghe nói có treo thưởng nên làm liều trả lời 1 phát thử có trúng ko, nếu trúng thì kiếm con pic vọc cũng đở bùn,hihi.
Theo em, thì cái tụ nhỏ này là khoảng 470uF. Lý do vì sao cần tụ này thì theo mình, do Vbus cấp điện áp cho D+ và D- thông qua điện trở kéo lên bên trong (có thể thay thế bằng R bên ngoài nếu muốn), mà 2 tín hiệu vi sai này là ngỏ ra dữ liệu của USB, được dao động ở tần số 12MHz(Full speed), cho nên để ổn định nguồn này thì chắc cần phải có tụ ở đây rùi. Hihi, giải thích như vậy ko biết có đúng ko nữa, hên xui thui, hihi.

namqn 24-10-2007 12:23 AM

Trích:

Nguyên văn bởi hampic (Post 12310)
hehe, nghe nói có treo thưởng nên làm liều trả lời 1 phát thử có trúng ko, nếu trúng thì kiếm con pic vọc cũng đở bùn,hihi.
Theo em, thì cái tụ nhỏ này là khoảng 470uF. Lý do vì sao cần tụ này thì theo mình, do Vbus cấp điện áp cho D+ và D- thông qua điện trở kéo lên bên trong (có thể thay thế bằng R bên ngoài nếu muốn), mà 2 tín hiệu vi sai này là ngỏ ra dữ liệu của USB, được dao động ở tần số 12MHz(Full speed), cho nên để ổn định nguồn này thì chắc cần phải có tụ ở đây rùi. Hihi, giải thích như vậy ko biết có đúng ko nữa, hên xui thui, hihi.

Câu hỏi này đã được phamthaihoa trả lời tốt ở post #41. Bạn nên đọc lại post đó để biết mình trả lời chưa được chính xác. Để lấy được PIC thì bạn phải trả lời tốt khoảng 5 câu hỏi.

Thân,

ghosttn 24-10-2007 08:06 PM

--------------------------------------------------------------------------------

mấy anh chỉ hộ em mấy con IC chuyển song song --> nối tiếp với.
//======================================
dạng vào n bit -->lock n bit--> clock out 1
em đang cần con này để trị thằng 595.
//==============================
hây sao mấy anh không hộ em ti'
thế này sao lên được đệ tử 1 túi.
ăn mày kiểu này chắc thành xương lâu rồi.

namqn 24-10-2007 09:53 PM

Trích:

Nguyên văn bởi ghosttn (Post 12331)
--------------------------------------------------------------------------------

mấy anh chỉ hộ em mấy con IC chuyển song song --> nối tiếp với.
//======================================
dạng vào n bit -->lock n bit--> clock out 1
em đang cần con này để trị thằng 595.
//==============================
hây sao mấy anh không hộ em ti'
thế này sao lên được đệ tử 1 túi.
ăn mày kiểu này chắc thành xương lâu rồi.

Linh kiện mà bạn cần là parallel-in/serial-out shift register, 74HC/HCT165 chẳng hạn. Tuy nhiên, nếu bạn đã dùng vi điều khiển thì việc dịch các bit ra 595 không có gì là phức tạp cả, và bạn sẽ tiết kiệm được khá nhiều chân của vi điều khiển.

Thân,

tungtot_vl 25-10-2007 03:03 PM

vẫn chưa chạy
 
Trích:

Nguyên văn bởi namqn (Post 12307)
Bạn so sánh sơ đồ chân của PIC16F877A và PIC18F4550. Hai chip này không hoàn toàn giống nhau. Trong luồng này đã có một vài mạch thử nghiệm cho PIC18F4550 rồi. Bạn cũng có thể vào các trang sau để tham khảo mạch thử nghiệm tối thiểu.

http://www.sixca.com/eng/articles/usbdaq/index.html (chân 18 cần tụ 470 nF chứ không phải 470 pF)
http://www.electronicfr.com/usb.html
http://pic18fusb.online.fr/wiki/wikk...wakka=WikiHome

Trong những sơ đồ trên bạn đều thấy là chân 18 của PIC18F4550 cần phải có một tụ 470 nF.

Thân,

không có tụ 470n nên em dùng 2 tụ 1u nối tiếp nhưng vẫn không thấy chạy gì cả. em nghĩ phần cứng không có vấn đề gì vì khi em dùng portb = 0xff và = 0; thì không thấy đèn nháy nhưng khi thay output_high(..) hay output_low(..) thì thấy đèn nhấp nháy theo chu kỳ bình thường.
không biết vì sao lại xuất bằng port không được hả anh nam trong khi đã khai báo đầy đủ #byte portb = 0x06 và trisb(0).
mong anh chỉ giúp

namqn 25-10-2007 05:41 PM

Trích:

Nguyên văn bởi tungtot_vl (Post 12351)
không có tụ 470n nên em dùng 2 tụ 1u nối tiếp nhưng vẫn không thấy chạy gì cả. em nghĩ phần cứng không có vấn đề gì vì khi em dùng portb = 0xff và = 0; thì không thấy đèn nháy nhưng khi thay output_high(..) hay output_low(..) thì thấy đèn nhấp nháy theo chu kỳ bình thường.
không biết vì sao lại xuất bằng port không được hả anh nam trong khi đã khai báo đầy đủ #byte portb = 0x06 và trisb(0).
mong anh chỉ giúp

Bạn dùng thanh ghi LATB thay cho PORTB thử xem. Bạn cũng có thể dùng hàm OUTPUT_B() của CCS C. Không nên thao tác trực tiếp các thanh ghi PORTx của PIC18, khi cần xuất dữ liệu.

Tôi cho rằng các trình dịch đã định nghĩa sẵn các thanh ghi của PIC, do đó không cần định nghĩa lại như bạn đã làm với #byte portb = 0x06. Tôi cũng cho rằng hàm thiết lập thanh ghi TRISB của CCS C là SET_TRIS_B().

Thân,

tungtot_vl 27-10-2007 10:17 AM

cảm ơn anh nam nhiều. quả nhiên dùng outputB(value) thì có hiệu quả ngay. kết quả thật bất ngờ nhưng không hiểu nối dùng port và output có gì khác nhau và 18f4550 kkhông cho dùng port

vandungevn 27-10-2007 11:39 AM

Trong CCS nó chỉ có hiểu là outport_x chứ nó không hiêu portx là gì cả.
Trong MPLAB thì mới có khái niêm portx

tungtot_vl 21-12-2007 07:35 AM

các bác ơi sao con 18f4550 chạy kém ổn định quá.
khi em dùng 18f4550 cho 1 số mạch thì nó chạy tốt nhưng có 1 số mạch khi đang chạy thì nó hay reset lại từ đầu. khi em dùng phần mềm này chạy cho con 16f877a và dùng chung phần cứng thì nó chạy tốt không biết vì sao hả các bác. bác nào biết chỉ cho em với

namqn 21-12-2007 07:00 PM

Trích:

Nguyên văn bởi tungtot_vl (Post 13448)
các bác ơi sao con 18f4550 chạy kém ổn định quá.
khi em dùng 18f4550 cho 1 số mạch thì nó chạy tốt nhưng có 1 số mạch khi đang chạy thì nó hay reset lại từ đầu. khi em dùng phần mềm này chạy cho con 16f877a và dùng chung phần cứng thì nó chạy tốt không biết vì sao hả các bác. bác nào biết chỉ cho em với

Những mạch nào của bạn khiến PIC18F4550 chạy không ổn định, code tương ứng của các mạch ra sao? Bạn không nên nhanh chóng kết luận PIC18F4550 chạy kém ổn định. Tôi tin là đã có nhiều người thực hiện các mạch khác nhau với PIC18F4550, nhưng ít nghe phản ánh về độ tin cậy của nó. Mong bạn cung cấp thêm thông tin để việc phản hồi được tin cậy và chính xác hơn.

Thân,

tungtot_vl 22-12-2007 11:35 AM

em đang làm mạch quang báo bằng con 4550. khi em gắn tụ 10u song song với điện trở 4,7k ở cực B của tranistor a1013 và cho chạy bằng con 4550. khi bật nguồn lên được vài dây thì nó cứ reset lại từ đầu, do đó không chạy chử được. nhưng nếu em tháo tụ 10u ra thì nó chạy bình thường. và nếu em gắn tụ 10u vào và chạy bằng con 877a thì chạy cũng bình thường. không có vấn đề gì cả. điều quang trong là em muốn giử tụ 10u lại và chạy bằng con 4550 thì làm thế nào hả anh.
à. mà anh nam ơi nếu em không dùng chân usb của 4550 thì không gắn tụ 470p vào chân 18 thì có ảnh hưởng gì đến hoạt động của 4550. lâu nay em chạy bình thường mà không cần gắn tụ 470p vào chân này. mong anh chỉ giúp.

namqn 22-12-2007 05:49 PM

Bạn không cho biết mạch nguyên lý cùng với code chương trình thì những mô tả trên của bạn cũng chẳng giúp ích gì cho những người khác đang thử tìm hiểu vấn đề của bạn. Giả sử với cùng phần cứng ngoại vi, bạn viết code cho PIC16 và PIC18 sẽ khác nhau đôi chút, vì PIC18 có những tính năng bổ sung mà PIC16 không có (đã từng có bạn viết code thử nghiệm PIC18 rất đơn giản mà không chạy, lý do đơn giản vì bạn ấy bỏ qua các thiết lập ban đầu cho các từ cấu hình, nên phản ứng của PIC18 là không biết trước). Cần phải xem bạn kết nối phần cứng ra sao, và viết code cho PIC18 thế nào thì mới tìm hiểu xem vấn đề nằm ở đâu được.

Tụ nối vào chân VUSB của PIC18 là 470 nF chứ không phải 470 pF. Chân đó chỉ có nhiệm vụ làm VUSB thì nên nối hẳn tụ vào, mặc dù điều này là không cần thiết nếu bạn không dùng module USB của PIC.

Thân,

tungtot_vl 24-12-2007 02:01 PM

1 Attachment(s)
Trích:

#include<18f4550.h>
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CP UDIV1,VREGEN
#use delay(clock=48000000)
#include<E:\LED MATRIX\18f4550\fontchu.c>
#use fast_io(a)
#use fast_io(b)
#use fast_io(c)
#use fast_io(d)
#use fast_io(e)
trên là phần khai báo của em cho 18f4550.
vì code dài quá không port hết được
và mạch nguyên lý như hình vẽ.
khi không có tụ 10u thì 18f4550 chạy bình thường. nếu nối tụ vào thì có hiện tượng như đã nói ở trên, nhưng nếu dùng 16f877a thì chạy tốt.
không hiểu vì sao.

namqn 26-12-2007 02:13 AM

Trích:

Nguyên văn bởi tungtot_vl (Post 13513)
trên là phần khai báo của em cho 18f4550.
vì code dài quá không port hết được
và mạch nguyên lý như hình vẽ.
khi không có tụ 10u thì 18f4550 chạy bình thường. nếu nối tụ vào thì có hiện tượng như đã nói ở trên, nhưng nếu dùng 16f877a thì chạy tốt.
không hiểu vì sao.

Bạn cho biết lý do của việc gắn tụ điện 10 uF song song với điện trở cực base của transistor. Tôi không thấy có lý do nào cần gắn tụ điện này.

Thân,


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

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam