PDA

View Full Version : Cơ bản PIC?


tuanva
10-06-2005, 03:37 PM
Chào tất cả,
Xin hỏi Microchip phân loại PIC theo cơ sở nào? Ví dụ,tôi thấy có loại 16C, có loại 16F, hoặc 18C và 18F, rồi còn các chữ cái cuối A, B,... Vậy đặc trưng của chúng là gì? Khi nào tôi chọn 16 hay 18, C hay F cho các ứng dụng của tôi?

Rất mong nhận được giải đáp sớm,
Cám ơn nhiều.

falleaf
11-06-2005, 10:38 PM
Tôi đã có một bài viết về cách phân loại và lựa chọn PIC đăng bên www.diendandientu.com, nhưng không còn nhớ chính xác link, có thể nó nằm trong luồng cơ bản về PIC.

Hôm nào rảnh tôi sẽ post lại bài viết này, và có thể sẽ có những bổ sung chi tiết hơn.

falleaf
05-07-2005, 05:31 AM
PIC là gì?

PIC là tên viết tắt của “máy tính thông minh khả trình” (Programmable Intelligent Computer) do hãng General Instrument đặt tên con con vi điều khiển đầu tiên của họ: PIC1650. Đây là con vi điều khiển đầu tiên, là mẹ đẻ của tất cả các vi điều khiển họ PIC sau này. Đến ngày nay, PIC1650 được phát triển và được biết dưới tên gọi PIC16C54. Nó được thiết kế để dùng cho các thiết bị ngoại vi của vi xử lý CP1600. Do vậy, nhiều người vẫn gọi nó là bộ điều khiển thiết bị ngoại vi Peripheral Interface Controller.

Các dòng PIC

Hãng Microchip (www.microchip.com) tiếp tục phát triển sản phẩm này, và hiện nay các sản phẩm vi điều khiển và các sản phẩm liên quan đến vi điều khiển đã được phát triển rất nhiều. Chúng ta tạm thời không quan tâm đến các sản phẩm khác, chỉ quan tâm đến các vi điều khiển PIC mà thôi. Cho đến này, các sản phẩm vi điều khiển PIC của Microchip đã gần 100 loại sản phẩm từ họ 10Fxxx đến các họ 12Cxxx, 12Fxxx, 16Cxx, 17Cxx, 16Fxx, 16Fxxx, 16FxxxA, 16LFxxxA, 18Fxxx, 18LFxxx, 18Fxxxx, 18LFxxxx… Tuy nhiên, họ 17Cxx hiện nay không còn được sản xuất, nên từ nay chúng ta sẽ không nhắc đến nó nữa. (Liệt kê các loại PIC)

Phân loại PIC

Những con số và những chữ cái ở đây có những ý nghĩa cụ thể của nó để phân loại các mặt hàng, và nó cũng là một điều lý thú để tìm hiểu. Tuy nhiên, vì hiện nay, hãy cho rằng các bạn chưa hiểu gì về các đặc tính kỹ thuật của vi điều khiển, mà các bạn cũng không cần quan tâm đến chúng làm gì, các bạn đang cần học cách sử dụng thôi. Vậy nên chúng tôi chỉ nói sơ qua rằng chúng ta có thể chia các họ vi điều khiển PIC (kể từ đây sẽ chỉ gọi là họ PIC) ra theo hai cách.

Các thứ nhất là chia theo các chữ cái. Các họ PIC xxCxxx được đưa vào một nhóm, gọi là nhóm OTP (One Time Programmable). Như tên gọi của nó, nhóm này, các bạn chỉ có thể lập trình và nạp chương trình cho nó được một lần duy nhất, và không thể thay đổi chương trình bên trong của nó bằng mạch điện thông thường. Nhóm thứ hai theo cách phân chia bằng chữ cái, đó là số còn lại với chữ F hoặc LF và duy nhất 16C84. Nhóm này là nhóm Flash, cho phép ghi xóa bằng các mạch điện tử thông thường, và ngày nay người ta chỉ mua mới những loại này. Lưu ý rằng, chúng ta gọi nhóm này là nhóm Flash, nhưng thực tế thì nó bao gồm cả nhóm EEPROM và Flash. Tuy nhiên, vì đặc điểm có thể ghi xóa nhiều lần, chúng ta gọi chung nó là nhóm Flash.

