[STM8] 有用过TSC2046或STM8 SPI的兄弟帮忙解答

[复制链接]
 楼主| jgphu 发表于 2010-8-6 17:24 | 显示全部楼层 |阅读模式
大家好,我现在用STM8与TSC2046 进行SPI通信,读触摸屏的坐标。

现在我要端口模拟SPI已与TSC2046进行正常通信,但现在想用自有的SPI模块与其通信,但是老是不行。请教一下各位大虾。最好能提供代码供学习,谢谢!!!

我的SPI初始化:MCU为主模式,MISO,MOSI。两路全双工。

CLK_PCKENR1 |= 0x02;

SPI_CR1 = 0x10;
SPI_CR2 = 0x03;
SPI_ICR = 0x00;

SPI_CR1 |= 0x40;
 楼主| jgphu 发表于 2010-8-6 17:54 | 显示全部楼层
MCU发命令给TSC2046,2046就采样数据,这时BUSY置高,MCU提供时钟给2046。等BUSY为低后才能读数据。 现在问题是在BUSY时期,我的SPI应该做什么?
11.jpg
winloop 发表于 2010-8-6 18:08 | 显示全部楼层
SPI->DR = numeric[i];
    while(SPI_GetFlagStatus(SPI_FLAG_TXE) == RESET);
 楼主| jgphu 发表于 2010-8-6 18:23 | 显示全部楼层
上楼这个兄弟只是告诉我发数据。。这个我明白。

SPI_CS 是定义了端口输出。控制2046,自身作主模式用软件控制。
unsigned char temp;
void Read_2046(void)
{
       SPI_CS = 0;   //MCU主模式是软件控制,这只脚控制2046的CS。
     SPI_DR = 0X90;
     while(!(SPI_SR & 0x20));
        接下来就是BUSY等待了,这个时候时钟不能停的,看上图。这个地方我不知道写

     ????
然后读数据
    SPI_DR = 0x00;
     while(!(SPI_SR & 0x20));
     temp = SPI_DR;

}
 楼主| jgphu 发表于 2010-8-6 19:36 | 显示全部楼层
while(!(SPI_SR & 0x20));

这个写错了。应该是  while(!(SPI_SR & 0x02));

各位大虾帮帮忙。
 楼主| jgphu 发表于 2010-8-7 09:42 | 显示全部楼层
香水城大虾,请教一下。
香水城 发表于 2010-8-7 09:58 | 显示全部楼层
猜想BUSY信号是从设备控制的。

如果是这样的话,这不是常用的SPI协议,无法直接用STM8的SPI模块实现。一种可行的方法是,在BUSY为高时,用程序语句翻转时钟信号,并监视BUSY信号,然后在BUSY变低后再用SPI模块操作。
 楼主| jgphu 发表于 2010-8-7 10:12 | 显示全部楼层
BUSY位一般带SPI的芯片都会带这个位,表示从设备忙,不交换数据。

而2046这个芯片,我发指令给它,2046芯片ADC采样,转换。这个时间采样,转换时间它会使从设备BUSY。
同时主设备这个时候不能断了时钟。直到BUSY为低电平,MCU才可读从设备的数据。

按香水城大虾的说法,我是不是要这样做:
1。起动SPI,发指令给从机,关闭SPI;
2。将SPI_CLK端口模拟输出时间,等待BUSY位为低电平;
3。再起动SPI,读从机ADC数据。
香水城 发表于 2010-8-7 10:25 | 显示全部楼层
BUSY位一般带SPI的芯片都会带这个位,表示从设备忙,不交换数据。

而2046这个芯片,我发指令给它,2046芯片ADC采样,转换。这个时间采样,转换时间它会使从设备BUSY。
同时主设备这个时候不能断了时钟。直到BUSY为低电平,MCU才可读从设备的数据。

按香水城大虾的说法,我是不是要这样做:
1。起动SPI,发指令给从机,关闭SPI;
2。将SPI_CLK端口模拟输出时间,等待BUSY位为低电平;
3。再起动SPI,读从机ADC数据。
jgphu 发表于 2010-8-7 10:12


基本就是这样。

你说“BUSY位一般带SPI的芯片都会带这个位”,能再多举几个例子吗?不要只说一个厂家的,最好能不同厂家的不同功能的产品,谢谢。
 楼主| jgphu 发表于 2010-8-9 09:55 | 显示全部楼层
比如:MzLH01-12864模块。就采用SPI通信,带BUSY位
QQ截图未命名1.jpg
QQ截图未命名2.jpg
sfgenius 发表于 2013-3-12 17:27 | 显示全部楼层
你好

TSC2046IRGVR 2500/REEL TI QFN16 1140+


公司进口原装现货 50K



有需要可以找我们  合冠电子  邵R  15989561287
iCreate 发表于 2013-3-16 14:59 | 显示全部楼层
可参考风驰的例程
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

642

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部