Thông báo

Collapse
No announcement yet.

FPGA giao tiếp encoder 4x mode

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • FPGA giao tiếp encoder 4x mode

    Đã có bạn nào làm FPGA giao tiếp với encoder ở chế độ 4x chưa, cho mình xin tý gợi ý nhé. Hiện tại mình dùng con EPM3128 chạy với 2x mode rồi (dùng hàm phase_A xor phase_B tăng gấp đôi clock) nhưng để tăng gấp 4 lần clock thì mình chưa có cách nào.
    Để tránh ngộ nhận mình nói trước là dùng counter với "risingedge() or fallingedge()" là không thể được vì nó không thể synthesis được. Nguyên nhân là do các Flip-Flop, counter chỉ có thể hoạt động trên 1 sườn clock mà thôi, chưa có loại standard nào mà chạy với cả 2 sườn cả. Thế có nghĩa là để kích cho counter đếm thì bắt buộc phải tạo ra 1 xung clock có đầy đủ phần '1' và '0'.
    ! ! you can win if you want ! !

  • #2
    Nguyên văn bởi anhtuan133 Xem bài viết
    Đã có bạn nào làm FPGA giao tiếp với encoder ở chế độ 4x chưa, cho mình xin tý gợi ý nhé. Hiện tại mình dùng con EPM3128 chạy với 2x mode rồi (dùng hàm phase_A xor phase_B tăng gấp đôi clock) nhưng để tăng gấp 4 lần clock thì mình chưa có cách nào.
    Để tránh ngộ nhận mình nói trước là dùng counter với "risingedge() or fallingedge()" là không thể được vì nó không thể synthesis được. Nguyên nhân là do các Flip-Flop, counter chỉ có thể hoạt động trên 1 sườn clock mà thôi, chưa có loại standard nào mà chạy với cả 2 sườn cả. Thế có nghĩa là để kích cho counter đếm thì bắt buộc phải tạo ra 1 xung clock có đầy đủ phần '1' và '0'.
    Coi cái này đi

    http://www.fpga4fun.com/QuadratureDecoder.html

    Sông dài, Thuyền lớn, Biển rộng bao la.
    Tháo neo ngôn ngữ, lèo lái con thuyền kiến thức nhân loại.

    Comment


    • #3
      Như vậy, để chạy được 4x mode bắt buộc phải có xung clock đưa từ ngoài vào. Tốc độ clk > 4 lần tốc độ xung 1 pha của rotary encoder. Mình đã lỡ không có clock phụ bên ngoài nên không có giải pháp rồi.
      Một số FPGA cao cấp hơn dùng PLL để nhân tần nhưng vẫn không thể dùng nó với rotary encoder bởi vì có trục trặc khi đảo chiều.
      Cảm ơn QT. Vẫn chờ một gợi ý.
      ! ! you can win if you want ! !

      Comment


      • #4
        Nguyên văn bởi anhtuan133 Xem bài viết
        Như vậy, để chạy được 4x mode bắt buộc phải có xung clock đưa từ ngoài vào. Tốc độ clk > 4 lần tốc độ xung 1 pha của rotary encoder. Mình đã lỡ không có clock phụ bên ngoài nên không có giải pháp rồi.
        Một số FPGA cao cấp hơn dùng PLL để nhân tần nhưng vẫn không thể dùng nó với rotary encoder bởi vì có trục trặc khi đảo chiều.
        Cảm ơn QT. Vẫn chờ một gợi ý.
        Xung vào này không phải là gấp 4 lần mà là gấp đôi mỗi pha.
        Việc này chủ yếu là để lưu mẫu pha cũ trước đó.

        Sông dài, Thuyền lớn, Biển rộng bao la.
        Tháo neo ngôn ngữ, lèo lái con thuyền kiến thức nhân loại.

        Comment

        Về tác giả

        Collapse

        anhtuan133 Tìm hiểu thêm về anhtuan133

        Bài viết mới nhất

        Collapse

        Đang tải...
        X