Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
D
dw1000_driver_freertos
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
cm-projects
dw1000_driver_freertos
Commits
e1189da1
Commit
e1189da1
authored
9 years ago
by
Colin Wulf
Browse files
Options
Downloads
Patches
Plain Diff
dw1000: added generateConfig function
parent
56d0d110
No related branches found
Branches containing commit
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
Inc/dw1000.h
+57
-0
57 additions, 0 deletions
Inc/dw1000.h
Src/dw1000.c
+35
-0
35 additions, 0 deletions
Src/dw1000.c
with
92 additions
and
0 deletions
Inc/dw1000.h
+
57
−
0
View file @
e1189da1
...
...
@@ -18,6 +18,61 @@
#define DWT_WAKE_WK 0x2 // wake up on WAKEUP PIN
#define DWT_SLP_EN 0x1 // enable sleep/deep sleep functionality
/**
* Defines for channel and prf selection and Preamble Code.
* Refer to Page 204 in the dw1000 User Manual 2.04
*/
#define PRF_SHIFT 0
#define CHANNEL_SHIFT 1
#define PREAMBLE_SHIFT 4
//16MHz
#define CH1_16MHZ_1 (0 << PRF_SHIFT) | (1 << CHANNEL_SHIFT) | (1 << PREAMBLE_SHIFT)
#define CH1_16MHZ_2 (0 << PRF_SHIFT) | (1 << CHANNEL_SHIFT) | (2 << PREAMBLE_SHIFT)
#define CH2_16MHZ_3 (0 << PRF_SHIFT) | (2 << CHANNEL_SHIFT) | (3 << PREAMBLE_SHIFT)
#define CH2_16MHZ_4 (0 << PRF_SHIFT) | (2 << CHANNEL_SHIFT) | (4 << PREAMBLE_SHIFT)
#define CH3_16MHZ_5 (0 << PRF_SHIFT) | (3 << CHANNEL_SHIFT) | (5 << PREAMBLE_SHIFT)
#define CH3_16MHZ_6 (0 << PRF_SHIFT) | (3 << CHANNEL_SHIFT) | (6 << PREAMBLE_SHIFT)
#define CH4_16MHZ_7 (0 << PRF_SHIFT) | (4 << CHANNEL_SHIFT) | (7 << PREAMBLE_SHIFT)
#define CH4_16MHZ_8 (0 << PRF_SHIFT) | (4 << CHANNEL_SHIFT) | (8 << PREAMBLE_SHIFT)
#define CH5_16MHZ_3 (0 << PRF_SHIFT) | (5 << CHANNEL_SHIFT) | (3 << PREAMBLE_SHIFT)
#define CH5_16MHZ_4 (0 << PRF_SHIFT) | (5 << CHANNEL_SHIFT) | (4 << PREAMBLE_SHIFT)
#define CH7_16MHZ_7 (0 << PRF_SHIFT) | (7 << CHANNEL_SHIFT) | (7 << PREAMBLE_SHIFT)
#define CH7_16MHZ_8 (0 << PRF_SHIFT) | (7 << CHANNEL_SHIFT) | (8 << PREAMBLE_SHIFT)
//64MHz
#define CH1_64MHZ_9 (1 << PRF_SHIFT) | (1 << CHANNEL_SHIFT) | (9 << PREAMBLE_SHIFT)
#define CH1_64MHZ_10 (1 << PRF_SHIFT) | (1 << CHANNEL_SHIFT) | (10 << PREAMBLE_SHIFT)
#define CH1_64MHZ_11 (1 << PRF_SHIFT) | (1 << CHANNEL_SHIFT) | (11 << PREAMBLE_SHIFT)
#define CH1_64MHZ_12 (1 << PRF_SHIFT) | (1 << CHANNEL_SHIFT) | (12 << PREAMBLE_SHIFT)
#define CH2_64MHZ_9 (1 << PRF_SHIFT) | (2 << CHANNEL_SHIFT) | (9 << PREAMBLE_SHIFT)
#define CH2_64MHZ_10 (1 << PRF_SHIFT) | (2 << CHANNEL_SHIFT) | (10 << PREAMBLE_SHIFT)
#define CH2_64MHZ_11 (1 << PRF_SHIFT) | (2 << CHANNEL_SHIFT) | (11 << PREAMBLE_SHIFT)
#define CH2_64MHZ_12 (1 << PRF_SHIFT) | (2 << CHANNEL_SHIFT) | (12 << PREAMBLE_SHIFT)
#define CH3_64MHZ_9 (1 << PRF_SHIFT) | (3 << CHANNEL_SHIFT) | (9 << PREAMBLE_SHIFT)
#define CH3_64MHZ_10 (1 << PRF_SHIFT) | (3 << CHANNEL_SHIFT) | (10 << PREAMBLE_SHIFT)
#define CH3_64MHZ_11 (1 << PRF_SHIFT) | (3 << CHANNEL_SHIFT) | (11 << PREAMBLE_SHIFT)
#define CH3_64MHZ_12 (1 << PRF_SHIFT) | (3 << CHANNEL_SHIFT) | (12 << PREAMBLE_SHIFT)
#define CH4_64MHZ_17 (1 << PRF_SHIFT) | (4 << CHANNEL_SHIFT) | (17 << PREAMBLE_SHIFT)
#define CH4_64MHZ_18 (1 << PRF_SHIFT) | (4 << CHANNEL_SHIFT) | (18 << PREAMBLE_SHIFT)
#define CH4_64MHZ_19 (1 << PRF_SHIFT) | (4 << CHANNEL_SHIFT) | (19 << PREAMBLE_SHIFT)
#define CH4_64MHZ_20 (1 << PRF_SHIFT) | (4 << CHANNEL_SHIFT) | (20 << PREAMBLE_SHIFT)
#define CH5_64MHZ_9 (1 << PRF_SHIFT) | (5 << CHANNEL_SHIFT) | (9 << PREAMBLE_SHIFT)
#define CH5_64MHZ_10 (1 << PRF_SHIFT) | (5 << CHANNEL_SHIFT) | (10 << PREAMBLE_SHIFT)
#define CH5_64MHZ_11 (1 << PRF_SHIFT) | (5 << CHANNEL_SHIFT) | (11 << PREAMBLE_SHIFT)
#define CH5_64MHZ_12 (1 << PRF_SHIFT) | (5 << CHANNEL_SHIFT) | (12 << PREAMBLE_SHIFT)
#define CH7_64MHZ_17 (1 << PRF_SHIFT) | (7 << CHANNEL_SHIFT) | (17 << PREAMBLE_SHIFT)
#define CH7_64MHZ_18 (1 << PRF_SHIFT) | (7 << CHANNEL_SHIFT) | (18 << PREAMBLE_SHIFT)
#define CH7_64MHZ_19 (1 << PRF_SHIFT) | (7 << CHANNEL_SHIFT) | (19 << PREAMBLE_SHIFT)
#define CH7_64MHZ_20 (1 << PRF_SHIFT) | (7 << CHANNEL_SHIFT) | (20 << PREAMBLE_SHIFT)
//DECA:DW1000 INIT configuration parameters
#define DWT_LOADLDOTUNE 0x8
#define DWT_LOADTXCONFIG 0x4
...
...
@@ -93,4 +148,6 @@ int dw_1000_receiveFrameFromIsr(uint8_t * buffer, uint32_t length);
void
dw1000_extiCallback
(
void
);
void
vTaskGlobalTimeIncrement
(
void
*
pvParameters
);
void
dw1000_generateConfig
(
uint16_t
mode
,
dwt_config_t
*
config
);
#endif
/*__ dw1000_H */
This diff is collapsed.
Click to expand it.
Src/dw1000.c
+
35
−
0
View file @
e1189da1
...
...
@@ -418,3 +418,38 @@ int dw1000_setPanId(uint16_t addr) {
return
dw1000Hal_writeSubRegister
(
PANADR_ID
,
PANADR_PAN_ID_OFFSET
,
(
uint8_t
*
)
&
addr
,
PANADR_PAN_ID_LEN
);
}
void
dw1000_generateConfig
(
uint16_t
mode
,
dwt_config_t
*
config
){
uint8_t
prf64Mhz
=
mode
&
1
;
//0, if 16Mhz is selected
//Set channel
config
->
chan
=
(
mode
>>
CHANNEL_SHIFT
)
&
7
;
//Set rxCode/txCode, which can be different, but should be the same
config
->
rxCode
=
(
mode
>>
PREAMBLE_SHIFT
)
&
31
;
config
->
txCode
=
(
mode
>>
PREAMBLE_SHIFT
)
&
31
;
//Set PRF
if
(
prf64Mhz
){
//64MHz PRF
config
->
prf
=
DWT_PRF_64M
;
}
else
{
//16MHz PRF
config
->
prf
=
DWT_PRF_16M
;
}
config
->
sfdTO
=
(
129
+
8
-
8
);
//Fixme: How to calculate SFD Timeout
config
->
dataRate
=
DWT_BR_6M8
;
config
->
rxPAC
=
DWT_PAC8
;
//Use IEEE Conform Header and SFD Fixme: Support Decawave later?
config
->
nsSFD
=
0
;
config
->
phrMode
=
0
;
config
->
txPreambLength
=
DWT_PLEN_128
;
}
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment