Nếu bạn không biết ARM là gì và lập trình nhúng nó ra làm sao ? Khi trong đầu bạn có những câu hỏi như bắt đầu học ARM từ đâu, chọn kit nào để học và các bài hướng dẫn nào thì phù hợp cho người mới thì đây là trang dành cho bạn

Với một người mới bắt đầu không biết một chút gì về ARM và vi điều khiển thì có thể học ARM được không ? Câu trả lời của mình là có. Vậy nên chọn kit nào và chọn cái nào để học, và học như thế nào cho đỡ mất thời gian và tiếp cận được ARM 1 cách nhanh chóng ? Sau đây mình sẽ đưa ra một số tiêu chí để lựa chọn cho các bạn

Anh em lưu ý bài này cũng hơi xưa rồi, mình sẽ sớm update version 2020 cho anh em nha

Mục đích

Đầu tiên và trên hết, bạn phải đặt câu hỏi là chúng ta học ARM để làm gì ? Tất nhiên có nhiều mục đích khác nhau. Tuy nhiên mình thấy thường có 2 mục đích chính như sau:

  • Phục vụ nhu cầu nghiên cứu và tìm hiểu công nghệ mới
  • Phục vụ nhu cầu làm các sản phẩm, tìm kiếm các MCU thỏa mãn yêu cầu của sản phẩm và đáp ứng được giá thành

Kinh phí

Khi đã có mục đích rõ ràng thì vấn đề quan tâm tiếp theo sẽ là giá thành, kinh phí đầu tư cho một bộ kit thí nghiệm, thông thường để tránh mất thời gian cũng như các bug về phần cứng thì việc đầu tư kinh phí ban đầu cho một bộ kit là không quá đắt, và tiết kiệm được rất nhiều thời gian và công sức.

Đối với các công ty, hoặc doanh nghiệp hoặc những người đã có 1 khoản để đầu tư thì mình xin không đề cập ở đây. Riêng với các bạn sinh viên thì việc bỏ ra 1 số tiền vài trăm nghìn để đầu tư bộ kit thì cũng hơi xót chút, nhưng để đạt được hiệu quả cũng như làm thật, chạy thật thì cũng không có cách nào khác. Thế nên nếu các bạn đã xác định học thì mình nhịn ăn vài bữa hoặc nhịn nhậu vài lần sẽ đủ kinh phí ngay thôi. Mình xin chia sẻ 3 cách mỗi cách có ưu nhược điểm riêng như sau

  • Nếu kinh phí quá eo hẹp thì nên mua ngay 1 kit STM32F103 của bạn hàng xóm Trung Quốc. (kit này bạn có thể dùng các bài hướng dẫn về F1 của học ARM để chạy luôn cũng ok)
  • Nếu  mà quỹ thời gian của chúng ta cũng khá lớn, và kinh phí có nhiều hơn 1 chút, ngoài học ARM chúng ta còn muốn học làm mạch, kiểm tra mạch, debug lỗi, tự fix các lỗi thì nên tự làm 1 bộ kit, giá cả thì cũng khá rẻ cho 1 bộ mạch nạp ST-Link là khoảng 100k, với các linh kiện chip STM32F103C8T6 40k và các chip nguồn, header và tiền in ủi mạch khoảng  20k nữa thì chúng ta chỉ mất hơn 160k thôi. Điều kiện là bạn làm lần đầu chạy ngay nhé  , còn hư hỏng trong quá trình làm thì tiền sẽ tăng dần lên.
  • Nếu không muốn làm mạch mà đi vào lập trình luôn thì mua 1 bộ kit bất kỳ của hãng ST,TI, NXP,… dưới đây.

Các loại kit ARM

Hiện nay trên thị trường có rất nhiều các loại kit ARM khác nhau, để lựa chọn được kit để bắt đầu cũng khá là vất vả, mình xin giới thiệu với các bạn 1 số loại kit thông dụng, giá cũng tạm ổn, và quan trọng hơn là có được nhiều sự hỗ trợ của cộng đồng cũng như những người đã làm qua về nó

Kit TM4C123G LaunchPad™ ( Kit TIVAC)

Thông số

  • Sử dụng MCU TM4C123GH6PM
  • Tốc độ 80MHz 32-bit và lõi ARM M4
  • 256KB Flash, 32KB SRAM, 2KB EEPROM
  • 2 modul CAN
  • USB 2.0 Host/Device/OTG + PHY
  • 12-bit 2MSPS ADC, PWM
  • 8 UART, 6 I2C, 4 SPI
  • Có chức năng nạp và debug trên chip
  • Có các ví dụ và hướng dẫn sử dụng từ TI khá đầy đủ.

Ưu điểm là giá ổn, có thiết kế giống Arduino, có thể lập trình như Arduino, hỗ trợ cũng khá đầy đủ, nhược điểm có lẽ là có ít ngoại vi và các cảm biến có sẵn trên kit

