Lập trình STM32F4 - Phần 2: Lý do chọn STM32F4

20 Tháng Tư 2021

STM32 là chip vi điều khiển 32 bit lõi Arm Cortex với cấu hình mạnh mẽ cho dù với phân khúc thấp nhất STM32F0x cũng có thể hoạt động lên tới 48Mhz, 64kB Flash, 16kB RAM, 8 bộ Timer 16 bit, 1 bộ Timer 32 bit, 10 bộ ADC 12 bit, 8 bộ USART, 2 bộ SPI, 2 bộ I2C. Liệu với các thông số kỹ thuật hấp dẫn đã đủ cho bạn chọn STM32 cho việc phát triển dự án. Trong bài viết này mình sẽ nói về các lý do chọn STM32F4 nhé

Lập trình STM32F4  - Phần 2: Lý do chọn STM32F4

So sánh STM32F4 và Atmega2560

Lý do mà tôi chọn AT mega 2560 để so sánh ở đây vì thực tế sẽ có rất nhiều bạn hỏi rằng: Mình mới học tập, tìm hiểu về lập trình vi điều khiển, vậy nên học Arduino hay học STM32F4? Câu hỏi này rất phổ biến bởi vì hiên tại trên thị trường Việt Nam thì đây là 2 loại rất phổ biến và được ưa chọn. Cả 2 loại vi điều khiển đều dễ mua và ứng dụng được vào nhiều thiết bị hay máy móc, robot. Ngoài ra cả 2 đều có những cộng đồng rất lớn ở Việt Nam và trên thế giới, là nơi trao đổi và học hỏi cho các Developer. Nó giúp dễ dàng hơn trong công việc học tập, phát triển sản phẩm và trên hết là tìm hiểu lỗi. Thêm vào đó, 2 con chip này đang được tích hợp trên 2 bộ KIT có thể nói là đa năng và rất phổ biến hiện nay, chúng ta cùng nhìn qua: 

 Ứng viên thứ nhất: Arduino Mega 2560 R3. Về giá cả thì con này tại thời điểm của bài viết này là tháng 4/2021 tầm 230K tham khảo Shopee.

Ứng viên thứ hai: Kit STM32F4 Discovery. Giá nó tầm 630k nhé (Shopee)

Ơ thế có nhiều bạn sẽ nghĩ, cái Kit STM32F4 Discovery đắt gần gấp 3 lần con Arduino Mega 2560 R3 thế thì chọn Arduino đi còn gì nữa, rất lợi về chi phí. Nhưng nghĩ lại đi, đó chỉ là KIT phát triển, chẳng lẽ bạn làn ra sản phẩm bán trên thị trường mà lại gắn nguyên cái KIT lên, chỉ có con chip thôi nhé. Cái KIT phát triển tốt cho việc học tập trước mắt, về lâu dài thì sẽ khác, hơn nữa thì các cụ có câu “tiền nào của nấy”, bạn có thấy trên cái Kit STM32F4 Discovery  thực sự có nhiều linh kiện hơn không, nó thực sự nhiều và chất lượng hơn đấy. 

Còn về con chip thì sao, so sánh về giá cả trước nhé, phần kỹ thuật tôi sẽ làm rõ hơn ở phần sau.

Ứng viên thứ nhất: VI ĐIỀU KHIỂN ATMEGA2560 - 16AU. Giá nó là tầm 160K.

Ứng viên thứ nhất: VI ĐIỀU KHIỂN STM32F407VET6. Giá nó cũng tầm 160K.

Vậy nên đừng lo lắng quá về giá cả nhé, thực sự nếu cần một con vi điều khiển để phục vụ mục đích chuyên nghiệp thì STM32F4 Discovery nó đáng giá hơn, bạn sẽ biết khi đi sâu hơn vào phần sau.

Tương quan giữa STM32F407 và Atmega2560

Phần này ta đi sâu hơn một chút về tính năng hỗ trợ của 2 con này nhé, bạn đọc có thể tham khảo thêm thông tin về DataSheet/ReferenceManual của 2 còn này ở đường Link bên dưới:

Một số thông tin cơ bản được tổng hợp trong bảng dưới đây: 

Thông số 

Atmega2560 

STM32F407 

Bus Width 

8-Bit Microcontroller 

32-bit Cortex®-M4 CPU 

Speed (Clock) 

Up to 16 MHz 

Up to 168 MHz 

ROM 

256 KB of Flash memory 

Up to 1 Mbyte of Flash memory 

RAM 

8K Bytes Internal SRAM 

Up to 192+4 Kbytes of SRAM 

EEPROM 

4K Bytes EEPROM. Endurance: 100,000 Write/Erase Cycles 

4-Kbyte backup SRAM is an EEPROM-like memory area 

Power Cunsumption 

Low 

