- Kiến trúc và ứng dụng vi điều khiển PIC:
- Lựa chọn Vi điều khiển PIC cho các Hướng dẫn của chúng tôi:
- Lựa chọn phần mềm cho các hướng dẫn của chúng tôi:
- Sẵn sàng với phần cứng:
Năm 1980, Intel phát triển Vi điều khiển đầu tiên (8051) với Kiến trúc Harvard 8051 và từ đó Vi điều khiển đã mang lại một cuộc cách mạng trong ngành Điện tử và công nghiệp nhúng. Và với sự tiến bộ của công nghệ theo thời gian, giờ đây chúng ta có nhiều bộ vi điều khiển hiệu quả hơn và công suất thấp hơn như AVR, PIC, ARM. Các Vi điều khiển này có nhiều khả năng và dễ sử dụng hơn, có các giao thức giao tiếp mới nhất như USB, I2C, SPI, CAN, v.v. Ngay cả Arduino và Raspberry Pi đã thay đổi hoàn toàn quan điểm đối với Vi điều khiển, và Raspberry Pi không chỉ là một vi điều khiển mà nó còn có cả máy tính bên trong.
Đây sẽ là phần đầu tiên của loạt bài hướng dẫn chưa có, sẽ giúp bạn trong việc học Vi điều khiển PIC. Nếu bạn xuất thân từ nền tảng điện tử và bạn luôn muốn bắt đầu với việc học một số Vi điều khiển và hòa mình vào thế giới mã hóa và xây dựng công cụ, thì loạt bài hướng dẫn này sẽ là bước đầu tiên bạn bắt đầu.
Vi điều khiển PIC là lựa chọn rất thuận tiện để bắt đầu với các dự án vi điều khiển, vì nó có các diễn đàn hỗ trợ tuyệt vời và sẽ hoạt động như một cơ sở vững chắc để xây dựng dựa trên tất cả các Bộ vi điều khiển tiên tiến mà bạn chưa học.
Những hướng dẫn này được thực hiện cho Người học tuyệt đối hoặc trung cấp; chúng tôi đã lên kế hoạch bắt đầu với những dự án cơ bản nhất đến những dự án nâng cao. Chúng tôi mong đợi không có điều kiện tiên quyết nào từ người học vì chúng tôi ở đây để giúp bạn từ mọi cấp độ. Mỗi hướng dẫn sẽ có giải thích lý thuyết và mô phỏng theo sau là hướng dẫn thực hành. Các hướng dẫn này sẽ không liên quan đến bất kỳ bảng phát triển nào, chúng tôi sẽ tạo mạch của riêng mình bằng cách sử dụng bảng hoàn thiện. Vì vậy, hãy chuẩn bị và dành thời gian mỗi tuần để cải tiến bạn với Bộ vi điều khiển.
Bây giờ chúng ta hãy bắt đầu với phần Giới thiệu đơn giản về Bộ vi điều khiển PIC và một số thiết lập phần mềm để giúp chúng ta chạy trong phần hướng dẫn tiếp theo. Kiểm tra Video ở cuối để biết cài đặt và thiết lập MPLABX, XC8, Proteus và mở hộp nhanh bộ lập trình PICkit 3.
Kiến trúc và ứng dụng vi điều khiển PIC:
Bộ vi điều khiển PIC được Microchip Technologies giới thiệu vào năm 1993. Ban đầu những PIC này được phát triển để trở thành một phần của Máy tính PDP (Bộ xử lý dữ liệu được lập trình) và mỗi thiết bị ngoại vi của máy tính được giao tiếp bằng vi điều khiển PIC này. Do đó PIC được đặt tên cho Bộ điều khiển Giao diện Ngoại vi. Sau này Microchip đã phát triển rất nhiều IC dòng PIC có thể được sử dụng cho bất kỳ ứng dụng nhỏ nào như ứng dụng chiếu sáng cho đến ứng dụng nâng cao.
Mọi Vi điều khiển sẽ được xây dựng xung quanh một số kiến trúc, loại Kiến trúc nổi tiếng nhất là kiến trúc Harvard, PIC của chúng tôi dựa trên kiến trúc này vì nó thuộc họ 8051 cổ điển. Hãy cùng tìm hiểu một phần giới thiệu nhỏ về kiến trúc Harvard của PIC.
Bộ vi điều khiển PIC16F877A bao gồm một CPU có sẵn, các cổng I / O, tổ chức bộ nhớ, bộ chuyển đổi A / D, bộ định thời / bộ đếm, ngắt, giao tiếp nối tiếp, bộ tạo dao động và mô-đun CCP để tập hợp lại làm cho vi mạch trở thành một bộ vi điều khiển mạnh mẽ cho người mới bắt đầu. Sơ đồ khối chung của Kiến trúc PIC được hiển thị bên dưới
CPU (bộ phận xử lý trung tâm):
Vi điều khiển có một CPU để thực hiện các phép toán Số học, các quyết định logic và các phép toán liên quan đến Bộ nhớ. CPU phải phối hợp giữa RAM và các thiết bị ngoại vi khác của Vi điều khiển.
Nó bao gồm một ALU (Đơn vị logic số học), sử dụng nó để thực hiện các phép toán số học và các quyết định logic. Một MU (Bộ nhớ) cũng có mặt để lưu các lệnh sau khi chúng được thực thi. MU này quyết định quy mô chương trình MC của chúng ta. Nó cũng bao gồm CU (Control Unit) hoạt động như một bus giao tiếp giữa CPU và các thiết bị ngoại vi khác của vi điều khiển. Điều này giúp tìm nạp dữ liệu sau khi nó được xử lý trong các thanh ghi được chỉ định.
Bộ nhớ truy cập ngẫu nhiên (RAM):
Bộ nhớ Truy cập Ngẫu nhiên là bộ nhớ quyết định tốc độ của bộ vi điều khiển của chúng ta. RAM bao gồm các ngân hàng thanh ghi bên trong nó, mỗi ngân hàng được giao một nhiệm vụ cụ thể. Nhìn chung, chúng có thể được phân thành hai loại:
- Đăng ký mục đích chung (GPR)
- Đăng ký chức năng đặc biệt (SFR)
Như tên cho thấy GPR được sử dụng cho các chức năng thanh ghi chung như cộng, trừ, v.v. Các hoạt động này bị giới hạn trong 8-bit. Tất cả các thanh ghi trong GPR là người dùng có thể ghi và đọc được. Chúng không có bất kỳ chức năng nào trừ khi đó là phần mềm được chỉ định.
Trong khi SFR được sử dụng để thực hiện các chức năng đặc biệt phức tạp cũng liên quan đến một số xử lý 16 bit, các thanh ghi của chúng chỉ có thể được đọc (R) và chúng ta không thể ghi (W) bất cứ thứ gì vào chúng. Vì vậy, các thanh ghi này có các chức năng được xác định trước để thực hiện, được đặt tại thời điểm sản xuất và chúng chỉ hiển thị kết quả cho chúng tôi, bằng cách sử dụng chúng tôi có thể thực hiện một số hoạt động liên quan.
Bộ nhớ chỉ đọc (ROM):
Bộ nhớ chỉ đọc là nơi lưu trữ chương trình của chúng ta. Điều này quyết định kích thước tối đa của chương trình của chúng tôi; do đó nó còn được gọi là bộ nhớ chương trình. Khi MCU đang hoạt động, chương trình được lưu trữ trong ROM sẽ được thực thi theo từng chu kỳ lệnh. Bộ nhớ này chỉ có thể được sử dụng trong khi lập trình PIC, trong quá trình thực thi nó trở thành bộ nhớ chỉ đọc.
Bộ nhớ chỉ đọc lập trình có thể xóa bằng điện (EEPROM):
EEPROM là một loại Bộ nhớ khác. Trong bộ nhớ này, các giá trị đơn vị có thể được lưu trữ trong quá trình thực thi chương trình. Các giá trị được lưu trữ ở đây chỉ có thể xóa bằng điện, tức là các giá trị này sẽ được giữ lại trong PIC ngay cả khi tắt IC. Chúng có thể được sử dụng như một không gian bộ nhớ nhỏ để lưu trữ các giá trị được thực thi; tuy nhiên không gian bộ nhớ sẽ rất ít lần lượt KB.
Bộ nhớ Flash :
Bộ nhớ flash cũng là Bộ nhớ chỉ đọc có thể lập trình (PROM) trong đó chúng ta có thể đọc, ghi và xóa chương trình hàng nghìn lần. Nói chung, vi điều khiển PIC sử dụng loại ROM này.
Cổng I / O
- PIC16F877A của chúng tôi bao gồm năm cổng là Cổng A, Cổng B, Cổng C, Cổng D & Cổng E.
- Trong tất cả năm PORTS, chỉ có Cổng A là 16-bit và Cổng E là 3-bit. Phần còn lại của PORTS là 8-bit.
- Các chân trên các PORTS này có thể được sử dụng làm Đầu vào hoặc Đầu ra, dựa trên cấu hình Thanh ghi TRIS.
- Ngoài việc thực hiện các hoạt động I / O, các chân cũng có thể được sử dụng cho các chức năng đặc biệt như SPI, Interrupt, PWM, v.v.
Xe buýt:
Thuật ngữ Bus chỉ là một loạt các dây kết nối Thiết bị Đầu vào hoặc Đầu ra với CPU và RAM.
Bus dữ liệu được sử dụng để truyền hoặc nhận dữ liệu.
Bus địa chỉ được sử dụng để truyền địa chỉ bộ nhớ từ các thiết bị ngoại vi đến CPU. Các chân I / O được sử dụng để giao tiếp với các thiết bị ngoại vi bên ngoài; UART và USART cả hai giao thức truyền thông nối tiếp được sử dụng để giao tiếp các thiết bị nối tiếp như GSM, GPS, Bluetooth, IR, v.v.
Lựa chọn Vi điều khiển PIC cho các Hướng dẫn của chúng tôi:
Bộ vi điều khiển PIC của Công ty Microchip được chia thành 4 họ lớn. Mỗi gia đình có nhiều thành phần cung cấp các tính năng đặc biệt được tích hợp sẵn:
- Họ đầu tiên, PIC10 (10FXXX) - được gọi là Low End.
- Họ thứ hai, PIC12 (PIC12FXXX) - được gọi là Mid-Range.
- Họ thứ ba là PIC16 (16FXXX).
- Họ thứ tư là PIC 17/18 (18FXXX)
Vì chúng ta đang bắt đầu tìm hiểu về PIC, chúng ta hãy chọn một IC được sử dụng và có sẵn trên toàn cầu. IC này thuộc họ 16F số bộ phận của IC là PIC16F877A. Từ hướng dẫn đầu tiên cho đến cuối, chúng ta sẽ sử dụng cùng một vi mạch vì vi mạch này được trang bị tất cả các tính năng nâng cao như SPI, I2C và UART, v.v. Nhưng nếu bạn không nhận được bất kỳ điều nào trong số này thì hoàn toàn ổn, chúng tôi sẽ tiến bộ qua mọi hướng dẫn và cuối cùng sử dụng tất cả các tính năng được đề cập ở trên.
Sau khi chọn IC, điều quan trọng là phải đọc bảng thông số của IC. Đây nên là bước đầu tiên trong bất kỳ khái niệm nào mà chúng tôi sắp thử. Bây giờ vì chúng tôi đã chọn PIC16F877A này, hãy đọc qua thông số kỹ thuật của vi mạch này trong Datasheet.
Tính năng Ngoại vi, đề cập rằng nó có 3 Bộ hẹn giờ, hai trong số đó là 8-bit và một là bộ đếm trước 16-bit. Các bộ định thời này được sử dụng để tạo các hàm định thời trong chương trình của chúng tôi. Chúng cũng có thể được sử dụng như bộ đếm. Nó cũng cho thấy rằng nó có các tùy chọn CCP (Capture Compare và PWM), giúp chúng ta tạo ra các tín hiệu PWM và đọc các tín hiệu tần số đến. Để giao tiếp với thiết bị bên ngoài, nó có SPI, I2C, PSP và USART. Vì mục đích an toàn, nó được trang bị Brown-out Reset (BOR), giúp thiết lập lại chương trình while.
Các Tính năng Tương tự, Chỉ ra rằng IC có ADC 10-bit 8 kênh. Điều này có nghĩa là, vi mạch của chúng tôi có thể chuyển đổi các giá trị Analog sang kỹ thuật số với độ phân giải 10-bit và có 8 chân analog để đọc chúng. Chúng tôi cũng có hai bộ so sánh bên trong có thể được sử dụng để so sánh trực tiếp điện áp đến mà không thực sự đọc chúng qua phần mềm.
Các Tính năng Đặc biệt của Vi điều khiển, biểu thị rằng nó có 100.000 chu kỳ xóa / ghi, nghĩa là bạn có thể lập trình nó trong khoảng 100.000 lần. Lập trình nối tiếp trong mạch ™ (ICSP ™), giúp chúng ta lập trình vi mạch trực tiếp bằng PICKIT3. Gỡ lỗi có thể được thực hiện thông qua Gỡ lỗi trong mạch (ICD). Một tính năng an toàn khác là Watchdog Timer (WDT), là một bộ đếm thời gian tự tin cậy có thể đặt lại toàn bộ chương trình nếu được yêu cầu.
Hình ảnh dưới đây đại diện cho sơ đồ chân của IC PIC16F877A của chúng tôi. Hình ảnh này đại diện cho mỗi ghim dựa trên tên của nó và các đặc điểm khác của nó. Điều này cũng có thể được tìm thấy trong biểu dữ liệu. Giữ cho hình ảnh này có ích vì nó sẽ giúp chúng tôi trong quá trình hoạt động phần cứng của chúng tôi.
Lựa chọn phần mềm cho các hướng dẫn của chúng tôi:
Bộ vi điều khiển PIC có thể được lập trình bằng các phần mềm khác nhau hiện có trên thị trường. Có những người vẫn sử dụng hợp ngữ để lập trình MCU PIC. Đối với các hướng dẫn của chúng tôi, chúng tôi đã chọn phần mềm và trình biên dịch tiên tiến nhất do chính Microchip phát triển.
Để lập trình vi điều khiển PIC, chúng ta sẽ cần một IDE (Môi trường phát triển tích hợp), nơi lập trình diễn ra. Một trình biên dịch, nơi chương trình của chúng tôi được chuyển đổi thành dạng MCU có thể đọc được gọi là tệp HEX. Một IPE (Lập trình tích hợp Môi trường), được sử dụng để đổ tập tin hex của chúng tôi vào PIC MCUs của chúng tôi.
IDE: MPLABX v3.35
IPE: MPLAB IPE v3.35
Trình biên dịch: XC8
Microchip đã tặng miễn phí cả ba phần mềm này. Chúng có thể được tải xuống trực tiếp từ trang chính thức của họ. Tôi cũng đã cung cấp liên kết để bạn thuận tiện. Sau khi tải xuống, hãy cài đặt chúng trên máy tính của bạn. Nếu bạn gặp bất kỳ vấn đề gì khi làm như vậy, bạn có thể xem Video được cung cấp ở cuối.
Với mục đích mô phỏng, chúng tôi đã sử dụng phần mềm có tên là PROTEUS 8 do Labcenter cung cấp. Phần mềm này có thể được sử dụng để mô phỏng mã của chúng tôi được tạo bằng MPLABX. Có một phần mềm trình diễn miễn phí có thể được tải xuống từ trang chính thức của họ thông qua liên kết.
Sẵn sàng với phần cứng:
Tất cả các hướng dẫn của chúng tôi sẽ kết thúc với phần cứng. Để học PIC theo cách tốt nhất có thể, bạn nên kiểm tra các mã và mạch của chúng tôi qua phần cứng, vì độ tin cậy của mô phỏng là rất ít. Các mã hoạt động trên phần mềm mô phỏng, có thể không hoạt động như bạn mong đợi trên phần cứng của bạn. Do đó, chúng tôi sẽ xây dựng các mạch của riêng mình trên bảng Perf để kết xuất mã của chúng tôi.
Để kết xuất hoặc tải mã của chúng tôi lên PIC, chúng tôi sẽ cần PICkit 3. Bộ lập trình / gỡ lỗi PICkit 3 là trình gỡ lỗi trong mạch đơn giản, chi phí thấp được điều khiển bởi một PC chạy phần mềm MPLAB IDE (v8.20 trở lên) trên một nền tảng Windows. Bộ lập trình / gỡ lỗi PICkit 3 là một phần không thể thiếu trong bộ công cụ của kỹ sư phát triển. Ngoài phần cứng này, chúng tôi cũng sẽ cần phần cứng khác như bảng Perf, trạm hàn, IC PIC, bộ dao động tinh thể, tụ điện, v.v. Nhưng chúng tôi sẽ thêm chúng vào danh sách của mình khi chúng tôi tiến bộ qua các hướng dẫn của chúng tôi.
Tôi đã mang PICkit 3 của mình từ amazon, bạn có thể tìm thấy video mở hộp của chiếc tương tự trong video bên dưới. Liên kết cho PICKIT3 cũng được cung cấp; giá có thể hơi cao nhưng tin tưởng tôi nó rất đáng để đầu tư.