Kit STM32F4DISCOVERY

Thông số

  • Sử dụng MCU STM32F407VGT6 32-bit lõi ARM Cortex-M4F, 1 MB Flash, 192 KB RAM và có 100 chân
  • Tích hợp sẵn mạch nạp ST-LINK/V2 trên board
  • Nguồn sử dụng từ USB hoặc nguồn ngoài 5V
  • Cảm biến chuyển động và gia tốc 3 trục LIS302DL, ST MEMS
  • Cảm biến cho các ứng dụng audio MP45DT02, ST MEMS và xuất âm thanh với CS43L22
  • 8 LED: 2 led báo nguồn và kết nối USB, 4 LED có thể lập trình, 2 LED cho USB OTG
  • 2 Nút nhấn, 1 nút RESET và 1 nút người dùng.
  • USB OTG
  • Có các header mở rộng để kết nối với các cảm biến khác

Ưu điểm của cái này thì chắc mọi người đã biết, được sử dụng rất nhiều ở Việt Nam, sự hỗ trợ từ cộng đồng VN cũng khá nhiều. Nhược điểm duy nhất có có lẽ là giá hơi cao 1 chút, tuy nhiên so với số lượng cảm biến có trên kit cũng như số chân và tốc độ của nó thì với giá thành như hiện nay thì cũng có thể chấp nhận được.

Kit NXP FRDM-KL46Z

Thông số

  • Dùng MCU MKL46Z256VLL4MCU, core clock 48MHz, bộ nhớ flash 256kB, 32kB sram, tích hợp bộ điều khiển segment LCD, USB OTG.
  • Cảm ứng điện dung (Capacitive touch slider), trên chip đã tích hợp controller cho touch sensing.
  • Cảm biến Accelerometer MMA8451Q
  • Cảm biến từ trường magnetometer MAG3110
  • Linh hoạt trong lựa chọn nguồn, có thể sử dụng 5V từ cổng USB máy tính, hoặc từ pin 3V3.
  • tương thích với chân của Arduino
  • Tích hợp bộ debug Open SDA trên kit, có thể sử dụng Open SDA để debug và giao tiếp RS232
  • Cảm biến ánh sáng
  • 2 led, 2 nút nhấn
  • LCD

Kit này thì mình thấy cũng ít bán trên thị trường, tuy nhiên ở 1 số trường đại học cũng như công ty sử dụng dòng chip của NXP khá nhiều, ngoại vi cũng như các cảm biến khá đầy đủ. Hi vọng thời gian tới sẽ có kit để review cũng như hướng dẫn cho mọi người.

Kit STM32F103C8T6

Thông số

  • MCU – STMicro STM32F103C8T6 ARM Cortex-M3 MCU tốc độ 72 MHz với 64KB flash, 20KB SRAM.
  • Cổng USB để cấp nguồn và nạp chương trình
  • Có ra chân để debug
  • Chân mở rộng là 20-pin với nguồn, I2C, SPI, GPIOs, ADC …
  • Nút reset và đèn báo nguồn.
  • Nguồn cấp 5V

Ưu điểm của kit này là giá rẻ, phù hợp với túi tiền, tuy nhiên nhược điểm là nạp qua cổng USB nhiều lúc không ổn, không có mạch nạp ST-Link đi cùng nên cũng rất khó khăn để debug.

Các bài hướng dẫn

Mình có cập nhật các bài hướng dẫn ở ngay trang chủ, bạn có thể kéo xuống dưới mục video để xem và theo dõi các video mới nhất, hiện tại học ARM đã có các video lập trình ARM STM32F1, STM32F4, TIVA C, ngoài ra còn có các bài hướng dẫn về vẽ mạch dùng Eagle, lập trình giao tiếp máy tính, MATLAB và Arduino,… Hi vọng sẽ giúp ích cho các bạn mới bắt đầu.

Nguồn tài liệu

Những video từ youtube hỗ trợ nhanh nhất cho người mới bắt đầu để làm quen được với ARM thông qua hình thức “mì ăn liền”, có nghĩa là bạn có kit, bạn chỉ cần làm theo các hướng dẫn từ video là có thể tiếp cận được 1 cách nhanh chóng, tuy nhiên để hiểu sâu hơn thì tùy thuộc vào từng dự án riêng biệt của mình các bạn có thể tìm thêm ở kho tàng google. Hoặc nếu có lỗi lầm có thể vào group ARMVN để được hỗ trợ từ nhiều chuyên gia trên khắp mọi miền đất nước.

Ngoài ra với mỗi kit hãng cũng có tài liệu và hỗ trợ cho chúng ta rất tốt. bạn có thể xem thêm ở đó, và cuối cùng tài nguyên quý giá nhất vẫn là datasheet của mỗi dòng chip mà bạn làm thôi.