PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > dsPIC - Bộ điều khiển tín hiệu số 16-bit

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

dsPIC - Bộ điều khiển tín hiệu số 16-bit Theo dự kiến của Microchip, vào khoảng năm 2011 dsPIC sẽ có doanh số lớn hơn PIC

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 01-12-2010, 10:57 AM   #1
chestnut
Đệ tử 2 túi
 
Tham gia ngày: Jul 2008
Bài gửi: 40
:
Question Một lỗi cực kỳ khó hiểu. Giống như ảo thuật vậy.

Mình sử dụng chip dspic33FJ16GS502 sài dao động nội ở maximum là 40Mips.
Kích I/O cho 1 con LED với mức 0 là sáng, 1 là tắt.
Mọi chuyện có vẻ đơn giản nhưng có 1 lỗi như sau: Lúc mình để tay gần board (k đụng chạm về vật lý, gần khoảng 10cm) thì LED sáng, còn lấy tay ra xa một tí thì LED tắt. Board mình đặt trên một miếng cách điện. Sau đó mình mới dùng ossiloscope đo thử thì lúc để tay xa thì kích mức 0 ~ 1V, mức 1 ~ 2V. Lúc tay lại gần thì 0~0V, 1~3.3V.
Mình đã thử với tất cả các I/O khác đều bị. Và mình hàn 1 board khác thì lỗi trên vẫn xảy ra.
Mình nghĩ có thể do lỗi của layout làm nhiễu gì đó chăng?

Bạn nào đã gặp lỗi này thì tư vấn giúp mình nhé?
chestnut vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 01-12-2010, 12:59 PM   #2
ak47
Đệ tử 2 túi
 
Tham gia ngày: Jun 2010
Bài gửi: 29
:
Trích:
Nguyên văn bởi chestnut View Post
Mình sử dụng chip dspic33FJ16GS502 sài dao động nội ở maximum là 40Mips.
Kích I/O cho 1 con LED với mức 0 là sáng, 1 là tắt.
Mọi chuyện có vẻ đơn giản nhưng có 1 lỗi như sau: Lúc mình để tay gần board (k đụng chạm về vật lý, gần khoảng 10cm) thì LED sáng, còn lấy tay ra xa một tí thì LED tắt. Board mình đặt trên một miếng cách điện. Sau đó mình mới dùng ossiloscope đo thử thì lúc để tay xa thì kích mức 0 ~ 1V, mức 1 ~ 2V. Lúc tay lại gần thì 0~0V, 1~3.3V.
Mình đã thử với tất cả các I/O khác đều bị. Và mình hàn 1 board khác thì lỗi trên vẫn xảy ra.
Mình nghĩ có thể do lỗi của layout làm nhiễu gì đó chăng?

Bạn nào đã gặp lỗi này thì tư vấn giúp mình nhé?
hì!
Cái này cũng hay vậy ta! Có lẽ là layout có vấn đề rồi. bạn xem lại phần đất với nguồn xem sao nhé! Nếu mình đoán không nhầm thì chạm vào mạch sẽ sáng led nhất!
ak47 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 01-12-2010, 01:08 PM   #3
chestnut
Đệ tử 2 túi
 
Tham gia ngày: Jul 2008
Bài gửi: 40
:
Trích:
Nguyên văn bởi ak47 View Post
hì!
Cái này cũng hay vậy ta! Có lẽ là layout có vấn đề rồi. bạn xem lại phần đất với nguồn xem sao nhé! Nếu mình đoán không nhầm thì chạm vào mạch sẽ sáng led nhất!
Mình đã kiểm tra phần cứng kỹ lắm rồi, problem này xảy ra trên con dspic chứ k phải về power, power mình sài linear regular + ắc quy nên k vấn đề gì. Giờ có lẽ mình đã biết nguyên nhân gì, nhưng tối về test mới dám chắc. Nguyên nhân trong con dspic.
chestnut vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 01-12-2010, 03:04 PM   #4
ak47
Đệ tử 2 túi
 
Tham gia ngày: Jun 2010
Bài gửi: 29
:
Smile

Trích:
Nguyên văn bởi chestnut View Post
Mình đã kiểm tra phần cứng kỹ lắm rồi, problem này xảy ra trên con dspic chứ k phải về power, power mình sài linear regular + ắc quy nên k vấn đề gì. Giờ có lẽ mình đã biết nguyên nhân gì, nhưng tối về test mới dám chắc. Nguyên nhân trong con dspic.
Mình chưa đọc dòng GS này nên cũng không chắc lắm.Lần trước mình làm dspic30 thì do layout kém! Cái board của microchip cũng gặp phải tình trạng gần giống như thế! Nhưng chỉ nhiễu ở mấy con led thôi.Không hoàn toàn "ảo thuật" như của bạn!
Có gì pót len mình tham khảo nhé!
Chúc thành công
ak47 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 01-12-2010, 03:49 PM   #5
LeDuc
Đệ tử 6 túi
 
LeDuc's Avatar
 
Tham gia ngày: Mar 2007
Bài gửi: 150
:
Trích:
Nguyên văn bởi chestnut View Post
Mình sử dụng chip dspic33FJ16GS502 sài dao động nội ở maximum là 40Mips.
Kích I/O cho 1 con LED với mức 0 là sáng, 1 là tắt.
Mọi chuyện có vẻ đơn giản nhưng có 1 lỗi như sau: Lúc mình để tay gần board (k đụng chạm về vật lý, gần khoảng 10cm) thì LED sáng, còn lấy tay ra xa một tí thì LED tắt. Board mình đặt trên một miếng cách điện. Sau đó mình mới dùng ossiloscope đo thử thì lúc để tay xa thì kích mức 0 ~ 1V, mức 1 ~ 2V. Lúc tay lại gần thì 0~0V, 1~3.3V.
Mình đã thử với tất cả các I/O khác đều bị. Và mình hàn 1 board khác thì lỗi trên vẫn xảy ra.
Mình nghĩ có thể do lỗi của layout làm nhiễu gì đó chăng?

