PDA

View Full Version : Cấu hình cho DsPic30F4011 dùng thạch anh ngoài 8M


biendt
12-10-2009, 04:52 PM
Bây giờ muốn cấu hình cho dspic dùng thạch anh dao động ngoài em cấu hình như thế này có đùng ko :
_FOSC(CSW_FSCM_OFF & FRC_PLL4);
_FWDT(WDT_OFF);
_FBORPOR(PBOR_OFF & MCLR_EN & PWMxL_ACT_HI & PWMxH_ACT_HI);
_FGS(CODE_PROT_OFF);

Mong các pác chỉ cho

long4
12-10-2009, 10:29 PM
bạn muốn cấu hình để dsPIC chạy ở bao nhiêu MIPS? Tốt nhất là bạn download các đoạn code của anh Nam viết để xem mẫu cấu hình rồi làm theo.
Cheers

biendt
23-10-2009, 06:44 PM
Như đoạn code trên thì tần số sao động của nó là 32Mhz đúng ko ạ vì là PLL4 (4*8). Nhưng sao khi tính timer lại chỉ tính tần số dao động có 8Mhz

linhtdh1k49
23-10-2009, 09:07 PM
cách cấu hình anh Nam đã ghi rất rõ. Ở đây, theo tôi đã từng làm, thì bạn hơi nhầm lẫn giữa Mhz và MIPS : riêng dòng dsPIC thực hiện 1 lệnh trong 4 chu kỳ máy. Do tốc độ bạn đặt là x 4 --> tốc độ của chip là 32 triệu chu kỳ máy trong 1s (32Mhz) --> qui đổi ra ta có tốc độ của chip tính theo MIPS là 8MIPS (8 triệu lệnh trong 1s).

Nói đơn giản : tốc độ mà chúng ta thường hay dùng là MIPS. do vậy, với dsPIC : speed = tần số bộ dao động x PLL (nếu có) / 4 (1 lệnh thực hiện trong 4 chu kỳ máy)

Có thể tham khảo rõ hơn trong các TUT của anh Nam.

biendt
23-10-2009, 11:40 PM
Tôi cũng mới tìm hiểu con này! Nhưng tôi vẫn thấy lơ mơ cái này.
Ví dụ như thế này : Tôi dùng dao động nội là 8Mhz. Khi cấu hình tôi cấu hình cho nó là PLL8 (64Mhz) . Khi ó MIPS vẫ là 8MIPS đúng ko?
Khi tính timer thì cái này được tính như thế nào hay là vẫn tính theo : PRx = (Tdelay)x(Fcy)/(Prescaler) với Fcy = 8Mhz hay là 64Mhz

PIC_Phan
23-10-2009, 11:45 PM
ủa, tui nhớ dsPIC có tần số chia 2 mà. Ví dụ dùng XTAL 4MHz thì số MIPS của dsPIC là 2 MIPS chứ hả ?!

tungnh
24-10-2009, 12:00 AM
Tôi cũng mới tìm hiểu con này! Nhưng tôi vẫn thấy lơ mơ cái này.
Ví dụ như thế này : Tôi dùng dao động nội là 8Mhz. Khi cấu hình tôi cấu hình cho nó là PLL8 (64Mhz) . Khi ó MIPS vẫ là 8MIPS đúng ko?
Khi tính timer thì cái này được tính như thế nào hay là vẫn tính theo : PRx = (Tdelay)x(Fcy)/(Prescaler) với Fcy = 8Mhz hay là 64Mhz
tấc độ của bạn là 16MIPS bạn ạ. Bạn hiểu thế này nhé. mỗi một lệnh sẽ mất 4 chu kỳ máy, do đó khi bạn cấu hình PLL8 thì tấc độ là 8x8/4=16MIPS
Đối với dòng dsPic30f thì mỗi một lệnh mất 4 chu kỳ máy còn với dòng dspic33f thì chỉ mất 2 chu kỳ máy thôi.

biendt
24-10-2009, 05:24 PM
tấc độ của bạn là 16MIPS bạn ạ. Bạn hiểu thế này nhé. mỗi một lệnh sẽ mất 4 chu kỳ máy, do đó khi bạn cấu hình PLL8 thì tấc độ là 8x8/4=16MIPS
Đối với dòng dsPic30f thì mỗi một lệnh mất 4 chu kỳ máy còn với dòng dspic33f thì chỉ mất 2 chu kỳ máy thôi.
Tôi muốn hỏi là khí tính timer thì mình tính thế nào trong trường hợp này? Hay là tính với 64Mhz. Hay chỉ tính Fcy = 8Mhz.

namqn
24-10-2009, 11:00 PM
Tôi muốn hỏi là khí tính timer thì mình tính thế nào trong trường hợp này? Hay là tính với 64Mhz. Hay chỉ tính Fcy = 8Mhz.
Bạn tungnh đã tính ra cho bạn Fcy = 16 MHz (tức là 16 triệu lệnh mỗi giây, hay 16 MIPS).

Thân,