From: Pavel Pisa Date: Sat, 15 Feb 2014 16:07:08 +0000 (+0100) Subject: Complete list of MF624 counter registers and its fields. X-Git-Url: https://rtime.felk.cvut.cz/gitweb/mf624-simulink.git/commitdiff_plain/2ef92d97a68c6489411bb8b24d42af7b8325a9ad Complete list of MF624 counter registers and its fields. Signed-off-by: Pavel Pisa --- diff --git a/mf624_SIMULINK.h b/mf624_SIMULINK.h index b29cc6e..2cf3dda 100644 --- a/mf624_SIMULINK.h +++ b/mf624_SIMULINK.h @@ -43,18 +43,137 @@ #define DA7_reg 0x2E /* BAR4 */ +#define CTR0STATUS_reg 0x00 +#define CTR1STATUS_reg 0x10 +#define CTR2STATUS_reg 0x20 +#define CTR3STATUS_reg 0x30 +#define CTR4STATUS_reg 0x40 + +#define CTR_STATUS_RUNNING_mask 0x00000001 +#define CTR_STATUS_OUTPUT_mask 0x00000002 + #define CTR0MODE_reg 0x00 #define CTR1MODE_reg 0x10 #define CTR2MODE_reg 0x20 #define CTR3MODE_reg 0x30 #define CTR4MODE_reg 0x40 + +#define CTR_MODE_COUNT_DIR_mask 0x00000001 +enum {CTR_MODE_COUNT_DIR_DOWN, CTR_MODE_COUNT_DIR_UP}; +#define CTR_MODE_REPETITION_mask 0x00000002 +enum {CTR_MODE_REPETITION_DISABLED, CTR_MODE_REPETITION_ENABLED}; +#define CTR_MODE_LOAD_TOGGLE_mask 0x00000004 +enum {CTR_MODE_LOAD_TOGGLE_DISABLED /* reload from A only */, + CTR_MODE_LOAD_TOGGLE_ENABLED /* alter A and B */}; +#define CTR_MODE_OUTPUT_TOGGLE_mask 0x00000008 +enum {CTR_MODE_OUTPUT_TOGGLE_DISABLED /* output changed at terminal count */, + CTR_MODE_OUTPUT_TOGGLE_ENABLED /* output is toggled at terminal count */}; +#define CTR_MODE_OUTPUT_CONTROL_mask 0x00000030 +enum {CTR_MODE_OUTPUT_CONTROL_DIRECT /* direct output */, + CTR_MODE_OUTPUT_CONTROL_INVERTED /* inverted output */, + CTR_MODE_OUTPUT_CONTROL_FORCE_LO /* force output low */, + CTR_MODE_OUTPUT_CONTROL_FORCE_HI /* force output high */}; +#define CTR_MODE_TRIGGER_SOURCE_mask 0x000000C0 +enum {CTR_MODE_TRIGGER_SOURCE_DISABLED /* trigger disabled */, + CTR_MODE_TRIGGER_SOURCE_TXIN /* trigger by counter input (TxIN) */, + CTR_MODE_TRIGGER_SOURCE_BY_PREV /* trigger by counter n-1 output */, + CTR_MODE_TRIGGER_SOURCE_BY_NEXT /* trigger by counter n+1 output */}; +#define CTR_MODE_TRIGGER_TYPE_mask 0x00000300 +enum {CTR_MODE_TRIGGER_TYPE_DISABLED /* trigger disabled */, + CTR_MODE_TRIGGER_TYPE_BY_RE /* by rising edge of trigger signal */, + CTR_MODE_TRIGGER_TYPE_BY_FE /* by falling edge of trigger signal */, + CTR_MODE_TRIGGER_TYPE_BY_BOTH /* by either edge of trigger signal */}; +#define CTR_MODE_RETRIGGER_mask 0x00000400 +enum {CTR_MODE_RETRIGGER_DISABLED /* counter can be triggered only when stopped */, + CTR_MODE_RETRIGGER_ENABLED /* counter can be retriggered when running */}; +#define CTR_MODE_GATE_SOURCE_mask 0x00001800 +enum {CTR_MODE_GATE_SOURCE_SET_HIGH /* gate set high/not gated */, + CTR_MODE_GATE_SOURCE_BY_TXIN /* gated by counter input (TxIN) */, + CTR_MODE_GATE_SOURCE_BY_PREV /* gated by counter n-1 output */, + CTR_MODE_GATE_SOURCE_BY_NEXT /* gated by counter n+1 output */}; +#define CTR_MODE_GATE_POLARITY_mask 0x00002000 +enum {CTR_MODE_GATE_POLARITY_LOW /* low level of gate signal disables counting */, + CTR_MODE_GATE_POLARITY_HIGH /* high level of gate signal disables counting */}; +#define CTR_MODE_CLOCK_SOURCE_mask 0x0003C000 +enum {CTR_MODE_CLOCK_SOURCE_50MHZ /* 50 MHz internal clock */, + CTR_MODE_CLOCK_SOURCE_10MHZ /* 10 MHz internal clock */, + CTR_MODE_CLOCK_SOURCE_1MHZ /* 1 MHz internal clock */, + CTR_MODE_CLOCK_SOURCE_100KHZ /* 100 kHz internal clock */, + CTR_MODE_CLOCK_SOURCE_res1 /* reserved */, + CTR_MODE_CLOCK_SOURCE_TXIN_RE /* counter input (TxIN) rising edge */, + CTR_MODE_CLOCK_SOURCE_TXIN_FE /* counter input (TxIN) falling edge */, + CTR_MODE_CLOCK_SOURCE_TXIN_BOTH /* counter input (TxIN) either edge */, + CTR_MODE_CLOCK_SOURCE_res2 /* reserved */, + CTR_MODE_CLOCK_SOURCE_PREV_RE /* counter n-1 output rising edge */, + CTR_MODE_CLOCK_SOURCE_PREV_FE /* counter n-1 output falling edge */, + CTR_MODE_CLOCK_SOURCE_PREV_BOTH /* counter n-1 output either edge */, + CTR_MODE_CLOCK_SOURCE_res3 /* reserved */, + CTR_MODE_CLOCK_SOURCE_NEXT_RE /* counter n+1 output rising edge */, + CTR_MODE_CLOCK_SOURCE_NEXT_FE /* counter n+1 output falling edge */, + CTR_MODE_CLOCK_SOURCE_NEXT_BOTH /* counter n+1 output either edge */}; +#define CTR_MODE_ADTRIGSRC_mask 0x40000000 /* Implemented in CTR4MODE register only */ +enum {CTR_MODE_ADTRIGSRC_OUTPUT_FE /* ADC triggers by falling edge of counter 4 output */, + CTR_MODE_ADTRIGSRC_EXTERNAL_INPUT /* triggers by falling edge of external trigger input. */}; +#define CTR_MODE_CTR4INTSRC_mask 0x80000000 /* Implemented in CTR4MODE register only */ +enum {CTR_MODE_CTR4INTSRC_OUTPUT_FE /* interrupts by falling edge of counter 4 output */, + CTR_MODE_CTR4INTSRC_EXTERNAL_INPUT/* interrupts by falling edge of external trigger input */}; + #define CTR0_reg 0x04 #define CTR1_reg 0x14 #define CTR2_reg 0x24 #define CTR3_reg 0x34 #define CTR4_reg 0x44 + +#define CTR0A_reg 0x04 +#define CTR1A_reg 0x14 +#define CTR2A_reg 0x24 +#define CTR3A_reg 0x34 +#define CTR4A_reg 0x44 + +#define CTR0B_reg 0x08 +#define CTR1B_reg 0x18 +#define CTR2B_reg 0x28 +#define CTR3B_reg 0x38 + #define CTRXCTRL_reg 0x60 +#define CTRXCTRL_CHANNEL_SHIFT 6 + +#define CTRXCTRL_CTR0START_mask 0x00000001 +#define CTRXCTRL_CTR0STOP_mask 0x00000002 +#define CTRXCTRL_CTR0LOAD_mask 0x00000004 +#define CTRXCTRL_CTR0RESET_mask 0x00000008 +#define CTRXCTRL_CTR0TSET_mask 0x00000010 +#define CTRXCTRL_CTR0TRESET_mask 0x00000020 + +#define CTRXCTRL_CTR1START_mask 0x00000040 +#define CTRXCTRL_CTR1STOP_mask 0x00000080 +#define CTRXCTRL_CTR1LOAD_mask 0x00000100 +#define CTRXCTRL_CTR1RESET_mask 0x00000200 +#define CTRXCTRL_CTR1TSET_mask 0x00000400 +#define CTRXCTRL_CTR1TRESET_mask 0x00000800 + +#define CTRXCTRL_CTR2START_mask 0x00001000 +#define CTRXCTRL_CTR2STOP_mask 0x00002000 +#define CTRXCTRL_CTR2LOAD_mask 0x00004000 +#define CTRXCTRL_CTR2RESET_mask 0x00008000 +#define CTRXCTRL_CTR2TSET_mask 0x00010000 +#define CTRXCTRL_CTR2TRESET_mask 0x00020000 + +#define CTRXCTRL_CTR3START_mask 0x00040000 +#define CTRXCTRL_CTR3STOP_mask 0x00080000 +#define CTRXCTRL_CTR3LOAD_mask 0x00100000 +#define CTRXCTRL_CTR3RESET_mask 0x00200000 +#define CTRXCTRL_CTR3TSET_mask 0x00400000 +#define CTRXCTRL_CTR3TRESET_mask 0x00800000 + +#define CTRXCTRL_CTR4START_mask 0x01000000 +#define CTRXCTRL_CTR4STOP_mask 0x02000000 +#define CTRXCTRL_CTR4LOAD_mask 0x04000000 +#define CTRXCTRL_CTR4RESET_mask 0x08000000 +#define CTRXCTRL_CTR4TSET_mask 0x10000000 +#define CTRXCTRL_CTR4TRESET_mask 0x20000000 + #define IRCSTATUS_reg 0x6C #define IRCCTRL_reg 0x6C #define IRC0_reg 0x70