SPI 20bits
大家好,我现在有个芯片,SPI通信,数据格式是20位。
请问用Mega32与它通信时,数据应该如何收发?
谢谢!
以下是数据格式:
http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_608102NQRRIE.GIF
SPI格式 (原文件名:SPI-20.GIF) 需要模拟SPI csn软件控制
发三个8bit 直接GPIO口模拟吧 对
需要模拟SPI 好用 硬件SPI一样好用。
unsigned char spi_ReadData(unsigned char device_add,unsigned char reg_add,unsigned char len,unsigned char reBuf[])
{
unsigned char i;
unsigned char temp;
RC6=0;
spi_SendByte(device_add<<1);
spi_SendByte(reg_add);
spi_SendByte(len);
for(i=0;i<len+1;i++)
{
*reBuf++=spi_SendByte(0x00);//读数据时候要发数据以提供读数据所需的时钟
}
RC6=1;
/*比较CRC校验值*/
for(i=0;i<len+1;i++)
{
temp=*reBuf++;
}
if(Get_CRC8(temp,(len+3))==temp)
return 1;
else
return 0;
}
看了这个程序就知道了 这个需要根据你使用芯片。如果20BIT后的数据它不受影响,可以使用M32的SPI硬件口。
如果20BIT后的数据,会影响芯片的接收,只能采用I/O模拟的方法。
标准的SPI协议是面向字节的,一次为8BIT。
不过M051的SPI硬件口就可以,它可以定义SPI硬件接口每次发送的数据为 1bit - 32bit之间,可设置的。
目前看,M051比M32的性价比高多了。新的DD出来,当然有它的优点,否则如何抢占市场。
页:
[1]