PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   dsPIC - Bộ điều khiển tín hiệu số 16-bit (http://www.picvietnam.com/forum/forumdisplay.php?f=29)
-   -   Cấu hình cho DsPic30F4011 dùng thạch anh ngoài 8M (http://www.picvietnam.com/forum/showthread.php?t=5062)

biendt 12-10-2009 04:52 PM

Cấu hình cho DsPic30F4011 dùng thạch anh ngoài 8M
 
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

Trích:

Nguyên văn bởi biendt (Post 30511)
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

Trích:

Nguyên văn bởi tungnh (Post 30514)
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

Trích:

Nguyên văn bởi biendt (Post 30525)
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,


Múi giờ GMT. Hiện tại là 11:48 PM.

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam