Tại sao AVR được sử dụng trong Arduino?


41

Tại sao Arduino sử dụng AVR? Tôi hiểu rằng chúng là bộ xử lý chính thức nhưng không có lý do nào mã không thể được chuyển sang kiến ​​trúc ARM hoặc Freescale ngoài chi phí, phải không? Miễn là có bộ nhớ trên tàu, tôi đoán rằng có thể dễ dàng di chuyển vào những phần đó.

Tôi thấy rất nhiều ARM trong ngành công nghiệp (có vẻ như mọi nhà cung cấp đang đẩy một người vào thiết kế của họ) và tự hỏi tại sao không có nhiều sự hấp dẫn hơn trong thế giới nhà phát triển Arduino.


4
Thị trường của bạn là ai? Nếu bạn đang cố gắng bán một thứ gì đó lớn trong ngành, thì bạn sẽ muốn có ARM, bởi vì nếu Atmel hoạt động, bạn sẽ không còn gì nếu bạn đang sử dụng AVR. Với ARM, có rất nhiều nhà cung cấp khác cung cấp dịch vụ thay thế gần. Sự phức tạp gia tăng của ARM không phải là vấn đề với các kỹ sư giỏi so với những người có sở thích không biết cơ bản. Nếu bạn đang bán cho những người có sở thích, đường cong học tập sẽ quá dốc, sức mạnh của bộ xử lý sẽ không được sử dụng và SMT sẽ là một bức tường gạch tưởng tượng. Bạn lo lắng về ai - khách hàng có sở thích hoặc nhà tuyển dụng tiềm năng? Xin vui lòng. làm rõ.
Kevin Vermeer

9
Tôi không cố gắng để gây khó chịu, nhưng câu hỏi xin được hỏi. Atmel đã hơn 25 tuổi, có thị trường rất thành công ngoài ARM, bản thân AVR là một nền tảng rất rất thành công. Cơ hội của một công ty như vậy đi xuống là gì Điều này nghe có vẻ như "Đừng sử dụng windows, nếu MicroSoft ngừng hoạt động thì sao?"
Rick_2047

Tôi đồng ý với hai điểm khác của bạn, cụ thể là nếu bạn có một thị trường sở thích, rất hiếm khi toàn bộ sức mạnh của ARM sẽ được sử dụng và SMT là một bức tường gạch.
Rick_2047

2
Không có Arduino Do có uC SAM3XE (ARM 32 bit) trên đó phải không? Bởi vì, tôi có một cái trong tay ngay bây giờ ...
Doombot

1
Tôi muốn lưu ý rằng "ngày nay" thực sự có các bo mạch dựa trên ARM có thể được lập trình bằng Arduino (thư viện và IDE). Teensy 3.2 là một ví dụ tuyệt vời về điều này. sparkfun.com/products/13736
Paul

Câu trả lời:


32

Có ai thậm chí quan tâm đến những gì bạn đang phát triển?

Có và không. Tôi đã phát triển trên AVR32 cho một dự án cụ thể và môi trường phát triển (cụ thể là chu trình biên dịch / chương trình / gỡ lỗi) là khủng khiếp so với, ví dụ, PIC32.

Các khách hàng không quan tâm, ngoại trừ chi phí và bảo trì, và trong trường hợp hệ thống giống như arduino, các lập trình viên sẽ không quan tâm vì môi trường arduino và chu kỳ phát triển là bước nhảy vọt tốt hơn so với thiết lập AVR32 hiện tại.

Tôi chỉ tự hỏi bởi vì có một đội ngũ mạnh mẽ như vậy cho các gia đình Arduino. Tôi hiểu rằng chúng là bộ xử lý chính thức nhưng không có lý do nào mã không thể được chuyển sang kiến ​​trúc ARM hoặc Freescale ngoài chi phí, phải không? Miễn là có bộ nhớ trên tàu, tôi đoán rằng có thể dễ dàng di chuyển vào những phần đó.

Không có lý do nào mà bộ xử lý khác không thể được sử dụng, nhưng có một lý do rất chính đáng là họ đã chọn một thiết bị 8 bit cấp thấp thay vì thiết bị ARM, MIPS, PowerPC, v.v.: Dễ sử dụng.

