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
zzha zzha
OpenXG-RAN
Commits
9948d972
Commit
9948d972
authored
Jan 12, 2023
by
Robert Schmidt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Use GPIO flag and fix bug
parent
72460cec
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
13 additions
and
7 deletions
+13
-7
executables/nr-ru.c
executables/nr-ru.c
+4
-4
radio/COMMON/common_lib.h
radio/COMMON/common_lib.h
+7
-1
radio/USRP/USERSPACE/LIB/usrp_lib.cpp
radio/USRP/USERSPACE/LIB/usrp_lib.cpp
+2
-2
No files found.
executables/nr-ru.c
View file @
9948d972
...
...
@@ -733,8 +733,8 @@ void tx_rf(RU_t *ru,int frame,int slot, uint64_t timestamp) {
T_INT
(
0
),
T_BUFFER
(
&
ru
->
common
.
txdata
[
0
][
fp
->
get_samples_slot_timestamp
(
slot
,
fp
,
0
)],
fp
->
samples_per_subframe
*
4
));
int
sf_extension
=
0
;
int
siglen
=
fp
->
get_samples_per_slot
(
slot
,
fp
);
int
flags
=
0
,
flags_gpio
=
0
;
radio_tx_burst_flag_t
flags_burst
=
TX_BURST_INVALID
;
radio_tx_gpio_flag_t
flags_gpio
=
0
;
if
(
cfg
->
cell_config
.
frame_duplex_type
.
value
==
TDD
&&
!
get_softmodem_params
()
->
continuous_tx
)
{
int
slot_type
=
nr_slot_select
(
cfg
,
frame
,
slot
%
fp
->
slots_per_frame
);
...
...
@@ -796,11 +796,11 @@ void tx_rf(RU_t *ru,int frame,int slot, uint64_t timestamp) {
if (slot==30 || slot==70) beam=3|8;
*/
flags_gpio
=
beam
&
0x1000
;
//enable change of gpio
flags_gpio
=
beam
|
TX_GPIO_CHANGE
;
//enable change of gpio
}
flags
=
flags_burst
|
flags_gpio
<<
4
;
const
int
flags
=
flags_burst
|
flags_gpio
<<
4
;
if
(
proc
->
first_tx
==
1
)
proc
->
first_tx
=
0
;
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME
(
VCD_SIGNAL_DUMPER_VARIABLES_TRX_WRITE_FLAGS
,
flags
);
...
...
radio/COMMON/common_lib.h
View file @
9948d972
...
...
@@ -160,6 +160,12 @@ typedef enum {
TX_BURST_END_NO_TIME_SPEC
=
10
,
}
radio_tx_burst_flag_t
;
/*! \brief Radio TX GPIO flags: MSB to enable sending GPIO command, 12 LSB carry GPIO values */
typedef
enum
{
/* first 12 bits reserved for beams */
TX_GPIO_CHANGE
=
0x1000
,
}
radio_tx_gpio_flag_t
;
/*! \brief Structure used for initializing UDP read threads */
typedef
struct
{
openair0_device
*
device
;
...
...
@@ -317,7 +323,7 @@ typedef struct {
int
cc
;
signed
char
first_packet
;
signed
char
last_packet
;
in
t
flags_gpio
;
radio_tx_gpio_flag_
t
flags_gpio
;
}
openair0_write_package_t
;
typedef
struct
{
...
...
radio/USRP/USERSPACE/LIB/usrp_lib.cpp
View file @
9948d972
...
...
@@ -390,7 +390,7 @@ static int trx_usrp_write(openair0_device *device,
int
nsamps2
;
// aligned to upper 32 or 16 byte boundary
radio_tx_burst_flag_t
flags_burst
=
(
radio_tx_burst_flag_t
)
(
flags
&
0xf
);
int
flags_gpio
=
(
flags
>>
4
)
&
0x1fff
;
//MSB to enable sending GPIO command, 12 LSB carry GPIO values
radio_tx_gpio_flag_t
flags_gpio
=
(
radio_tx_gpio_flag_t
)
((
flags
>>
4
)
&
0x1fff
);
int
end
;
openair0_thread_t
*
write_thread
=
&
device
->
write_thread
;
...
...
@@ -466,7 +466,7 @@ static int trx_usrp_write(openair0_device *device,
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_BEAM_SWITCHING_GPIO
,
1
);
// bit 13 enables gpio
if
(
flags_gpio
&
0x100
0
)
{
if
(
(
flags_gpio
&
TX_GPIO_CHANGE
)
!=
0
)
{
// push GPIO bits
s
->
usrp
->
set_command_time
(
s
->
tx_md
.
time_spec
);
s
->
usrp
->
set_gpio_attr
(
s
->
gpio_bank
,
"OUT"
,
flags_gpio
,
MAN_MASK
);
...
...
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