8位单片机访问16位的寄存器问题

[复制链接]
5601|16
 楼主| wangzeyue 发表于 2011-2-23 10:02 | 显示全部楼层 |阅读模式
我现在在做一个测量电阻的程序。芯片使用4位半芯片MAX1499,MCU使用STC的51单片机,但是MAX1499内部的寄存器有很多都是16位的。它与MCU的通信使用SPI方式,我想问如何用8位机访问16位的寄存器啊?传输两次可以吗?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
mmax 发表于 2011-2-23 10:07 | 显示全部楼层
本帖最后由 mmax 于 2011-2-23 10:08 编辑

SPI接口多少位都没问题。如果是并口总线就有限制了。
16位寄存器访问肯定有相关时序,你得好好查查AD的资料。

你这的问题跟多少位单片机没有关系。
8位单片机可以操作任意位的变量。1位、8位、16位、32位。
你在软件里面定义为int型的变量。
把16位数据按位存到变量里。操作起来都用int来操作。
 楼主| wangzeyue 发表于 2011-2-23 11:23 | 显示全部楼层
max1499的读写时序都是高位在前,别的时序我看不到了。。比如要往16位寄存器送的数是0xffff,unsigned int DAT = 0xffff;
但是SPI的数据寄存器是8位的啊,SPIDAT=DAT;?这样好像不行吧?
 楼主| wangzeyue 发表于 2011-2-23 11:25 | 显示全部楼层
能不能把这个16位的数据拆分成两个CHAR型,然后我分两次送出去?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
haiping0823 发表于 2011-2-23 12:29 | 显示全部楼层
连续读2次,一个字节读完后不对CS线进行操作,只拉低SCLK线,然后再读一个字节;这样应该可以读出来16位数据。
pingis58 发表于 2011-2-23 23:25 | 显示全部楼层
也可以不用硬件上的SPI通讯,自己用IO模拟下
zjp8683463 发表于 2011-2-23 23:48 | 显示全部楼层
应该不行,SPI内核的时序做死了.应该去看看51的SPI时序是怎么样的
chunyang 发表于 2011-2-23 23:52 | 显示全部楼层
一次操作就可以了,也只能一次操作,芯片的SPI时序必须保证,对于16位信息,MCU需开两字节的缓冲区,同时SPI使用软件模拟,以确保可以进行16位操作。
ejack 发表于 2011-2-24 08:03 | 显示全部楼层
关键在于片选信号。
这是许多微控制器的SPI模块让人最不爽的地方……
 楼主| wangzeyue 发表于 2011-2-24 10:34 | 显示全部楼层
现在是我要如何写16位数据,先发送一个字节,我要查询是不是发送完成,然后发第二个字节,但是这期间会耽误时序。。。。
 楼主| wangzeyue 发表于 2011-2-24 10:47 | 显示全部楼层
写完第一个字节后我延时8个时钟周期再写行吗?我是在不想去模拟SPI了。。。
computer00 发表于 2011-2-24 10:49 | 显示全部楼层
如果芯片本身的SPI不支持16位操作,那只能自己用IO口模拟SPI了。SPI主机很容易模拟的,照着时序图写就好了。
 楼主| wangzeyue 发表于 2011-2-24 11:05 | 显示全部楼层
好吧。。我试试模拟吧。谢谢各位!!!:'(
 楼主| wangzeyue 发表于 2011-2-25 10:27 | 显示全部楼层
我来反馈信息。
8位的MCU读写16位MCU可以用硬件SPI实现。条件是:MCU工作在主模式。因为SCLK是完全由主机控制的。主机不向从机写数据就没有时钟。
感谢大家
!感谢STC的梁工!
程序已验证。
jimwu2011 发表于 2011-11-29 09:10 | 显示全部楼层
14# wangzeyue 你好, 现在我也在写SPI相关的程序,遇到了一点问题:8位SPI和DSP的16位SPI通信时,数据接收错误,而且每次接收都不一样。想请教一下,8位和16位通信的要求。
qwert12345_2012 发表于 2012-11-9 16:09 | 显示全部楼层
wangzeyue 你好, 在8位STC通过SPI发送16位命令字给外设的环节,我也遇到同样的问题,能否把你的解决方式详细讲解一下?
木子烦心 发表于 2017-1-2 14:04 | 显示全部楼层
haiping0823 发表于 2011-2-23 12:29
连续读2次,一个字节读完后不对CS线进行操作,只拉低SCLK线,然后再读一个字节;这样应该可以读出来16位数 ...

不可以。。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:爱21ic,爱你们,所以爱技术。

94

主题

499

帖子

3

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