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

 
 
Ðiều Chỉnh Xếp Bài
Prev Previous Post   Next Post Next
Old 14-09-2009, 06:23 PM   #12
robotden
Đệ tử 5 túi
 
robotden's Avatar
 
Tham gia ngày: May 2007
Bài gửi: 102
:
em cấu hình như sau:
1/ giao tiếp spi//////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/////////////////////////////////////////////////////////////
em làm giao tiếp spi giữa con master là dspic30f4011, slave là dspic33fj256gp710. chỉ đơn giản là con master truyền liên tục các số từ 0-255, và slave sẽ nhận tín hiệu dạng word và hiển thị lên LCD, em cấu hình sao mà mãi mạch vẫn chưa chạy được anh à.
con master có lẽ là được rồi, còn con slave vẫn chưa nhận được . em cấu hình như sau:
em có dùng chân B0 của master để điều khiển chân SS của con slave
- con master: //////////////////////////////////////////////////////////////////
Code:
void khoi_tao_SPI1_master(void)//cke=1 ckp=0
{
	//port master
	_TRISF3=0;//sdo1
	_TRISF2=1;//sdi1
	_TRISF6=0;//sck1
	_TRISB0=0;//chon vao ss
	#define SS	_LATB0

	//SPI1STAT
	SPI1STATbits.SPIEN=0;//tam thoi khoa
	SPI1STATbits.SPISIDL=0;//tiep tuc khi IDLE
	SPI1STATbits.SPIROV=0;//ko overflow
	//SPI1STATbits.SPITBF=0;//su day bo truyen, readonly
	//SPI1STATbits.SPIRBF=1;//1 la day,readonly
	
	//SPI1CON
	SPI1CONbits.FRMEN=0;// ko dung Frame, 
	SPI1CONbits.SPIFSD=0;//xung output cho master
	SPI1CONbits.DISSDO=0;//sdo la dung cho spi
	SPI1CONbits.MODE16=1;//dung data16bit
	SPI1CONbits.SMP=0;//middle sample
	SPI1CONbits.CKE=0;//clock tu active-idle-
	SPI1CONbits.SSEN=0;//SS dung cho slave
	SPI1CONbits.CKP=0;//idle=0,active=1
	SPI1CONbits.MSTEN=1;//master mode
	SPI1CONbits.SPRE=0;//master mode only
	SPI1CONbits.PPRE=1;//master mode only//120khz

	
	//start
	SPI1STATbits.SPIEN=1;//khoi dong SPI
}


void ghi_spi1(unsigned int data)//nho pai co ss
{
	int temp;
	SS=0;
	temp=SPI1BUF;
	if(SPI1CONbits.MODE16)
	{
		SPI1BUF=data;LATE=SPI1BUF;
	}
	else
	{
		SPI1BUF=data&0xFF;LATE=SPI1BUF;
	}
	while(SPI1STATbits.SPITBF);//cho den khi gui xong
	
	SS=1;
}
---con slave:///////////////////////////////////////////////////////////////////////////////////////////////////
Code:
void khoi_tao_SPI1_slave(void)//cke ckp=0
{
	//port slave
	_TRISF8=0;//sdo1
	_TRISF7=1;//sdi1
	_TRISF6=1;//sck1
	_TRISB2=1;//ss1

	_SPI1IF=0;
	_SPI1IE=1;
	_SPI1IP=7;
	//SPI1STAT
	SPI1STATbits.SPIEN=0;//tam thoi khoa
	SPI1STATbits.SPISIDL=0;//tiep tuc khi IDLE
	SPI1STATbits.SPIROV=0;//ko overflow
	//SPI1STATbits.SPITBF=0;//su day bo truyen, readonly
	//SPI1STATbits.SPIRBF=1;//1 la day,readonly
	
	//SPI1CON1
	//SPI1CON1bits.DISSCK=1;//enable xung sck(chi cho master)
	SPI1CON1bits.DISSDO=0;//sdo la dung cho spi
	SPI1CON1bits.MODE16=1;//dung data16bit
	SPI1CON1bits.SMP=0;//slave mode pai la 0
	SPI1CON1bits.CKE=0;//clock tu active-idle-
	SPI1CON1bits.SSEN=1;//SS dung cho slave
	SPI1CON1bits.CKP=0;//idle=0,active=1
	SPI1CON1bits.MSTEN=0;//slave mode
	//SPI1CON1bits.SPRE=8;//master mode only
	//SPI1CON1bits.PPRE=//master mode only

	//SPI1CON2
	SPI1CON2bits.FRMEN=0;// ko dung Frame, 
	SPI1CON2bits.SPIFSD=1;//xung input cho slave
	SPI1CON2bits.FRMPOL=1;//active high cho frame
	SPI1CON2bits.FRMDLY=0;//xung dong bo khung truoc bit clock dautien
	
	SPI1BUF=0;
	//start
	SPI1STATbits.SPIEN=1;//khoi dong SPI
}

unsigned int doc_spi1(void)
{

	while(!SPI1STATbits.SPIRBF){LCD_gotoxy(1,1);LCD_write_string("treo");}/// trên LCD cho biết là con slave bị dừng ở đây không thoát đi được
	if(SPI1STATbits.SPIRBF)
	{
		SPI1STATbits.SPIROV=0;
		if(SPI1CON1bits.MODE16)
		{
			return(SPI1BUF);//word
		}
		else
		{
			return(SPI1BUF&0xFF);//byte
		}
	}
	return -1;
}
__________________
Thật bó tay!

thay đổi nội dung bởi: namqn, 14-09-2009 lúc 06:49 PM. Lý do: định dạng code
robotden vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
 

Tags
dspic30f spi, led matrix


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:19 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