Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-RAN
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wangwenhui
OpenXG-RAN
Commits
4989c0f0
Commit
4989c0f0
authored
7 years ago
by
Florian Kaltenberger
Committed by
Rohit Gupta
7 years ago
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix for TDD: TX is powered on a few samples earlier to allow it to settle before start of DL
parent
55f0fc30
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
16 additions
and
10 deletions
+16
-10
targets/RT/USER/lte-enb.c
targets/RT/USER/lte-enb.c
+16
-10
No files found.
targets/RT/USER/lte-enb.c
View file @
4989c0f0
...
@@ -948,12 +948,11 @@ void rx_rf(PHY_VARS_eNB *eNB,int *frame,int *subframe) {
...
@@ -948,12 +948,11 @@ void rx_rf(PHY_VARS_eNB *eNB,int *frame,int *subframe) {
lte_subframe_t
SF_type
=
subframe_select
(
fp
,(
proc
->
subframe_rx
+
tx_sfoffset
)
%
10
);
lte_subframe_t
SF_type
=
subframe_select
(
fp
,(
proc
->
subframe_rx
+
tx_sfoffset
)
%
10
);
lte_subframe_t
prevSF_type
=
subframe_select
(
fp
,(
proc
->
subframe_rx
+
tx_sfoffset
+
9
)
%
10
);
lte_subframe_t
prevSF_type
=
subframe_select
(
fp
,(
proc
->
subframe_rx
+
tx_sfoffset
+
9
)
%
10
);
lte_subframe_t
nextSF_type
=
subframe_select
(
fp
,(
proc
->
subframe_rx
+
tx_sfoffset
+
1
)
%
10
);
lte_subframe_t
nextSF_type
=
subframe_select
(
fp
,(
proc
->
subframe_rx
+
tx_sfoffset
+
1
)
%
10
);
int
sf_extension
=
0
;
if
((
SF_type
==
SF_DL
)
||
if
((
SF_type
==
SF_DL
)
||
(
SF_type
==
SF_S
))
{
(
SF_type
==
SF_S
))
{
for
(
i
=
0
;
i
<
fp
->
nb_antennas_tx
;
i
++
)
txp
[
i
]
=
(
void
*
)
&
eNB
->
common_vars
.
txdata
[
0
][
i
][((
proc
->
subframe_rx
+
tx_sfoffset
)
%
10
)
*
fp
->
samples_per_tti
];
int
siglen
=
fp
->
samples_per_tti
,
flags
=
1
;
int
siglen
=
fp
->
samples_per_tti
,
flags
=
1
;
if
(
SF_type
==
SF_S
)
{
if
(
SF_type
==
SF_S
)
{
...
@@ -962,22 +961,29 @@ void rx_rf(PHY_VARS_eNB *eNB,int *frame,int *subframe) {
...
@@ -962,22 +961,29 @@ void rx_rf(PHY_VARS_eNB *eNB,int *frame,int *subframe) {
}
}
if
((
fp
->
frame_type
==
TDD
)
&&
if
((
fp
->
frame_type
==
TDD
)
&&
(
SF_type
==
SF_DL
)
&&
(
SF_type
==
SF_DL
)
&&
(
prevSF_type
==
SF_UL
)
&&
(
prevSF_type
==
SF_UL
)
&&
(
nextSF_type
==
SF_DL
))
(
nextSF_type
==
SF_DL
))
{
flags
=
2
;
// start of burst
flags
=
2
;
// start of burst
//sf_extension = eNB->N_TA_offset<<1;
}
if
((
fp
->
frame_type
==
TDD
)
&&
if
((
fp
->
frame_type
==
TDD
)
&&
(
SF_type
==
SF_DL
)
&&
(
SF_type
==
SF_DL
)
&&
(
prevSF_type
==
SF_UL
)
&&
(
prevSF_type
==
SF_UL
)
&&
(
nextSF_type
==
SF_UL
))
(
nextSF_type
==
SF_UL
))
{
flags
=
4
;
// start of burst and end of burst (only one DL SF between two UL)
flags
=
4
;
// start of burst and end of burst (only one DL SF between two UL)
//sf_extension = eNB->N_TA_offset<<1;
}
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE
,
1
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE
,
1
);
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME
(
VCD_SIGNAL_DUMPER_VARIABLES_TRX_WRITE_FLAGS
,
flags
);
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME
(
VCD_SIGNAL_DUMPER_VARIABLES_TRX_WRITE_FLAGS
,
flags
);
for
(
i
=
0
;
i
<
fp
->
nb_antennas_tx
;
i
++
)
txp
[
i
]
=
(
void
*
)
&
eNB
->
common_vars
.
txdata
[
0
][
i
][((
proc
->
subframe_rx
+
tx_sfoffset
)
%
10
)
*
fp
->
samples_per_tti
-
sf_extension
];
txs
=
eNB
->
rfdevice
.
trx_write_func
(
&
eNB
->
rfdevice
,
txs
=
eNB
->
rfdevice
.
trx_write_func
(
&
eNB
->
rfdevice
,
proc
->
timestamp_rx
+
eNB
->
ts_offset
+
(
tx_sfoffset
*
fp
->
samples_per_tti
)
-
openair0_cfg
[
0
].
tx_sample_advance
,
proc
->
timestamp_rx
+
eNB
->
ts_offset
+
(
tx_sfoffset
*
fp
->
samples_per_tti
)
-
openair0_cfg
[
0
].
tx_sample_advance
-
sf_extension
,
txp
,
txp
,
siglen
,
siglen
+
sf_extension
,
fp
->
nb_antennas_tx
,
fp
->
nb_antennas_tx
,
flags
);
flags
);
clock_gettime
(
CLOCK_MONOTONIC
,
&
end_rf
);
clock_gettime
(
CLOCK_MONOTONIC
,
&
end_rf
);
...
@@ -991,7 +997,7 @@ void rx_rf(PHY_VARS_eNB *eNB,int *frame,int *subframe) {
...
@@ -991,7 +997,7 @@ void rx_rf(PHY_VARS_eNB *eNB,int *frame,int *subframe) {
if
(
txs
!=
siglen
)
{
if
(
txs
!=
siglen
+
sf_extension
)
{
LOG_E
(
PHY
,
"TX : Timeout (sent %d/%d)
\n
"
,
txs
,
fp
->
samples_per_tti
);
LOG_E
(
PHY
,
"TX : Timeout (sent %d/%d)
\n
"
,
txs
,
fp
->
samples_per_tti
);
exit_fun
(
"problem transmitting samples"
);
exit_fun
(
"problem transmitting samples"
);
}
}
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment