基于TMS320C6748平台,ADS131E04驱动问题
小弟搞这个ADS131E04驱动已经有一段时间了,实在搞不定了才来此发帖,求各位大神帮帮忙。
遇到问题如下:
1、能通过SPI正常的写入数据、却不能正常的读出数据
如下是一段从ADS131E04寄存器读出数据的程序,目的是从AD芯片地址为0x01到0x08寄存器里的内容读出来
/****************************************************************************/
/* */
/* 从AD寄存器读出数据 */
/* */
/****************************************************************************/
void Read_ADS131E04Reg()
{
unsigned int index=0;
tx_data[0] = 0x21 ;//设置从CONFIG1寄存器所在地址为待配置寄存器的起始地址
tx_data[1] = 0x07;//总共需要配置8个寄存器
// 情况变量
for (index = 2; index < 10; index++)
{
tx_data[index] = 0;
}
tx_len = rx_len = index;
SPIDat1Config(SOC_SPI_0_REGS, (SPI_CSHOLD | SPI_DATA_FORMAT0), 0x4);
SpiTransfer();
}
2、此外、Dout引脚为什么只有在片选引脚为高电平的状态时才输出高电平?
3、判忙引脚为什么一直都处在高电平状态?
4、哪位大神有写好的ADS131E04/06/08的驱动程序,分享一下呗,万分感谢
不能读, 应该是 SPI 的控制问题, 要注意 SPI 口的读写是同时进行的.
要读数据, 就得同时写数据.
您好!首先很感谢您的回复!
您的意思,读和写是同时存在的,单说读是不太合理的,说SPI的控制更准确些?
此外,我在输出数据时也有输入,只不过输入的是零,不知可否?
有个问题: 你怎么判断你的SPI是正常写入了?
这个事标准的SPI接口,理论上说你能写入就能读出了!
参考数据手册Figure 1. Serial Interface Timing, Dout 不会在 片选引脚为高电平的状态时才输出高电平, 请检查你的硬件电路是否连接正常?
判忙引脚是指DRDY吗? 请检查 供电是否正常,CLK输入是否正常!
现成的程序可能比较难找,还是用示波器测试一下你的接口时序是否跟手册上建议的一致吧!
您好!首先很感谢您的热情回复!
1、 我判断我的SPI写入是否正常是通过用示波器观察输入引脚状态,图如下:
这就是我1通道是时钟信号
2通道是输入引脚的状态(我写入的数据是0x11)
难道上图不能判断我的SPI写入是正常的吗?
2、我的输入输出引脚Dout一直是片选(/CS)引脚为高时输出高电平
3、您让我检查电路连接是否正常的意思,我的引脚可能有虚焊等情况嘛?
4、判忙引脚时/DRDY,按理说AD转换结束就应该从AD芯片输出低电平,但一直是高电平状态
5、供电正常的,我测了。时钟应该正常啊,我上面那个附图难道不能证明您这个友情猜测吗?