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)

littlephoc 22-12-2006 05:10 AM

Hiện tại mình không dùng PICDEM bỏad nữa mà dùng mạch riêng trong việc nghiên cứu của mình. Để nạp chương trình cho chip, mình vẫn dùng ICD 2 nối với mạch :
Vpp(nguồn), Vss(mát), RB6,RB7(data), và 1 line clock. tổng cộng hết 5 dây.
Tất cả những chip xử lý truớc đây đều dùng cách nạp thông qua cổng ngoại vi là serial rs-232, hoặc cổng song song. Có lẽ do thời truớc USB interface chưa phổ biến.
Còn bây giờ, càng ngày càng hiếm máy tính dùng cổng seiral mà thay vào đó là cổng usb, và con chíp thì nó đã hỗ trợ giao tiếp usb. Mạch nạp thì đơn giản, chỉ cấp nguồn cho nó bằng nguồn của usb, dữ liệu nối vào cổng RC4,RC5
thế là xong, đâu có thêm chi tiết nào vào mạch để nó phức tạp đâu ???
Cái này là ý kiến của /me, ai thấy sai thì mong chỉ cho mình, như thế mình sẽ thấy đuợc cái dốt của mình ở chỗ nào mà sửa.

falleaf 22-12-2006 01:28 PM

Trích:

Nguyên văn bởi littlephoc (Post 6525)
Hiện tại mình không dùng PICDEM bỏad nữa mà dùng mạch riêng trong việc nghiên cứu của mình. Để nạp chương trình cho chip, mình vẫn dùng ICD 2 nối với mạch :
Vpp(nguồn), Vss(mát), RB6,RB7(data), và 1 line clock. tổng cộng hết 5 dây.
Tất cả những chip xử lý truớc đây đều dùng cách nạp thông qua cổng ngoại vi là serial rs-232, hoặc cổng song song. Có lẽ do thời truớc USB interface chưa phổ biến.
Còn bây giờ, càng ngày càng hiếm máy tính dùng cổng seiral mà thay vào đó là cổng usb, và con chíp thì nó đã hỗ trợ giao tiếp usb. Mạch nạp thì đơn giản, chỉ cấp nguồn cho nó bằng nguồn của usb, dữ liệu nối vào cổng RC4,RC5
thế là xong, đâu có thêm chi tiết nào vào mạch để nó phức tạp đâu ???
Cái này là ý kiến của /me, ai thấy sai thì mong chỉ cho mình, như thế mình sẽ thấy đuợc cái dốt của mình ở chỗ nào mà sửa.

Bạn xem lại, nó là VPP = MCLR* (nâng lên mức điện âp cao, chuyển PIC vào chế độ nạp, đẩy lên khoảng 13V), VDD = VDD (nguồn 5V), VSS = GND, RB6, RB7 thực ra là PGD và PGC (không nhớ thứ tự), nó mới là data và clock.

Tuy nhiên, tránh làm loãng vấn đề về PIC18, bạn chuyển vấn đề thảo luận này sang luồng của về "Thông tin về mạch nạp và chương trình nạp" do anh Nam chủ trì, nằm trong box Programmer và Bootloader.

Chúc vui

RedRose 22-12-2006 04:57 PM

Thạch anh
 
1 Attachment(s)
Về thạch anh thì các bạn xem hình sau chắc sẽ hiểu ngay.
+Vì tần số vào bộ PLL2 là (4Mhz Input only), và bộ PLL1 có các số chia 1,2,3,4,5,6,10,12 nên tần số thạch anh phải là thế.
+Tần số của CPU có thể được lấy từ bộ PLL2 nên có thể hoạt động ở tốc độ cao với crystal thấp.

+ USB hoạt động ở 3,3V. Trong PIC đã có modul ổn áp rồi, khi sử dụng USB bạn phải cấu hình bật nó lên (USB Voltage Regulator). Chân Vusb là chân đầu ra của bộ ổn áp này, dùng để nối với điện trở ngoài nếu cần. Nối với điện trở ngoài để xác lập USB chạy ở tốc độ nào (low or full). Trong pic đã có điện trở này nên thường bạn ko cần nối với điện trở ngoài nữa. Thường chỉ cần nối với 1 tụ điện nhỏ. Dĩ nhiên không được nối 5V vào đó.

falleaf 23-12-2006 10:26 AM

Vậy tóm lại các bạn có định cho F một cái mạch chạy tạm thời không nhỉ? Không có mạch thì cuối cùng F cũng chỉ là học chay thôi đó.

