Cách rẻ nhất, (dễ dàng) để bắt đầu lập trình trên vi điều khiển ARM [đã đóng]


18

Tôi muốn bắt đầu sử dụng bộ xử lý ARM, di chuyển từ PIC mà tôi đã sử dụng quá lâu. Các mô hình 8 bit có sẵn dưới 1 đô la, các lập trình viên dưới 10 đô la và tôi đã bị phá hỏng bởi sự dễ dàng và chi phí thấp khi bắt đầu. Nhưng thấy rằng sức mạnh của họ bị lấn át bởi một số chip ARM ở cùng mức giá và đã chán ngấy với phần mềm nguồn đóng, tôi muốn thực hiện chuyển đổi.

Tôi thà tránh nhận bất kỳ bảng phát triển nào, và thay vào đó hãy đi thẳng vào nó với một pcb phá vỡ chung chung giá rẻ ($ 1), và trên bảng điều khiển sử dụng bất kỳ thành phần bên ngoài nào là cần thiết để đưa nó đi.

Lựa chọn của tôi để lập trình chip ARM theo cách này là gì? Có lập trình viên nào như PICKit2 sử dụng USB để kết nối với PC, lập trình thông qua kết nối nối tiếp đơn giản (như ICSP) với chip không? Cần bao nhiêu sự khác biệt trong thiết lập cho các nhà sản xuất ARM, phiên bản ARM và chip riêng lẻ khác nhau? (ST, Atmel ...) Ví dụ: mỗi nhà sản xuất cần trình biên dịch, lập trình viên, IDE riêng của họ, v.v.? Hoặc có những công cụ chung cho tất cả?

EDIT: Được rồi vì vậy sau khi nghiên cứu thêm, tôi tin rằng tôi đã tìm ra một giải pháp tương đối rẻ, một bảng mạch stm32 có thể được flash với phần mềm DAPLINK, nhưng tôi không tin rằng phần mềm github chính thức sẽ hoạt động nguyên bản (tất cả điều này chỉ là suy đoán cho đến khi tôi nhận bảng stm32 dev của tôi trong thư). Nhưng tôi thấy rằng bảng daplink_usb đi kèm với readbear mk20 đang chạy chip stm32, họ đã phát hành phần sụn, cần phải thay đổi một dòng để tương thích với tinh thể 8 MHz (Chi tiết trong bài đăng trên diễn đàn được liên kết bên dưới). Nếu không, thay đổi tinh thể với một 16 mhz. Ill update một lần tôi đã xác nhận điều này khi bộ dev của tôi đến.

SỬA CHỮA GITHUB

Tài nguyên diễn đàn tốt ở đây .

Nĩa Redbear Github


4
Thật tốt khi nhận ra rằng $ 5 mang lại cho bạn một Raspberry Pi Zero, được hỗ trợ bởi một GCC hoàn toàn bình thường (và miễn phí!). Và nếu bạn vừa trải qua cú sốc về việc vi điều khiển ARM nhanh hơn bao nhiêu, RPi sẽ làm bạn choáng váng trở lại. Vấn đề chính IMO là không có nhà sản xuất ARM nào hiểu được thông điệp bên dưới RPi. Bạn sẽ không kiếm được nhiều tiền từ các vi điều khiển ARM nữa, nhưng còn nhiều thứ phải làm bằng cách cung cấp các mô-đun CPU sẵn sàng sử dụng.
MSalters

4
Đôi khi, quá mức cần thiết để sử dụng mô-đun CPU sẵn sàng sử dụng trong một ứng dụng nhúng.
Bence Kaulics

3
@MSalters, RPI cồng kềnh ... Tôi chỉ không cần các tính năng bổ sung đi kèm. Tôi cần những thứ xương sống trong một không gian rất nhỏ gọn để xử lý thời gian thực nhanh. Ngoài ra, RPI tiêu thụ rất nhiều năng lượng hơn mức có thể chấp nhận được.
CL22