Cách phân chia thứ hai, đó là phân chia theo hai con số đầu tiên của sản phẩm. Các bạn có thể chia làm 3 loại. Loại thứ nhất là dòng PIC cơ bản (Base-Line), gồm các PIC 12Cxxx, loại thứ hai là các dòng PIC 10, 12F và 16, gọi là dòng phổ thông (Mid-Range), loại thứ ba là dòng PIC 18 (High-End). Sự khác nhau của các dòng này là thế nào ? Các bạn sẽ biết về khái niệm độ dài lệnh (Instruction Word Length) ở phần sau, tuy nhiên, các bạn có thể hiểu nôm na rằng, khi trái đất có thêm nhiều người, chúng ta cần nhiều thông tin về một người hơn để phân biệt người này với người kia. Vậy thì khi một vi điều khiển có nhiều lệnh hơn, thì nó cần nhiều bit để mô tả nhiều lệnh hơn, hay cần độ dài lệnh dài hơn. Base-Line có độ dài lệnh là 12 bit, Mid-Range có độ dài lệnh là 14bit, và High-End có độ dài lệnh là 16-bit.

Tài liệu tham khảo

Danh sách và tính năng tất cả các sản phẩm của Microchip được trình bày trong tài liệu « Product Selector Guide » và được cập nhật hàng năm. Trong đó có liệt kê cả những sản phẩm chưa ra đời, và sẽ ra đời trong thời gian sắp tới. Do vậy, chúng tôi cung cấp tài liệu « Product Selector Guide » năm 2004 trong CD đi kèm (CD:\\ Datasheets), nó có thể không đầy đủ cho các năm sau, các bạn có thể download tài liệu mới nhất trên trang web của Microchip. Chúng tôi cũng cung cấp một số datasheet của các dòng PIC thông dụng trong CD.

tuanva
05-07-2005, 01:57 PM
Theo yêu cầu, tôi chuyển các thắc mắc đã post trong luồng "Học PIC trong 1 ngày" về đây.

Tôi đã làm mạch chạy theo hướng dẫn. Tôi dùng thạch anh 10Mhz. Xin hỏi nếu tôi muốn PIC chạy tốc độ < 10Mhz (8 MHz chẳng hạn) mà ko thay thạch anh có được không? Làm thế nào?

Tôi muốn biết thêm về W reg (Work register)? Chưa thấy Falleaf nói rõ về thanh ghi này.

Phần nút bấm falleaf có thể cho 1 đoạn code mẫu (dùng cho mạch trong bài này) được không?


Thank.

falleaf
06-07-2005, 08:08 AM
Bạn nên phân biệt rõ, tốc độ thực hiện 1 lệnh (chu kỳ máy), và tốc độ thực hiện chương trình.

Khi bạn đã sử dụng thạch anh và cài đặt chế độ dao động thạch anh, thì lập tức bộ chia 4 và dao động thạch anh được nhận diện. Kết quả, chu kỳ máy không thay đổi. Tuy nhiên, nếu ý bạn muốn nói đến timer, tức là đơn vị quản lý thời gian của PIC, thì có thể thay đổi được bằng postscaler hoặc prescaler.

Do vậy, việc làm cho PIC chậm đi, theo nghĩa từng lệnh của PIC thực hiện chậm đi là không thể làm được. Kể cả với việc chia hai, chứ chưa nói là một con số 10MHz và 8MHz không có mối liên hệ gì mới.

Về thanh ghi W, tôi sẽ viết một bài sau, hiện tại tôi hơi bận, mong bạn thông cảm. << đang rấtt buồn ngủ.

Thanks

tuanva
11-08-2005, 03:46 PM
PIC là gì?

Phân loại PIC

