]> rtime.felk.cvut.cz Git - mf624-simulink.git/commitdiff
Complete list of MF624 counter registers and its fields.
authorPavel Pisa <pisa@cmp.felk.cvut.cz>
Sat, 15 Feb 2014 16:07:08 +0000 (17:07 +0100)
committerPavel Pisa <pisa@cmp.felk.cvut.cz>
Sat, 15 Feb 2014 16:07:08 +0000 (17:07 +0100)
Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
mf624_SIMULINK.h

index b29cc6e1cc9f1892b1ec454cc59e0d7639217f50..2cf3dda35f7e8b7e3cf73d10eb68d81e672c82d8 100644 (file)
 #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