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 23-04-2006, 06:47 PM   #1
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Các thắc mắc về ASM30, C30

Hiện nay đã có một số bạn quan tâm đến dsPIC, sử dụng ASM30 hay C30 để viết chương trình, và có những thắc mắc, cũng như trở ngại trong khi viết chương trình cho dsPIC. Tôi mở luồng này để các bạn có thể post những câu hỏi, những vấn đề liên quan đến việc viết chương trình cho dsPIC.

Nào các bạn, hãy cùng nhau chinh phục dsPIC đi!

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 29-04-2006, 11:36 PM   #2
ThanhPhuc
Đệ tử 2 túi
 
Tham gia ngày: Jul 2005
Bài gửi: 35
:
Khi xử dụng ADC của dsPIC và UART có ảnh hưởng gì không ?
Khi chuyển ADC on bằng lệnh (ADCON1bits.ADON =1 thì không thể set ADON =1 được .Đoạn chương trình như sau :
Code:
 ADPCFG =0xFFFB;
 ADCON1=0x0000;
 ADCHS = 0x0002;
 ADCSSL =0 ;
 ADCON3 =0x0002;
 ADCON2=0;
 a=100;
 ADCON1bits.ADON =1;
 if(!ADCON1bits.ADON)
  printf("%d", a);
..
Đoạn trên là chương trình mẫu của DS70064D,hai lệnh cuối dùng để kiểm tra ADON.
Khi kiểm tra bằng phần mềm khi vào đoạn chương trình trên lệnh printf thực hiện nên trên PC nhận giá trị 100.Các anh xem giúp đoạn trên có lỗi gì không?

thay đổi nội dung bởi: namqn, 01-05-2006 lúc 07:05 PM.
ThanhPhuc vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 30-04-2006, 06:52 PM   #3
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Bạn mô tả thêm phần cứng: chip được sử dụng, các từ cấu hình liên quan đang dùng, các chân I/O đang được sử dụng.

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 01-05-2006, 10:20 AM   #4
ThanhPhuc
Đệ tử 2 túi
 
Tham gia ngày: Jul 2005
Bài gửi: 35
:
Em dùng bootloader cấu himhf như sau :
Code:
#include <p30f4012.h>
#include "stdio.h"
#include "uart.h"
_FOSC(CSW_FSCM_OFF & XT_PLL4);  //Set up for crystal multiplied by 4x PLL
_FWDT(WDT_OFF);                 //Turn off the Watch-Dog Timer.
_FBORPOR(MCLR_EN & PWRT_OFF);   //Enable MCLR reset pin and turn off the power-up timers.
_FGS(CODE_PROT_OFF);
Phần khai báo UART như hướng dẫn của anh.Em sử dụng hàm
void OpenUART1(unsigned int config1,unsigned int config2, unsigned int ubrg) .Phần giao tiếp với PC hoạt động tốt

thay đổi nội dung bởi: namqn, 01-05-2006 lúc 06:50 PM.
ThanhPhuc vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 01-05-2006, 08:06 PM   #5
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Bạn sử dụng mã nguồn mẫu của Microchip, phần UART chạy tốt, hai lệnh bạn thêm vào để kiểm tra bit ADON không có vấn đề. Vậy các phần bạn đã post ở đây không có vấn đề gì. Tôi đã thử kiểm tra phần mã của hai lệnh bạn thêm vào do C30 dịch ra, vẫn không có vấn đề gì. Bạn thử kiểm tra xem module ADC của bạn có làm việc hay không, bằng cách dùng một tín hiệu chuẩn nào đó (pin 1.5V chẳng hạn) để xem ADC có đọc về đúng và ổn định hay không. Tôi thường không kiểm tra bit ADON đó, vì khi bật module thì các kết quả đọc được từ ADC về chứng tỏ nó đang hoạt động tốt.

Tôi sẽ thử dùng kết hợp ADC và UART, sẽ thông báo kết quả cho bạn sau.

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263

thay đổi nội dung bởi: namqn, 02-05-2006 lúc 06:53 PM.
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 02-05-2006, 06:54 PM   #6
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Tôi đã thử dùng ADC cùng với UART, chip làm việc bình thường. Các giá trị ADC đọc được đã được truyền lên PC mà không gặp vấn đề gì. Sử dụng 2 lệnh tương tự như của bạn để kiểm tra bit ADON cho thấy bit đã được set thành công, không có thông báo được xuất lên PC thể hiện bit ADON không thể set được.

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 06-05-2006, 10:52 AM   #7
ThanhPhuc
Đệ tử 2 túi
 
Tham gia ngày: Jul 2005
Bài gửi: 35
:
Em đã thử module ADC,do Module ADC chưa làm việc nên mới kiểm tra các thanh ghi liên quan đến ADC.Em đang tìm các tài liệu liên quan đến ADC để kiểm tra xem còn cần phải khai báo thêm lệnh gì nửa,nếu chương trình đúng thì module ADC bị hỏng.
ThanhPhuc vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 06-05-2006, 08:59 PM   #8
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi ThanhPhuc
Em đã thử module ADC,do Module ADC chưa làm việc nên mới kiểm tra các thanh ghi liên quan đến ADC.Em đang tìm các tài liệu liên quan đến ADC để kiểm tra xem còn cần phải khai báo thêm lệnh gì nửa,nếu chương trình đúng thì module ADC bị hỏng.
Tôi dùng đoạn chương trình mẫu của Microchip, và đoạn chương trình tôi tự viết, không có điểm gì khác biệt. Những thanh ghi cần thiết đã được thiết lập trong chương trình mẫu. Bạn nên kiểm tra lại phần cứng, đo thử xem điện áp tại AVDD so với VDD có chênh lệch quá không, và tương tự đối với AVSS và VSS.

Đoạn chương trình liên quan đến thiết lập chế độ cho ADC của tôi:
Code:
	ADPCFG = 0xFFFE;
	ADCON1 = 0x0000;
	ADCON2 = 0x0000;
	ADCHS = 0x0000;
	ADCSSL = 0x0000;
	ADCON3 = 0x0002;
	ADCON1bits.ADON = 1;
	if (!ADCON1bits.ADON) printf("ADON is off");
Trong vòng lặp:
Code:
	while (1) {
		if (k != 0) {
			ADCON1bits.SAMP = 1;
			asm("repeat #200");
			asm("nop");
			ADCON1bits.SAMP = 0;
			while (!ADCON1bits.DONE);
			ADCValue = ADCBUF0;
			printf("\nADC Value is: %d", ADCValue);
			k = 0;
		};
Tôi dùng một ngắt timer để đặt k = 1 sau mỗi 0,5 giây.

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 09-05-2006, 11:17 PM   #9
ThanhPhuc
Đệ tử 2 túi
 
Tham gia ngày: Jul 2005
Bài gửi: 35
:
Chương trình của em cũng tương tự như trên,riêng phần cứng em nối AVDD với VDD,AVSS nối với VSS.Các chân nầy nối với nhau có ảnh hưởng gì không?
Em đã thử với dspic30F4011 cũng gặp lỗi như trên.
ThanhPhuc vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 10-05-2006, 12:10 AM   #10
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Tôi vẫn nối AVDD vào VDD, và AVSS vào VSS trong nhiều mạch của tôi.

Tuy nhiên, một lần tôi phát hiện ra module ADC trong một mạch dsPIC của tôi không làm việc, dò phần mềm không phát hiện lỗi, cuối cùng phát hiện ra mạch in khi chạy bị đứt một phần ground plane, do đó cái ground plane của ADC và ground plane của board không nối với nhau. Sửa xong phần đó thì mạch chạy tốt. Vì thế tôi mới khuyên bạn nên đo thử trên mạch thật, biết đâu vẽ mạch thì đúng, nhưng làm mạch thì lại bị lỗi đâu đó.

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 10-05-2006, 10:51 PM   #11
ThanhPhuc
Đệ tử 2 túi
 
Tham gia ngày: Jul 2005
Bài gửi: 35
:
EM đã tìm được lỗi rồi, do chương trình bootloader disable adc module.Em bỏ lệnh nầy mạch và chương trình hoạt động tốt.
Cám ơn anh nhiều !
ThanhPhuc vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 10-05-2006, 11:50 PM   #12
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi ThanhPhuc
EM đã tìm được lỗi rồi, do chương trình bootloader disable adc module.Em bỏ lệnh nầy mạch và chương trình hoạt động tốt.
Cám ơn anh nhiều !
Anh không nghĩ là em lại có lệnh disable module ADC trong bootloader đối với con 4012. Em chỉ cần lệnh đó đối với 2011 và 3012 (mấy con chỉ có 18 chân).

Dù sao cũng là tin tốt, em đã tìm ra lỗi và xác nhận rằng module ADC có thể làm việc bình thường với UART.

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 14-05-2006, 05:21 PM   #13
escapevn
Đệ tử 1 túi
 
Tham gia ngày: Aug 2005
Bài gửi: 14
:
Cách sử dụng các hàm dsp của C30?

Bác Namqn à, em hiện đang dùng con dsPIC30F3012 nhưng đến phần sử dụng các hàm dsp thì khi em khai báo ma trận và sử dụng các hàm như Matrixadd và Matrixinvert thì lại bị báo lỗi. Mong bác chỉ cho em cách sử dụng và khai báo các hàm này. Cảm ơn bác nhiều lắm, em đang rất cần cái này.
escapevn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 14-05-2006, 07:09 PM   #14
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi escapevn
Bác Namqn à, em hiện đang dùng con dsPIC30F3012 nhưng đến phần sử dụng các hàm dsp thì khi em khai báo ma trận và sử dụng các hàm như Matrixadd và Matrixinvert thì lại bị báo lỗi. Mong bác chỉ cho em cách sử dụng và khai báo các hàm này. Cảm ơn bác nhiều lắm, em đang rất cần cái này.
Bạn có thể cho biết thêm thông tin về: phiên bản MPLAB, phiên bản C30 đang dùng hay không?. Đồng thời, bạn có thể post phần khai báo, phần code liên quan đến các hàm trong thư viện DSP được dùng, và phần thông báo lỗi hay không?

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 15-05-2006, 12:03 AM   #15
escapevn
Đệ tử 1 túi
 
Tham gia ngày: Aug 2005
Bài gửi: 14
:
Hic, tại lúc trước em quên ko add file libdsp-coff.a nên sử dụng hàm dsp mới không được anh à. Bây giờ thì OK rồi.
Bác giải thích cho em về các thanh ghi CORCON và các thanh Accumulator, vai trò của nó trong các hàm DSP đc không? Các hàm dsp tác động tới số kiểu fractional và float thì khác nhau thế nào?
Còn các thanh ghi như XMODSRT, XMODEND, YMODSRT, YMODEND có vai trò thế nào trong dsp? em thấy trong ví dụ về FIR của microchip thì họ có modified mấy thanh ghi này.
Mong bác giúp đỡ.

thay đổi nội dung bởi: escapevn, 15-05-2006 lúc 01:18 AM.
escapevn 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

Similar Threads
Ðề tài Người gửi Chuyên mục Trả lời Bài mới
dsPIC Tutorial 1-Tạo và biên dịch một project (ASM30) namqn dsPIC - Bộ điều khiển tín hiệu số 16-bit 16 22-08-2012 12:35 AM


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


Đượ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