Nếu bạn đã xem thiết lập cho các nhánh thấp, thì đó là một thứ tự phức tạp hơn (ánh xạ bộ nhớ, bộ nhớ đệm, v.v.) so với bộ xử lý 8 bit. Nhưng thậm chí quan trọng hơn - tại thời điểm đó không có bộ xử lý cánh tay DIP và chúng được sử dụng và xây dựng bởi các nghệ sĩ và tin tặc, không nhất thiết phải là kỹ thuật viên và kỹ sư điện tử cảm thấy thoải mái với TQFP 48 pin.

Lý do mà AVR được chọn trên PIC là vì PIC không thực sự có trình biên dịch C miễn phí, mã nguồn mở, được sử dụng rộng rãi, trong số những thứ khác (cổng SDCC chưa trưởng thành).

Tôi thấy rất nhiều ARM trong ngành công nghiệp (có vẻ như mọi nhà cung cấp đang đẩy một người vào thiết kế của họ) và tự hỏi tại sao không có nhiều sự hấp dẫn hơn trong thế giới nhà phát triển Arduino. Suy nghĩ?

Chủ yếu là do dễ sử dụng - phức tạp, dễ hàn, chi phí và thực tế là không có nhiều nhu cầu cho nó. Các nhà phát triển thích ý tưởng có nhiều năng lượng, nhưng vào cuối ngày khi tất cả những gì bạn cần làm là di chuyển một số động cơ và nháy một số đèn với FFT cấp thấp, bộ xử lý 8 bit là tốt.

Ngay cả ARMS vỏ não cấp thấp sắp ra mắt trong 28 gói pin vẫn là SOIC, không phải là DIP.

Vì vậy, AVR có tất cả các tính năng phù hợp:

  • Dễ hàn
  • Dễ dàng nhận được thông qua đặt hàng qua thư trên toàn thế giới
  • Trình biên dịch GCC C miễn phí
  • Dễ hiểu bộ xử lý và thiết lập và sử dụng ngoại vi
  • Rẻ
  • Đặc biệt - rất nhiều người và kinh nghiệm xung quanh gia đình AVR

Phần lớn điều này vẫn đúng - tôi không biết ARM ở định dạng nhúng và bộ điều hợp làm cho nó đắt hơn đáng kể so với AVR. Đối với hầu hết các phần, các nhà sản xuất không nghĩ rằng bộ xử lý 32 bit được đóng gói DIP sẽ mang lại lợi nhuận rất cao.


Có một, Cánh quạt Parallax. Nó có tám CPU 32 bit trên chip và có các gói DIL, QFP và QFN.
Leon Heller

5
Đây là tại chỗ. AVR trên PIC do cấp phép, và AVR trên ARM do tính đơn giản của phần mềm và chuỗi công cụ và khả năng hàn. Đối với các dự án của riêng bạn, điều này có thể không áp dụng. Tuy nhiên, nếu bạn muốn phát triển ARM-duino, hãy xem các dự án tương tự khác. Họ không nắm bắt được như AVR có. Điều này cũng có thể là do môi trường phát triển Arduino.
Kevin Vermeer

Bạn đang sử dụng công cụ AVR32 nào - Tôi sử dụng IAR trên cả AVR32 và MSP và đã tìm thấy môi trường này có khả năng cao. Chi phí không phải là một vấn đề trong môi trường chuyên nghiệp - tương đương với ít hơn chi phí sử dụng một kỹ sư trong một tuần.
uɐɪ

Yêu cầu về công cụ này có thể được khắc phục - Arduino sử dụng gcc cũng có sẵn cổng AVR32.
Chris Stratton

1
NXP hiện có một vài ARM Cortex-M0 trong gói DIP. Tôi nghĩ từ gia đình LPC11xx. Tôi tưởng tượng thị trường mục tiêu của họ là cực kỳ rẻ, chất lượng thấp, PCB một mặt, trong các thiết bị.
Marko


16

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.


