Tự học lập trình ARM – Phần 1: Bắt đầu với ARM

Tự học lập trình ARM - Phần 1: Bắt đầu với ARM

Series bài viết ghi lại quá trình bắt đầu tìm hiểu, lập trình vi điều khiển lõi ARM.

Hi vọng sẽ giúp bạn có một cách tiếp cận dễ hơn đến với thế giới ARM. Let’s start!

 

ARM là gì?

Cấu trúc ARM (viết tắt từ tên gốc là Advanced RISC Machine) là một loại cấu trúc vi xử lý 32 bit và 64 bit kiểu RISC được sử dụng rộng rãi trong các thiết kế nhúng. Chúng có đặc điểm tiết kiệm năng lượng, vì vậy các bộ CPU ARM chiếm ưu thế trong các sản phẩm điện tử di động.

  • Các đặc tính của ARM bao gồm:
  • Cấu trúc nạp / lưu trữ.
  • Hỗ trợ tập lệnh trực giao.
  • Thanh ghi lớn.
  • Hầu hết các lệnh được thực hiện trong 1 chu kỳ CPU.
  • Chiều dài mã máy cố định, do đó dễ dàng thực hiện đường ống hóa (pipeline).

 

1. Lựa chọn phần cứng

Để bắt đầu học về ARM, chúng ta nên có 1 bộ KIT ARM để thực hành ngay những gì học được (dễ nhớ và trực quan). Hiện nay trên thị trường có rất nhiều các loại KIT khác nhau: STM32 (ST), Nuvoton (Nuvoton), Tiva C LaunchPad (TI)… Nếu bạn khó khăn về tài chính thì có thể dùng Simulator (Proteus chẳng hạn) cũng là lựa chọn không tệ.

Phần cứng mà tôi bắt đầu là KIT Launchpad Tiva C của TI (Giá thành rẻ, chất lượng khá ổn và dễ dàng tìm mua ở VN).

Bộ KIT Tiva C

Bộ KIT Tiva C

 

Trong box mua về đã có dây cable micro USB, board Tiva C và một tờ giới thiệu về phần cứng mà chúng ta có.

Bộ KIT này sử dụng chip ARM TM4C123GH6PM với lõi ARM Cortex M4 mạnh mẽ.

Trên KIT đã bao gồm mạch nạp và MCU và một số ngoại vi đơn giản như nút bấm, LED, giao tiếp USB… công việc còn lại của chúng ta đó là sử dụng ngay mà không cần phải mua thêm bất cứ phụ kiện nào đi kèm.

TM4C123GXL Overview

TM4C123GXL Overview

 

Sơ đồ nguyên lý bộ KIT Tiva C TM4C123GXL

TivaC LaunchPad SCH 1

TivaC LaunchPad SCH 2

TivaC LaunchPad SCH 3

 

Chip TM4C123GH6PM

  • CPU: 32bits ARM Cortex M4
  • Thumb2 16/32-bit code
  • Flash: 256KB
  • SRAM: 32KB
  • EEPROM: 2KB
  • Speed: Up to 80MHz
  • PWM: 16 chanels
  • ADC: 12bits – 12 chanels
  • Communication: SSI/SPI, I2C, UART, USB, CAN
  • Và 1 loạt những feature hấp dẫn khác tôi sẽ viết chi tiết hơn ở các bài sau.

 

Sơ đồ khối IC TM4C123GH6PM

TM4C123G BlockDiagram

TM4C123G BlockDiagram

 

Dạng đóng gói IC

TM4C123G PinDiagram

 

2. Lựa chọn phần mềm

2.1. Lựa chọn IDE

TI (Texas Instrument) đã giới thiệu đến người dùng 2 công cụ rất mạnh mẽ:

