فهرست منبع

Добавлено ограничение на частоту ad9912, исправлены ошибки в функции send_data_qspi

zaytsev.mikhail.olegovich@gmail.com 1 سال پیش
والد
کامیت
a16acd8112
2فایلهای تغییر یافته به همراه11 افزوده شده و 0 حذف شده
  1. 6 0
      Devices/ad9912.c
  2. 5 0
      command.c

+ 6 - 0
Devices/ad9912.c

@@ -63,6 +63,9 @@ void ad9912_init(void *bar1) {
 double ad9912_set_main_band(double lmx_freq,double f_pd) {
     // Divide the frequncy by the old value of the phase detector frequency and only left with the integer part
     uint32_t N = (uint32_t) (lmx_freq/f_pd);
+     if (f_pd >= 300e6) {
+        N = N+10;
+    }
     if (lmx_freq <= 12500e6) {
         if (N < 28){
             N= 28;
@@ -161,6 +164,9 @@ double ad9912_set_out_of_band(double lmx_freq,double f_pd) {
 
     // Divide the frequncy by the old value of the phase detector frequency and only left with the integer part
     uint32_t N = (uint32_t) (f_vco/f_pd);
+    if (f_pd >= 300e6) {
+        N = N+10;
+    }
     if (f_vco <= 12500e6) {
         if (N < 28){
             N= 28;

+ 5 - 0
command.c

@@ -37,10 +37,14 @@ void handleFreqCmd(const char* recvBuff)
 	double lmx_freq = 0;
 
 	splitLexeme(recvBuff, freq, sizeof(freq[0]), convertToDouble);
+	// usleep(1);
     uint32_t cfg_reg = get_cfg_reg();
     SET_REGISTER_PARAM(cfg_reg, CFG_REG_SPI_MODE_BITM, CFG_REG_SPI_MODE_BITP, CFG_REG_SPI_MODE_4MOSI); 
     uint32_t *spi_mode = bar1 +CFG_REG_ADDR;
     *spi_mode = cfg_reg;
+
+	set_cfg_reg(cfg_reg);
+
 	lmx_freq = lmx_get_freq(freq[0]);
 	f_pd = ad9912_set(bar1, lmx_freq, f_pd);
 	printf("f_pd frequency is set to %.6f MHz\n", f_pd/1e6);
@@ -52,6 +56,7 @@ void handleFreqCmd(const char* recvBuff)
 	send_data_qspi(bar1);
 	   // Return the 1 MOSI mode
     usleep(1);
+	cfg_reg = get_cfg_reg();
     SET_REGISTER_PARAM(cfg_reg,CFG_REG_SPI_MODE_BITM,CFG_REG_SPI_MODE_BITP, CFG_REG_SPI_MODE_1MOSI);
     *spi_mode = cfg_reg;
     set_cfg_reg(cfg_reg);