1
Tôi không nhớ bất kỳ PIC nào, ngoài một số bộ phận OTP nơi các bit cầu chì được lập trình sẵn như là một phần của thử nghiệm tại nhà máy (cách duy nhất để xác nhận rằng chế độ LP, XT hoặc HS hoạt động là định cấu hình chip cho chế độ đó) mà cần một tinh thể. Một số đã yêu cầu một điện trở và nắp bên ngoài để sử dụng chế độ RC và có thông số kỹ thuật khá rõ về tần số mà nó sẽ tạo ra, nhưng tôi không nhớ bất kỳ PIC nào mà không có tùy chọn thiết kế cho RC bên trong hoặc bên ngoài. Tôi đã quên cái nào chưa?
supercat

Trên thực tế, chi phí ARM / AVR khá gần với mức rửa cho các tài nguyên tương đương. Và các gói sẽ được sử dụng trong cài đặt sản xuất không nhất thiết phải khác nhau, vì đó có thể là các biến thể QFP hoặc QFN của một trong hai. Mạch hỗ trợ cần thiết là khá so sánh, quá.
Chris Stratton

@Chris: Khi bạn tính đến tài nguyên mà mỗi con chip cung cấp, tôi sẽ nói ARM sẽ ra giá rẻ hơn hầu như mọi lúc. Điều đó nói rằng, vấn đề là trong các tình huống mà AVR có ý nghĩa trong môi trường sản xuất là nơi bạn không cần mã lực và / hoặc tiếng chuông và còi mà ARM mang đến. Khi có trọng số với các tài nguyên được sử dụng thay vì các tài nguyên có sẵn, thì AVR lại rẻ hơn. Tôi không nghĩ rằng mạch hỗ trợ là tương đương (1 tụ điện tantalum so với 4 và xoắn ốc tương tự khác). ARM không phải là một con thú đắt tiền nhiều như nó có thể là quá mức cần thiết.
Chintalagiri Shashank

@supercat: Có thể. Tôi phải kiểm tra. Nó dường như không bao giờ rõ ràng đối với tôi vài lần tôi nhìn vào nó. Tôi biết rằng ít nhất một số DSPIC có thể quay trở lại nội bộ, mặc dù, nếu bạn thiết lập chúng đúng, nhưng ngay cả điều đó cũng có một chút phỏng đoán và đánh lừa để khám phá. Dữ liệu vi mạch để lại nhiều điều mong muốn, IMO, nhưng một lần nữa, tùy thuộc vào thị trường bạn đang xem.
Chintalagiri Shashank

@ChintalagiriShashank - bỏ qua các thiết bị ngoại vi khác và chỉ nhìn vào kích thước flash & ram, có các dịch vụ ARM khá cạnh tranh với ví dụ ATMEGA328p. Và đừng quá phân tâm bởi bỏ qua mũ. Đối với một, tantalum có thể có ý nghĩa như một bộ lọc cung cấp, nhưng nắp bypass thực tế là các hồ chứa cục bộ có giá trị thấp hơn cho các yêu cầu chuyển đổi tần số cao và do đó có thể là gốm sứ giá rẻ. Ngoài ra, những gì thúc đẩy nhu cầu là đồng hồ và tần số chuyển đổi I / O - với tốc độ xung nhịp tương đương, ARM sẽ không thực sự cần tất cả các giới hạn bỏ qua được đề xuất.
Chris Stratton

12

Một phần lý do cho sự quan tâm của cộng đồng lớn đối với Arduino là tiêu chuẩn hóa vật lý. Cũng giống như cách bố trí vật lý, bằng cách bao gồm một tùy chọn mở rộng được tiêu chuẩn hóa, các nhà phát triển Arduino cho phép mọi người đưa ra các giải pháp của riêng họ. Nếu bạn muốn thay thế bo mạch Arduino cơ bản bằng một bo mạch khác sử dụng một vi điều khiển khác, bạn có thể. IIRC, một người nào đó đã xây dựng một bảng dựa trên PIC sử dụng yếu tố hình thức Arduino. (Bảng PIC Ardunio không có cùng một yếu tố hình thức, nhưng khác về mặt tương tự.)

