fix: 修复上电后无法发送信号的问题;修改lmk04828配置寄存器数量
1. 具体现象为先配置RFDC,再配置时钟芯片后导致时钟断开,无发送信号,切换配置RFDC到时钟配置后任无法解决问题,新增RFDC starup函数重置RFDC tiles后DAC可以正常发送信号; 2. 排查过程中发现实际寄存器数量较少,故修该.
This commit is contained in:
Binary file not shown.
@@ -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" } ],
|
||||
|
||||
Binary file not shown.
@@ -66,13 +66,13 @@
|
||||
<Option Name="WTVcsLaunchSim" Val="0"/>
|
||||
<Option Name="WTRivieraLaunchSim" Val="0"/>
|
||||
<Option Name="WTActivehdlLaunchSim" Val="0"/>
|
||||
<Option Name="WTXSimExportSim" Val="127"/>
|
||||
<Option Name="WTModelSimExportSim" Val="127"/>
|
||||
<Option Name="WTQuestaExportSim" Val="127"/>
|
||||
<Option Name="WTXSimExportSim" Val="128"/>
|
||||
<Option Name="WTModelSimExportSim" Val="128"/>
|
||||
<Option Name="WTQuestaExportSim" Val="128"/>
|
||||
<Option Name="WTIesExportSim" Val="0"/>
|
||||
<Option Name="WTVcsExportSim" Val="127"/>
|
||||
<Option Name="WTRivieraExportSim" Val="127"/>
|
||||
<Option Name="WTActivehdlExportSim" Val="127"/>
|
||||
<Option Name="WTVcsExportSim" Val="128"/>
|
||||
<Option Name="WTRivieraExportSim" Val="128"/>
|
||||
<Option Name="WTActivehdlExportSim" Val="128"/>
|
||||
<Option Name="GenerateIPUpgradeLog" Val="TRUE"/>
|
||||
<Option Name="XSimRadix" Val="hex"/>
|
||||
<Option Name="XSimTimeUnit" Val="ns"/>
|
||||
|
||||
Binary file not shown.
@@ -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
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user