View Single Post
Old 21-07-2008, 11:37 PM   #1
nguyen.geo
Đệ tử 2 túi
 
Tham gia ngày: Jan 2007
Bài gửi: 27
:
Bộ nhân PLL cho Dspic30F6014

Phần cứng của em dùng thạch anh 7.357Mhz và nhân tần lên PLL16 lần để đạt tốc độ nhanh nhất của chip. đây là đoạn code của em :
#include <p30f6014.h>
_FOSC(CSW_FSCM_OFF & XT_PLL16);
_FWDT(WDT_OFF);
_FBORPOR(PBOR_OFF & MCLR_EN);
_FGS(CODE_PROT_OFF);
#define xung_out _LATD15
void main()
{ TRISD = 0x0000;
while(1)
{
xung_out = 0; //
xung_out = 0;
xung_out = 0;
xung_out = 1;
}
}

Theo lý thuyết thì xung phát ra sẽ là xung vuông với độ rộng của mỗi sườn là 3 chu kỳ lệnh.
theo cách chọn thạch anh là 7.357 và PLL = 16 => mỗi chu kỳ lệnh sẽ có thời gian là gần 1/30us. từ đó ứng với 3 chu kỳ lệnh của mỗi sườn sẽ có thời gian là: 3 * 1 / 30 = 0.1us.
nhưng em dùng máy hiện sóng đo trực tiếp trên chân phát xung _LATD15 thì tần số phát ra là dạng xung vuông độ rộng sườn dương bằng sườn âm nhưng thời gian mỗi sườn không phải là 0.1us mà là 0.3us ( tức là tần số sau nhân tần là 40Mhz ) trong khi đó xung trên chân thạch anh vẫn ổn định là 7.357Mhz. em không hiểu tại sao lại thế ? mong Anh Nam và các cao thủ Pic giúp đỡ. Em cảm ơn nhiều

thay đổi nội dung bởi: nguyen.geo, 22-07-2008 lúc 12:44 AM.
nguyen.geo vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn