查看: 4480|回复: 3

[S12] 关于9S12XET256的SPI通信求助!!

[复制链接]

该用户从未签到

8

主题

30

帖子

0

新手上路

Rank: 1

积分
5
最后登录
1970-1-1
发表于 2011-1-10 15:40:18 | 显示全部楼层 |阅读模式
请问在同一块芯片中能否用SPI0和SPI2实现主从式通信?我的芯片是9S12XET256的,SPI采用的物理连接是:PS4——PH4;PS5——PH5;PS6——PH6;PS7——PH7;也就是主SPI0的MISO、MOSI、SCK、SS分别连接到从SPI2的MISO,MOSI、SCK、SS端,不知道这种连接是否正确?另外在SPI0发送完以后,SPI2总是接收不到。请各位高手指教。谢谢
SPI初始化与收发程序如下:
//SPI初始化,速率400kbps
void SPI_Init(void)
{
   SPI0CR2 = 0x10;
  SPI0CR1 = 0x56; //不产生中断,SPI1允许,工作在主机模式,时钟选择低有效,SPSCK空闲时为高,
                                 //SPI数据与串行时钟的关系为:在发送8位数据的开始SCK就产生一次上升沿跳变
                                 //主机模式:SS为从机选择输出,从机模式:SS输入,数据从最高位开始传输。  
 
  SPI0BR  = 0x42;   //BR=busclk/((SPPR + 1)· 2^(SPR + 1))=16000/(5*8)=400k 
 
 
  SPI2CR2 = 0x10;
  SPI2CR1 = 0x46;
  SPI2BR  = 0x42;   //BR=busclk/((SPPR + 1)· 2^(SPR + 1))=16000/(5*8)=400k                
}
//SPI0写一个字节
void SPI_Write_Byte(unsigned char SendData)
{
 SPI0DRL = SendData;
 while(!(SPI0SR_SPTEF));  //等待发送完成
 return;
}
//-----------------------------------------------------
//SPI2读一个字节
byte SPI_Read_Byte(void)
{  
 while(!(SPI2SR_SPIF));       //等待接收完成
 return SPI2DRL;
}
 
我知道答案 目前已有2人回答
回复

使用道具 举报

该用户从未签到

0

主题

4

帖子

0

新手上路

Rank: 1

积分
0
最后登录
1970-1-1
发表于 2011-1-21 12:14:24 | 显示全部楼层

回复:关于9S12XET256的SPI通信求助!!

//SPI2读一个字节
byte SPI_Read_Byte(void)
{  
(void)SPI2SR;// 用SPI总线发送数据,由于SPI的特点,SPI在发送数据的时候,也在接收数据;
 SPI2DRL=0xFF; //如果仅仅要求接收数据,也要发送数据,不然没有SCK时钟,那没有数据发,怎么发呢?发0xFF
 while(!(SPI2SR_SPIF));       //等待接收完成
 return SPI2DRL;
}
 
 

该用户从未签到

0

主题

4

帖子

0

新手上路

Rank: 1

积分
0
最后登录
1970-1-1
发表于 2011-1-21 12:14:24 | 显示全部楼层

回复:关于9S12XET256的SPI通信求助!!

//SPI2读一个字节
byte SPI_Read_Byte(void)
{  
(void)SPI2SR;// 用SPI总线发送数据,由于SPI的特点,SPI在发送数据的时候,也在接收数据;
 SPI2DRL=0xFF; //如果仅仅要求接收数据,也要发送数据,不然没有SCK时钟,那没有数据发,怎么发呢?发0xFF
 while(!(SPI2SR_SPIF));       //等待接收完成
 return SPI2DRL;
}
 
 

该用户从未签到

0

主题

2

帖子

0

新手上路

Rank: 1

积分
2
最后登录
1970-1-1
发表于 2011-3-3 10:08:41 | 显示全部楼层

回复:关于9S12XET256的SPI通信求助!!

也就是主SPI0的MISO、MOSI、SCK、SS分别连接到从SPI2的MISO,MOSI、SCK、SS端,不知道这种连接是否正确?
 
楼主,我觉得应该是主的SO连接从的SI,主的SI接从的SO才对啊,楼主可以用示波器捕捉下波,如果不对接的话,数据线上面的报文不是0V和5V的波形,而可能出现“高不成低不就”的很多中间态电压,是叠加的原因。。。
您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-8-2 15:18 , Processed in 0.090865 second(s), 24 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表