diff --git a/rfsoc_eval_nco/rfsoc_eval_nco.runs/impl_1/system_top.bit b/rfsoc_eval_nco/rfsoc_eval_nco.runs/impl_1/system_top.bit
index 855728f..8b4555d 100644
--- a/rfsoc_eval_nco/rfsoc_eval_nco.runs/impl_1/system_top.bit
+++ b/rfsoc_eval_nco/rfsoc_eval_nco.runs/impl_1/system_top.bit
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:74818f867e89af9d2e59f9fa52c7a6bd2817b98ed2dd10fed1d9ac55f9fcf69b
+oid sha256:28e86d411b888816a47847de4dca95884fa30ba871b737f07950c2bd3b51cef1
size 34437474
diff --git a/rfsoc_eval_nco/rfsoc_eval_nco.srcs/sources_1/ip/vio_manual_ctrl/vio_manual_ctrl.xci b/rfsoc_eval_nco/rfsoc_eval_nco.srcs/sources_1/ip/vio_manual_ctrl/vio_manual_ctrl.xci
index a776902..6d01541 100644
--- a/rfsoc_eval_nco/rfsoc_eval_nco.srcs/sources_1/ip/vio_manual_ctrl/vio_manual_ctrl.xci
+++ b/rfsoc_eval_nco/rfsoc_eval_nco.srcs/sources_1/ip/vio_manual_ctrl/vio_manual_ctrl.xci
@@ -258,11 +258,11 @@
"C_PROBE_OUT7_INIT_VAL": [ { "value": "0x1", "value_src": "user", "resolve_type": "user", "format": "bitString", "usage": "all" } ],
"C_PROBE_OUT6_INIT_VAL": [ { "value": "0x000000FF", "value_src": "user", "resolve_type": "user", "format": "bitString", "usage": "all" } ],
"C_PROBE_OUT5_INIT_VAL": [ { "value": "0xFF", "value_src": "user", "resolve_type": "user", "format": "bitString", "usage": "all" } ],
- "C_PROBE_OUT4_INIT_VAL": [ { "value": "0x3", "value_src": "user", "resolve_type": "user", "format": "bitString", "usage": "all" } ],
+ "C_PROBE_OUT4_INIT_VAL": [ { "value": "0x0", "value_src": "user", "resolve_type": "user", "format": "bitString", "usage": "all" } ],
"C_PROBE_OUT3_INIT_VAL": [ { "value": "0x3", "value_src": "user", "resolve_type": "user", "format": "bitString", "usage": "all" } ],
"C_PROBE_OUT2_INIT_VAL": [ { "value": "0x0", "value_src": "user", "resolve_type": "user", "format": "bitString", "usage": "all" } ],
"C_PROBE_OUT1_INIT_VAL": [ { "value": "0x0", "resolve_type": "user", "format": "bitString", "usage": "all" } ],
- "C_PROBE_OUT0_INIT_VAL": [ { "value": "0x0", "resolve_type": "user", "format": "bitString", "usage": "all" } ],
+ "C_PROBE_OUT0_INIT_VAL": [ { "value": "0x2", "value_src": "user", "resolve_type": "user", "format": "bitString", "usage": "all" } ],
"C_PROBE_OUT255_WIDTH": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ],
"C_PROBE_OUT254_WIDTH": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ],
"C_PROBE_OUT253_WIDTH": [ { "value": "1", "resolve_type": "user", "format": "long", "usage": "all" } ],
@@ -1316,11 +1316,11 @@
"C_PROBE_OUT253_WIDTH": [ { "value": "1", "resolve_type": "dependent", "format": "long", "usage": "all" } ],
"C_PROBE_OUT254_WIDTH": [ { "value": "1", "resolve_type": "dependent", "format": "long", "usage": "all" } ],
"C_PROBE_OUT255_WIDTH": [ { "value": "1", "resolve_type": "dependent", "format": "long", "usage": "all" } ],
- "C_PROBE_OUT0_INIT_VAL": [ { "value": "0x0", "resolve_type": "dependent", "format": "bitString", "usage": "all" } ],
+ "C_PROBE_OUT0_INIT_VAL": [ { "value": "0x2", "resolve_type": "dependent", "format": "bitString", "usage": "all" } ],
"C_PROBE_OUT1_INIT_VAL": [ { "value": "0x0", "resolve_type": "dependent", "format": "bitString", "usage": "all" } ],
"C_PROBE_OUT2_INIT_VAL": [ { "value": "0x00000000", "resolve_type": "dependent", "format": "bitString", "usage": "all" } ],
"C_PROBE_OUT3_INIT_VAL": [ { "value": "0x3", "resolve_type": "dependent", "format": "bitString", "usage": "all" } ],
- "C_PROBE_OUT4_INIT_VAL": [ { "value": "0x3", "resolve_type": "dependent", "format": "bitString", "usage": "all" } ],
+ "C_PROBE_OUT4_INIT_VAL": [ { "value": "0x0", "resolve_type": "dependent", "format": "bitString", "usage": "all" } ],
"C_PROBE_OUT5_INIT_VAL": [ { "value": "0xFF", "resolve_type": "dependent", "format": "bitString", "usage": "all" } ],
"C_PROBE_OUT6_INIT_VAL": [ { "value": "0x000000FF", "resolve_type": "dependent", "format": "bitString", "usage": "all" } ],
"C_PROBE_OUT7_INIT_VAL": [ { "value": "0x1", "resolve_type": "dependent", "format": "bitString", "usage": "all" } ],
diff --git a/rfsoc_eval_nco/rfsoc_eval_nco.srcs/utils_1/imports/synth_1/system_top.dcp b/rfsoc_eval_nco/rfsoc_eval_nco.srcs/utils_1/imports/synth_1/system_top.dcp
index 612cfb2..135f094 100644
--- a/rfsoc_eval_nco/rfsoc_eval_nco.srcs/utils_1/imports/synth_1/system_top.dcp
+++ b/rfsoc_eval_nco/rfsoc_eval_nco.srcs/utils_1/imports/synth_1/system_top.dcp
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:4b0eee7fce266ea40039e3de3e71b1a544afbe677b78c0ca9e28814155535228
-size 493652
+oid sha256:7d08ff36555003b3739970af0a82012a6fabe127e48c3af24b7755bbd6336ce4
+size 493630
diff --git a/rfsoc_eval_nco/rfsoc_eval_nco.xpr b/rfsoc_eval_nco/rfsoc_eval_nco.xpr
index 99a0768..1693640 100644
--- a/rfsoc_eval_nco/rfsoc_eval_nco.xpr
+++ b/rfsoc_eval_nco/rfsoc_eval_nco.xpr
@@ -66,13 +66,13 @@
-
-
-
+
+
+
-
-
-
+
+
+
diff --git a/rfsoc_eval_nco/system_top.xsa b/rfsoc_eval_nco/system_top.xsa
index a313720..441857f 100644
--- a/rfsoc_eval_nco/system_top.xsa
+++ b/rfsoc_eval_nco/system_top.xsa
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:2666a7be9462f366a63a0bb4948625605456d21bbd2bc12e018f8d29d74a4d92
-size 3007110
+oid sha256:1ca5b94aa5597963450637681fc3089ae859f23bdd2fe8469100ab7ce934f120
+size 3007112
diff --git a/rfsoc_eval_nco/vitis_classic_autobuild/source/dev_profile/lmk04828_profile.c b/rfsoc_eval_nco/vitis_classic_autobuild/source/dev_profile/lmk04828_profile.c
index af831a3..cbc2255 100644
--- a/rfsoc_eval_nco/vitis_classic_autobuild/source/dev_profile/lmk04828_profile.c
+++ b/rfsoc_eval_nco/vitis_classic_autobuild/source/dev_profile/lmk04828_profile.c
@@ -32,7 +32,7 @@ struct lmk04828_init_param lmk04828_default_init_param = {
.spi_init = &lmk04828_spi_init
};
-const uint32_t lmk04828_default_config_len = 137;
+const uint32_t lmk04828_default_config_len = 136;
const struct lmk04828_config lmk04828_default_config[] = {
// 200MHz
{0x0000, 0x90}, // [7] reset; [4] 3-wire mode disabled
diff --git a/rfsoc_eval_nco/vitis_classic_autobuild/source/hwconfig.c b/rfsoc_eval_nco/vitis_classic_autobuild/source/hwconfig.c
index b9370a2..f3628ee 100644
--- a/rfsoc_eval_nco/vitis_classic_autobuild/source/hwconfig.c
+++ b/rfsoc_eval_nco/vitis_classic_autobuild/source/hwconfig.c
@@ -99,8 +99,6 @@ int32_t Hardware_RFdcInit(XRFdc *InstancePtr, u16 DeviceId)
RFdc_ConfigPtr = XRFdc_LookupConfig(DeviceId);
Status = XRFdc_CfgInitialize(InstancePtr, RFdc_ConfigPtr);
- mdelay(100);
-
if (Status != SUCCESS)
{
DBG_ERROR("Hardware_RFdcInit() error: %" PRId32 "\n", Status);
@@ -213,6 +211,8 @@ int32_t Hardware_LMK04828Init(struct lmk04828_dev *device,
DBG_INFO("HDWR: [LMK04828] PLL2 NOT lock!\r\n");
}
+ mdelay(500);
+
return Status;
}
@@ -842,9 +842,8 @@ int32_t Hardware_Init(void)
// gpio initialization
Status = Hardware_GpioInit(&Gpio, AD9361_GPIO_DEVICE_ID);
-#ifdef RFSOC
- // rf data converter initialization
- Status |= Hardware_RFdcInit(&RFdc, RFDC_DEVICE_ID);
+#ifdef LMK04828
+ Status |= Hardware_LMK04828Init(lmk04828_inst, &lmk04828_default_init_param);
#endif
#ifdef HMC7044
@@ -855,10 +854,6 @@ int32_t Hardware_Init(void)
Status |= Hardware_AD9528Init(ad9528_inst, &ad9528_default_init_param);
#endif
-#ifdef LMK04828
- Status |= Hardware_LMK04828Init(lmk04828_inst, &lmk04828_default_init_param);
-#endif
-
#ifdef LMX2594_ADC
Status |= Hardware_LMK2594Init(lmx2594_adc_inst, &lmx2594_adc_init_param);
#endif
@@ -897,36 +892,7 @@ int32_t Hardware_Init(void)
* 7 (VOUT_30) 231 (XRFDC_TILE_ID3) DAC 0/DUC 0 (XRFDC_BLK_ID0)
* 8 (VOUT_32) 231 (XRFDC_TILE_ID3) DAC 1/DUC 2 (XRFDC_BLK_ID2)
*
- */
-
- // get & set mixer settings
- XRFdc_Mixer_Settings Mixer_Settings_DAC;
-
- // 3rd channel
- Status = XRFdc_GetMixerSettings(&RFdc, XRFDC_DAC_TILE, XRFDC_TILE_ID1,
- XRFDC_BLK_ID0, &Mixer_Settings_DAC);
- if (Status != XST_SUCCESS) {
- return XST_FAILURE;
- }
-
- Mixer_Settings_DAC.Freq = 500;
-
- Status = XRFdc_SetMixerSettings(&RFdc, XRFDC_DAC_TILE, XRFDC_TILE_ID1,
- XRFDC_BLK_ID0, &Mixer_Settings_DAC);
- if (Status != XST_SUCCESS) {
- return XST_FAILURE;
- }
-
- mdelay(100);
-
- Status = XRFdc_UpdateEvent(&RFdc, XRFDC_DAC_TILE, XRFDC_TILE_ID1,
- XRFDC_BLK_ID0, XRFDC_EVENT_MIXER);
- if (Status != XST_SUCCESS) {
- return XST_FAILURE;
- }
-
- /*
- * ADC Mapping:
+ * ADC Mapping:
* Number Tile Block
* 1 (VIN0_01) 224 (XRFDC_TILE_ID0) ADC 0 (XRFDC_BLK_ID0)
* 2 (VIN0_12) 224 (XRFDC_TILE_ID0) ADC 1 (XRFDC_BLK_ID1)
@@ -936,8 +902,43 @@ int32_t Hardware_Init(void)
* 6 (VIN2_23) 226 (XRFDC_TILE_ID2) ADC 1 (XRFDC_BLK_ID1)
* 7 (VIN3_01) 227 (XRFDC_TILE_ID3) ADC 0 (XRFDC_BLK_ID0)
* 8 (VIN3_23) 227 (XRFDC_TILE_ID3) ADC 1 (XRFDC_BLK_ID1)
- *
- */
+ *
+ */
+ // rf data converter initialization
+ Status |= Hardware_RFdcInit(&RFdc, RFDC_DEVICE_ID);
+
+ // start up all tiles
+ for (u32 Tile_Id = XRFDC_TILE_ID0; Tile_Id < XRFDC_TILE_ID4; Tile_Id++)
+ {
+ XRFdc_StartUp(&RFdc, XRFDC_ADC_TILE, Tile_Id);
+ XRFdc_StartUp(&RFdc, XRFDC_DAC_TILE, Tile_Id);
+ }
+
+ // get & set mixer settings
+ XRFdc_Mixer_Settings Mixer_Settings_DAC;
+
+ // 7th channel
+ Status = XRFdc_GetMixerSettings(&RFdc, XRFDC_DAC_TILE, XRFDC_TILE_ID3,
+ XRFDC_BLK_ID0, &Mixer_Settings_DAC);
+ if (Status != XST_SUCCESS) {
+ return XST_FAILURE;
+ }
+
+ Mixer_Settings_DAC.Freq = 501;
+
+ Status = XRFdc_SetMixerSettings(&RFdc, XRFDC_DAC_TILE, XRFDC_TILE_ID3,
+ XRFDC_BLK_ID0, &Mixer_Settings_DAC);
+ if (Status != XST_SUCCESS) {
+ return XST_FAILURE;
+ }
+
+ mdelay(100);
+
+ Status = XRFdc_UpdateEvent(&RFdc, XRFDC_DAC_TILE, XRFDC_TILE_ID3,
+ XRFDC_BLK_ID0, XRFDC_EVENT_MIXER);
+ if (Status != XST_SUCCESS) {
+ return XST_FAILURE;
+ }
// get & set mixer settings
XRFdc_Mixer_Settings Mixer_Settings_ADC;
@@ -949,7 +950,7 @@ int32_t Hardware_Init(void)
return XST_FAILURE;
}
- Mixer_Settings_ADC.Freq = 500;
+ Mixer_Settings_ADC.Freq = 501;
Mixer_Settings_ADC.EventSource = XRFDC_EVNT_SRC_TILE;
Status = XRFdc_SetMixerSettings(&RFdc, XRFDC_ADC_TILE, XRFDC_TILE_ID3,