Các thứ nhất là chia theo các chữ cái. Các họ PIC xxCxxx được đưa vào một nhóm, gọi là nhóm OTP (One Time Programmable). Như tên gọi của nó, nhóm này, các bạn chỉ có thể lập trình và nạp chương trình cho nó được một lần duy nhất, và không thể thay đổi chương trình bên trong của nó bằng mạch điện thông thường. Nhóm thứ hai theo cách phân chia bằng chữ cái, đó là số còn lại với chữ F hoặc LF và duy nhất 16C84. Nhóm này là nhóm Flash, cho phép ghi xóa bằng các mạch điện tử thông thường, và ngày nay người ta chỉ mua mới những loại này. Lưu ý rằng, chúng ta gọi nhóm này là nhóm Flash, nhưng thực tế thì nó bao gồm cả nhóm EEPROM và Flash. Tuy nhiên, vì đặc điểm có thể ghi xóa nhiều lần, chúng ta gọi chung nó là nhóm Flash.



Xin hỏi Falleaf,
Nếu tôi muốn phát triển các ứng dụng trên họ chip xxCxxx (nhóm OTP), tôi phải làm thế nào khi nó chỉ cho nạp 1 lần. Tôi phải sử dụng phần mềm mô phỏng? hay chọn loại thuộc nhóm Flash tương đương ? (Tôi muốn dùng con 16C774 vì nó có ADC 12 bit, buồn nỗi là chỉ đc nạp 1 lần :( )

falleaf
12-08-2005, 03:09 AM
Nếu bạn muốn dùng họ xxCxxx thì chắc chắn bạn phải dùng đến debug để có thể khẳng định phần nào chương trình bạn viết là chính xác như những gì bạn cần.

Nếu bạn cần 12bit ADC và không quan tâm đến loại nào, bạn có thể dùng dsPIC để thay thế.

Với dsPIC, bạn phải sử dụng các mạch nạp đặc biệt như ICD2 hay Falleaf PIC3, khá tốn kém.

Nếu bạn muốn sử dụng 12 bit trên MCU 10 bit adc, bạn có thể chia 4 khoảng điện áp cần đo. Bạn dùng một thuật toán chuyển để đóng mở các khoảng điện áp phù hợp, nằm trong vùng cần đo của bạn, sau đó làm mạch ngoài để thay đổi Vref+ và Vref-. Như vậy, trong một đoạn nhỏ bằng 1/4 mà bạn dùng được 10 bit, tức là bạn dùng được 12 bit adc.

chúc vui.

dongnx_cvn
29-07-2006, 12:55 AM
Help me! Em mới học về PIC nên không biết nhiều lắm. Các bác có thể nói qua cho em về Timer và Interrupt được không ạ?! Thanks các bác nhiều nhiều

newuser
03-08-2006, 09:02 AM
file hình mình cắt ở tài liệu gì đó không nhớ lắm, hồi đó mình cắt vì thấy nó...đẹp. Còn file TIMER.pdf mình viết lại theo datasheet của PIC6F877A, có tham khảo tài liệu của anh Phi và bạn Chính, tuy nhiên mình cũng chưa kiểm chứng, nhờ bạn kiểm chứng dùm mình luôn. Bạn nên chịu khó đọc tài liệu tiếng Anh và xem kỹ mấy cái hình trong đó rồi tự đưa ra nhận xét cho mình.
Riêng về ngắt, trong datasheet họ có đưa sơ đồ logic tất cả các ngắt đó, rất dễ hiểu mà!

duydien187
26-05-2013, 08:56 PM
BẠn Newuser cho mình hỏi là bạn có tài liệu gì về con PIC 16F685 không

duy08091983
27-05-2013, 08:12 PM
Theo mình biết, anh lấy datasheet của con này và "Application Notes" trước tại: http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en023115

BẠn Newuser cho mình hỏi là bạn có tài liệu gì về con PIC 16F685 không

duydien187
28-05-2013, 09:37 AM
thanhk anh Duy09081983 .. em dang lam de de tai ve con PIC16f685 no giao tiep voi con PCF8583 doc thoi gian thuc hien thi len LCD .. em moi doc ve con PIC va con thoi gian thuc kia. co van de gi em hoi anh qua yahoo dc khong a