首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

请教  SPI 通信问题

什么芯片?
海纳百川  有容乃大
你为什么要用printp函数?它生成的代码是怎样的?另外,你也可以参考这个帖子:

http://bbs.eccn.com/dispbbs.asp?boardid=3&rootid=118351&id=118351&star=
海纳百川  有容乃大
DT128的SPI是8位的,如果要于16位的SPI通讯,就需要软件进行一些处理。首先,DT128应连续发送2个字节,才能连续接收16位数据;另外,必须看一下从机的同步方式。如果从机需要用SS进行同步的话,就必须用软件来实现,而不能直接用DT128的SS信号。TLC2543可以采用8位的通讯方式,为何不用呢?
海纳百川  有容乃大

建议你还是用16位的SPI通讯。

用一个通用I/O口作为CS信号,并用另一个通用I/O口检测ECO的电平变化。将CS由高变低后,连续输出2个字节,其中第一个字节包含转换地址和格式命令;然后等待ECO的电平变化指示转换完成,再连续输出2个字节的数据(必须保证其数据长度位选为16),此时主机SPI中读入的数据就是需要的转换结果了。如果通讯完成,则将CS信号由低变高即可。

[此贴子已经被strongchen于2007-5-11 17:36:45编辑过]

海纳百川  有容乃大
不太明白你的意思。什么是时钟连续的情况?
海纳百川  有容乃大
CPHA是用于选择SPI的时钟相位的,并不是用于控制时钟连续或数据位数等。TLC2543的SPI通讯格式应该要求采用CPHA=0的方式,即用CS启动SPI通讯,用时钟的前沿同步数据。
海纳百川  有容乃大
你应该先将TLC2543的输入固定,使它产生固定的输出值,再来判断SPI通讯是否有问题。要仔细用示波器看一下各个信号,特别是CS与时钟信号之间的相位关系是否正确。
海纳百川  有容乃大
返回列表