Bạn nào đã gặp lỗi này thì tư vấn giúp mình nhé?
Cái đó có thể là do bạn config thiếu. Nên tắt chức năng analog của các chân rồi hãy setup nó là I/O .
__________________
_________________________________________________
Le Trung Duc
Industry Research & Application Center
NTT Institute of Hi_technolog
ltduc@ntt.edu.vn
leduc_cktd@yahoo.com.vn
http://www.nttc.edu.vn
CNC DIY : http://quangcaosanpham.com/shop/driverservo
0909300332
LeDuc vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 01-12-2010, 05:42 PM   #6
chestnut
Đệ tử 2 túi
 
Tham gia ngày: Jul 2008
Bài gửi: 40
:
Trích:
Nguyên văn bởi LeDuc View Post
Cái đó có thể là do bạn config thiếu. Nên tắt chức năng analog của các chân rồi hãy setup nó là I/O .
Hiện tại mình chưa test dc liền. Nhưng theo mình, chức năng analog chỉ ảnh hưởng ngõ input thôi chứ nhỉ? Mặc dù biết rằng mặc định của mấy thằng này là pin analog. Nhưng đây cũng là một điểm mình đã nghĩ tới. Tối nay test thử và ý kiến rồi mới biết được.
chestnut vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 01-12-2010, 09:21 PM   #7
chestnut
Đệ tử 2 túi
 
Tham gia ngày: Jul 2008
Bài gửi: 40
:
_FOSCSEL(FNOSC_FRC);
// Enable clock switching and configure
_FOSC(FCKSM_CSECMD & OSCIOFNC_OFF);

int main()
{
// Configure PLL prescaler, PLL postscaler, and PLL divisor
PLLFBD = 41; // M = 43
CLKDIVbits.PLLPRE=0; // N1 = 2
CLKDIVbits.PLLPOST=0; // N2 = 2
// Initiate clock switch to internal FRC with PLL (NOSC = 0b001)
__builtin_write_OSCCONH(0x01);
__builtin_write_OSCCONL(0x01);
// Wait for clock switch to occur
while (OSCCONbits.COSC != 0b001);
// Wait for PLL to lock
while(OSCCONbits.LOCK!=1) {};

init_gpio();
//RTDM_Start();
RLED = LED_ON;
GLED = LED_OFF;
while(1)
{
//RTDM_ProcessMsgs();
}

return 0;
}

Code rất đơn giản như vầy, nhưng vẫn bị problem đó.
chestnut vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 02-12-2010, 11:53 AM   #8
LeDuc
Đệ tử 6 túi
 
LeDuc's Avatar
 
Tham gia ngày: Mar 2007
Bài gửi: 150
:
Trích:
Nguyên văn bởi chestnut View Post
init_gpio();
Cái đoạn code đó đâu ???
Bạn ở đâu ? nếu tiện thì có thể đem mạch qua bên mình test thử ? Bên này cũng có nhiều board sử dụng con 33gs va 33mc .
__________________
_________________________________________________
Le Trung Duc
Industry Research & Application Center
NTT Institute of Hi_technolog
ltduc@ntt.edu.vn
leduc_cktd@yahoo.com.vn
http://www.nttc.edu.vn
CNC DIY : http://quangcaosanpham.com/shop/driverservo
0909300332

thay đổi nội dung bởi: LeDuc, 02-12-2010 lúc 12:04 PM.
LeDuc vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 02-12-2010, 04:02 PM   #9
chestnut
Đệ tử 2 túi
 
Tham gia ngày: Jul 2008
Bài gửi: 40
:
Trích:
Nguyên văn bởi LeDuc View Post
Cái đoạn code đó đâu ???
Bạn ở đâu ? nếu tiện thì có thể đem mạch qua bên mình test thử ? Bên này cũng có nhiều board sử dụng con 33gs va 33mc .
Như mình đã nói, chức năng ADC của một pin chỉ anh hưởng tới GPIO ở chế độ input thôi, còn chế độ output thì không vấn đề gì. Mình đã test rồi mà.

Còn vấn đề ở trên bị vì một nguyên nhân là do phần cứng, mình hàn thiếu con trở kéo nguồn của MCLR. Mặc dù hơi tốn time mới phát hiện ra nó, nhưng cũng hay vì biết thêm một lỗi mới, và giúp cộng đồng mai mốt gặp lỗi này mà còn biết đường debug .
chestnut vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 04-12-2010, 10:44 AM   #10
ak47
Đệ tử 2 túi
 
Tham gia ngày: Jun 2010
Bài gửi: 29
:
Trích:
Nguyên văn bởi chestnut View Post
Như mình đã nói, chức năng ADC của một pin chỉ anh hưởng tới GPIO ở chế độ input thôi, còn chế độ output thì không vấn đề gì. Mình đã test rồi mà.

Còn vấn đề ở trên bị vì một nguyên nhân là do phần cứng, mình hàn thiếu con trở kéo nguồn của MCLR. Mặc dù hơi tốn time mới phát hiện ra nó, nhưng cũng hay vì biết thêm một lỗi mới, và giúp cộng đồng mai mốt gặp lỗi này mà còn biết đường debug .
Hay nhỉ !Mình tưởng không kéo trở chân MCRL thì không làm được gì chứ nhỉ.trước mình quên không kéo trở cho con 33MC thì code thế nào cũng chịu ! Khó hiểu thật.
ak47 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


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


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam