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
NDH
Mobile: 0982 36 2204
Sky : ngo_duchau
Geo, intruments
Tìm hiểu thêm về hippro
Bài viết mới nhất
Collapse
-
bởi mantruongepuNhờ cả nhà tìm giúp mình thông tin IC này với, thấy ghi 943B W58BAL mà mình tìm mấy ngày nay không được, nó được đóng gói dạng TSSOP 8. Cám ơn cả nhà....
-
Channel: Điện tử dành cho người mới bắt đầu
hôm nay, 14:40 -
-
bởi TherulCảm ơn bạn đã chia sẻ câu chuyện và quá trình phát triển sản phẩm của mình. Trước tiên, thật may mắn khi bạn vượt qua tai nạn và vẫn giữ được niềm đam mê cũng như khả năng sáng tạo trong lĩnh vực kỹ thuật. Việc bạn tiếp tục...
-
Channel: từ PIC tới dsPIC
hôm nay, 07:20 -
-
Trả lời cho Em muốn hỏi mọi người về nguyên lý hoạt động, tần số của mạch công suất trong máy rửa siêu âm ạ.bởi nguyendinhvanBạn nên nghiên cứu cái chấn lưu đèn ống Compact fluorescent lamp hay đèn compact trước đã. Nó rẻ đỡ tốn kém.
Sau khi hiểu rõ rồi thì chuyển sang cái mạch này.
Ở cái chấn lưu, tần số của nó linh tinh lắm, tùy điện áp nguồn, tùy...-
Channel: Hỗ trợ học tập
Hôm qua, 22:44 -
-
bởi yname11 E có 1 laptop bị hỏng màn hình, e tháo ra thì thấy nó có 4 lớp , lớp ngoài cùng là 1 lớp nhựa rất mỏng màu hơi đen ( chắc là 1 loại film dán), tiếp theo là 1 lớp thủy tinh bị vỡ (màu đen) , đến 1 lớp thủy tinh trắng ( lớp này có...
-
Channel: Thiết bị điện tử cá nhân
18-11-2024, 19:12 -
-
Trả lời cho Mua anten ở đâu?bởi tmcodonAnten bạn thu nguồn sóng nào vậy? Nếu xem truyền hình thì giờ k làm đc anten nữa rồi
-
Channel: Ăng ten và truyền sóng
16-11-2024, 15:34 -
-
Trả lời cho Mạch nguồn đôi dùng 7812 và 7912bởi tmcodonThank bác nhá. Tìm mãi mới thấy. Giờ vọc đã xem sao...
-
Channel: Hỗ trợ học tập
16-11-2024, 10:39 -
-
bởi tungdqEm cần tìm sơ đồ mạch một số Main máy tính đời cao như Asrock B560M-HDV, các cao nhân chỉ giúp với. Thank!
-
Channel: Các mạch điện ứng dụng
15-11-2024, 08:27 -
Comment