3
Chắc chắn, nhưng hầu hết các bảng dev sẽ là như vậy. Nhưng một trong những điều tuyệt vời về phát triển MCU là sự phát triển phần cứng và phần mềm có thể được tách biệt đến một điểm.
Ignacio Vazquez-Abrams

2
Cân nhắc việc có một bảng dev giá rẻ đi kèm với cầu nối USB-SWD tích hợp. Điều này sẽ cung cấp cho bạn quyền truy cập vào các tính năng gỡ lỗi cũng như tải mã. Bạn có thể tách ra quyền truy cập SWD vào bất kỳ mục tiêu nào khác khi nó phù hợp với bạn.
Sean Houlihane

Câu trả lời:


14

Dòng stm32F0 và stm32L0 có bảng khám phá chạy khoảng $ 10 và Keil sẽ cung cấp IDE đầy đủ chức năng cho dòng này với chi phí bằng không.

Hướng dẫn cài đặt MDK miễn phí của Keil TẠI ĐÂY

Ngoài ra, ARM có một bảng trắng khi di chuyển sang Cortex M3 từ PIC mà bạn có thể thấy hữu ích


7
+1 Nhưng cũng đáng lưu ý rằng hầu hết (tất cả) các bảng khám phá đều có STLINK tích hợp cũng có thể được sử dụng để lập trình các thiết bị độc lập bằng cách định cấu hình bộ nhảy.
Roger Rowland

@RogerRowland - điểm tuyệt vời. Tôi đã sử dụng các lập trình viên trên tàu cho các bảng của riêng tôi trước đây. Discovery là một dòng tuyệt vời, nói chung. Tôi ước họ có lỗ gắn!
Scott Seidman

Bạn muốn giới thiệu Nucleo hoặc Discovery? Chúng dường như có cùng giá và cả hai đều có ST-LINK.
David

@david, chưa sử dụng hạt nhân, nhưng tôi có thể nói rằng Khám phá đã phục vụ tôi rất tốt. Ở mức giá đó, hãy lấy một trong số đó (mặc dù tôi sẽ đi với hai Khám phá!)
Scott Seidman

Dave Jones gần đây đã thực hiện một video EEVblog về một nhà phát triển cho MCU công suất thấp ARM32 . Có lẽ có liên quan.
Lorenzo Donati hỗ trợ Monica

7

Cách dễ nhất - bỏ ra $ 10K USD cho trình biên dịch Keil Pro đầy đủ chức năng, mua trình gỡ lỗi JLINK của họ (có thể là $ 1K khác - có những cái rẻ hơn với một số hạn chế). IAR là một khả năng đắt tiền khác (ví dụ được cung cấp cho bộ xử lý STM32F7 Cortex M7 hoạt động trên bản demo IAR 30 ngày)

Cách rẻ nhất - tải xuống và cài đặt một chuỗi công cụ GCC-ARM + Eclipse (miễn phí) với các trình gỡ lỗi JLINK. Nhận một bản sao JLINK với giá 20 đô la trở lên, mà tôi nghĩ sẽ hoạt động tốt - chưa được thử nghiệm, để gỡ lỗi.

Có những hướng dẫn chi tiết cho cái sau trên mạng, tuy nhiên họ đưa ra những giả định nhất định. Dự kiến ​​sẽ dành một ngày hoặc nhiều hơn để thực hiện nó, đặc biệt là trong Windows. Đừng mong đợi có thể sử dụng nhiều ví dụ được cung cấp cho các IDE khác mà không cần một số công việc. Thật ấn tượng, chuỗi công cụ miễn phí có thể sử dụng 'gói' ('thử nghiệm' ngay bây giờ).

Có những hệ thống khác như Rowley Crossworks (sử dụng gcc, tôi tin) ít gây đau đớn về tài chính. Atmel Studio là một cái khác, nhưng tôi đã có những phàn nàn cay đắng từ nhà phát triển phần mềm rất có kinh nghiệm của mình về nó (chỉ chơi một thời gian ngắn với chính nó).