Phần dao động tạm thông qua, còn phần RESET nữa nhỉ?

Chúc vui

tda 23-12-2006 12:14 PM

Trích:

+ USB hoạt động ở 3,3V. Trong PIC đã có modul ổn áp rồi, khi sử dụng USB bạn phải cấu hình bật nó lên (USB Voltage Regulator). Chân Vusb là chân đầu ra của bộ ổn áp này, dùng để nối với điện trở ngoài nếu cần. Nối với điện trở ngoài để xác lập USB chạy ở tốc độ nào (low or full). Trong pic đã có điện trở này nên thường bạn ko cần nối với điện trở ngoài nữa. Thường chỉ cần nối với 1 tụ điện nhỏ. Dĩ nhiên không được nối 5V vào đó.
Vậy có dùng được chân này nối vào các con IC dùng nguồn 3.3 V ko? như 33dsPIC chẳng hạn.

Và nếu vậy 2 con PIC dùng nguồn khác nhau thì có giao tiếp trực tiếp thông qua các chân được ko nhỉ ? (như I2C - chân nối vào chân)?

thắc mắc

falleaf 23-12-2006 12:50 PM

undefined
Trích:

Nguyên văn bởi tda (Post 6538)
Vậy có dùng được chân này nối vào các con IC dùng nguồn 3.3 V ko? như 33dsPIC chẳng hạn.

Và nếu vậy 2 con PIC dùng nguồn khác nhau thì có giao tiếp trực tiếp thông qua các chân được ko nhỉ ? (như I2C - chân nối vào chân)?

thắc mắc

Các bạn chuyển qua các phần khác thảo luận thêm về USB và I2C, CAN nhé.. Luồng này để làm phần cơ bản thôi. Please...

Lý do chính của luồng này các bạn cũng đã biết rồi. Nó không phải dành cho những thứ quá "cao siêu", F không thích cái gì xa quá cả. F chỉ đơn giản mỗi ngày dành ra 15 phút cho cái này, làm theo các bạn. Thực tế đang lắp cái mạch chạy trên test board, nói nghe hơi buồn cười nhưng mà bạn nào gửi cho F cái mạch chạy đi, không F lại lắp sai, cháy chip thì toi....

Chúc vui

falleaf 23-12-2006 01:01 PM

Nhắc lại câu hỏi 5: Liệt kê các tính năng của PIC18F4550.

Chúc vui

falleaf 23-12-2006 01:04 PM

Trích:

Nguyên văn bởi fluidmech (Post 6474)
Bang chủ ơi, em cũng đang muốn tự làm cái mạch để điều khiển robot qua USB, em cũng đang bắt đầu học VC++ thôi, mình cùng học nhé.
Em co mấy quyển ebook, làm sao mà gửi cho bang chủ được?

Bạn lên Tài liệu Việt Nam download cuốn USB Complete nhé.

Chúc vui

namqn 23-12-2006 11:42 PM

Trích:

Nguyên văn bởi RedRose (Post 6529)
+ USB hoạt động ở 3,3V. Trong PIC đã có modul ổn áp rồi, khi sử dụng USB bạn phải cấu hình bật nó lên (USB Voltage Regulator). Chân Vusb là chân đầu ra của bộ ổn áp này, dùng để nối với điện trở ngoài nếu cần. Nối với điện trở ngoài để xác lập USB chạy ở tốc độ nào (low or full). Trong pic đã có điện trở này nên thường bạn ko cần nối với điện trở ngoài nữa. Thường chỉ cần nối với 1 tụ điện nhỏ. Dĩ nhiên không được nối 5V vào đó.

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,

falleaf 24-12-2006 03:40 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,

Sure, miễn là có một điều để học về 18F4550, thì sẽ tính điểm trả lời.

Chúc vui

phamthaihoa 24-12-2006 04:11 PM

Trích:

Nguyên văn bởi namqn (Post 6547)
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ó)?

Câu hỏi khó nhất trong luồng này đây, trả lời hoàn chỉnh câu này anh F phải tính cho 2 nháy mới ổn :D

[edit lại]

Em mới xem lại cấu trúc của chân Vusb của PIC, nó mắc vào đầu ra của con internal 3v3 regulator, đầu ra này treo 2 chân D+,D- hai trở treo trong, có thế điều khiển qua 2 con fet kênh P.
Nếu mắc như vậy thì theo em con tụ đó chỉ có tác dụng ổn áp cho nguồn 3v3, em đã lấy mạch thay thử một vài giá trị tụ khác nhau, vẫn hoạt động bình thường.

http://i58.photobucket.com/albums/g2...haihoa/2-2.jpg

Trong nhiều thiết kế cũng thấy các giá trị khác nhau, trong ICD2 trên EDA thì giá trị này cỡ 150nF,220nF. Nhưng trong SCH ví dụ của PIC Basic về Easy HID hay sixca.com thì giá trị này là 47uF,470uF.

http://www.mecanique.co.uk/products/...atic-small.gif

Microchip cho vào chân này con 220nF+-20%, giá trị này theo Microchip là được tính sao cho đủ tích nạp cho tải đỉnh với sụt áp thấp nhất. Nhưng ngay sau đó Microchip thêm câu này "These parameters are characterized but not tested." quả là làm nản lòng chiến sĩ.

Ngoài ra, trong USB Spec còn nối đến tụ làm nhiệm vụ "Edge Rate Control" tại chân D+, D-
http://i58.photobucket.com/albums/g2...haihoa/1-4.jpg
Việc dùng đúng giá trị tụ này khác nhau giữa LowSpeed và FullSpeed, ở đây ta quan tâm đến chuẩn FullSpeed, nên em chỉ nói cho nó.

Đối với chuẩn FullSpeed ta nối con tụ 50pF cho mỗi chân D+,D- . Giá trị này được tính để đảm bảo nạp cho chân D+,D- từ 0V đến Vih(min) trong khoảng 2.5uS.
Giá trị này còn phải phối hợp với dung kháng và trở kháng của dây D+,D-, với dung kháng đầu vào của host, hub, đảm bảo falltime và risetime của tín hiệu trong khoảng 4-->20ns.

Đối với LowSpeed thì lằng nhằng rắc rối hơn, nó phân biệt giữa downstream và upstream, nếu ai muốn tìm hiểu thì có thể đọc USB Spec, có nói khá chi tiết.

Ngoài ra còn một giá trị tụ khác, là tụ nối vào chân Vbus (1 trong bốn chân của dây USB, D+,D-, GND, Vbus), giá trị này phải đảm bảo sụt áp khi cắm, rút thiết bị, hay thay đổi thông số self power, không quá 350mV nếu kết nối với Hub, và 125mV nếu nối 2 thiết bị từ cổng A đến B(host-->device). Giá trị này không quá 10uF.

namqn: chú Hòa edit lại đi, đơn vị của tụ không đúng rồi!
tonamqn: Anh check lại xem đúng vậy không, em đọc chương 7: Electrical của USB Spec.

namqn 24-12-2006 11:54 PM

Chú Hòa trả lời tốt câu hỏi về tụ VUSB.

Chuyện dùng tụ để điều chỉnh độ dốc của cạnh sóng thì đúng là USB Spec. có đề cập, nhưng với họ PIC18F4550 của Microchip thì chúng nó đã gộp Rs vào cái driver rồi (xem bảng 28-4, datasheet của họ PIC18F4550), do đó chưa từng thấy có thiết kế nào lại nối tụ cỡ vài mươi pF vào D+ và D- của họ PIC18F4550.

Khi xét đến ngoại vi USB, chúng ta chỉ nói đến upstream, nên chỉ cần quan tâm đến các yêu cầu đối với upstream.

Chú Hòa nên ưu tiên cho học viên, đừng đặt nhiều câu hỏi quá nhé!

Thân,

RedRose 25-12-2006 09:13 AM

1 Attachment(s)
Về tụ USB trong datasheet thì Microchip cũng chỉ ghi:
"An external 220 nF (±20%) capacitor is required for stability"
nên em cũng chỉ nghĩ giống bạn Hòa.

Thực tế giá trị 220nF cũng ko phải là chuẩn. Bản thân mạch PICDEM FS USB của Microchip cũng sử dụng tụ 470nF. Em cho rằng sử dụng các giá trị trong khoảng này là ổn. Chắc ko đến đơn vị uF.

Chân Vusb này có thể lắp điện trở ngoài như hình 17-3 trang 167 datasheet.

Cũng như Hòa đã nói, chân Vbus cũng cần 1 tụ điện có trị số trong khoảng 1uF-10uF.

falleaf 25-12-2006 12:11 PM

Các đồng chí thiết kế mạch quá cao siêu, tóm lại, con PIC18F4550 hỗ trợ những tính năng gì?

