Mục lục:
- Bước 1: Danh sách bộ phận
- Bước 2: Giải pháp rõ ràng
- Bước 3: Bộ hẹn giờ xếp tầng để có độ phân giải cao hơn
Video: Tạo tín hiệu PWM độ phân giải cao cho RC Servos với thiết bị STM32: 3 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:32
Hiện tại, tôi đang xây dựng một bộ phát / thu RC dựa trên chip RF SX1280. Một trong những mục tiêu của dự án là tôi muốn độ phân giải servo 12 bit từ các thanh tất cả xuống đến Servo. Một phần là vì các Servos kỹ thuật số hiện đại có độ phân giải 12 bit, thứ hai, một bộ phát cao cấp vẫn đang sử dụng 12 bit. Tôi đang tìm hiểu cách tạo tín hiệu PWM độ phân giải cao trên thiết bị STM32. Hiện tại, tôi đang sử dụng viên thuốc màu đen (STM32F103C8T8) cho mẫu thử nghiệm.
Bước 1: Danh sách bộ phận
Phần cứng
- Bất kỳ bảng phát triển STM32F103 nào (viên thuốc màu xanh lam, viên thuốc màu đen, v.v.)
- Một ngân hàng điện USB làm nguồn cung cấp năng lượng
- Bộ lập trình STM32 (Segger j-links, ST-LINK / V2, hoặc đơn giản là một bản sao liên kết st)
Phần mềm
- STM32CubeMX
- Atollic TrueSTUDIO cho STM32
- Nguồn dự án từ github
Bước 2: Giải pháp rõ ràng
Có lẽ giải pháp đơn giản nhất là sử dụng một trong những bộ đếm thời gian có thể tạo ra tín hiệu PWM, như TIM1-3 trên STM32F103. Đối với một servo kỹ thuật số hiện đại, tốc độ khung hình có thể giảm xuống còn 5 ms hoặc lâu hơn, nhưng đối với một servo tương tự cũ, nó phải là 20 ms hoặc 50 Hz. Vì vậy, trong trường hợp xấu nhất, hãy tạo ra điều đó. Với đồng hồ 72 MHz và độ phân giải bộ đếm bộ định thời 16 bit, chúng ta cần đặt bộ đếm trước của bộ định thời thành tối thiểu 23 để đáp ứng tốc độ khung hình 20 ms. Tôi đã chọn 24 vì sau đó trong 20 ms, tôi cần đặt bộ đếm chính xác thành 60000. Bạn có thể thấy thiết lập CubeMX và các tín hiệu PWM 1 và 1,5 ms được tạo trong ảnh chụp màn hình. Thật không may, đối với 1ms, bộ đếm của bộ định thời phải được đặt thành 3000, điều này sẽ chỉ cung cấp cho chúng tôi độ phân giải 11 bit. Không tệ, nhưng mục tiêu là 12 bit, vì vậy chúng ta hãy thử một cái gì đó khác.
Tất nhiên Nếu tôi chọn một bộ điều khiển vi mô có bộ đếm thời gian 32 bit, như STM32L476, độ phân giải này có thể cao hơn nhiều và vấn đề sẽ được giải quyết.
Nhưng ở đây, tôi muốn đề xuất một giải pháp thay thế sẽ làm tăng thêm độ phân giải ngay cả trên STM32F103.
Bước 3: Bộ hẹn giờ xếp tầng để có độ phân giải cao hơn
Vấn đề chính với giải pháp trước đó là tốc độ khung hình (20 ms) tương đối cao so với tín hiệu PWM thực sự được tạo ra (từ 1 đến 2 ms), vì vậy chúng tôi đang lãng phí một số bit có giá trị trong 18 mili giây còn lại khi chúng tôi chờ đợi. khung tiếp theo. Điều này có thể được giải quyết bằng cách xếp tầng bộ định thời sử dụng tính năng liên kết bộ hẹn giờ để đồng bộ hóa.
Ý tưởng là tôi sẽ sử dụng TIM1 làm chủ để tạo ra tốc độ khung hình (20 mili giây) và TIM2, TIM3 để đối phó với các tín hiệu PWM dưới dạng nô lệ. Khi chủ kích hoạt các nô lệ, chúng chỉ tạo ra tín hiệu PWM ở một chế độ xung. Do đó, tôi chỉ cần sử dụng 2 ms trong các bộ hẹn giờ đó. May mắn thay, bạn có thể phân tầng các bộ hẹn giờ đó trong phần cứng nên việc đồng bộ hóa này không cần bất kỳ sự can thiệp nào từ bộ xử lý và nó cũng rất chính xác, jitter nằm trong vùng ps. Bạn có thể thấy thiết lập CubeMX trên ảnh chụp màn hình.
Như bạn có thể thấy, tôi đã chọn 3 làm prescalar vì vậy trong 2 mili giây, tôi cần đặt 48000 trong bộ đếm của bộ định thời. Điều này mang lại cho chúng tôi 24000 cho 1 ms, thực sự là nhiều hơn những gì chúng tôi cần cho độ phân giải 14 bit. Tadaaaa…
Vui lòng xem ảnh chụp màn hình máy hiện sóng trong phần giới thiệu để biết kết quả cuối cùng. Kênh 3 (màu tím) là ngắt của bộ định thời chính sẽ kích hoạt bộ định thời tạo ra một xung. Kênh 1 và 4 (chùm màu vàng và xanh lục) là các tín hiệu PWM thực tế được tạo ra bởi các bộ định thời khác nhau. Lưu ý rằng chúng được đồng bộ hóa nhưng chúng được đồng bộ hóa ở các cạnh cuối, đó là do chế độ PWM 2. Đây không phải là vấn đề, vì tốc độ PWM cho servo cụ thể vẫn chính xác.
Lợi ích khác của giải pháp này là thay đổi tốc độ khung hình có nghĩa là chỉ thay đổi khoảng thời gian trong TIM1. Đối với các servo kỹ thuật số hiện đại, bạn có thể giảm xuống thậm chí 200-300 Hz, nhưng hãy tham khảo hướng dẫn sử dụng của servo nếu bạn muốn tinh chỉnh.
Đề xuất:
Máy phát Flysky RF được cung cấp năng lượng thông qua kết nối tín hiệu dây USB + với PC + Phần mềm giả lập miễn phí: 6 bước
Bộ phát RF Flysky được hỗ trợ qua kết nối tín hiệu dây USB + với PC + Phần mềm giả lập miễn phí: Nếu bạn giống tôi, bạn sẽ thích thử nghiệm bộ phát RF của mình và tìm hiểu trước khi bạn gặp sự cố máy bay / máy bay không người lái RF thân yêu của mình. Điều này sẽ mang lại cho bạn niềm vui bổ sung, đồng thời tiết kiệm rất nhiều tiền và thời gian. Để làm như vậy, cách tốt nhất là kết nối thiết bị phát RF với bạn
Cách xây dựng máy đo gió của riêng bạn bằng công tắc sậy, cảm biến hiệu ứng Hall và một số mẩu tin lưu niệm trên Nodemcu - Phần 2 - Phần mềm: 5 bước (có hình ảnh)
Cách xây dựng máy đo gió của riêng bạn bằng công tắc sậy, cảm biến hiệu ứng Hall và một số mẩu tin lưu niệm trên Nodemcu - Phần 2 - Phần mềm: Giới thiệuĐây là phần tiếp theo của bài đăng đầu tiên " Cách xây dựng máy đo độ ẩm của riêng bạn bằng công tắc sậy, cảm biến hiệu ứng Hall và một số mẩu tin lưu niệm trên Nodemcu - Phần 1 - Phần cứng " - nơi tôi chỉ cách lắp ráp máy đo tốc độ và hướng gió
Cách xây dựng máy đo gió của riêng bạn bằng công tắc sậy, cảm biến hiệu ứng Hall và một số mẩu tin lưu niệm trên Nodemcu. - Phần 1 - Phần cứng: 8 bước (có Hình ảnh)
Cách xây dựng máy đo gió của riêng bạn bằng công tắc sậy, cảm biến hiệu ứng Hall và một số mẩu tin lưu niệm trên Nodemcu. - Phần 1 - Phần cứng: Giới thiệu Kể từ khi bắt đầu nghiên cứu về Arduino và Văn hóa nhà sản xuất, tôi đã thích tạo ra các thiết bị hữu ích bằng cách sử dụng các mảnh vụn và mảnh vụn như nắp chai, mảnh PVC, lon nước uống, v.v. Tôi rất muốn đóng góp ý kiến. cuộc sống cho bất kỳ mảnh hoặc bất kỳ người bạn đời nào
Thiết kế PDB công suất cao (Bảng phân phối điện) cho Pixhawk: 5 bước
Thiết kế PDB công suất cao (Bảng phân phối điện) cho Pixhawk: Một PCB để cung cấp năng lượng cho tất cả chúng! Hiện tại hầu hết các vật liệu bạn cần để chế tạo máy bay không người lái đều có sẵn trên internet với giá rẻ nên ý tưởng tạo ra một PCB tự phát triển không đáng chút nào ngoại trừ một vài trường hợp bạn muốn tạo ra những điều kỳ lạ và
Cách gửi tín hiệu video và tín hiệu âm thanh qua cáp vá: 5 bước
Cách gửi tín hiệu video và tín hiệu âm thanh qua cáp vá: trong tài liệu hướng dẫn đầu tiên của tôi này, tôi sẽ chỉ cho bạn cách gửi tín hiệu âm thanh và video qua cáp vá. Tôi đã sử dụng Xbox đã sửa đổi làm trình phát đa phương tiện với cáp mạng chạy quanh phòng để phát tất cả các bản sao dự phòng của phim. Xbox vừa mới bắt đầu