Một lý do khác cho sự thành công của Arduino là ở tính mở của nó - hầu hết các bộ vi điều khiển dựa trên PIC đã bị đóng cửa; Họ đã sử dụng các triển khai phần cứng độc quyền, vì vậy nếu bạn muốn thiết kế lại bảng để phù hợp hơn với một không gian cụ thể, bạn đã hết may mắn. Họ đã sử dụng phần mềm tùy chỉnh và các công cụ phát triển độc quyền, do đó nếu bạn gặp lỗi hoặc muốn mở rộng khả năng, bạn sẽ không gặp may. Với Arduino, mọi mảnh ghép của câu đố đều mở: bạn có thể mua các bộ phận ở bất cứ đâu, sắp xếp lại chúng khi bạn cần, cải thiện hoặc sửa đổi phần sụn VÀ các công cụ phát triển. Bạn có thể bắt đầu đơn giản với Arduino IDE, nhưng bạn vẫn có thể chuyển sang C hoặc hội bất cứ lúc nào bạn cần.

Cá nhân tôi thích Arduino vì nó có rất nhiều thứ 'vừa phải': Nó không quá đắt, nó không bị khóa trong các công cụ độc quyền, dễ dàng bắt đầu, nó có rất nhiều khả năng và nó có một cộng đồng người dùng lớn , mà tiếp tục mở rộng và làm những điều gọn gàng.


1
Bạn đã liệt kê những lý do rất chính đáng mà những người có sở thích vi điều khiển thích Arduino, nhưng câu hỏi là về ARM vs AVR. Arduino đã được đề cập do quyết định của họ về việc lựa chọn loạt MCU cho việc triển khai. Tôi nghĩ rằng một số câu trả lời có liên quan hơn nằm dưới bài viết của bạn; ví dụ, thực tế là Atmel hỗ trợ loạt AVR của nó với trình biên dịch C. Tuy nhiên, thông tin tốt cho một người không quen thuộc với Arduino.
ozmo

7

Một lợi thế lớn cho các uCs ATmel là có một trình biên dịch miễn phí có sẵn cho Linux, PC và Mac. Thêm vào đó là một GUI đa nền tảng đơn giản và bạn có một hệ thống phát triển miễn phí chạy trên tất cả các nền tảng.

Chi phí là một yếu tố chính cho các ban sở thích. Vì bạn muốn có một mức giá khởi điểm trong phạm vi $ 30, bạn cần có một chi phí uC không quá một vài đô la.

ARM sẽ là một ứng cử viên xuất sắc cho các ban cao cấp. Rất nhiều công ty cấp phép cho lõi ARM và thêm các thiết bị ngoại vi. Tôi tin rằng có các trình biên dịch miễn phí cho Linux, PC và MAC.

Tôi thực sự thích Freescale Coldfire cho các bảng cao cấp. Tôi đã làm việc trên một bảng cho các thiết bị thử nghiệm sử dụng 5206e. Chúng tôi đã thêm một số bộ chuyển đổi A / D và D / A có độ chính xác cao. Đó là một giải pháp hiệu quả chi phí. Gần đây tôi chưa so sánh Coldfire với nhiều loại ARM khác nhau.

Một số uC Freescale 8 bit rất hay nhưng tôi không chắc chúng có công cụ miễn phí không.


4
Cảm ơn vì nhận xét hữu ích, nhưng 8 dòng 'chữ ký' hơi cực đoan, các trang web dựa trên stackoverflow này có xu hướng xem thường quảng cáo các trang web của riêng bạn trong câu trả lời của bạn.
davr

5
@jluciani, nếu bạn muốn quảng cáo các trang web khác của mình, hãy đặt các liên kết trong hồ sơ của bạn, không phải trong câu trả lời của bạn. Rốt cuộc, blog của bạn không phải là câu trả lời cho câu hỏi này ...
Craig Trader

5