Câu hỏi đặt ra này có vẻ hơi ngớ ngẩn, nhưng đừng cho rằng nó quá ngớ ngẩn, bởi vì hãy nhìn một người mới học, khi đọc luồng này, họ đang bị dội vì những cái có thể nói là chả hiểu gì vả chả có gì để mà hiểu?

Làm việc luôn có một mục đích, một đối tượng cụ thể, các đồng chí đi quá xa vấn đề, và dường như các đồng chí đang làm cho những người muốn thực hành từng bước bị dội thì phải?

Nếu làm vậy, thì nói thực là picvietnam không thể mạnh được đâu. picvietnam mạnh được là nhờ rất nhiều người cùng học cùng nghiên cứu, chứ picvietnam không thể mạnh nhờ những mod giỏi.

Đúng như anh Nam nhắc nhở, việc thảo luận USB tạm thời chấm dứt ở đây, chúng ta sẽ nói lại vấn đề USB ở phần cuối của 4550.

Oki, trong lúc nói về USB, PTH đã gửi cho chúng ta một cái sơ đồ nguyên lý. F sẽ sử dụng sơ đồ nguyên lý này để lắp mạch chạy

Các bạn làm theo mạch này chú ý, F sẽ không lắp phần USB, và các bạn cũng khoan lắp phần USB. Chúng ta trước tiên đơn giản nói về I/O, I/O và tập lệnh là cái mà chúng ta đang cần quan tâm ở đây.

http://www.picvietnam.com/download/taplenh.pdf

Chắc các bạn còn nhớ bản tập lệnh này. Nó cần cho người đọc thế nào, thì F cũng rất muốn soạn lại phần tập lệnh này cho người học 18F. Vậy bạn nào soạn lại tài liệu này theo chuẩn form của picvietnam, F xin gửi tặng ngay các bạn 5 con PIC18F4550.

Nếu chịu khó ngồi làm việc, các bạn làm việc 1 ngày liên tục để soạn lại, các bạn dường như được trả lương với một cái giá 80K x 5 = 400K cho một ngày làm việc, và các bạn đem lại một lợi ích là 30 phút (đọc, chưa chắc hiểu tập lệnh) x 100 người/ngày = 3000 phút/ngày. = 50 giờ /ngày.

Lương kỹ sư 3 triệu/tháng (là thấp lắm rồi) = 100K/ngày = 15K/giờ (cực thấp).

Vậy với việc làm này các bạn giúp cho xã hội một ngày 15K x 50 = 750K/ngày.

Các bạn bỏ ra 1 ngày làm việc, và các bạn nhận được mức lương 400K/ngày, công việc của các bạn đem lại lợi ích 750K/ngày cho xã hội. Chừng nào picvietnam còn tồn tại, chừng đó lợi ích này vẫn còn.

Mỗi năm picvietnam tồn tại, công việc của các bạn đem lại cho xã hội 750K x 300 ngày = 225000K/năm. Cụ thể là 225 triệu VND/năm.

Các bạn không tin vào các con số mà F tính toán? Các bạn thử soạn bộ tập lệnh đi rồi các bạn sẽ biết hiệu quả của nó.

Riêng picvietnam chỉ ngồi nói dóc 1 năm, kéo được công ty sản xuất vi điều khiển 8bit vào VN, thì đó không phải là nói dóc nữa. Và chúng ta sẽ xem thử VN có lợi được bao nhiêu trong vụ này?

Vậy nên, F trả lương 5 con PIC cho người nào soạn lại bộ tập lệnh này có ý nghĩa của nó chứ nhỉ? Cái giá bèo là tại vì F không có tiền :D. Hoàn toàn nghiêm túc nhé.

Chúc vui

phamthaihoa 25-12-2006 02:03 PM

Thế thôi, em đóng góp cho luồng này của anh F vậy :D

Trả lời câu 5: Việc muốn biết tính năng của bất cứ tính năng nào của con PIC thì nơi tốt nhất phải là datasheet của nó, tất cả những điều hay của con PIC đều được Microchip giới thiệu ở trang thứ 3 của Datasheet.
Mục lục của Datasheet đó cũng gần như là giới thiệu tính năng của con PIC đó.

Ở đống câu hỏi dài ngoằng của em ở trên, có nói về hầu hết các tính năng mới của 18F4550, em hỏi cho vui thôi, bạn nào muốn trả lời những câu hỏi đó tớ sẵn sàng giúp.


Múi giờ GMT. Hiện tại là 03:29 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