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)
-   -   dsPIC-Các vấn đề về phần cứng (http://www.picvietnam.com/forum/showthread.php?t=401)

namqn 23-04-2006 06:53 PM

dsPIC-Các vấn đề về phần cứng
 
Bên cạnh việc mở luồng cho các thắc mắc về ASM30, và C30, tôi mở luồng này để các bạn có thể trao đổi các vấn đề về phần cứng của dsPIC. Tôi dự đoán là sẽ nảy sinh nhiều vấn đề về phần cứng, nhưng trước mắt chúng ta chỉ dùng luồng này để trao đổi, khi nào các vấn đề cho một module phần cứng nào đó phát triển khá nhiều thì tôi sẽ tách luồng cho module đó.
Nào các bạn, cùng nhau mổ xẻ dsPIC thôi!

Thân,

Grp 24-04-2006 11:13 AM

Em có ý kiến đầu tiên, em dùng ADC của 4013, các thông số lối vào cho AN0 đảm bảo: điện trở Rs<<2,5kom (đệm bằng opamp), tốc độ lấy mẫu nhanh chậm test đủ cả, vậy mà khi hiển thị ra số vẫn nhảy tùm lum trong khi đo tín hiệu lối vào thì vẫn đứng im phăng phắc. Copy chương trình mẫu và sửa lại cho phù hợp với mach nó vẫn thế, hổng hiểu tại sao. Em viết bằng C30, liệu có phải do phần cứng không bác?
Cấu trúc ADC cho PIC của Microchip có phải không được xịn cho lắm?

minhpic 24-04-2006 04:17 PM

Bác namqn có thể post một project nào đó về DSPIC không, chẳng hạn về nội dung điều khiển động cơ đi.

namqn 24-04-2006 07:27 PM

Trích:

Nguyên văn bởi Grp
Em có ý kiến đầu tiên, em dùng ADC của 4013, các thông số lối vào cho AN0 đảm bảo: điện trở Rs<<2,5kom (đệm bằng opamp), tốc độ lấy mẫu nhanh chậm test đủ cả, vậy mà khi hiển thị ra số vẫn nhảy tùm lum trong khi đo tín hiệu lối vào thì vẫn đứng im phăng phắc. Copy chương trình mẫu và sửa lại cho phù hợp với mach nó vẫn thế, hổng hiểu tại sao. Em viết bằng C30, liệu có phải do phần cứng không bác?
Cấu trúc ADC cho PIC của Microchip có phải không được xịn cho lắm?

Tôi cho là module ADC của 4013 không có vấn đề, vì nhiều người đã sử dụng loại này nhưng không có thông tin về lỗi của module này trong các bản Errata dành cho chip này. Bạn có được tín hiệu lối vào tốt, nhưng kết quả hiển thị sai, điều đó không có nghĩa là ADC bị lỗi, vẫn có khả năng chúng ta hiển thị sai.

Bạn có thể post phần code mà bạn cho là gây lỗi lên không?

C30 vẫn đang trong giai đoạn hoàn thiện, nó được port từ gcc sang cho dsPIC, do đó chúng ta vẫn phải để ngỏ khả năng C30 có vấn đề.

Theo tôi, kiến trúc ADC của Microchip là khá tốt, được phát triển và kiểm nghiệm từ dòng PIC cơ bản cho đến dsPIC. Chặng đường này tôi cho là đủ dài để có thể tin tưởng vào kiến trúc đã được thiết kế.

Thân,

BinhAnh 24-04-2006 08:53 PM

Việc dùng ADC tới 12 bit thì cần một số chú ý sau, nếu không các digit cuối cùng sẽ bị nhảy.
-Thiết kế Vref ổn định. Nên chọn các loại Vref lownoise và độ trôi nhiệt thấp.
-Cần cách đi dây của chân AGND và AVdd đúng. Nên tách GND và AGND riêng và nối về một điểm.
-Các mạch yêu cầu độ ổn định cao, người ta phải dùng thêm kỹ thuật tự chuyển hóa bằng các điểm chuyển mạch ổn định, tính lại các thông số như: độ trôi điểm không, chuẩn hóa hệ số góc qua các điểm chuyển mạch.
-Ngoài ra, bạn có thể dùng một số giải thuật loại nhiễu, nó càng hiệu quả nếu như biết trước tần số nhiễu(ví dụ nhiễu 50hz), ngoài ra bạn có thể tận dùng tính năng dsp tạo các mạch lọc số. Có khá nhiều ví dụ dễ hiểu về mạch lọc trong các appnote của microchip
Riêng cá nhân tôi thì dùng ADC của microchip rất ổn định

Grp 25-04-2006 03:57 PM

Híc híc, giờ tôi mới phát hiện ra:
- Đo tín hiệu bằng digital multimeter, tốc độ im phắc chẳng qua là tốc độ biến đổi của nó chậm thời gian tích phân lớn => chẳng thấy gì là phải.
- Khi dùng oscilloscope, thấy ngay nhiễu đến chục mV, dùng bộ chuyển đổi ADC12bit tốc độ nhanh khác cũng y chang.
Tạm kết luận: Mạch chẳng có gì sai => bài học là chủ quan với nhiễu.

Không biết kết luận như vậy có vội vàng quá không các bác?

namqn 25-04-2006 07:13 PM

Trích:

Nguyên văn bởi minhpic
Bác namqn có thể post một project nào đó về DSPIC không, chẳng hạn về nội dung điều khiển động cơ đi.

Nếu bạn muốn tìm hiểu dsPIC thông qua một project nào đó thì bạn có thể dùng hơn 10 ví dụ đã được Microchip đưa lên. Bản thân tôi chỉ mới bắt đầu dùng dsPIC cho một project thực sự, nhưng nó là đề tài cho luận án của tôi, nên chưa thể công bố được. Tôi nghĩ chúng ta nên tìm hiểu các module thông qua các ví dụ đơn giản, để có được các viên gạch, sau đó bạn có thể xây ngôi nhà (project) của riêng bạn bằng những viên gạch đó.
dsPIC còn tương đối mới (chưa quá 2 năm tuổi), nên vẫn chưa có nhiều những project mẫu cho chúng ta tham khảo. Mặt khác, vì phải chạy đua với thời gian, nên các thiết kế phần cứng của dsPIC cũng chưa hoàn chỉnh. Chúng ta chọn cách tiếp cận từng bước thì có lẽ thích hợp hơn.

Thân,

pham_v_quang3i 16-08-2006 09:37 AM

Anh Nam cho em hỏi !
- Em dùng 5013 có một số vấn đề xảy ra như sau :
+ Nếu em dùng mạch RC của PIC thì ko vấn đề.
+ Thạch anh ngoài em dùng 8Mz,Nếu em chọn config bit như sau :
Oscillator source : Primary
Primary oscillator mode : FRC/w PLL 8 x ( hoặc 4 x) chạy ko vấn đề
Nhưng nếu em thay đổi :
Primary oscillator mode : FRC/w PLL 16 x thì ko chạy.
Còn nếu :
Primary oscillator mode : XT ( XT PLL x 4,8 hoặc 16 cũng ko chạy )
Thạch anh em đặt ko xa mạch, Em nghĩ nếu config bit hay bằng lệnh thì cũng như nhau.

pham_v_quang3i 16-08-2006 09:48 AM

Trang 7-9 của " dsPIC30F Family Reference Manual " có bảng mô tả các phương thức hoạt động của " Primary Oscillator " các thành phần như sau :
- XT là sử dụng dao động của đúng thạch anh
- EC là sử dụng một nguồn clock ngoài
- .............
Em chưa hiểu rõ lắm anh có thể giải kĩ cụ thể cho em từng phần một được không .

pham_v_quang3i 16-08-2006 09:57 AM

Với nhận tiện đây mong bác nói một cách cụ thể về nguồn dao động của dsPIC,các lỗi hay gặp , độ ổn định của mạch dao động nội tại , nếu dùng thạch anh ngoài thì trị số thạch anh như thế nào là hợp lý.
cám ơn bác !

namqn: Tôi chuyển các post sang luồng này cho hợp vị trí hơn

namqn 16-08-2006 07:36 PM

Trích:

Nguyên văn bởi pham_v_quang3i
Anh Nam cho em hỏi !
- Em dùng 5013 có một số vấn đề xảy ra như sau :
+ Nếu em dùng mạch RC của PIC thì ko vấn đề.
+ Thạch anh ngoài em dùng 8Mz,Nếu em chọn config bit như sau :
Oscillator source : Primary
Primary oscillator mode : FRC/w PLL 8 x ( hoặc 4 x) chạy ko vấn đề
Nhưng nếu em thay đổi :
Primary oscillator mode : FRC/w PLL 16 x thì ko chạy.
Còn nếu :
Primary oscillator mode : XT ( XT PLL x 4,8 hoặc 16 cũng ko chạy )
Thạch anh em đặt ko xa mạch, Em nghĩ nếu config bit hay bằng lệnh thì cũng như nhau.

Có thể trả lời ngay về phần FRC/w PLL 16x cho bạn:

Nếu muốn dùng PLL 16x thì bạn phải chỉnh lại tần số của FRC cho <= 7.5 MHz (nếu bạn để nó bằng danh định là 8 MHz thì Microchip đã tuyên bố là không đảm bảo sẽ chạy). Bạn hãy đọc cái Note tại trang 139 của DS70116E (datasheet của dsPIC30F5011/5013)

Về việc dùng thạch anh ngoài với 5013, một bạn khác cũng đang gặp vấn đề giống như bạn. Tôi vừa nhớ ra một điều, nhưng phải kiểm tra lại rồi mới khẳng định được.

Thân,

namqn 16-08-2006 08:20 PM

Trích:

Nguyên văn bởi pham_v_quang3i
Trang 7-9 của " dsPIC30F Family Reference Manual " có bảng mô tả các phương thức hoạt động của " Primary Oscillator " các thành phần như sau :
- XT là sử dụng dao động của đúng thạch anh
- EC là sử dụng một nguồn clock ngoài
- .............
Em chưa hiểu rõ lắm anh có thể giải kĩ cụ thể cho em từng phần một được không .

Tôi cho là bạn muốn nói đến bảng 7-3 của dsPIC FRM, tôi trích phần Primary và giải thích như sau:

Code:

Mode                OSC2
EC                CLKO                Chân OSC2 có tín hiệu clock out
ECIO                I/O                Chân OSC2 là I/O
EC w/PLL 4x        I/O                Chân OSC2 là I/O
EC w/PLL 8x        I/O                Chân OSC2 là I/O
EC w/PLL 16x        I/O (Note 4)        Chân OSC2 là I/O, chế độ mặc định
ERC                CLKO                Chân OSC2 có tín hiệu clock out
ERCIO                I/O                Chân OSC2 là I/O
XT                                Thạch anh nối giữa OSC1 và OSC2
XT w/PLL 4x                        Thạch anh nối giữa OSC1 và OSC2
XT w/PLL 8x                        Thạch anh nối giữa OSC1 và OSC2
XT w/PLL 16x                        Thạch anh nối giữa OSC1 và OSC2
XTL                                Thạch anh nối giữa OSC1 và OSC2
HS                                Thạch anh nối giữa OSC1 và OSC2
FRC w/PLL 4x        I/O                Chân OSC2 là I/O
FRC w/PLL 8x        I/O                Chân OSC2 là I/O
FRC w/PLL 16x        I/O                Chân OSC2 là I/O

EC: Dùng clock ngoài, đưa vào chân OSC1
ERC: Dùng mạch RC ngoài, điểm giữa R và C nối vào OSC1
XT: Thạch anh (mạch dao động thạch anh) ngoài, 4 - 10 MHz
XTL: Thạch anh (mạch dao động thạch anh) ngoài công suất thấp, 200 kHz - 4 MHz
HS: Thạch anh (mạch dao động thạch anh) ngoài tốc độ cao, 10 - 25 MHz
FRC: Mạch dao động nội tốc độ cao (danh định là 7.37 hay 8 MHz)

Thân,

pham_v_quang3i 17-08-2006 06:22 PM

Bác xem lại chỗ này giúp em !
Trang 7-5 bảng 7-1 có mô tả . Nguồn giao động của dsPIC có 3 loại Primary, Secondary, internal. Các nguồn này được cấu hình bằng các bit trong FOS và FPR.
Trong config bit của MPLAB có các mục :
- Oscillator source
- Primary oscillator mode : Cái này đề thế này có nghĩa là chỉ sử dụng cho Primary oscillator. Trong mục này em thấy có cả FRC nên em mới tưởng là khi chọn dao động là thạch anh ngoài , chẳng nhẽ lại còn chế độ liên quan gì đến FRC. Nhưng xem lại bảng 7-2 thì trong chế độ Primary oscillator ko có FRC. Vậy do em ko hiểu hay do mấy thằng Microchip đặt hãng nào đó viết phần mềm , mấy thằng viết vừa nhìn gái vừa viết. Hi

namqn 17-08-2006 06:43 PM

Trích:

Nguyên văn bởi pham_v_quang3i
Bác xem lại chỗ này giúp em !
Trang 7-5 bảng 7-1 có mô tả . Nguồn giao động của dsPIC có 3 loại Primary, Secondary, internal. Các nguồn này được cấu hình bằng các bit trong FOS và FPR.
Trong config bit của MPLAB có các mục :
- Oscillator source
- Primary oscillator mode : Cái này đề thế này có nghĩa là chỉ sử dụng cho Primary oscillator. Trong mục này em thấy có cả FRC nên em mới tưởng là khi chọn dao động là thạch anh ngoài , chẳng nhẽ lại còn chế độ liên quan gì đến FRC. Nhưng xem lại bảng 7-2 thì trong chế độ Primary oscillator ko có FRC. Vậy do em ko hiểu hay do mấy thằng Microchip đặt hãng nào đó viết phần mềm , mấy thằng viết vừa nhìn gái vừa viết. Hi

Phần bạn đã nêu thuộc Version 1 của hệ dao động, chỉ được dùng cho các chip dsPIC30F601x (bây giờ đã được thay thế bằng các chip dsPIC30F601xA, dùng Version 3 của hệ dao động).

Còn bảng 7-3 mà tôi đã trích là Version 2 của hệ dao động, dùng cho một số chip mà trong đó có chip 5013 bạn đang dùng. Version 2 có một điểm bổ sung cho Version 1 là đầu ra của FRC có thể nối vào PLL. Do đầu ra của PLL trong Version 1 chỉ nối vào các nguồn clock từ Primary oscillator, nên người ta thường để các option có dùng PLL thuộc vào Primary oscillator source.

Nếu FRC không được nối vào PLL thì nó vẫn chỉ là internal oscillator. Chỗ này hơi rắc rối một chút, nhưng không có vấn đề gì lớn nếu bạn chỉ cần biết cách cấu hình để cho chip chạy đúng tốt.

Xem bảng 7-4 thì bạn thấy là người ta đã đặt tên chính xác hơn cho các nguồn clock, trong Version 3 của hệ dao động.

Thân,

frank 23-08-2006 05:14 PM

Thắc mắc về dao động trong dsPIC
 
Mình cũng đang vấn đề về việc configbit của dsPIC đây, mình muốn nhờ các bác giải thích dùm:

Mình đang sử dụng dsPIC6010, trong chương trình mình config như thế này:

_FOSC(CSW_FSCM_ON & EC) hoặc _FOSC(CSW_FSCM_ON & EC_PLL4)
_FWDT( WDT_OFF );
_FBORPOR( PBOR_OFF & BORV_45 & MCLR_EN );
_FGS( CODE_PROT_OFF );

Với config như vậy thì PIC vẫn chạy đúng theo chương trình đã viết, mình tưởng là PIC đang sử dụng thạch anh ngoại, nhưng có một lần mình lấy thạch anh ra thì thấy PIC cũng vẫn chạy đúng, hóa ra PIC đang sử dụng nguồn dao động nội, mình cũng đã thử config lại nhiều cách như sau:

_FOSC(CSW_FSCM_ON & XT);
hoặc
_FOSC(CSW_FSCM_ON & HS);
thì kết quả cũng vẫn giống như vậy

và đến khi config như sau:
_FOSC(CSW_FSCM_OFF & EC);

thì PIC hết hoạt động luôn

Nhưng theo những gì viết trong file header của 6010 thi _FOSC(CSW_FSCM_ON & EC) là cho phép external clock, mình dùng thạch anh 4 chân(20MHz), nối vào chân OSC1 của PIC
mong các bác gỡ rối dùm,


Múi giờ GMT. Hiện tại là 06:15 AM.

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