Thông báo

Collapse
No announcement yet.

Đo tần số xung vuông

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

  • Đo tần số xung vuông

    Chào các bạn!
    Mình đang suy nghi một ví dụ nhỏ về đo tần số xung vuông(cỡ <5kHz thôi).Mình có 2 ý tưởng thế này mong moi người xem rồi tư vấn hộ mình nhé:
    -Thứ nhất:Giả sử chân P07 là chân lấy đầu vào xung cần đo tần số(mình sẽ tính chu kỳ T=>f) mình đưa qua global rồi vào chân clock của Counter16(chân enable đặt High),rồi dùng bộ đếm Timer8 để xác định khoảng thời gian 1s.Ý của mình là dùng Counter16 đếm số xung đầu vào trong 1s rồi suy ra tần số(Giả sử trong 1s Counter16 đếm được 1000 thì tần số xung cần đo là 1Khz).Khi Timer8 khởi động cũng là lúc khởi động Counter16,khi Timer8 ngắt cũng là lúc 1s đã trôi qua lúc này mình đọc bộ đếm Counter16(wReadCounter16).
    -Thứ hai:dùng ngắt GPIO để đếm số xung của Counter16.Xung clock sẽ đưa vào chân P07 và vào Enable của Counter16,khi có ngắt thì đọc số đếm được của Counter16 tương tự như trên.Tuy nhiên như thế chỉ đo được độ rộng xung chứ chưa thể đo được chu kỳ xung.
    Mình đang rất gấp mong mọi người xem trả lời ngay mình nhé!thank!
    Technical Institutes
    Mobile: 0983278725
    Email:

  • #2
    hi,Cậu cũng đi về FPGA sao không nghĩ giải pháp bằng FPGA nhỉ .
    1 bộ counter được cấp xung clock khá cao so với xung cần đo.
    Cập nhập và Bắt đầu count khi nhận dc cạnh kíck.
    Kết quả đo là 1 bộ thanh ghi để cho 1 block khác hoạt động cộng trừ nhân chia

    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
      Cái này theo em nghĩ thì dùng cách 1 là khả thi, tuy tối ưu chưa thì em không rõ. (mà theo em hiểu thì bác đã chọn cách 1 rồi, chỉ là hỏi để xem có cách nào khác nữa phải không? )

      Comment


      • #4
        FPGA thì quá đơn giản mình đã làm được rồi nhưng đo tần số 1KHZ mà dùng FPGA thì có mà đốt tiền,mình muốn dùng Psoc cũng không cần độ chính xác cao lắm!Mình thấy không ổn lắm ở chỗ khống chế thời điểm Counter16_start
        Technical Institutes
        Mobile: 0983278725
        Email:

        Comment


        • #5
          không biết PSOC nên cũng không bàn luận với cậu sâu đc.
          Mình cũng đang làm.
          Đo tần số cần cao.
          Hix kẹt cái là ko có kit FPGA để demo sản phẩm thử cho người ta.
          Thiết kế trên họ logic thật sự thì tốn công làm quá.
          hix.

          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


          • #6
            Quocthai cung đang làm đo tần số cao bang FPGA hả giống mình,mình cung trao đổi nhé,nếu cần mình có thể gửi mạch in Kit altera flex mình vừa làm xong dể thủ nghiệm.Nó như một kit vậy.
            Technical Institutes
            Mobile: 0983278725
            Email:

            Comment


            • #7
              Có chip không.Nhưng mình không giàu lắm.
              Đang để dành tiền mua DE2 của altera nhưng chắc cũng lâu.
              Nếu cậu gửi thì send chip cùng cho mình dc chứ.
              Mình send lại tiền cho cậu nhưng cao quá thì mình chịu.

              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


              • #8
                Cho minh email minh gui cho!
                Technical Institutes
                Mobile: 0983278725
                Email:

                Comment


                • #9
                  mail của mình là quoc_thaibk@yahoo.com.
                  Thanks cậu 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


                  • #10
                    Nguyên văn bởi process Xem bài viết
                    Chào các bạn!
                    Mình đang suy nghi một ví dụ nhỏ về đo tần số xung vuông(cỡ <5kHz thôi).Mình có 2 ý tưởng thế này mong moi người xem rồi tư vấn hộ mình nhé:
                    -Thứ nhất:Giả sử chân P07 là chân lấy đầu vào xung cần đo tần số(mình sẽ tính chu kỳ T=>f) mình đưa qua global rồi vào chân clock của Counter16(chân enable đặt High),rồi dùng bộ đếm Timer8 để xác định khoảng thời gian 1s.Ý của mình là dùng Counter16 đếm số xung đầu vào trong 1s rồi suy ra tần số(Giả sử trong 1s Counter16 đếm được 1000 thì tần số xung cần đo là 1Khz).Khi Timer8 khởi động cũng là lúc khởi động Counter16,khi Timer8 ngắt cũng là lúc 1s đã trôi qua lúc này mình đọc bộ đếm Counter16(wReadCounter16).
                    -Thứ hai:dùng ngắt GPIO để đếm số xung của Counter16.Xung clock sẽ đưa vào chân P07 và vào Enable của Counter16,khi có ngắt thì đọc số đếm được của Counter16 tương tự như trên.Tuy nhiên như thế chỉ đo được độ rộng xung chứ chưa thể đo được chu kỳ xung.
                    Mình đang rất gấp mong mọi người xem trả lời ngay mình nhé!thank!
                    Dùng cách 1 được đó bạn ah nếu yêu cầu của bạn không cao. Vì bản thân mạch đinh thời 1s của Timer8 sẽ không thể chính xác vì Clock của CPU không chính xác là 24Mhz ( Kô tin bạn cứ đo bằng Oscilloscope thử xem). Tuy nhiên tôi khuyên bạn rằng bạn có thể làm như vậy sau khi cân chỉnh Timer8 sao cho tạo ra bộ định thời đúng 1s ( Thực tế ). Nghĩa là bạn dùng Oscilloscope chẳng hạn, đo chu kỳ của nó, nếu <1s thì tăng period của Time8 lên 1 hoặc 2 xung... ( Nếu dùng Timer16 thì đạt được độ phân giải của cách hiệu chỉnh này cao hơn). Và theo tớ thì nên cho Timer8 ngắt với period khoảng 200ms là OK( kết quả bộ Counter nhân 5 lần lên) như vậy phép đo sẽ cập nhật tín hiệu nhanh hơn. Mình kèm theo project của mình, bạn tham khảo nhé.
                    Attached Files

                    Or call me 0903911109

                    Comment


                    • #11
                      Rất cám ơn bạn Connection.Mình đã xem project của ban mình thấy nguyên lý của bạn và mình rất giống nhau.Đều đo số xung trong khoảng thời gian cho trước(200ms).Tuy nhiên mình thấy có vấn đề là sai số là không thể tránh khỏi và mình đang gặp trường hợp là số xung đo được tăng gấp đôi không hiểu là nguyên nhân gì.MÌnh xin hỏi là đầu ra tần số nối vào Psoc có phải chú ý gì không,có nối trực tiếp được không?
                      Technical Institutes
                      Mobile: 0983278725
                      Email:

                      Comment


                      • #12
                        Mình chưa thử làm đo tần số với PSOC, không rõ tối đa được bao nhiêu Hz, nhưng mình đã làm với PIC và tần số max mà mình thử được là 50MHz, không dùng chia tần và độ chính xác khá ổn. Đo chuẩn. Mình dùng chân vào clock của timer để đo tần số.
                        Ethernet-RS232, PIC Webserver, RFID Reader
                        CallerID, Cảnh báo BTS, ...
                        0988006696
                        linhnc308@gmail.com
                        http://linhnc308.blogspot.com

                        Comment


                        • #13
                          Thế thì PIC ác chiêu đấy,đây đo tần số có chưa đầy 1Mhz mà đã thấy mệt nhoài,không phải là độ chính xác không cao mà hình như là mình thấy không ổn định lắm,mỗi 1 chip Psoc đo ra lệch đi vài xung!Riêng món này mấy bác VDK chào thua FPGA hết!Bây giờ mình đã hiểu sao nhiều mày có cả FPGA và PSoc rồi!Nói chung mình khuyên các bạn nào chưa làm đo tần số bằng Psoc là không nên đo với tần số lớn cỡ 10Mhz!
                          Technical Institutes
                          Mobile: 0983278725
                          Email:

                          Comment


                          • #14
                            Nguyên văn bởi process Xem bài viết
                            Rất cám ơn bạn Connection.Mình đã xem project của ban mình thấy nguyên lý của bạn và mình rất giống nhau.Đều đo số xung trong khoảng thời gian cho trước(200ms).Tuy nhiên mình thấy có vấn đề là sai số là không thể tránh khỏi và mình đang gặp trường hợp là số xung đo được tăng gấp đôi không hiểu là nguyên nhân gì.MÌnh xin hỏi là đầu ra tần số nối vào Psoc có phải chú ý gì không,có nối trực tiếp được không?
                            Hi !
                            Có nút Cảm Ơn đó, nhấn vào đó là OK ngay mà
                            Để đo chính xác thì bạn phải đảm bảo biên độ tín hiệu ở các mức 0, 1 rõ ràng, tần số nằm trong dải thông, sườn xung phải dốc... Tóm lại là Function Geneator phải xịn.
                            Mình đo dùng chính PSoC phát tần 24MHz, và dùng chính PSoC để đo thì kết quả chính xác ( Nhưng giống kiểu Con hát Mẹ khen ấy mà ). Còn các tín hiệu khác thì PSoC có thể đo tới được 20MHz với độ chính xác chấp nhận được.
                            Tại sao tín hiệu của bạn lại luôn đo được gấp đôi thực tế ? Mình dám chắc rằng tín hiệu của bạn co nửa chu kỳ âm ( Kiểu dòng xoay chiều ấy).
                            Đê đo được chính xác bạn hãy dùng Diode để ngắt bỏ phần âm trước khi đưa vào PSOC nhé. Tốt nhất là sử dụng các diode cao tần.

                            Or call me 0903911109

                            Comment


                            • #15
                              Ban connection noi minh thay khong chac lam vi tan so cua Psoc cho phep lon nhat chi co the 48Mhz ma do tin hieu khac co tan so 20Mhz thi khong on lam phai khong?
                              Technical Institutes
                              Mobile: 0983278725
                              Email:

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X