微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > 射频无线通信设计 > ad9364驱动移植,adc,dac配置问题

ad9364驱动移植,adc,dac配置问题

时间:10-02 整理:3721RD 点击:


项目在调试ad9364芯片,在初始化adc, dac时出了点问题, 我们是采用官网的no-OS-master的驱动代码,在no-OS-master\ad9361\sw\platform_linux目录下有

adc_core.c文件 ,这个文件中涉及到adc的初始化实现代码如下:

/***************************************************************************//**
* @brief adc_init
*******************************************************************************/
void adc_init(struct ad9361_rf_phy *phy)
{
adc_write(phy, ADC_REG_RSTN, 0);
adc_write(phy, ADC_REG_RSTN, ADC_RSTN);

adc_write(phy, ADC_REG_CHAN_CNTRL(0),
ADC_IQCOR_ENB | ADC_FORMAT_SIGNEXT | ADC_FORMAT_ENABLE | ADC_ENABLE);
adc_write(phy, ADC_REG_CHAN_CNTRL(1),
ADC_IQCOR_ENB | ADC_FORMAT_SIGNEXT | ADC_FORMAT_ENABLE | ADC_ENABLE);
adc_st.rx2tx2 = phy->pdata->rx2tx2;
if(adc_st.rx2tx2)
{
adc_write(phy, ADC_REG_CHAN_CNTRL(2),
ADC_IQCOR_ENB | ADC_FORMAT_SIGNEXT | ADC_FORMAT_ENABLE | ADC_ENABLE);
adc_write(phy, ADC_REG_CHAN_CNTRL(3),
ADC_IQCOR_ENB | ADC_FORMAT_SIGNEXT | ADC_FORMAT_ENABLE | ADC_ENABLE);
}
}

/***************************************************************************//**
* @brief adc_write
*******************************************************************************/
void adc_write(struct ad9361_rf_phy *phy, uint32_t regAddr, uint32_t data)
{
switch (phy->id_no) {
case 0:
*((unsigned *) (ad9361_uio_addr + regAddr)) = data;
break;
case 1:
#ifdef FMCOMMS5
*((unsigned *) (ad9361_b_uio_addr + regAddr)) = data;
break;
#endif
default:
break;
}
}

其中:ADC_REG_RSTN 在头文件adc_core.h中定义为 0x0040

/* ADC COMMON */
#define ADC_REG_RSTN 0x0040
#define ADC_RSTN (1 << 0)
#define ADC_MMCM_RSTN (1 << 1)


#define ADC_REG_CNTRL 0x0044
#define ADC_R1_MODE (1 << 2)
#define ADC_DDR_EDGESEL (1 << 1)
#define ADC_PIN_MODE (1 << 0)

#define ADC_REG_STATUS 0x005C

头文件中定义了ADC_REG_CNTRL 0x0044, 但在AD9364_Register_Map_Reference_Manual_UG-672.pdf文档中,这个寄存器的描述为0x044 Integer BB Freq Word ,Integer BB Frequency Word[7:0], 0x10, R/W
ADC_REG_STATUS 0x005C , 这个在AD9364_Register_Map_Reference_Manual_UG-672.pdf文档中好象没有找到?

想问一下,这个头文件中定义地址是否对应到AD9364_Register_Map_Reference_Manual_UG-672.pdf文档中描述的寄存器地址呢?还是要经过转换过才能得到的?

因为我们用到的CPU为atmel 9g45芯片,所有的配置都要通过改为spi接口来配置,需要知道实际配置哪些寄存器呢?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top