- Bắt đầu với Yêu cầu Dự án
- Xem các thông số nổi bật
- Điện áp làm việc
- Kết nối đích
- Giao diện nâng cao
- Môi trương phat triển
- Giá cả và tình trạng sẵn có
- Các tính năng khác
- Phần kết luận
Khi nói đến việc lựa chọn vi điều khiển, nó thực sự là một nhiệm vụ khó hiểu vì có rất nhiều bộ vi điều khiển có sẵn trên thị trường với các thông số kỹ thuật giống nhau. Vì vậy, mọi thông số đều trở nên quan trọng khi nói đến việc lựa chọn một bộ vi điều khiển. Ở đây chúng tôi sẽ so sánh hai Vi điều khiển được sử dụng phổ biến nhất - Vi điều khiển PIC và Vi điều khiển AVR. Ở đây chúng được so sánh ở các cấp độ khác nhau, điều này sẽ hữu ích trong việc lựa chọn vi điều khiển cho dự án của bạn.
Bắt đầu với Yêu cầu Dự án
Thu thập tất cả thông tin về dự án của bạn sẽ được bắt đầu trước khi bắt đầu chọn bất kỳ vi điều khiển nào. Điều rất quan trọng là thông tin phải được thu thập càng nhiều càng tốt vì điều này sẽ đóng một vai trò quan trọng trong việc lựa chọn bộ vi điều khiển phù hợp.
- Thu thập thông tin của dự án như Quy mô của dự án
- Số lượng thiết bị ngoại vi và cảm biến được sử dụng
- Yêu cầu về nguồn điện
- Ngân sách của dự án
- Yêu cầu về giao diện (như USB, SPI, I2C, UART, v.v.),
- Lập sơ đồ khối phần cứng cơ bản,)
- Liệt kê số lượng GPIO cần thiết
- Đầu vào tương tự sang kỹ thuật số (ADC)
- PWM
- Chọn đúng kiến trúc cần thiết tức là (8-bit, 16-bit, 32-bit)
- Nhận biết yêu cầu bộ nhớ của dự án (RAM, Flash, v.v.)
Xem các thông số nổi bật
Khi tất cả thông tin được thu thập, thì đó là thời điểm thích hợp để chọn vi điều khiển. Trong bài viết này, hai thương hiệu vi điều khiển cạnh tranh PIC và AVR sẽ được so sánh về nhiều thông số. Tùy thuộc vào nhu cầu của dự án để so sánh hai, hãy xem các thông số sau, chẳng hạn như,
- Tần số: Tốc độ mà bộ vi điều khiển sẽ hoạt động
- Số lượng chân I / O: Các cổng và chân bắt buộc
- RAM: Tất cả các biến và mảng được khai báo (DATA) trong hầu hết các MCU
- Bộ nhớ Flash: Bất kỳ mã nào bạn viết sẽ được chuyển vào đây sau khi biên dịch
- Giao diện nâng cao: Các giao diện nâng cao như USB, CAN và Ethernet.
- Điện áp làm việc: Điện áp làm việc của MCU như 5V, 3.3V hoặc điện áp thấp.
- Đầu nối đích: Các đầu nối để dễ thiết kế và kích thước mạch.
Hầu hết các thông số đều giống nhau trong cả PIC và AVR nhưng có một số thông số chắc chắn sẽ khác khi so sánh.
Điện áp làm việc
Với nhiều sản phẩm hoạt động bằng pin hơn, PIC và AVR đã cố gắng cải thiện các hoạt động điện áp thấp. AVR được biết đến với hoạt động điện áp thấp hơn so với dòng PIC cũ hơn như PIC16F và PIC18F vì các dòng PIC này sử dụng phương pháp xóa chip cần ít nhất 4,5V để hoạt động và các lập trình viên PIC dưới 4,5V phải sử dụng thuật toán xóa hàng không thể xóa thiết bị bị khóa. Tuy nhiên đây không phải là trường hợp trong AVR.
AVR đã cải tiến và tung ra các biến thể P (pico-power) mới nhất như ATmega328P có công suất cực thấp. Ngoài ra ATtiny1634 hiện tại đã được cải tiến và đi kèm với các chế độ nghỉ để giảm tiêu thụ điện năng khi sử dụng brownout, rất hữu ích trong các thiết bị chạy bằng pin.
Kết luận là AVR trước đây tập trung vào điện áp thấp nhưng PIC hiện đã được chuyển đổi sang hoạt động điện áp thấp và đã tung ra một số sản phẩm dựa trên picPower.
Kết nối đích
Các đầu nối đích rất quan trọng khi nói đến thiết kế và phát triển. AVR đã xác định giao diện ISP 6 và 10 chiều, giúp dễ sử dụng trong khi PIC không có nó, vì vậy các lập trình viên PIC đi kèm với dây dẫn bay hoặc ổ cắm RJ11 rất khó lắp vào mạch.
Kết luận là AVR đã làm cho nó trở nên đơn giản về mặt thiết kế và phát triển mạch với các đầu nối đích trong khi PIC vẫn cần khắc phục điều này.
Giao diện nâng cao
Về giao diện nâng cao, thì PIC chắc chắn là lựa chọn vì nó đã hoạt động với các tính năng nâng cao như USB, CAN và Ethernet mà không phải là trường hợp của AVR. Tuy nhiên, người ta có thể sử dụng các chip bên ngoài, chẳng hạn như FTDI USB đến chip nối tiếp, bộ điều khiển Ethernet Microchip hoặc chip CAN của Philips.
Kết luận là PIC chắc chắn có các giao diện tiên tiến hơn AVR.
Môi trương phat triển
Ngoài điều này ra còn có các tính năng quan trọng làm cho cả hai bộ vi điều khiển khác nhau. Môi trường phát triển dễ dàng là rất quan trọng. Dưới đây là một số thông số quan trọng sẽ giải thích sự dễ dàng của môi trường phát triển:
- IDE phát triển
- Trình biên dịch C
- Thợ lắp ráp
IDE phát triển:
Cả PIC và AVR đều đi kèm với các IDE phát triển của riêng chúng . Quá trình phát triển PIC được thực hiện trên MPLAB X, được biết đến là IDE ổn định và đơn giản so với Atmel Studio7 của AVR, có kích thước lớn 750MB và hơi rắc rối với nhiều tính năng bổ sung gây khó khăn và phức tạp cho những người mới chơi điện tử..
PIC có thể được lập trình thông qua các công cụ vi mạch PicKit3 và MPLAB X . AVR được lập trình thông qua các công cụ như JTAGICE và AtmelStudio7. Tuy nhiên, người dùng đang chuyển sang các phiên bản AVR Studio cũ hơn chẳng hạn như 4.18 với gói dịch vụ 3 vì nó chạy nhanh hơn nhiều và có các tính năng cơ bản để phát triển.
Kết luận là PIC MPLAB X nhanh hơn một chút và thân thiện với người dùng hơn AtmelStudio7.
C Trình biên dịch:
Cả PIC và AVR đều đi kèm với các Trình biên dịch XC8 và WINAVR C tương ứng. PIC đã mua lại Hi-tech và đã tung ra trình biên dịch XC8 của riêng họ. Điều này được tích hợp hoàn toàn vào MPLAB X và hoạt động tốt. Nhưng WINAVR là ANSI C dựa trên trình biên dịch GCC giúp dễ dàng chuyển mã và sử dụng các thư viện tiêu chuẩn. Phiên bản giới hạn 4KB miễn phí của IAR C Compiler mang đến hương vị của các trình biên dịch chuyên nghiệp có giá cao. Vì AVR được thiết kế cho C ngay từ đầu, đầu ra mã nhỏ và nhanh.
PIC có nhiều tính năng làm cho nó tốt so với AVR nhưng mã của nó trở nên lớn hơn do cấu trúc của PIC. Phiên bản trả phí có sẵn với nhiều tối ưu hóa hơn, tuy nhiên phiên bản miễn phí không được tối ưu hóa tốt.
Kết luận là WINAVR về trình biên dịch tốt và nhanh hơn PIC XC8.
Thợ lắp ráp:
Với ba thanh ghi con trỏ 16 bit giúp đơn giản hóa việc định địa chỉ và thao tác từ, hợp ngữ AVR rất dễ dàng với nhiều lệnh và khả năng sử dụng tất cả 32 thanh ghi làm bộ tích lũy. Trong khi trình hợp dịch PIC không tốt như vậy với mọi thứ buộc phải hoạt động thông qua bộ tích lũy, buộc phải sử dụng chuyển mạch ngân hàng mọi lúc để truy cập tất cả các Thanh ghi Chức năng Đặc biệt. Mặc dù MPLAB bao gồm các macro để đơn giản hóa việc chuyển đổi ngân hàng nhưng nó rất tẻ nhạt và tốn thời gian.
Ngoài ra, việc thiếu các hướng dẫn nhánh, chỉ cần bỏ qua và GOTO, điều này buộc các cấu trúc phức tạp và một đoạn mã hơi khó hiểu. Dòng PIC có một số dòng vi điều khiển nhanh hơn nhiều nhưng lại bị giới hạn ở một bộ tích lũy.
Kết luận là, mặc dù một số vi điều khiển PIC nhanh hơn nhưng AVR tốt hơn để làm việc về mặt lắp ráp.
Giá cả và tình trạng sẵn có
Nói về giá cả, thì cả PIC và AVR đều tương tự nhau. Cả hai đều có sẵn với mức giá gần như giống nhau. Về mặt sẵn có, PIC đã quản lý để cung cấp các sản phẩm trong thời gian quy định so với AVR vì Microchip luôn có chính sách về thời gian giao hàng ngắn. Atmel đã có một số thời kỳ khó khăn vì phạm vi sản phẩm rộng của họ có nghĩa là AVR là một phần nhỏ trong hoạt động kinh doanh của họ, vì vậy các thị trường khác có thể ưu tiên hơn AVR về năng lực sản xuất. Vì vậy, nên sử dụng PIC về lịch trình giao hàng trong khi AVR có thể rất quan trọng đối với sản xuất. Các bộ phận vi mạch có xu hướng dễ dàng có sẵn hơn, đặc biệt là với số lượng nhỏ.
Các tính năng khác
Cả PIC và AVR đều có nhiều gói. PIC tung ra nhiều phiên bản hơn AVR. Việc triển khai phiên bản này có thể có ưu và nhược điểm tùy thuộc vào các ứng dụng như nhiều phiên bản hơn tạo ra sự nhầm lẫn trong việc lựa chọn mô hình phù hợp nhưng đồng thời nó cung cấp tính linh hoạt tốt hơn. Phiên bản mới nhất của cả PIC và AVR đều có công suất rất thấp và hoạt động ở nhiều dải điện áp. Đồng hồ PIC và bộ định thời chính xác hơn nhưng về tốc độ thì PIC và AVR rất giống nhau.
Atmel Studio 7 đã thêm Tệp ELF Sản xuất, bao gồm dữ liệu EEPROM, Flash và cầu chì trong một tệp. Trong khi đó AVR đã tích hợp dữ liệu cầu chì vào định dạng tệp hex của họ để cầu chì có thể được đặt trong mã. Điều này cho phép PIC chuyển dự án sang sản xuất dễ dàng hơn.
Phần kết luận
PIC và AVR đều là những thiết bị giá rẻ tuyệt vời không chỉ được sử dụng trong các ngành công nghiệp mà còn là sự lựa chọn phổ biến của sinh viên và những người yêu thích. Cả hai đều được sử dụng rộng rãi và có mạng lưới tốt (diễn đàn, ví dụ mã) với sự hiện diện trực tuyến tích cực. Cả hai đều có khả năng tiếp cận và hỗ trợ cộng đồng tốt và cả hai đều có sẵn ở kích thước và hình thức rộng rãi với các thiết bị ngoại vi độc lập cốt lõi. Microchip đã tiếp quản Atmel và bây giờ chăm sóc cả AVR và PIC. Cuối cùng, ai cũng hiểu rằng việc học vi điều khiển cũng giống như học ngôn ngữ lập trình, vì việc học một ngôn ngữ khác sẽ dễ dàng hơn nhiều khi bạn đã học một ngôn ngữ khác.
Không phân biệt ai là người chiến thắng, nhưng trong hầu hết các lĩnh vực kỹ thuật, không có từ nào như "tốt nhất" trong khi cụm từ "Thích hợp nhất cho ứng dụng" là cụm từ phù hợp. Tất cả phụ thuộc vào yêu cầu của một sản phẩm cụ thể, phương pháp phát triển và quy trình sản xuất. Vì vậy, tùy thuộc vào dự án, người ta có thể chọn bộ vi điều khiển phù hợp ngoài PIC và AVR.