Chào các Pro e đang làm bài toán đo tần số nhưng đòi hỏi độ chính xác rất cao sử dụng dsPIC nhưng chưa tìm được phương pháp hợp lí mong các cao thủ chỉ hướng.
Thông báo
Collapse
No announcement yet.
Dùng dsPIC đo tần số với độ phân giải 0.004Hz.
Collapse
X
-
có 2 dạng đếm tần số : direct counter và reciprocal counter .
direct counter sẽ đếm số xung đưa vào trong 1s và kết quả thu được là Hz
reciprocal counter xác định chu kỳ của 1 xung và suy ra tần số f=1/T
nếu time base 1s ==> chính xác đến 1Hz
nếu time base 10s ==> 0,1Hz
.... riêng reciprocal do đo thời gian .... nên có thể nội suy
việc đếm với thời gian quá dài có thể bất lợi do nhiễu phát sinh , sai lệch !
Cả 2 phương pháp trên ===> kết luận :
Nếu là được độ chính xác vậy thì mấy hãng sản xuất máy đo tần số như agilent , leader , tektronix ... sẽ mua cám về để ăn dần
thời gian time base phụ thuộc rất nhiều vào cái thạch anh REF ( thời gian mẫu ) ... những thạch anh chuẩn xác này thì cực hiếm và đắt tiền ( thạch anh có độ chính xác rất cao , ít phụ thuộc nhiệt độ ... có bộ sinh nhiệt tự động để bù nhiệt ...)
ngoài ra độ chính xác còn phụ thuộc nguồn điện , phần mềm ( riêng khoản lập trình firmware flash ) là đã vứt rồi ! ( chí ít gọi là tạm được cũng phải chơi CPLD hoặc những dòng PLD , FPGA
KẾT LUẬN 2 : Không khả quan . Hết
( Độ phân giải khác hoàn toàn với độ chính xác ... nếu phân giải đến phần nghìn thì làm cái direct counter cũng ok ... còn độ chính xác đến phần nghìn , chục nghìn của Hz ... thì thua luôn !
qua hãng agilent , anritsu hỏi xem có máy đo đạt chính xác đó không !Module RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com
Comment
-
Độ phân giải với độ chính xác là khác nhau, dù rằng nó thường đi với nhau và tỉ lệ thuận. Ví dụ cái DMM anh em mình dùng có phân giải 2000 count, chính xác 1% (ứng với 20 count).
f = n/t (n: số xung, t: thời gian)
Độ phân giải 0.004 Hz tương ứng với độ phân giải khó biết us (về mặt thời gian).
Tớ ví dụ:
- Nếu bạn muốn đo tần số 100Hz với độ phân giải 0.004Hz, tức là bạn phải phân biệt được 100Hz và 100.004Hz.
Giả sử mỗi phép đo được thực hiện trong thời gian khoảng 1s, tức là bạn sẽ đếm khoảng 100 xung. Trong trường hợp này t của bạn sẽ có giá trị:
t1 = n/f1 = 100/100Hz = 1s (đương nhiên, đúng với giả thiết)
t2 = n/f2 = 100/100.004Hz = 0.99996s
delta_t = |t1-t2| = 1s - 0.99996s = 0.00004s = 40us
>> 40us thì quá dễ giải quyết với vi điều khiển, dùng 98C2051 vẫn OK.
- Nhìn ở trên tớ thấy
delta_t = |t1-t2| = |n/f1 - n/f2| = n*|1/f1 - 1/f2|
delta_t = n*|1/f1-1/f2|
Nhìn vào công thức ta thấy luôn:
+ delta_t không thể quá nhỏ vì bộ xử lý của ta sẽ không phân biệt được
+ để tăng delta_t ta có thể tăng n (số xung đếm vào), cái này sẽ làm tăng chu kỳ lấy mẫu
+ với một giới hạn xử lý (delta_t nhỏ nhất có thể phân biệt) ta có thể suy ra tần số ta có thể đo được (liên quan với cả độ phân giải)
delta_t = n*|1/f1-1/f2| = n*|1/f1-1/(f1+delta_f) ≈ n*delta_f/f12 (thử lại với ví dụ trên thấy đúng)
>> với chip AT89S52 tớ có thể đếm thời gian chính xác cỡ 4Tcy (4 chu kỳ máy) tương ứng 4us với thạch anh 12MHz → bài toán của bạn: có thể đếm tần số tối đa
fmax2 = n*delta_f/delta_t = Tsample*f *delta_f/delta_t (Tsample: chu kỳ đo, f: tần số vào, ở đây f=fmax)
fmax2 = Tsample*fmax*delta_f/delta_t
fmax = Tsample*delta_f/delta_t = 1s*0.004Hz/4us = 1000Hz
fmax = 1000Hz
fmin = tự tính
(fmax = 1000Hz, phân giải 0.004Hz, bộ của bạn hơi bị chính xác cao đấy, cứ nhìn số 999.996 mà xem)
Comment
-
>> với chip AT89S52 tớ có thể đếm thời gian chính xác cỡ 4Tcy (4 chu kỳ máy) tương ứng 4us với thạch anh 12MHz → bài toán của bạn: có thể đếm tần số tối đa
còn độ phân giải (VD 4 số ) 1KHz 1.000 ... độ chính xác 1Hz VD 0.999 Khz , 1.000 Khz , 1.001 KhzModule RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com
Comment
-
Cám ơn các bác đã cho ý kiến. Có lẽ e đưa ra dữ liệu bài toán chưa đủ. Bài toán của e cụ thể như sau.
đo tần số nằm trong khoảng 800 đến 4000Hz với độ phân giải là 0.004Hz tức là 100Hz và 100.004Hz sẽ phải phân biệt được.
E đã dùng input captures của dspic với Ftcy = 16M.
ví dụ ta đo tần số f = 851.004 Hz chẳng hạn.
đo tần số này thì 1 chu kì của f = (16.000.000/851.004) = 18801.3217 chu kì của Ftcy.
dùng capture của dsPIC thì đo 1 chu kì của f sẽ được 18801 chu kỳ của Ftcy trong thanh ghi của PIC
-> thời gian 1 chu kỳ của tần số f là: t = 18801/16 = 1175.0625 (us) -> f = 1/t = 851.01856 (Hz). tần số đo được này sai 0.01456 >0.04 Hz.
nếu muốn chính xác hơn thì phải đo từ 10 chu kỳ. lúc đó ta tính được t = 1175.08125 -> f = 851.00498 (Hz) so với 851.004 thì sai số là 0.00098 < 0.004Hz coi như thỏa mãn yêu cầu đề bài. Nhưng đây là tính toán lý thuyết trên thực tế nếu dùng bộ captures của dsPIC thì timer được sử dụng là 16bit thế nếu đo 10 chu kỳ sẽ xảy ra tràn timer ít nhất là 3-4 lần. mỗi lần tràn này đều sẽ làm trễ đi một khoảng thời gian nhất định phải ko ạ.
ai đã làm qua cách này có chỗ nào cao minh chỉ điểm giúp e với|
Comment
-
Cái 16M ở đây là tần số dao động e thiết lập trên dsPIC. Dùng tần số đó để lấy mẫu giả sử đo trong 1s thì 800 chu kì của f(fin) sẽ được 16.000.000 chu kì của chíp nên cái 16M/800 là tỉ lệ của 2 cái tần số này để tính toán theo lý thuyết thôi.|
Comment
-
Dùng vòng lặp kiểm tra, nếu TMRIF bật thì cộng thêm 65536.
Nếu mình không nhầm thì sử dụng chế độ Capture vẫn dùng được ngắt Timer (bạn xem lại trong datasheet), nếu thế thì có thể đếm 1 biến phụ trong ngắt.
@bác Dương: cái này chỉ nói là độ phân giải 0.004Hz chứ không nói phải chính xác đến 0.004Hz. Như bác nói, để đảm bảo độ chính xác của phép đo thì cần tần số mẫu chính xác (thạch anh đếm thời gian) - vấn đề của linh kiện. Nếu chúng ta có giải thuật xử lý đúng thì khi lắp thạch anh "chuẩn" vào sẽ chính xác, phải không bác.
Tiện thể, em viết nốt
Δt < Tsample * Δf / f
đây là yêu cầu độ phân giải (độ chính xác) đếm thời gian trong phương pháp đếm đồng thời thời gian và số xung.
với Tsample=n/f (n: số xung, f: tần số xung; Tsample không cố định)Last edited by KnowMore; 25-02-2012, 01:14.
Comment
-
Bạn phải tính thêm độ trễ của ngắt.Quá trình reset timer.Đo tần số cao thì phải lấy nhiều chu kì rồi.Mà bạn đâu nói đến độ chính xác đâu nhỉ.Do đó 2 kết quả có sai nhau thì đâu vấn đề gì.800.004 và 800.001 chỉ là giá trị hiển thị thôi.Kô ai nói 800.004 chính xác còn 800.001 kô chính xác., , ,
Comment
-
Nguyên văn bởi rptdnmqs Xem bài viếtBạn phải tính thêm độ trễ của ngắt.Quá trình reset timer.Đo tần số cao thì phải lấy nhiều chu kì rồi.Mà bạn đâu nói đến độ chính xác đâu nhỉ.Do đó 2 kết quả có sai nhau thì đâu vấn đề gì.800.004 và 800.001 chỉ là giá trị hiển thị thôi.Kô ai nói 800.004 chính xác còn 800.001 kô chính xác.
Con dspic cũng vậy ... không phải lúc nào nó cũng chạy như lúc nào ( sẽ có lúc nhanh lúc chậm ) ... mà sự thay đổi này rất nhỏ ( do yếu tố phát sinh nhiệt hoặc nhiệt môi trường ) ...
Tuy thay đổi nhỏ nhưng lại là lớn trong những bài toán chính xác .Module RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com
Comment
Về tác giả
Collapse

Bài viết mới nhất
Collapse
-
Trả lời cho Tiếng Anh cho người Việtbởi bqvietĐúng, nếu chú tâm thì chỉ cần mỗi tiếng Việt là đã khá đủ để làm đa số công việc thông thường, ở thời đại ngày nay khi tài liệu sách vở phương tiện thông tin liên lạc đã nhiều. Nhưng cũng chính ở thời nay giao lưu các nước nhiều...
-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 20:26 -
-
Trả lời cho Tiếng Anh cho người Việtbởi mèomướpDạ cháu nghĩ chú dinh... cứ mạnh dạn gửi thư đi ạ, chú có thể gửi bằng văn bản in chuyển phát nhanh sẽ có giá trị hơn. Vấn đề chưa hẳn là cần hãng làm gì đó, mà chỉ đơn giản là mình cảm thấy nhẹ lòng vì đã làm những việc bản...
-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 12:32 -
-
Trả lời cho Tiếng Anh cho người Việtbởi vi van phamNhững lần hắt hơi sổ mũi làm tôi mệt lã, phải dùng rượu uống để ngũ. Tôi cũng đang uống rượu 1 mình, viết vài dòng này cho em ( có lẽ dt chỉ bằng tuổi em tôi).
Dinh thuong dang đi vào vết xe đổ của tôi. Càng chứng minh, có...-
Channel: Tâm tình dân kỹ thuật
20-02-2025, 21:31 -
-
Trả lời cho Hỏi về cách hàn linh kiện ( giúp tớ với )bởi bqvietThiết nghĩ thi thoảng bác lên đây chia xẻ ít kinh nghiệm cũng vui rồi. Còn chuyện con người sinh lão bệnh tử là thường, sống cùng với quy luật đó thôi. Bqv nhớ trước đây bác từng kể về chuyện rang chì ô-xít bằng chảo để phục hồi bình điện, đấy cũng là thành quả đáng nể phục ở thời kỳ thiếu thốn đó.20-02-2025, 17:22
-
Trả lời cho Tiếng Anh cho người Việtbởi dinhthuong80Tiếng Anh, Đình Thường phải nói là rất tệ, khiến việc giao tiếp đời thường thôi cũng khó chứ nói gì về kĩ thuật.
Nhân tiện, nhờ các bạn, các bác xem giúp thư ĐT viết thế này liệu có thể gửi tới địa chỉ nhận hay chăng,...-
Channel: Tâm tình dân kỹ thuật
20-02-2025, 11:52 -
-
Trả lời cho Hỏi về cách hàn linh kiện ( giúp tớ với )bởi vi van phamUống rượu 1 mình, thấy trang này nhớ lại cách đây vài chục năm hàn thiếc với inox cực kỳ khó, phải dùng acid Hcl tác dụng lên kẻm Zn để có Zncl2 làm thuốc trợ hàn, lúc đó làm gì có acid Hcl và thuốc trợ hàn?
Cái khó bó cái...19-02-2025, 23:05 -
Trả lời cho Tiếng Anh cho người Việtbởi nhathung1101Nếu chú tâm thì học tiếng Việt cũng đủ rồi, thừa sức làm việc rồi.
Học tiếng Anh cũng chỉ phụ trợ để đọc thêm tài liệu, hướng dẫn.
Nhưng có hiểu điều đó không mới là vấn đề. Khi mà học ngoại ngữ để đi đạp xích lô đón khách???...-
Channel: Tâm tình dân kỹ thuật
19-02-2025, 21:27 -
-
bởi xenopus123Cần hỗ trợ mạch đồng hồ vạn niên 89c52 ds1302 ds18b20 dùng 16 led 7 đoạn
-
Channel: Hỗ trợ học tập
19-02-2025, 21:24 -
-
Trả lời cho tìm mua đồng hồ vạn năngbởi nhathung1101Nhìn kỹ hàng đi cu. Chứ ra đường cứ thấy đàn bà rồi bảo:
- Tôi cũng có vợ như thế....
Đảm bảo cu nát người luôn....-
Channel: Điện tử dành cho người mới bắt đầu
19-02-2025, 21:04 -
-
Trả lời cho tìm mua đồng hồ vạn năngbởi matnetgia99Ồ, cái này mình cũng có nè, có ai mua không, đồ cũ dùng từ năm 2008, hư 1 2 giai gì đấy bỏ xó hơn năm nay...
-
Channel: Điện tử dành cho người mới bắt đầu
17-02-2025, 14:40 -
Comment