Tôi đồng ý với gói nhúng, không đồng ý rằng các cánh tay khó cấu hình hơn, nhưng chúng không phải là đứa trẻ duy nhất trên khối cánh tay (chính atmel cho vấn đề đó). Từ những gì tôi nhớ và trải nghiệm, Atmel đã và có lẽ vẫn thân thiện với nhà phát triển hơn. Bướm AVR đã giúp họ rất nhiều để có được nhiều người dùng hơn với cơ sở người dùng đã có kích thước tốt và hạnh phúc của họ. PIC rất đau theo nhiều cách, các công cụ avr đã ở đó, lập trình rất đơn giản và không làm bạn tốn nhiều tiền hơn một số dây và đầu nối từ lán vô tuyến. Các công cụ có và miễn phí nhưng không dễ như gcc chính, nơi bạn tìm thấy các giải pháp cánh tay và ngón tay cái. Rất lâu trước khi arduino ra đời, AVR là con chip được lựa chọn cho các dự án sở thích.

Không có gì có thể cạnh tranh với ARM ngay bây giờ. Đối với từng bộ xử lý khác mà bạn chạm vào trong một ngày bạn chạm tối thiểu một vài ARM. Đối với một số hầu hết mọi thứ bạn chạm vào đều sử dụng ARM. Nó phù hợp tự nhiên với trình diệt 8 bit, có thể có hiệu suất tốt hơn nhiều so với 8 bit cho cùng kích cỡ, giá cả, v.v. Công cụ tốt hơn nhiều, tập lệnh được sạch hơn nhiều so với hầu hết các đối thủ cạnh tranh nên cùng một mã chạy nhanh hơn nhiều, v.v ... Bởi vì bất kỳ ai và anh trai của họ đều có thể nhúng ARM và nó không bị khóa trong một công ty như pic, avr, msp430 có rất nhiều giải pháp và nhiều cách khác nhau để xử lý các hỗn hợp rom / ram vi điều khiển và bảng vectơ ngắt. Đáng buồn là giải pháp phổ biến hơn là đau đớn nhất. Hãy thử một sam7 hoặc một cái gì đó tương tự hoặc một chiếc sao.

Không phải lúc nào bộ xử lý cũng là vấn đề, một số chip đã biết có thể có vấn đề, một số có vấn đề khác đã biết. một số có thể không cung cấp pin io collector mở với lực kéo yếu và bạn sẽ phải đặt phần cứng bên ngoài chip để giao tiếp với một cái gì đó, trong đó một cái khác có thể có sẵn trên một hoặc tất cả các chân. Tôi khuyên bạn nên lấy mẫu trường, thử các công ty và giải pháp khác nhau để khi bạn muốn công suất thấp, bạn có thể dễ dàng sử dụng msp430, bạn muốn xử lý năng lượng trong một con chip nhỏ mà bạn đi bằng tay hoặc nếu bạn muốn thực hiện một dự án mở mà bạn hy vọng những người khác sẽ xây dựng trong nhà để xe của bạn, bạn dựa trên arduino, nếu bạn có thể.

Điểm mấu chốt cho câu hỏi của bạn là nó thực sự phụ thuộc vào ứng dụng của bạn và cách bạn viết nó cũng như hiệu suất và tài nguyên mà bạn quan tâm. Cũng giống như cách mà gcc hoặc firefox sẽ chạy trên nhiều nền tảng và bộ xử lý khác nhau, bạn chắc chắn có thể viết ứng dụng C của bạn để chạy trên nhiều loại vi điều khiển ... NẾU... Bạn có một lớp trừu tượng cụ thể của vi điều khiển, có chi phí. nếu vi điều khiển có các tính năng đủ tương tự và có các tính năng bạn cần và bạn lên kế hoạch trước và kết hợp chúng. Nếu nền tảng tiếp theo có đủ bộ nhớ / tài nguyên. Bạn quan tâm đến tính di động hơn hiệu suất, v.v ... Có thể cho rằng bạn cần lập kế hoạch cho việc này trước thời hạn. hoặc ít nhất là trên công tắc đầu tiên từ A sang B bạn thiết kế lại phần mềm, nếu / khi có công tắc thứ ba từ B sang C thì sẽ ít đau hơn.


Không có gì có thể cạnh tranh với ARM ngay bây giờ. <- Trong công nghiệp. Trong thế giới sở thích, AVR vẫn thực sự, thực sự mạnh mẽ và sẽ tồn tại trong một thời gian dài.
Kevin Vermeer

