Post Go back to editing

AD9251利用STM32进行配置,无法进行读取,读取到的寄存器数据都是0x3F

Category: Hardware
Product Number: AD9251

以器件ID寄存器为例,采用以下函数进行读取数据,无法读到正确的数据。采用STM32F103C8T6芯片作为控制器,硬件电路的电平转换参考了AD9251的评估版。

读取寄存器对应的函数

uint8_t ReadToAD9269_reg(uint16_t reg_addr )
{
// uint16_t data_temp=reg_addr|0x8000;
uint8_t reg_data=0x00;
AD9269_LE_1();
__NOP();
AD9269_CLK_0();
AD9269_LE_0();

AD9269_write_byte(0X80);
AD9269_write_byte(reg_addr);

AD9269_CLK_0();
AD9269_DATA_read();//GPIO读
for(int i=0;i<8;i++)
{
AD9269_CLK_1();
if(AD9269_R_SDO()==1)
reg_data|= (0x80 >> i);
AD9269_CLK_0();
}
AD9269_CLK_0();
AD9269_LE_1();
return reg_data;

}

以下是逻辑分析仪对应读寄存器对应的时序分析

以下是写寄存器对应的部分时序

Edit Notes

修改型号
[edited by: ewgiy at 12:15 PM (GMT -5) on 31 Dec 2024]

Thread Notes