ad9361自测试校准

#include "config.h"
#include "CONFIG_FPGA_ALL.h"
#include "xparameters.h"
#include "xil_io.h"
#include "sleep.h"

#include "ad9361_api.h"
#include "ad9361.h"
#include "xil_printf.h"
double param[10];
extern struct ad9361_rf_phy *ad9361_phy;
#define CONFIG_FPGA_ALL_BASEADDR XPAR_CONFIG_FPGA_ALL_0_S00_AXI_BASEADDR
#define cfg_universal_port_addr   0x5c
#define cfg_universal_port_data   0x60


extern void cfg_universal(uint32_t addr,uint32_t data);


void cfg_universal(uint32_t addr,uint32_t data)
{
    CONFIG_FPGA_ALL_mWriteReg((CONFIG_FPGA_ALL_BASEADDR) ,cfg_universal_port_addr,addr);
    CONFIG_FPGA_ALL_mWriteReg((CONFIG_FPGA_ALL_BASEADDR) ,cfg_universal_port_data,data);
    usleep(1);
}
void set_register(double* param, char param_no) // "register?" command
{
    uint16_t reg_addr;
    uint8_t reg_val;
    struct spi_device spi;

    if(param_no >= 1)
    {
        spi.id_no = 0;
        reg_addr =(uint16_t) param[0];
        reg_val =(uint8_t)param[1];
        ad9361_spi_write(&spi, reg_addr,reg_val);
//        xil_printf("write register[0x%x]=0x%x\r\n", reg_addr, reg_val);
    }
}

void get_register(double* param, char param_no) // "register?" command
{
    uint16_t reg_addr;
    uint8_t reg_val;
    struct spi_device spi;

    if(param_no >= 1)
    {
        spi.id_no = 0;
        reg_addr = param[0];
        reg_val = ad9361_spi_read(&spi, reg_addr);
//        if((reg_val != 0x02) && (reg_val != 0x82) && (reg_val != 0x42))
//        {
//            xil_printf("/************************************\r\n");
//            xil_printf("register[0x%x]=0x%x\r\n", reg_addr, reg_val);
//            xil_printf("/************************************\r\n");
//        }
        xil_printf("register[0x%x]=0x%x\r\n", reg_addr, reg_val);
    }
}


/**************************************************************************//***
 * @brief Gets current RX LO frequency [MHz].
 *
 * @return None.
*******************************************************************************/
void get_rx_lo_freq(double* param, char param_no) // "rx_lo_freq?" command
{
    uint64_t lo_freq_hz;

    ad9361_get_rx_lo_freq(ad9361_phy, &lo_freq_hz);
    lo_freq_hz /= 1000000;
    xil_printf("rx_lo_freq=%d\n", (uint32_t)lo_freq_hz);
}

/*************************************************************************
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值