请教 SPI 通信问题
 
- UID
- 104380
- 性别
- 男
|
|
|
|
|
|
 
- UID
- 104380
- 性别
- 男
|
你为什么要用printp函数?它生成的代码是怎样的?另外,你也可以参考这个帖子:
http://bbs.eccn.com/dispbbs.asp?boardid=3&rootid=118351&id=118351&star= |
|
|
|
|
|
 
- UID
- 104380
- 性别
- 男
|
DT128的SPI是8位的,如果要于16位的SPI通讯,就需要软件进行一些处理。首先,DT128应连续发送2个字节,才能连续接收16位数据;另外,必须看一下从机的同步方式。如果从机需要用SS进行同步的话,就必须用软件来实现,而不能直接用DT128的SS信号。TLC2543可以采用8位的通讯方式,为何不用呢? |
|
|
|
|
|
 
- UID
- 104380
- 性别
- 男
|
建议你还是用16位的SPI通讯。
用一个通用I/O口作为CS信号,并用另一个通用I/O口检测ECO的电平变化。将CS由高变低后,连续输出2个字节,其中第一个字节包含转换地址和格式命令;然后等待ECO的电平变化指示转换完成,再连续输出2个字节的数据(必须保证其数据长度位选为16),此时主机SPI中读入的数据就是需要的转换结果了。如果通讯完成,则将CS信号由低变高即可。
[此贴子已经被strongchen于2007-5-11 17:36:45编辑过] |
|
|
|
|
|
 
- UID
- 104380
- 性别
- 男
|
|
|
|
|
|
 
- UID
- 104380
- 性别
- 男
|
CPHA是用于选择SPI的时钟相位的,并不是用于控制时钟连续或数据位数等。TLC2543的SPI通讯格式应该要求采用CPHA=0的方式,即用CS启动SPI通讯,用时钟的前沿同步数据。 |
|
|
|
|
|
 
- UID
- 104380
- 性别
- 男
|
你应该先将TLC2543的输入固定,使它产生固定的输出值,再来判断SPI通讯是否有问题。要仔细用示波器看一下各个信号,特别是CS与时钟信号之间的相位关系是否正确。 |
|
|
|
|
|