Energia

  • Mã nguồn mở, miễn phí – phát triển rất nhanh nhờ cộng đồng người dùng đông đảo trên thế giới.
  • Ngôn ngữ thân thiện, dễ tiếp cận và sử dụng.
  • Có rất nhiều code mẫu và các project để chúng ta tham khảo.
  • Phù hợp với những người không chuyên.
  • Dung lượng phần mềm: nhỏ gọn.
  • Hạn chế: không hỗ trợ Debug, ngôn ngữ hướng đối tượng nên khó tối ưu code, hỗ trợ số ít dòng MCU.

CCS – Code Composer Studio

  • Hàng chính hãng từ TI. (License free bị giới hạn dung lượng code – Vẫn thoải mái cho người dùng thông thường)
  • Cho phép người sử dụng làm việc, cấu hình ở mức độ thanh ghi.
  • Hỗ trợ Debug tới từng thanh ghi, dòng lệnh.
  • Nền tảng Eclipse và hỗ trợ toàn bộ các loại MCU của hãng => phần mềm khá nặng.
  • Hiện tại CCS (v6) cũng đã hỗ trợ cả mã nguồn từ Energia (Tức là bạn có thể đem code từ Energia đưa vào biên dịch trong CCS mà hầu như không phải chỉnh sửa gì thêm thông qua tùy chọn Energia Sketch)

Ngoài ra còn có phần mềm của hãng thứ 3 khác như IAR, Keil, Mentor… cũng hỗ trợ lập trình ARM rất tốt.

Tôi sẽ lựa chọn cả 2 phần mềm Energia và CCS.

  • Energia sẽ được dùng để TEST, phát triển những project cần nhanh chóng
  • CCS dùng phát triển những project cần tối ưu, tùy chỉnh nhiều.

2.2. Những phần mềm, tài liệu liên quan tới bộ KIT Tiva C

Bạn cần tải về:

TivaWare

  • Đây là bộ phần mềm đi kèm với KIT Tiva C. Bao gồm hầu hết thư viện hỗ trợ cho các giao tiếp, điều khiển trên dòng Tiva, tài liệu tham khảo.
    Được import vào phần mềm CCS để sử dụng trong mỗi Project.

Driver của bộ KIT Tiva C

  • Phần này được sử dụng để cài driver vào máy tính của bạn. Giúp máy tính có thể nhận biết được phần cứng khi bạn gắn board Tiva C vào máy tính.

Tài liệu hướng dẫn

  • Tài liệu hướng dẫn, giới thiệu, datasheet của MCU TM4Cxxxx
  • Tài liệu hướng dẫn, phần cứng KIT Tiva C
  • Tài liệu hướng dẫn thiết kế boosterpack cho KIT Tiva C

Tài liệu, phần mềm cần thiết các bạn có thể tìm thấy tại đây:

TM4C123G Launchpad Workshop

Tiva™ C Series LaunchPad Evaluation Kit

TM4C123GH6PM Datasheet – Applications

Phần mềm Pin Mux Utility

  • Cho phép người dùng cấu hình chức năng các chân IO trên giao diện đồ họa.
  • Tự động sinh mã nguồn và import thư viện cho những IDE mà nó hỗ trợ.

Tiếp theo: Tự học lập trình ARM – Phần 2: Cài đặt IDE và thiết lập cấu hình

Leave a Reply

4 Comments on "Tự học lập trình ARM – Phần 1: Bắt đầu với ARM"

Notify of
avatar
Sort by:   newest | oldest | most voted
Quang Minh
Guest

Hi anh.
Em mới bắt đầu nghiên cứu về lĩnh vực này, trước đây em chủ yếu code trên win, linux, android bằng c/c++ nhưng em muốn nghiên cứu về các bo mạch, mục đích là đưa các app xử lên bo mạch cho nó chạy. Rất mong bác giúp đỡ.
Em cảm ơn.
pqminh

RI TRAN
Guest

dạ cho em hỏi làm sao cấp nguồn ngoài cho kit tiva c mk ko dùng nguồn từ laptop ạ ,,, anh có thể chỉ chi tiết 1 chút đc ko ạ ??

wpDiscuz