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

MC9S12D64的SPI0模块相关问题?请个位大侠帮忙解决

MC9S12D64的SPI0模块相关问题?请个位大侠帮忙解决

麻烦不断啊,请各位大侠帮我看看,解救我出苦海吧!fficeffice" />

单片机:MC9S12D64        DACTLV5604

简单描述一下硬件的连接:

单片机: SCK――――――DAC SCK()

         SS――――――――――FS(帧同步脚,下降沿表示移至TLV5604的串行数据帧的起始)

MOSI―――――――――DIN(串行数据输入)

 

这里单片机经过设置令M口工作在SPI0

[此贴子已经被作者于2006-10-9 8:38:11编辑过]

DAC的数据是16位的,高四位是控制DAC的状态的,低12位才是需转换的数据。所以是12位转换精度的。
当时设计硬件的时候的想法:单片机的SS(DAC的FS)由高变低时,单片机开始输出数据,DAC开始读入数据。
目前的问题是:时钟信号 数据信等都正常了 各方面看来,单片机没有问题了,目前怀疑是DAC的问题 导致DAC无法工作。
分析:DAC是16位的,而单片机8位输出,所以DAC转换一次单片机需要2次数据输出,才够16位,所以令单片机先输出高八位,后低八位。
发现单片机每发玩8位,SS就会有低到高的跳变,所以传完16位的过程中,ss有一次变高的时段,所以整个16位数据传送工程对于DAC来说是被打断了一次的,所以我猜想是这里就是我DAC没有工作的关键吧。(因为DAC工作应该是FS变低后开始读入数据,知道数据读完FS变高。)
但是SS脚在工作于SPI时只有2总状态:1。SS output; 2。SS not used by spi
由于SS是要给DAC提供信号的就必须工作于输出状态(将modfen 和ssoe置位),所以该如何修改才能让DAC工作呢?
不知道我的陈述是否清楚,不知道各位大侠们认为我对问题的猜测是否正确?
如果单片机不能一次输出16位,我该如何解决这个问题呢?
谢谢!

(上面的陈述中可能有错误,刚开始接触这些东西,所以理解的不够透彻)
SS如果用于SPI功能,那么它在一个字节发送完成后确实会有一个跳变的过程。如果你需要控制FS的电平,可能需要采用一个GPIO口来实现。
海纳百川  有容乃大
这款单片机能不能一次输出16位,ss在跳变呢?
如果没有这种功能,看来就只能用GPIO口来实现了
好像是没有的。
海纳百川  有容乃大
好的,明白了,谢谢strongchen
返回列表