Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
S
SMILE FEE
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Deploy
Releases
Package registry
Model registry
Operate
Terraform modules
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Armin Luntzer
SMILE FEE
Commits
cbbbd9b1
Commit
cbbbd9b1
authored
Sep 1, 2020
by
Armin Luntzer
Browse files
Options
Downloads
Patches
Plain Diff
update to register map draft v0.14
parent
f25b8df7
Branches
Branches containing commit
No related tags found
No related merge requests found
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
FEE/smile_fee_cmd.c
+64
-0
64 additions, 0 deletions
FEE/smile_fee_cmd.c
FEE/smile_fee_cmd.h
+8
-3
8 additions, 3 deletions
FEE/smile_fee_cmd.h
FEE/smile_fee_ctrl.c
+372
-32
372 additions, 32 deletions
FEE/smile_fee_ctrl.c
FEE/smile_fee_ctrl.h
+33
-9
33 additions, 9 deletions
FEE/smile_fee_ctrl.h
with
477 additions
and
44 deletions
FEE/smile_fee_cmd.c
+
64
−
0
View file @
cbbbd9b1
...
...
@@ -392,6 +392,22 @@ int fee_read_cmd_cfg_reg_22(uint16_t trans_id, uint8_t *cmd)
}
/**
* @brief create a command to read the FEE configuration register 23
*
* @param trans_id a transaction identifier
*
* @param cmd the command buffer; if NULL, the function returns the needed size
*
* @returns the size of the command data buffer or 0 on error
*/
int
fee_read_cmd_cfg_reg_23
(
uint16_t
trans_id
,
uint8_t
*
cmd
)
{
return
fee_read_cmd_register_internal
(
trans_id
,
cmd
,
FEE_CFG_REG_23
);
}
/**
* @brief create a command to read the FEE configuration register 24
*
...
...
@@ -408,6 +424,22 @@ int fee_read_cmd_cfg_reg_24(uint16_t trans_id, uint8_t *cmd)
}
/**
* @brief create a command to read the FEE configuration register 25
*
* @param trans_id a transaction identifier
*
* @param cmd the command buffer; if NULL, the function returns the needed size
*
* @returns the size of the command data buffer or 0 on error
*/
int
fee_read_cmd_cfg_reg_25
(
uint16_t
trans_id
,
uint8_t
*
cmd
)
{
return
fee_read_cmd_register_internal
(
trans_id
,
cmd
,
FEE_CFG_REG_25
);
}
/**
* @brief create a command to write the FEE configuration register 0
*
...
...
@@ -584,6 +616,22 @@ int fee_write_cmd_cfg_reg_22(uint16_t trans_id, uint8_t *cmd)
}
/**
* @brief create a command to write the FEE configuration register 23
*
* @param trans_id a transaction identifier
*
* @param cmd the command buffer; if NULL, the function returns the needed size
*
* @returns the size of the command data buffer or 0 on error
*/
int
fee_write_cmd_cfg_reg_23
(
uint16_t
trans_id
,
uint8_t
*
cmd
)
{
return
fee_write_cmd_register_internal
(
trans_id
,
cmd
,
FEE_CFG_REG_23
);
}
/**
* @brief create a command to write the FEE configuration register 24
*
...
...
@@ -600,6 +648,22 @@ int fee_write_cmd_cfg_reg_24(uint16_t trans_id, uint8_t *cmd)
}
/**
* @brief create a command to write the FEE configuration register 25
*
* @param trans_id a transaction identifier
*
* @param cmd the command buffer; if NULL, the function returns the needed size
*
* @returns the size of the command data buffer or 0 on error
*/
int
fee_write_cmd_cfg_reg_25
(
uint16_t
trans_id
,
uint8_t
*
cmd
)
{
return
fee_write_cmd_register_internal
(
trans_id
,
cmd
,
FEE_CFG_REG_25
);
}
/**
* @brief create a command to read the FEE HK register 3
*
...
...
This diff is collapsed.
Click to expand it.
FEE/smile_fee_cmd.h
+
8
−
3
View file @
cbbbd9b1
...
...
@@ -22,7 +22,7 @@
#include
<stdint.h>
/* FEE RW registers (SMILE-MSSL-PL-Register_map_v0.1
0
_Draft) */
/* FEE RW registers (SMILE-MSSL-PL-Register_map_v0.1
4
_Draft) */
#define FEE_CFG_REG_0 0x00000000UL
#define FEE_CFG_REG_1 0x00000004UL
...
...
@@ -47,11 +47,12 @@
#define FEE_CFG_REG_20 0x00000050UL
#define FEE_CFG_REG_21 0x00000054UL
#define FEE_CFG_REG_22 0x00000058UL
#define FEE_CFG_REG_23 0x0000005CUL
/* reserved */
#define FEE_CFG_REG_23 0x0000005CUL
#define FEE_CFG_REG_24 0x00000060UL
#define FEE_CFG_REG_25 0x00000064UL
/* FEE RO registers (SMILE-MSSL-PL-Register_map_v0.1
0
_Draft) */
/* FEE RO registers (SMILE-MSSL-PL-Register_map_v0.1
4
_Draft) */
#define FEE_HK_REG_0 0x00000700
/* reserved */
#define FEE_HK_REG_1 0x00000704
/* reserved */
...
...
@@ -114,7 +115,9 @@ int fee_read_cmd_cfg_reg_19(uint16_t trans_id, uint8_t *cmd);
int
fee_read_cmd_cfg_reg_20
(
uint16_t
trans_id
,
uint8_t
*
cmd
);
int
fee_read_cmd_cfg_reg_21
(
uint16_t
trans_id
,
uint8_t
*
cmd
);
int
fee_read_cmd_cfg_reg_22
(
uint16_t
trans_id
,
uint8_t
*
cmd
);
int
fee_read_cmd_cfg_reg_23
(
uint16_t
trans_id
,
uint8_t
*
cmd
);
int
fee_read_cmd_cfg_reg_24
(
uint16_t
trans_id
,
uint8_t
*
cmd
);
int
fee_read_cmd_cfg_reg_25
(
uint16_t
trans_id
,
uint8_t
*
cmd
);
/* FEE configuration register write accessors */
...
...
@@ -129,7 +132,9 @@ int fee_write_cmd_cfg_reg_19(uint16_t trans_id, uint8_t *cmd);
int
fee_write_cmd_cfg_reg_20
(
uint16_t
trans_id
,
uint8_t
*
cmd
);
int
fee_write_cmd_cfg_reg_21
(
uint16_t
trans_id
,
uint8_t
*
cmd
);
int
fee_write_cmd_cfg_reg_22
(
uint16_t
trans_id
,
uint8_t
*
cmd
);
int
fee_write_cmd_cfg_reg_23
(
uint16_t
trans_id
,
uint8_t
*
cmd
);
int
fee_write_cmd_cfg_reg_24
(
uint16_t
trans_id
,
uint8_t
*
cmd
);
int
fee_write_cmd_cfg_reg_25
(
uint16_t
trans_id
,
uint8_t
*
cmd
);
/* FEE housekeeping register read accessors */
...
...
This diff is collapsed.
Click to expand it.
FEE/smile_fee_ctrl.c
+
372
−
32
View file @
cbbbd9b1
...
...
@@ -48,7 +48,6 @@
* development process. Make sure to inspect the latest register
* map for changes.
*/
#define FEE_SIM 1
/* XXX */
#include
<stdio.h>
#include
<stdlib.h>
...
...
@@ -584,6 +583,35 @@ void smile_fee_set_correction_bypass(uint32_t mode)
}
/**
* @brief get DG en
*
* @returns 0 if DG operate as per mode
*/
uint32_t
smile_fee_get_dg_en
(
void
)
{
return
(
smile_fee
->
cfg_reg_5
>>
25
)
&
0x1UL
;
}
/**
* @brief set DG en
*
* @param mode set 0 to operate DG as per mode
*/
void
smile_fee_set_dg_en
(
uint32_t
mode
)
{
if
(
mode
)
mode
=
1
;
smile_fee
->
cfg_reg_5
&=
~
(
0x1UL
<<
25
);
smile_fee
->
cfg_reg_5
|=
(
mode
<<
25
);
}
/**
* @brief get vod_config
*
...
...
@@ -851,12 +879,18 @@ void smile_fee_set_h_start(uint16_t row)
*
* @note as per register map document, the following return values
* are currently valid:
* 0x0 on mode
* 0x1 full frame pattern mode
* 0x4 stand-by mode
* 0xd immediate on mode (this is a command, not a mode)
* 0xf frame transfer mode
* 0xe full frame mode
*
* 0x0 (On-Mode)
* 0x1 (Frame Transfer (FT) Mode Pattern Mode)
* 0x2 (Stand-By-Mode)
* 0x3 (Frame Transfer Mode(FT))
* 0x4 (Full Frame Mode(FF))
* 0x5 (Parallel trap pumping mode 1 (FF))
* 0x6 (Parallel trap pumping mode 2 (FF))
* 0x7 (Serial trap pumping mode 1 (FF))
* 0x8 (Serial trap pumping mode 2 (FF))
* 0xd (Immediate On-Mode) (this is a command and not a mode)
*
*/
uint8_t
smile_fee_get_ccd_mode_config
(
void
)
...
...
@@ -872,12 +906,17 @@ uint8_t smile_fee_get_ccd_mode_config(void)
*
* @note as per register map document, the following return values
* are currently valid:
* 0x0 on mode
* 0x1 full frame pattern mode
* 0x4 stand-by mode
* 0xd immediate on mode (this is a command, not a mode)
* 0xf frame transfer mode
* 0xe full frame mode
*
* 0x0 (On-Mode)
* 0x1 (Frame Transfer (FT) Mode Pattern Mode)
* 0x2 (Stand-By-Mode)
* 0x3 (Frame Transfer Mode(FT))
* 0x4 (Full Frame Mode(FF))
* 0x5 (Parallel trap pumping mode 1 (FF))
* 0x6 (Parallel trap pumping mode 2 (FF))
* 0x7 (Serial trap pumping mode 1 (FF))
* 0x8 (Serial trap pumping mode 2 (FF))
* 0xd (Immediate On-Mode) (this is a command and not a mode)
*
* @warn input parameter is not checked for validity
*/
...
...
@@ -990,59 +1029,163 @@ void smile_fee_set_clear_error_flag(uint32_t mode)
/**
* @brief get ccd
1
single pixel threshold
* @brief get ccd
2 E
single pixel threshold
*
* @note this is the threshold above which a pixel may be considered a possible
* soft X-ray event
*/
uint16_t
smile_fee_get_ccd
1_singl
e_pix
el
_treshold
(
void
)
uint16_t
smile_fee_get_ccd
2_
e_pix_treshold
(
void
)
{
return
(
uint16_t
)
(
smile_fee
->
cfg_reg_22
&
0xFFFUL
);
return
(
uint16_t
)
(
smile_fee
->
cfg_reg_22
&
0xFFF
F
UL
);
}
/**
* @brief set ccd
1
single pixel threshold
* @brief set ccd
2 E
single pixel threshold
*
* @param threshold the threshold above which a pixel may be considered
* a possible soft X-ray event
*/
void
smile_fee_set_ccd
1_singl
e_pix
el
_treshold
(
uint16_t
threshold
)
void
smile_fee_set_ccd
2_
e_pix_treshold
(
uint16_t
threshold
)
{
smile_fee
->
cfg_reg_22
&=
~
0xFFFUL
;
smile_fee
->
cfg_reg_22
|=
0xFFFUL
&
((
uint32_t
)
threshold
);
smile_fee
->
cfg_reg_22
&=
~
0xFFF
F
UL
;
smile_fee
->
cfg_reg_22
|=
0xFFF
F
UL
&
((
uint32_t
)
threshold
);
}
/**
* @brief get ccd2 single pixel threshold
* @brief get ccd2
F
single pixel threshold
*
* @note this is the threshold above which a pixel may be considered a possible
* soft X-ray event
*/
uint16_t
smile_fee_get_ccd2_
single
_pix
el
_treshold
(
void
)
uint16_t
smile_fee_get_ccd2_
f
_pix_treshold
(
void
)
{
return
(
uint16_t
)
((
smile_fee
->
cfg_reg_22
>>
16
)
&
0xFFFFUL
);
}
/**
* @brief set ccd2 single pixel threshold
* @brief set ccd2
F
single pixel threshold
*
* @param threshold the threshold above which a pixel may be considered
* a possible soft X-ray event
*/
void
smile_fee_set_ccd2_
single
_pix
el
_treshold
(
uint16_t
threshold
)
void
smile_fee_set_ccd2_
f
_pix_treshold
(
uint16_t
threshold
)
{
smile_fee
->
cfg_reg_22
&=
~
(
0xFFFFUL
<<
16
);
smile_fee
->
cfg_reg_22
|=
(
0xFFFFUL
&
((
uint32_t
)
threshold
))
<<
16
;
}
/**
* @brief get ccd4 E single pixel threshold
*
* @note this is the threshold above which a pixel may be considered a possible
* soft X-ray event
*/
uint16_t
smile_fee_get_ccd4_e_pix_treshold
(
void
)
{
return
(
uint16_t
)
(
smile_fee
->
cfg_reg_23
&
0xFFFFUL
);
}
/**
* @brief set ccd4 E single pixel threshold
*
* @param threshold the threshold above which a pixel may be considered
* a possible soft X-ray event
*/
void
smile_fee_set_ccd4_e_pix_treshold
(
uint16_t
threshold
)
{
smile_fee
->
cfg_reg_23
&=
~
0xFFFFUL
;
smile_fee
->
cfg_reg_23
|=
0xFFFFUL
&
((
uint32_t
)
threshold
);
}
/**
* @brief get ccd4 F single pixel threshold
*
* @note this is the threshold above which a pixel may be considered a possible
* soft X-ray event
*/
uint16_t
smile_fee_get_ccd4_f_pix_treshold
(
void
)
{
return
(
uint16_t
)
((
smile_fee
->
cfg_reg_23
>>
16
)
&
0xFFFFUL
);
}
/**
* @brief set ccd4 F single pixel threshold
*
* @param threshold the threshold above which a pixel may be considered
* a possible soft X-ray event
*/
void
smile_fee_set_ccd4_f_pix_treshold
(
uint16_t
threshold
)
{
smile_fee
->
cfg_reg_23
&=
~
(
0xFFFFUL
<<
16
);
smile_fee
->
cfg_reg_23
|=
(
0xFFFFUL
&
((
uint32_t
)
threshold
))
<<
16
;
}
/**
* @brief get pixel offset value
*
* @note his offset value is added to the average incoming pixel value
*/
uint8_t
smile_fee_get_pix_offset
(
void
)
{
return
(
uint8_t
)
(
smile_fee
->
cfg_reg_24
&
0xFFUL
);
}
/**
* @brief set pixel offset value
*
* @offset the offset value to be added to the average incoming pixel value
*/
void
smile_fee_set_pix_offset
(
uint8_t
offset
)
{
smile_fee
->
cfg_reg_24
&=
~
0xFFUL
;
smile_fee
->
cfg_reg_24
|=
0xFFUL
&
((
uint32_t
)
offset
);
}
/**
* @brief get event packet limit
*
* @note this is the total number of even packet per CCD that will be transmitted
*/
uint32_t
smile_fee_get_event_pkt_limit
(
void
)
{
return
(
uint32_t
)
((
smile_fee
->
cfg_reg_24
>>
8
)
&
0xFFFFFUL
);
}
/**
* @brief set event packet limit
*
* @param pkt_limit the total number of even packet per CCD that will be transmitted
*/
void
smile_fee_set_event_pkt_limit
(
uint32_t
pkt_limit
)
{
smile_fee
->
cfg_reg_24
&=
~
(
0xFFFFFFUL
<<
8
);
smile_fee
->
cfg_reg_23
|=
(
0xFFFFFFUL
&
((
uint32_t
)
pkt_limit
))
<<
8
;
}
/**
* @brief get execute op flag
*
...
...
@@ -1056,7 +1199,7 @@ void smile_fee_set_ccd2_single_pixel_treshold(uint16_t threshold)
uint32_t
smile_fee_get_execute_op
(
void
)
{
return
smile_fee
->
cfg_reg_2
4
&
0x1UL
;
return
smile_fee
->
cfg_reg_2
5
&
0x1UL
;
}
...
...
@@ -1079,8 +1222,8 @@ void smile_fee_set_execute_op(uint32_t mode)
mode
=
1
;
smile_fee
->
cfg_reg_2
4
&=
~
0x1UL
;
smile_fee
->
cfg_reg_2
4
|=
mode
;
smile_fee
->
cfg_reg_2
5
&=
~
0x1UL
;
smile_fee
->
cfg_reg_2
5
|=
mode
;
}
...
...
@@ -2600,6 +2743,90 @@ void smile_fee_set_hk_error_flag_spw_link_parity_error(uint32_t error_flag_spw_l
#endif
/* FEE_SIM */
/**
* @brief get FPGA minor version HK value
*
* @returns the FPGA minor version
*/
uint8_t
smile_fee_get_hk_fpga_minor_version
(
void
)
{
return
(
uint8_t
)
(
smile_fee
->
hk_reg_35
&
0xFFUL
);
}
#ifdef FEE_SIM
/**
* @brief set FPGA minor version HK value
*
* @param minor the FPGA minor version
*/
void
smile_fee_set_hk_fpga_minor_version
(
uint8_t
minor
)
{
smile_fee
->
hk_reg_35
&=
~
0xFFUL
;
smile_fee
->
hk_reg_35
|=
0xFFUL
&
((
uint32_t
)
minor
);
}
#endif
/* FEE_SIM */
/**
* @brief get FPGA major version HK value
*
* @returns the FPGA major version
*/
uint8_t
smile_fee_get_hk_fpga_major_version
(
void
)
{
return
(
uint8_t
)
((
smile_fee
->
hk_reg_35
>>
8
)
&
0xFUL
);
}
#ifdef FEE_SIM
/**
* @brief set FPGA major version HK value
*
* @param minor the FPGA minor version
*/
void
smile_fee_set_hk_fpga_major_version
(
uint8_t
major
)
{
smile_fee
->
hk_reg_35
&=
~
(
0xFUL
<<
8
);
smile_fee
->
hk_reg_35
|=
(
0xFUL
&
((
uint32_t
)
major
))
<<
8
;
}
#endif
/* FEE_SIM */
/**
* @brief get the board id the FPGA is housed on
*
* @returns the FPGA board id
*/
uint16_t
smile_fee_get_hk_board_id
(
void
)
{
return
(
uint16_t
)
((
smile_fee
->
hk_reg_35
>>
20
)
&
0xFUL
);
}
#ifdef FEE_SIM
/**
* @brief set the board id the FPGA is housed on
*
* @param id the FPGA board id
*/
void
smile_fee_set_hk_board_id
(
uint16_t
id
)
{
smile_fee
->
hk_reg_35
&=
~
(
0x1FFUL
<<
20
);
smile_fee
->
hk_reg_35
|=
(
0x1FFUL
&
((
uint32_t
)
id
))
<<
20
;
}
#endif
/* FEE_SIM */
/**
* @brief sync configuration register 0
*
...
...
@@ -2831,6 +3058,27 @@ int smile_fee_sync_cfg_reg_22(enum sync_direction dir)
}
/**
* @brief sync configuration register 23
*
* @param dir the syncronisation direction
*
* @returns 0 on success, otherwise error
*/
int
smile_fee_sync_cfg_reg_23
(
enum
sync_direction
dir
)
{
if
(
dir
==
FEE2DPU
)
return
smile_fee_sync
(
fee_read_cmd_cfg_reg_23
,
&
smile_fee
->
cfg_reg_23
,
0
);
if
(
dir
==
DPU2FEE
)
return
smile_fee_sync
(
fee_write_cmd_cfg_reg_23
,
&
smile_fee
->
cfg_reg_23
,
4
);
return
-
1
;
}
/**
* @brief sync configuration register 24
*
...
...
@@ -2852,6 +3100,27 @@ int smile_fee_sync_cfg_reg_24(enum sync_direction dir)
}
/**
* @brief sync configuration register 25
*
* @param dir the syncronisation direction
*
* @returns 0 on success, otherwise error
*/
int
smile_fee_sync_cfg_reg_25
(
enum
sync_direction
dir
)
{
if
(
dir
==
FEE2DPU
)
return
smile_fee_sync
(
fee_read_cmd_cfg_reg_25
,
&
smile_fee
->
cfg_reg_25
,
0
);
if
(
dir
==
DPU2FEE
)
return
smile_fee_sync
(
fee_write_cmd_cfg_reg_25
,
&
smile_fee
->
cfg_reg_25
,
4
);
return
-
1
;
}
/**
* @brief sync register containing vstart
*
...
...
@@ -3115,6 +3384,21 @@ int smile_fee_sync_correction_bypass(enum sync_direction dir)
}
/**
* @brief sync dg enable
*
* @param dir the syncronisation direction
*
* @returns 0 on success, otherwise error
*/
int
smile_fee_sync_dg_en
(
enum
sync_direction
dir
)
{
return
smile_fee_sync_cfg_reg_5
(
dir
);
}
/**
* @brief sync vod_config
* @note no description available in register map document
...
...
@@ -3333,33 +3617,89 @@ int smile_fee_sync_clear_error_flag(enum sync_direction dir)
/**
* @brief sync ccd
1
single pixel threshold
* @brief sync ccd
2 E
single pixel threshold
*
* @param dir the syncronisation direction
*
* @returns 0 on success, otherwise error
*/
int
smile_fee_sync_ccd
1_singl
e_pix
el
_treshold
(
enum
sync_direction
dir
)
int
smile_fee_sync_ccd
2_
e_pix_treshold
(
enum
sync_direction
dir
)
{
return
smile_fee_sync_cfg_reg_22
(
dir
);
}
/**
* @brief sync ccd2 single pixel threshold
* @brief sync ccd2
F
single pixel threshold
*
* @param dir the syncronisation direction
*
* @returns 0 on success, otherwise error
*/
int
smile_fee_sync_ccd2_
single
_pix
el
_treshold
(
enum
sync_direction
dir
)
int
smile_fee_sync_ccd2_
f
_pix_treshold
(
enum
sync_direction
dir
)
{
return
smile_fee_sync_cfg_reg_22
(
dir
);
}
/**
* @brief sync ccd4 E single pixel threshold
*
* @param dir the syncronisation direction
*
* @returns 0 on success, otherwise error
*/
int
smile_fee_sync_ccd4_e_pix_treshold
(
enum
sync_direction
dir
)
{
return
smile_fee_sync_cfg_reg_23
(
dir
);
}
/**
* @brief sync ccd4 F single pixel threshold
*
* @param dir the syncronisation direction
*
* @returns 0 on success, otherwise error
*/
int
smile_fee_sync_ccd4_f_pix_treshold
(
enum
sync_direction
dir
)
{
return
smile_fee_sync_cfg_reg_23
(
dir
);
}
/**
* @brief sync pix offset
*
* @param dir the syncronisation direction
*
* @returns 0 on success, otherwise error
*/
int
smile_fee_sync_pix_offset
(
enum
sync_direction
dir
)
{
return
smile_fee_sync_cfg_reg_24
(
dir
);
}
/**
* @brief sync event pkt limit
*
* @param dir the syncronisation direction
*
* @returns 0 on success, otherwise error
*/
int
smile_fee_sync_event_pkt_limit
(
enum
sync_direction
dir
)
{
return
smile_fee_sync_cfg_reg_24
(
dir
);
}
/**
* @brief sync execute op flag
*
...
...
@@ -3370,7 +3710,7 @@ int smile_fee_sync_ccd2_single_pixel_treshold(enum sync_direction dir)
int
smile_fee_sync_execute_op
(
enum
sync_direction
dir
)
{
return
smile_fee_sync_cfg_reg_2
4
(
dir
);
return
smile_fee_sync_cfg_reg_2
5
(
dir
);
}
...
...
This diff is collapsed.
Click to expand it.
FEE/smile_fee_ctrl.h
+
33
−
9
View file @
cbbbd9b1
...
...
@@ -23,7 +23,7 @@
__extension__
struct
smile_fee_mirror
{
/* FEE RW registers (SMILE-MSSL-PL-Register_map_v0.1
0
_Draft) */
/* FEE RW registers (SMILE-MSSL-PL-Register_map_v0.1
4
_Draft) */
/* (includes unused) */
uint32_t
cfg_reg_0
;
uint32_t
cfg_reg_1
;
...
...
@@ -48,10 +48,11 @@ struct smile_fee_mirror {
uint32_t
cfg_reg_20
;
uint32_t
cfg_reg_21
;
uint32_t
cfg_reg_22
;
uint32_t
cfg_reg_23
;
/* reserved */
uint32_t
cfg_reg_23
;
uint32_t
cfg_reg_24
;
uint32_t
cfg_reg_25
;
/* FEE RO registers (SMILE-MSSL-PL-Register_map_v0.1
0
_Draft) */
/* FEE RO registers (SMILE-MSSL-PL-Register_map_v0.1
4
_Draft) */
uint32_t
unused
[
423
];
...
...
@@ -116,7 +117,9 @@ int smile_fee_sync_cfg_reg_19(enum sync_direction dir);
int
smile_fee_sync_cfg_reg_20
(
enum
sync_direction
dir
);
int
smile_fee_sync_cfg_reg_21
(
enum
sync_direction
dir
);
int
smile_fee_sync_cfg_reg_22
(
enum
sync_direction
dir
);
int
smile_fee_sync_cfg_reg_23
(
enum
sync_direction
dir
);
int
smile_fee_sync_cfg_reg_24
(
enum
sync_direction
dir
);
int
smile_fee_sync_cfg_reg_25
(
enum
sync_direction
dir
);
int
smile_fee_sync_hk_regs
(
void
);
...
...
@@ -141,6 +144,7 @@ int smile_fee_sync_sync_sel(enum sync_direction dir);
int
smile_fee_sync_readout_nodes
(
enum
sync_direction
dir
);
int
smile_fee_sync_digitise
(
enum
sync_direction
dir
);
int
smile_fee_sync_correction_bypass
(
enum
sync_direction
dir
);
int
smile_fee_sync_dg_en
(
enum
sync_direction
dir
);
int
smile_fee_sync_vod_config
(
enum
sync_direction
dir
);
int
smile_fee_sync_ccd1_vrd_config
(
enum
sync_direction
dir
);
int
smile_fee_sync_ccd2_vrd_config
(
enum
sync_direction
dir
);
...
...
@@ -155,8 +159,12 @@ int smile_fee_sync_ccd_mode_config(enum sync_direction dir);
int
smile_fee_sync_ccd_mode2_config
(
enum
sync_direction
dir
);
int
smile_fee_sync_event_detection
(
enum
sync_direction
dir
);
int
smile_fee_sync_clear_error_flag
(
enum
sync_direction
dir
);
int
smile_fee_sync_ccd1_single_pixel_treshold
(
enum
sync_direction
dir
);
int
smile_fee_sync_ccd2_single_pixel_treshold
(
enum
sync_direction
dir
);
int
smile_fee_sync_ccd2_e_pix_treshold
(
enum
sync_direction
dir
);
int
smile_fee_sync_ccd2_f_pix_treshold
(
enum
sync_direction
dir
);
int
smile_fee_sync_ccd4_e_pix_treshold
(
enum
sync_direction
dir
);
int
smile_fee_sync_ccd4_f_pix_treshold
(
enum
sync_direction
dir
);
int
smile_fee_sync_pix_offset
(
enum
sync_direction
dir
);
int
smile_fee_sync_event_pkt_limit
(
enum
sync_direction
dir
);
int
smile_fee_sync_execute_op
(
enum
sync_direction
dir
);
...
...
@@ -181,6 +189,7 @@ uint32_t smile_fee_get_sync_sel(void);
uint16_t
smile_fee_get_readout_nodes
(
void
);
uint32_t
smile_fee_get_digitise
(
void
);
uint32_t
smile_fee_get_correction_bypass
(
void
);
uint32_t
smile_fee_get_dg_en
(
void
);
uint16_t
smile_fee_get_vod_config
(
void
);
uint16_t
smile_fee_get_ccd1_vrd_config
(
void
);
uint16_t
smile_fee_get_ccd2_vrd_config
(
void
);
...
...
@@ -195,8 +204,12 @@ uint8_t smile_fee_get_ccd_mode_config(void);
uint8_t
smile_fee_get_ccd_mode2_config
(
void
);
uint32_t
smile_fee_get_event_detection
(
void
);
uint32_t
smile_fee_get_clear_error_flag
(
void
);
uint16_t
smile_fee_get_ccd1_single_pixel_treshold
(
void
);
uint16_t
smile_fee_get_ccd2_single_pixel_treshold
(
void
);
uint16_t
smile_fee_get_ccd2_e_pix_treshold
(
void
);
uint16_t
smile_fee_get_ccd2_f_pix_treshold
(
void
);
uint16_t
smile_fee_get_ccd4_e_pix_treshold
(
void
);
uint16_t
smile_fee_get_ccd4_f_pix_treshold
(
void
);
uint8_t
smile_fee_get_pix_offset
(
void
);
uint32_t
smile_fee_get_event_pkt_limit
(
void
);
uint32_t
smile_fee_get_execute_op
(
void
);
...
...
@@ -221,6 +234,7 @@ uint16_t smile_fee_get_int_period(void);
void
smile_fee_set_readout_nodes
(
uint32_t
nodes
);
void
smile_fee_set_digitise
(
uint32_t
mode
);
void
smile_fee_set_correction_bypass
(
uint32_t
mode
);
void
smile_fee_set_dg_en
(
uint32_t
mode
);
void
smile_fee_set_vod_config
(
uint16_t
vod
);
void
smile_fee_set_ccd1_vrd_config
(
uint16_t
vrd
);
void
smile_fee_set_ccd2_vrd_config
(
uint16_t
vrd
);
...
...
@@ -235,8 +249,12 @@ void smile_fee_set_ccd_mode_config(uint8_t mode);
void
smile_fee_set_ccd_mode2_config
(
uint8_t
mode
);
void
smile_fee_set_event_detection
(
uint32_t
mode
);
void
smile_fee_set_clear_error_flag
(
uint32_t
mode
);
void
smile_fee_set_ccd1_single_pixel_treshold
(
uint16_t
threshold
);
void
smile_fee_set_ccd2_single_pixel_treshold
(
uint16_t
threshold
);
void
smile_fee_set_ccd2_e_pix_treshold
(
uint16_t
threshold
);
void
smile_fee_set_ccd2_f_pix_treshold
(
uint16_t
threshold
);
void
smile_fee_set_ccd4_e_pix_treshold
(
uint16_t
threshold
);
void
smile_fee_set_ccd4_f_pix_treshold
(
uint16_t
threshold
);
void
smile_fee_set_pix_offset
(
uint8_t
offset
);
void
smile_fee_set_event_pkt_limit
(
uint32_t
pkt_limit
);
void
smile_fee_set_execute_op
(
uint32_t
mode
);
...
...
@@ -300,6 +318,9 @@ uint8_t smile_fee_get_hk_fpga_op_mode(void);
uint32_t
smile_fee_get_hk_error_flag_spw_link_escape_error
(
void
);
uint32_t
smile_fee_get_hk_error_flag_spw_link_credit_error
(
void
);
uint32_t
smile_fee_get_hk_error_flag_spw_link_parity_error
(
void
);
uint8_t
smile_fee_get_hk_fpga_minor_version
(
void
);
uint8_t
smile_fee_get_hk_fpga_major_version
(
void
);
// >> 8 0xf
uint16_t
smile_fee_get_hk_board_id
(
void
);
// >> 12 1ff
...
...
@@ -363,6 +384,9 @@ void smile_fee_set_hk_fpga_op_mode(uint8_t fpga_op_mode);
void
smile_fee_set_hk_error_flag_spw_link_escape_error
(
uint32_t
error_flag_spw_link_escape_error
);
void
smile_fee_set_hk_error_flag_spw_link_credit_error
(
uint32_t
error_flag_spw_link_credit_error
);
void
smile_fee_set_hk_error_flag_spw_link_parity_error
(
uint32_t
error_flag_spw_link_parity_error
);
void
smile_fee_set_hk_fpga_minor_version
(
uint8_t
minor
);
void
smile_fee_set_hk_fpga_major_version
(
uint8_t
major
);
void
smile_fee_set_hk_board_id
(
uint16_t
id
);
#endif
/* FEE_SIM */
...
...
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