Nguồn cấp xung clock cho STM32 và Ngoại vi
23/10/2021, bởi Thầy TiiL trong mục: Lập trình nhúng STM32Clock như là “trái tim” của toàn bộ hệ thống vi điều khiển trong hệ nhúng, nó cung cấp xung nhịp cho lõi vi điều khiển (CPU, hệ thống nhớ, IO) và các thiết bị ngoại vi giúp chúng hoạt động được, và đồng bộ thao tác.
Với mỗi dòng vi điều khiển cụ tể, ta cần xác định:
- Có bao nhiêu nguồn Clock cung cấp cho hệ thống? đặc điểm của các nguồn Clock?.
- Cách cấu hình chọn nguồn Clock cung cấp cho hệ thống?
Trong không gian bài viết lập trình hệ nhúng với STM32, ta sẽ cùng nhau trả lời 2 câu hỏi trên
NGUỒN CLOCK CHO STM32
- Nguồn chính
- Nguồn Clock bên trong, tần số cao (HSI – High Speed Internal)
- Nguồn Clock bên ngoài tần số cao (HSE – High Speed External): lấy từ nguồn dao động thạch anh bên ngoài vi điều khiển
- Nguồn Clock PLL (PLL – Phase Lock Loop).
- Nguồn Clock phụ:
- Nguồn Clock bên trong, tần số thấp (LSI RC – Low Speed Internal RC)
- Nguồn Clock bên ngoài tần số thấp (LSE crystal – Low Speed External): lấy từ dao động thạch anh bên ngoài vi điều khiển
Ví dụ, trên dòng chíp SMT32F401
Giải thích một số vị trí (ký hiệu màu đỏ trên ảnh):
- 1,2,3, α, β) nguồn chính clock cho STM32, nguồn phụ, đã giới thiệu ở đoạn viết trên tương ứng với đề mục
- A) SystemClock: Tần số cấp cho CPU
- B) AHB Scacler – Bộ chia tần cấp cho AHB
- AHB (Advanced High Speed Buses): Đây là Bus kết nối hệ thống, tần số hoạt động lớn nhất của Bus
- C) APB Scacler 1, 2 – Bộ chia tần cấp cho APB 1, 2
- APB (Advanced Peripheral Buses): Các Bus kết nối với thiết bị ngoại vi và kết nối với hệ thống thông qua AHB:
Thẻ:Lập trình nhúng
Bài viết liên quan
- Bài 4. Lập trình Led trái tim với Arduino [Tự động hóa & Robot]
- Tài liệu Thực hành Lập trình nhúng STM32 [Kho tài liệu học lập trình]
- Đề cương Lập trình C cho hệ thống nhúng và IoTs [Lập trình dùng Ngôn ngữ C/C++]
- Lập trình STM32 - Truyền thông nối tiếp bất đồng bộ UART [Lập trình nhúng STM32]