Nếu nhu cầu mã của bạn dưới 32K, bạn có thể sử dụng cùng một hệ thống Keil miễn phí (phiên bản giới hạn mã), nhưng lưu ý rằng đường dẫn nâng cấp rất dễ dàng nhưng khá tốn kém. Ví dụ: nó sẽ không biên dịch các ví dụ Ethernet đơn giản cho SAME70. Tốt nếu bạn thay thế PIC hoặc AVR bằng ARM cấp thấp, nhưng sẽ không tuyệt vời nếu bạn đang dùng ARM vì bạn thực sự cần nói chuyện với màn hình LCD và chạy các giao thức giao tiếp phức tạp (có thể bao gồm các mô-đun được biên dịch sẵn mà không ảnh hưởng đến Giới hạn 32K, tôi chưa điều tra góc cụ thể đó).


7

Đây là những gì tôi sử dụng:

  • STM32F103 "bo mạch hệ thống tối thiểu" (xem ví dụ ở đây , lõi Cortex-M3 ), chạy bằng nguồn điện 3,3V hoặc USB mà không có bất kỳ thành phần bên ngoài nào, mỗi bản sao có giá khoảng 3 USD. Điều này phù hợp với yêu cầu của bạn để "đi thẳng vào nó với một pcb phá vỡ chung chung giá rẻ, và trên một chiếc bánh mì".
  • Bản sao lập trình USB ST-Link V2 (trông giống cái này ), có giá khởi điểm khoảng 2 đô la Mỹ và hỗ trợ gỡ lỗi trên chip.
  • EmBitz (trước đây là Em :: Blocks) là IDE với gcc toolchain, US $ 0
  • STM's CubeMX để giúp bắt đầu với các dự án mới, US $ 0

5

Sự khởi đầu dễ dàng nhất có lẽ là một trong những bảng nhân bản của bên thứ ba. Ví dụ ngẫu nhiên từ ST . Điều đó đòi hỏi một lập trình viên sử dụng giao thức 'SWD'. ST tạo các nhãn hiệu 'ST-LINK', tôi không chắc bạn có phải sử dụng ST-LINK với các thiết bị ST hay nếu nó thực sự chung chung.

Một số kết hợp SWD và JTAG đóng vai trò của ICSP trên các hệ thống ARM, mang đến cho bạn khả năng lập trình và gỡ lỗi.

Thông minh về phần mềm, thường có thể hoạt động với GCC và OpenOCD trên hầu hết các chip. Các chi tiết hơi khác nhau cho mỗi thiết bị. Các chuyên gia thường sử dụng chuỗi công cụ Keil, khá tốn kém.

Một số thiết bị (ví dụ như dòng Kinetis) có bộ tải khởi động USB: thiết bị xuất hiện dưới dạng thiết bị lưu trữ dung lượng lớn, bạn tải xuống tệp BIN trên đó và nhấn nút. Giải pháp dễ nhất có thể, không cần lập trình viên. Atmel AT91 có bộ tải khởi động USB hoạt động với giao thức độc quyền có tên SAM-BA.


phát hiện st và bảng nucleo có một liên kết trên chúng và chi phí ít hơn 30% so với các khóa liên kết độc lập. cộng với bạn có ít nhất một mcu để chơi với. Nhận được một liên kết vẫn còn tốt và bạn có thể sử dụng nó với openocd để kết nối thông qua swd với các chip st hoặc cortex-m khác.
old_timer

1
Điều thú vị là chip Kenetisis tôi đã thử tôi không thể sử dụng (vì nó) không có bộ tải khởi động chỉ là swd và không kết nối bằng stlink, cần một cmsis-dap. tương tự như vậy, samd21 không còn mang bộ tải khởi động nữa, bạn có thể thêm một cái nhưng về cơ bản là trong không gian flash ứng dụng và khá tầm thường để vô tình xóa. stm32s vẫn có bộ tải khởi động như nxp, có lẽ điều đó cũng sẽ biến mất ...
old_timer