Very Low at Standby Mode or Vbat Mode (<1uA current cunsumption) 

Timer 

+ Two 8-bit Timer/Counters 

+ Four 16-bit Timer/Counter 

+Up to twelve 16-bit and two 32-bit timers up to 168 MHz 

ADC 

8/16-channel, 10-bit ADC 

12-bit, 2.4 MSPS A/D converters: up to 24 

channels 

DAC 

No  

2×12-bit D/A converters 

DMA Support 

No 

Yes. 16-stream DMA 

controller 

Supported Communication Protocol  

+ Two/Four Programmable Serial USART 

+ Master/Slave SPI Serial Interface 

+ 2-wire Serial Interface 

+Up to 4 USARTs/2 UARTs 

+ Up to 3 SPIs (42 Mbits/s) 

+ Support I2S 

+ Support LIN protocol 

+ 2 × CAN interfaces (2.0B Active) 

+ SDIO interface 

+ Support Ethernet 

+ Support Camera interface 

Debug interface 

+Support JTAG 

+Serial wire debug (SWD) & JTAG interfaces. +Cortex-M4 Embedded Trace Macrocell™ 

Temperature Range 

-40°C to 85°C Industrial 

–40 to 105 °C 

Supplier  

ATMEL 

STMicroelectronics 

Nhìn qua bảng trên thì quá rõ ràng STM32F407 quá vượt trội. 

  • Với bộ xử lý 32-bit thì nó quá là trên cơ so với Atmega2560. Bạn tưởng tượng trong 1 lần lấy dữ liệu chẳng hạn là số float 32 bit, thì con Atmega2560 phải kết data từ 4 thanh ghi 8bit lại mới có thể cho ra số float. Còn STM32F407 thì nhanh gọn hơn rất nhiều vì kiến trúc của nó sinh ra đã dành để xử lý số 32bits rồi. 
  • Về operation clock: với tốc độ xử lý vượt trội, được coi là hàng khủng trong giới MicroController thì Maximum clock của STM32F407 hoàn toàn vượt trội. Ở option 168MHz thì tốc độ này hơn gấp 10 lần tốc độ của con Atmega2560, hiểu đơn giản thì 1 giây con STM32F407 làm được nhiều việc hơn 10 lần. 
  • Về bộ nhớ ROM và RAM: ROM nhiều hơn đến 4 lần, STM32F407 cho phép bạn thực thi nhiều nhiệm vụ khác nhau, RAM nhiều hơn giúp quá trình vận hành runtime lưu trữ và xử lý được lượng data lớn hơn. 
  • STM32F407 có nhiều Timer hơn với tần số đếm cao hơn cho phép độ phân giải tốt hơn. 
  • STM32F4 hỗ trợ ADC 12bit cho độ chính xác cao hơn 10bit, nó còn hỗ trọ cả DAC trong khi đó Atmega2560 thì không. 
  • Về DMA (Direct Memory Access): đây là một tính năng đặc biệt hữu dụng và vô cùng quan trọng ngày nay. Chi tiết sẽ có trong những bài viết sau nhưng cơ bản thì Atmega2560 không hỗ trợ tính năng này là một điểm trừ khá lớn nữa. 
  • Những chuẩn giao tiếp: Số lượng module giao tiếp trên STM32F407 là nhiều hơn hẳn, hơn nữa nó còn suppot cả một số chuẩn giao tiếp mạnh mẽ như LIN, CAN, Ethernet. 

Ứng dụng của STM32

  • Được sử dụng rộng rãi trong các thiết bị điện tử như điện thoại thông minh, máy tính bảng, máy nghe nhạc… 

  • Board mạch ô tô, mạch công suất, mạch thông tin liên lạc… 

  • Robot 

  • Điều khiển động cơ, điều khiển khiển đèn, nút ấn… 

  • Giao tiếp đọc tín hiệu cảm biến, enncoder, GPS… 

Có rất nhiều ứng dụng chưa thể nói chi tiết ở đây nhưng tóm lại STM32 có thể là một lựa chọn cho hầu hết các thiết bị điện tử hiện nay. Bất kỳ thiết bị nào liên quan đến đo lường, điều khiển, tính toán, giao tiếp, IOT… đều có thể chon STM32 là bộ xử lý nhờ tính năng đa dạng của nó. 

Lời kết 

Trên đây chỉ là một số tóm tắt sơ lược về sự ưu việt của dòng chip STM32/STM32F407. Với nhiều tính năng như vậy thì việc học tập và tiếp cận với những công nghệ với sẽ dễ dàng hơn. Cộng đồng hỗ trợ của STM hiện nay cũng đang mở rông và lớn mạnh toàn thế giới. Vậy nên đây sẽ là một sự lựa chọn phù hợp để tìm hiểu về vi điều khiển, lập trình C, lập trình nhúng.

Bình luận