Hoàn toàn đồng ý một thế giới avr là phổ biến điên rồ, một thế giới khác tình cờ là một trong đó các sản phẩm chúng ta mua một liên lạc và sử dụng là, nơi tiền là, đó là một cái gì đó khác. Vì vậy, để vui chơi ở nhà, hãy học một thứ, cho công việc hàng ngày của bạn, hãy học cái khác và chơi cả ngày lẫn đêm.
old_timer

4

Tôi biết bạn nói "ngoài chi phí", nhưng thực sự đó là điều quan trọng nhất đối với người có sở thích. Bạn không cần nhiều hơn một UART hoặc nhiều hơn một SPI trên nền tảng chung, giá rẻ. Khi bạn bắt đầu cần tốc độ> 20 mhz, bạn thực sự nên xem xét một thiết lập tùy chỉnh (tất nhiên là ymmv)


3

Một vài điểm nhỏ không được nêu ra trong các ý kiến ​​khác:

  • Một Arduino được dành cho các dự án I / O quy mô nhỏ, thêm một lượng nhỏ trí thông minh vào mạch điện. Chúng thường là các thiết bị theo thời gian thực, đơn luồng, trong đó ARM sẽ rất lãng phí. Tất nhiên có rất nhiều tùy chọn cho bo mạch ARM, nhưng trường hợp sử dụng thường khác nhau - thông thường chúng khởi động vào một hệ điều hành quy mô đầy đủ.

  • Bằng cách nhắm mục tiêu trường hợp sử dụng quy mô nhỏ này, mọi thứ khác trở nên dễ dàng hơn - số pin, bộ phận hỗ trợ, mức tiêu thụ điện, v.v.

Điều đó nói rằng, đối với trường hợp sử dụng mục tiêu của Arduino, không giống như bạn đang nói xấu nó. Bộ xử lý 16 MHz rất khó chịu cho đồng hồ báo thức của bạn với bộ chaser LED tích hợp (hoặc bất cứ thứ gì :)


2

Arduino có sẵn trên bộ vi xử lý khác. Kiểm tra ChipKit từ Microchip, ví dụ. Điều đó sử dụng PIC 32.


Xin lỗi Olin, tiêu đề là một nỗ lực không chính xác của tôi trong việc chỉnh sửa câu hỏi, được làm từ cơ thể của nó. Nó nên được chính xác hơn bây giờ.
clabacchio

1

Lần thử thứ hai (tiêu đề bài viết gốc và câu hỏi từ +3 năm trước đã được thay đổi kể từ câu trả lời ban đầu):

Gà và trứng, nhưng đặc biệt là trong vài năm qua (ARM ra mắt kiến ​​trúc Cortex-M năm 2007), MCU 32 bit đã trở nên phổ biến và các nhà cung cấp đã cung cấp truy cập nhanh hơn và dễ dàng hơn cho cộng đồng EE khi thiết kế trong> 8- bit micros (công cụ sw tốt hơn, công cụ miễn phí, nhiều ví dụ hơn ...).

Như Atmel, cùng với 100 người khác, cũng cung cấp các thiết bị Cortex-M và đã nâng cấp chuỗi công cụ của mình để hỗ trợ AVR thành ARM, cộng với mối quan hệ lâu dài, con đường nâng cấp Arduino được đưa ra (?). Tuy nhiên, các lựa chọn thay thế xuất hiện và dường như liên quan đến các nỗ lực thay thế để giành được phần của chiếc bánh "sở thích": ví dụ như được chế tạo bởi NXP / ARM và gần đây là "CoAction Hero" ,: Bảng ARM Cortex-M3 mã nguồn mở 32 bit trên KickStarter .

Suy nghĩ cuối cùng, 3 năm sau câu hỏi ban đầu: khi tất cả các nhà cung cấp cung cấp lõi Cortex-M 32 bit - liệu bây giờ Arduino có thực sự trở thành không phải Atmel không?

Câu trả lời gốc: Alf-Egil Bogen, một trong những người đồng sáng lập Atmel AVR, xem xét một số nền tảng cho việc chuyển ngành từ lõi 8 bit sang 32 bit ARM trong blog video của mình tại đây http: //blog.energymicro. com / 2013/04/24 / avr2arm / .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.