Làm thế nào để bắt đầu với bảng STM32F103C8T6?


10

Tôi đã sử dụng một MCU AVR 8 bit để chế tạo robot theo dòng với sinh viên trong vài năm nay. Bây giờ tôi muốn bước lên ARM Cortex-M3 vì tôi muốn thêm một số tính năng sử dụng nhiều CPU hơn như đo hình và phản ứng tổng hợp cảm biến.

Các yêu cầu là:

  • 8 đầu vào tương tự,
  • 4 đầu ra PWM,
  • Tôi 2 C,
  • 2 đầu vào bộ mã hóa cầu phương,
  • I / O nối tiếp,
  • Tự lập trình không dây mà không cần truy cập vật lý vào robot.
  • Công cụ đa nền tảng + IDE (OS X, Linux, Windows).

Các bước tôi đã thực hiện cho đến nay là:

Tôi đang sử dụng bảng dựa trên STM32F103C8 này. Tôi tin rằng MCU này có mọi thứ tôi cần, bao gồm cả 2 x QEI mà tôi dự định thực hiện trong phần mềm nhưng điều này tình cờ có nó trong phần cứng, thật tuyệt vời:

Tôi đã theo dõi điều này để thiết lập toolchain + IDE của mình:

Tôi đã thấy rằng tài liệu về con chip này nằm rải rác trong một số tệp PDF mà tôi đã tải xuống:

Tôi cũng đã tải xuống thư viện ngoại vi tiêu chuẩn STM32F10x, nhưng đến lượt tôi khuyên tôi nên lấy STM32CubeF1 mới hơn, mà tôi tin rằng đó chỉ là một sự đổi tên tiếp thị ở trên, vì vậy tôi đã nhận được cả hai:

Cuối cùng, tôi cũng đã nhận được "Hướng dẫn dứt khoát về ARM Cortex-M3" của Joseph Yiu, tôi đang đọc khi tôi chờ đợi các bảng đến.

Câu hỏi của tôi là:

  1. Tôi hơi bị choáng ngợp bởi tài liệu, để nói rằng ít nhất, và tôi thậm chí không chắc là tôi đã có tất cả. Ví dụ, biểu dữ liệu và trạng thái thủ công tham chiếu rằng chip có 3 bộ định thời có khả năng nhập mã hóa cầu phương. Nhưng, tôi không thể tìm thấy tài liệu về các thanh ghi điều khiển bộ định thời ở bất cứ đâu trong các tệp PDF ở trên. Tôi đang thiếu gì?

  2. Tôi nên sử dụng Thư viện ngoại vi tiêu chuẩn (cũ hơn?) Hay khối lập phương (mới hơn?)? Có gì khác biệt? Tôi hiểu rằng cả hai thư viện đều cứu tôi khỏi thao tác đăng ký trực tiếp và là cách nên làm. Tôi có đúng không

  3. Tài liệu cho các thư viện ở đâu (ngoài các bình luận doxygen được nhúng, rất hay và tất cả nhưng tôi muốn có một html / pdf có thể tìm kiếm)?

  4. Tôi đã chọn Eclipse + GCC ARM + OpenOCD làm chuỗi công cụ của mình vì tôi cho rằng đây là tùy chọn duy nhất sẽ chạy trên 3 hệ điều hành chính mà không có kích thước mã hoặc các giới hạn khác. Có lựa chọn nào nữa không?


2
Trang 324 của Tài liệu tham khảo có chi tiết về giao diện bộ mã hóa bằng TIM1 và TIM8.
Leon Heller

1
Tôi có thể đề xuất Hệ thống nhúng - Hình dạng Thế giới ARM-Cortex-M3, nhưng nó là từ TI. Ngoài ra, tôi đã có thể định cấu hình Eclipse + GCC ARM + OpenOCD cho Ubuntu, nó khá tẻ nhạt và ít nhất là quá đáng tin cậy đối với tôi.
Mahendra Gunawardena

1
Các giải pháp ARM-gcc nói chung khá ổn định và về tùy chọn di động nhất hiện có. Nhấn mạnh có xu hướng hướng nhiều hơn vào các bản dựng được điều khiển bởi Makefile hoặc tự động hóa bản dựng, do đó, việc tích hợp với các thực tiễn phát triển phần mềm tổ chức hiện tại là tuyệt vời. IDE nào (nếu có) để chỉnh sửa và thúc đẩy các bản dựng thử nghiệm có xu hướng là một quyết định cá nhân hơn nhiều, và một trong đó không nhất thiết phải thấy nhiều nỗ lực phát triển công cụ dành cho nó. Cá nhân, điều cuối cùng tôi muốn giải quyết là một mục tiêu / toolchain giả định rằng tôi sẽ thay đổi IDE chỉ để làm việc với nó.
Chris Stratton

Câu trả lời:


6
  1. Khi nói đến datasheets họ thực sự được chia. "Tài liệu tham khảo" là những mô tả phức tạp về cách thực hiện, cấu hình và cân nhắc chi tiết về toàn bộ MCU. Mặt khác, "Datasheet" chỉ mô tả ngắn gọn về các tính năng MCU, sơ đồ chân, gói, v.v. Ngoài ra còn có tài liệu rất hữu ích cho mọi dòng STM32 (F1,2 ... 7) "Bắt đầu với phát triển phần cứng MCU STM32F7xxxx" cung cấp cho bạn nhiều thông tin nếu trường hợp bạn muốn thiết kế một bảng tùy chỉnh. So với các AVR, các mô tả đăng ký đôi khi được đặt hơi xa so với mô tả chính của chương cụ thể.

  2. STM32CubeMX không phải là một thư viện, chỉ là một chương trình hữu ích từ ST, cho phép bạn đặt sơ đồ chân, cấu hình của nó, đặt đồng hồ hệ thống, v.v ... và cuối cùng, tạo mã và toàn bộ dự án. Dự án có thể được tạo đặc biệt cho Eclipse (System Workbench cho STM32) trong đó bạn chỉ cần nhập dự án này và bạn đã sẵn sàng để đi. Thư viện mới là HAL ("lớp trừu tượng phần cứng") và thử sử dụng nó. Đó là điều mới và đôi khi thật khó để tìm thấy các ví dụ trên Internet nhưng đừng dạy cho sinh viên của bạn những công nghệ lỗi thời. HAL thuận tiện để sử dụng và có tài liệu, vì vậy tôi nghĩ đó là sự lựa chọn tốt hơn.

  3. Thư viện nào? Dù sao, nó không phải là một vấn đề để google chúng, tôi nghĩ.

  4. Ngay cả khi bạn chỉ muốn sử dụng một HĐH (như Windows), Eclipse (AC6 = Bàn làm việc hệ thống cho STM32) - tôi nghĩ - là tùy chọn tốt nhất. Ví dụ như uVision 5 của Keil - nhưng đó thực sự là IDE khủng khiếp - nó thiếu hầu hết các tính năng mà IDE nên cung cấp (khúc xạ, nhấp chuột và tìm kiếm, kiểm tra lỗi thích hợp, tìm tài liệu tham khảo và nhiều, nhiều hơn nữa). Vì vậy, tất cả trong tất cả, Eclipse là khá nhiều sự lựa chọn hợp lý duy nhất cho IDE cho STM32.


3
Trên thực tế, bạn có thể sử dụng bất kỳ IDE nào có thể được tạo để điều khiển trình biên dịch bên ngoài.
Chris Stratton
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.