Vì bạn dường như đang bỏ phiếu cho ý kiến, đây là $ 0,02 của tôi. Cho dù tôi đang làm việc trên ARM hay AVR đều có vấn đề (và do đó, tôi rất quan tâm), chủ yếu dựa trên những gì tôi đang cố gắng thực hiện. Có những trường hợp sử dụng trong đó một AVR có ý nghĩa, và có những trường hợp khi ARM thực hiện. Nói chung, cũng có một sự đánh đổi giữa, giả sử, AVR và PIC.
Trước hết, trong khi tôi có thể gặp rắc rối khi nói điều này, "đội ngũ mạnh trong gia đình Arduino" là một nhóm thiểu số có tiếng nói. Hầu hết dân gian arduino (người dùng) tôi đã gặp là những người thà đối xử với phần cứng của họ giống như cách họ dùng kịch bản python để làm điều gì đó thú vị, thường với mức độ hiểu biết thấp hơn về những rắc rối liên quan so với họ sẽ có khi họ làm "từ foo nhập khẩu khó chịu". Mặc dù có một số giá trị trong cách làm việc của Arduino, nhưng cũng có rất nhiều phạm vi để chỉ trích.
Tôi nghĩ rằng đáng để xem xét các AVR, ngoài hệ sinh thái Arduino. Đội ngũ Arduino cũng đã được hưởng lợi rất nhiều từ những lý do khiến cho AVR trở thành một tiêu chuẩn không chính xác cho những thứ có sở thích - một lớp phủ đang chiếm lĩnh ngày càng nhiều từ PIC ngay cả trước khi arduino xuất hiện. Các đối thủ cạnh tranh trực tiếp của AVR sẽ là PIC và ở một mức độ nào đó là MSP430, vốn đang đạt được sức hút nhờ vào sự thúc đẩy tiếp thị nặng nề của TI kết hợp với các công cụ trợ cấp của nó.
Hệ sinh thái
Như đã được đề cập trong các câu trả lời khác, AVR là một gia đình có cách tiêu chuẩn, sạch sẽ để đi từ số 0 đến chào thế giới bằng các công cụ miễn phí. Cổng avr-gcc, mảnh ghép tạo nên chuỗi công cụ winavr, rất nhiều sơ đồ lập trình với độ phức tạp và tính năng khác nhau nhưng vẫn bị ràng buộc bởi quyền hạn có được từ avrdude giúp dễ dàng hơn nhiều so với việc xử lý chuỗi công cụ.
Hệ sinh thái của PIC là một cơn ác mộng, với bất kỳ số lượng trình biên dịch, công cụ lập trình, trình biên dịch nào, bạn có gì. Nhiều người trong số họ không tương thích với nhau. Hầu hết trong số họ được trả tiền. Không phải tất cả chúng đều tốt. Quan trọng hơn, không có một tiêu chuẩn defacto. Các lựa chọn thay thế nguồn mở / miễn phí (giả sử, SDCC) không được mong đợi nhiều, nhưng hơn thế nữa, đã không đạt được trạng thái của tiêu chuẩn defacto như avr-gcc và công ty có. Ngay cả với công cụ phần mềm đã hoạt động, ít nhất bạn cũng sẽ phải đầu tư vào một lập trình viên nào đó. PICkit có thể chỉ có giá 20 đô la trở lên, nhưng khi bạn phải tìm ra cách mua trực tuyến (Thẻ tín dụng, vận chuyển quốc tế, ngoại hối), nó có thể là một công cụ giảm giá cho những người có sở thích. Không có gì tốt,
MSP430 tốt hơn một chút, chủ yếu là vì nó mới hơn (ít nhất là về mức độ phổ biến) - Có rất ít tiếng ồn để tranh cãi. TI gửi các mẫu IC cho bạn với hiệu quả mà tôi chưa thấy ở bất kỳ nơi nào khác. mspgcc có hình dạng OK và thậm chí còn có một phần mềm gỡ lỗi nguồn mở không khó tìm hoặc thiết lập. Tuy nhiên, vấn đề là nó không thân thiện với người chơi như AVR. Bạn vẫn gặp vấn đề về Lập trình viên, đắt hơn so với những gì bạn cần mua cho PIC. Hoạt động cung cấp 3.3v tạo ra một rào cản cho những người đã quen với Logic 5v. Và nó không mở rộng quy mô trong DIP - Có những cái cấp thấp có sẵn, nhưng không một lần bạn đạt được các chip mạnh hơn.
Dễ sử dụng
DIP so với SMD, tôi nghĩ, là một sự khác biệt quan trọng hơn nó thường được ghi nhận. Một IC nhúng có thể được sử dụng trên bảng, bảng mục đích chung, bất cứ thứ gì chúng được gọi là nơi bạn sống, v.v. Một IC SMD nhất thiết phải có một hoạt động chế tạo, hoặc mua bảng bộ điều hợp không phải lúc nào cũng dễ dàng có kích thước hoặc hình dạng bạn muốn.
Chất lượng biểu dữ liệu, ghi chú ứng dụng và khả năng đọc của chúng cũng tạo nên sự khác biệt. Atmel dường như làm một công việc tốt hơn một chút ở đó. Tất nhiên, đó là một đánh giá chủ quan cao.
Các AVR có thể sử dụng RC nội bộ trong khi PIC thường không. Họ yêu cầu một tinh thể, làm cho nó hơi xúc xắc khi kết hợp với một chút tự tin.
Các AVR cũng có vẻ thân thiện hơn với lập trình trong hệ thống so với PIC vài năm trước, mặc dù tôi rất dễ bị sai ở đó.
AVR vs ARM
Tuy nhiên, câu hỏi của bạn phải làm với AVR vs ARM. Giống như tôi đã nói lúc đầu, AVR và ARM chiếm các không gian khác nhau trong quang phổ. Nếu bạn đã có một cái gì đó mà bạn có thể làm với một AVR, thì tại sao bạn lại muốn làm điều đó với ARM? ARM đắt hơn, đòi hỏi số phần cao hơn, tiêu thụ nhiều năng lượng hơn, tạo ra mã phức tạp hơn, cần các quy trình chế tạo đắt tiền hơn. Hàn một TQFP 100 pin đắt hơn so với hàn một DIP / SOIC 40 pin, tùy thuộc vào cách bạn đo lường chi phí. Điều này có thể không giữ được nếu bạn sản xuất với khối lượng lớn và sử dụng các kỹ thuật sản xuất thân thiện với điều đó, nhưng nếu bạn đang làm điều đó, thì sự khác biệt về giá sẽ trở nên hấp dẫn hơn với giải pháp rẻ hơn.
Là một bộ điều khiển đi kèm để hack chung quanh nhà hoặc những gì có bạn, tôi nói rằng AVR dễ sử dụng hơn bởi vì: - Được chuẩn hóa hơn từ góc độ sở thích, tôi có thể sử dụng lại nhiều mã hơn từ internet vì không có nhiều mã các biến thể của trình biên dịch và các biến thể giữa tên đăng ký và API giữa các thành viên trong gia đình. (Hãy thử chuyển mã LPC ARM sang phần cứng ATMEL ARM, bạn sẽ thấy ý tôi là gì) - Mã vốn đã trở nên phức tạp hơn (Thật vậy. Thật vậy). - Toolchain mất thêm công việc để thiết lập. - Làm cho giao tiếp dễ dàng hơn một chút. ARM nói chung sẽ giảm bạn xuống logic 3v3 hoặc 1v8 khiến việc giao tiếp với các đồ chơi khác hơi có vấn đề. - Rẻ hơn - Nhận chip ARM tại cửa hàng phần cứng địa phương không phải là một lựa chọn cho tôi ở nơi tôi sống, có được một chiếc AVR.