ADS7229的使用

笑亦无涯 2017-09-11 01:38:24
不知道有没有用过ADS7229模数转换的ADC,用的是Mega128A,现在遇到问题初始化都进行不下去,配置内部寄存器后回读有问题,如果有用过的大大可以指点一下,谢谢!

//SPI配置后,配置ADS7229
spi_write(0x0E); //write CFR
spi_write(0x0D); //CFR D11-D8
spi_write(0xFD); //CFR D7-D0

CFR_DATA = spi_read(0x0C); //read CFR

//回读配置的值
uint16 spi_read(uint8 read_cmd)
{
uint16 temp = 0;

SPSR = 0; //CLEAR ERROR AND FLAG

//send the command
SPDR = read_cmd;
while((SPSR & 0X80) != 0X80); //WAIT THE DATA BYTE SEND END
SPSR = 0;

//read the data
while((SPSR & 0X80) != 0X80); //WAIT THE DATA BYTE SEND END
temp = SPDR << 8;
SPSR = 0;

while((SPSR & 0X80) != 0X80); //WAIT THE DATA BYTE SEND END
temp |= SPDR;
SPSR = 0;

return temp;
}
...全文
357 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
tianxj001 2017-09-11
  • 打赏
  • 举报
回复
没看见你具体的设备驱动。 如果你的SPI通信硬件驱动是正常的,而且你必须检查你的写指令是否正确,如果都对的,那么有有必要怀疑细节部分,比如器件SPI 对于数据的高低位顺序。 还有一个必须特别注意的是需要注意的是器件数据的读取、写入是在时钟的上升沿还是下降沿。 一般SPI协议在上升沿锁存数据,下降沿更新数据。 而曾经接触过的ADS1246需要在下降沿锁存数据,上升沿更新数据。非常怀疑同一家公司的ADS7229是不是也是这个德行,去好好看芯片手册的SPI时序图。

21,597

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