3

Về mặt IDE, Silicon Labs cung cấp Studio Đơn giản , dựa trên Eclipse . Nó là tiêu chuẩn với GCC.

Có hỗ trợ tích hợp cho tất cả các bộ dụng cụ khởi động mà họ bán, khiến việc bắt đầu tương đối không gây đau đớn.

Lập trình sử dụng trình điều khiển Segger J-Link cho bộ dụng cụ khởi động (miễn phí). Chỉ cần kết nối bộ với USB và đi.

Atmel có Studio của họ dựa trên Visual Studio IDE và có thể kết nối với bất kỳ trình gỡ lỗi nào của Atmel. Điều này cũng tàu với GCC.

Cả hai nhà cung cấp có rất nhiều ví dụ (rất nhiều) để điều khiển thiết bị của họ.

Tôi đã sử dụng cả hai và mặc dù tài liệu này không hoàn hảo (không bao giờ được), nhưng nó chắc chắn là đủ để tôi đi tương đối không đau.

Nhiều người trong số các bộ dụng cụ ST (và những người khác) đều được mbed kích hoạt.


2

Cypress tạo ra các bảng đột phá dựa trên PSOC-4200 (ARM Cortex M0) với hệ số dạng DIP-40 bao gồm bộ điều hợp lập trình dựa trên USB trong phần ngắt. Giá cho bảng đột phá và bộ điều hợp lập trình đính kèm (có thể tháo rời) là một con số khổng lồ 3,99 USD từ Digi-Key.


1

Tôi muốn giới thiệu CooCox - đó là cùng một tổ hợp GCC + Eclipse, nhưng không cần phải cấu hình toolchain theo cách thủ công, chỉ cần cài đặt nó và bắt đầu mã hóa.


Có vẻ tốt, tôi đoán Atmel không được hỗ trợ. Lõi ST M7 có được hỗ trợ không?
Spehro Pefhany

Có vẻ như Atmel không được hỗ trợ, có một số thư viện cho chuỗi STM32F7 trong các thành phần. Phải nói rằng tương lai của CoIDE không rõ ràng - trang web rất lộn xộn, hiện tại các bản cập nhật rất hiếm, nhưng vẫn là lựa chọn tuyệt vời để bắt đầu với lập trình ARM (đặc biệt với STM32).
Flanker

1

Theo tôi tin TI, NXP (bao gồm NXP + Freescale) & ST là người đóng vai trò chính trong thế giới vỏ não M, đặc biệt là ST và NXP cung cấp một công cụ cạnh tranh thực sự cho người mới, một tham số quan trọng khác là sự phổ biến trong cộng đồng nguồn mở gây ra số lượng hướng dẫn, thư viện, trình điều khiển thiết bị, công cụ và vv

sau đó :

  1. mbed trình biên dịch trực tuyến + một bảng mbed
  2. Một bảng khám phá STM32 (như STM32F407discovery) + được xây dựng trong trình gỡ lỗi st-link + SPL hoặc HAL (STM CUBE) + IDE cấp phép miễn phí.
  3. Một bảng khám phá LPC + trình gỡ lỗi LPC-link 2 + khung LPCOPEN + IDE giấy phép miễn phí LPCXPRESSO.

Số 2 & 3 là sự lựa chọn tốt hơn cho cấp trên hơn là sở thích. Cũng nên nhớ với việc sử dụng giấy phép miễn phí các công cụ chuyên nghiệp như IAR, Keil hoặc thậm chí LPCXPRESSO, bạn sẽ bớt đau hơn khi chuyển sang khu vực chuyên nghiệp.


1
Các thư viện và chuỗi công cụ mcu của ARM là mbed- xem [ developer.mbed.org] [developer.mbed.org]
Sean Houlihane
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.