Subversion Repositories pentevo

Rev

Blame | Last modification | View Log | Download | RSS feed

                ifndef  __reg80190inc
__reg80190inc   equ     1
                save
                listing off     ; no listing over this file

;****************************************************************************
;*                                                                          *
;*   AS(L) - File REG80190.INC                                              *
;*                                                                          *
;*   Contains Bit & Register Definitions for Zilog eZ80190                  *
;*                                                                          *
;****************************************************************************

                include "spi.inc"
                include "uart.inc"
                include "i2c.inc"
                include "gpio.inc"

;----------------------------------------------------------------------------
; Memory Limits

RAMSTART        equ     0e000h          ; assumes RAM_ADDR_U = 00h
RAMEND          equ     RAMSTART+1fffh

;----------------------------------------------------------------------------
; Timer

TMR0_CTL        port    80h             ; Timer 0 Control Register (r/w)
PRT_IRQ         equ     1 << 7          ;  Timer Interrupt occured
PRT_IRQ_EN      equ     1 << 6          ;  Interrupt Enable
PRT_MODE        equ     1 << 4          ;  Continuous Mode
CLK_DIV_S       equ     2               ;  Clock Divider
CLK_DIV_M       equ     3 << CLK_DIV_S
CLK_DIV_2       equ     0 << CLK_DIV_S  ;   Source = Clock/2
CLK_DIV_4       equ     1 << CLK_DIV_S  ;   Source = Clock/4
CLK_DIV_8       equ     2 << CLK_DIV_S  ;   Source = Clock/8
CLK_DIV_16      equ     3 << CLK_DIV_S  ;   Source = Clock/16
RST_EN          equ     1 << 1          ;  Automatic Restart Enable
PRT_EN          equ     1 << 0          ;  Timer Enable
TMR0_DR_L       port    81h             ; Timer 0 Data Register Low (r)
TMR0_RR_L       port    81h             ; Timer 0 Reload Register Low (w)
TMR0_DR_H       port    82h             ; Timer 0 Data Register High (r)
TMR0_RR_H       port    82h             ; Timer 0 Reload Register High (w)

IVEC_PRT0       equ     06h             ; Timer 0 Interrupt Vector

TMR1_CTL        port    83h             ; Timer 1 Control Register (r/w)
TMR1_DR_L       port    84h             ; Timer 1 Data Register Low (r)
TMR1_RR_L       port    84h             ; Timer 1 Reload Register Low (w)
TMR1_DR_H       port    85h             ; Timer 1 Data Register High (r)
TMR1_RR_H       port    85h             ; Timer 1 Reload Register High (w)

IVEC_PRT1       equ     08h             ; Timer 1 Interrupt Vector

TMR2_CTL        port    86h             ; Timer 2 Control Register (r/w)
TMR2_DR_L       port    87h             ; Timer 2 Data Register Low (r)
TMR2_RR_L       port    87h             ; Timer 2 Reload Register Low (w)
TMR2_DR_H       port    88h             ; Timer 2 Data Register High (r)
TMR2_RR_H       port    88h             ; Timer 2 Reload Register High (w)

IVEC_PRT2       equ     0ah             ; Timer 2 Interrupt Vector

TMR3_CTL        port    89h             ; Timer 3 Control Register (r/w)
TMR3_DR_L       port    8ah             ; Timer 3 Data Register Low (r)
TMR3_RR_L       port    8ah             ; Timer 3 Reload Register Low (w)
TMR3_DR_H       port    8bh             ; Timer 3 Data Register High (r)
TMR3_RR_H       port    8bh             ; Timer 3 Reload Register High (w)

IVEC_PRT3       equ     0ch             ; Timer 3 Interrupt Vector

TMR4_CTL        port    8ch             ; Timer 4 Control Register (r/w)
TMR4_DR_L       port    8dh             ; Timer 4 Data Register Low (r)
TMR4_RR_L       port    8dh             ; Timer 4 Reload Register Low (w)
TMR4_DR_H       port    8eh             ; Timer 4 Data Register High (r)
TMR4_RR_H       port    8eh             ; Timer 4 Reload Register High (w)

IVEC_PRT4       equ     0eh             ; Timer 4 Interrupt Vector

TMR5_CTL        port    8fh             ; Timer 5 Control Register (r/w)
TMR5_DR_L       port    90h             ; Timer 5 Data Register Low (r)
TMR5_RR_L       port    90h             ; Timer 5 Reload Register Low (w)
TMR5_DR_H       port    91h             ; Timer 5 Data Register High (r)
TMR5_RR_H       port    91h             ; Timer 5 Reload Register High (w)

IVEC_PRT5       equ     10h             ; Timer 5 Interrupt Vector

;----------------------------------------------------------------------------
; Watchdog Timer

WDT_CTL         port    93h             ; Watchdog Timer Control Register (r/w)
WDT_EN          equ     1 << 7          ; Watchdog Timer Enable
NMI_OUT         equ     1 << 6          ;  NMI instead of reset
RST_FLAG        equ     1 << 5          ;  Reset caused by WDT
WDT_PERIOD_S    equ     0                ;  WDT Period
WDT_PERIOD_M    equ     3 << WDT_PERIOD_S
WDT_PERIOD_27   equ     0 << WDT_PERIOD_S ; WDT period is 2**27 clock cycles
WDT_PERIOD_25   equ     1 << WDT_PERIOD_S ; WDT period is 2**25 clock cycles
WDT_PERIOD_22   equ     2 << WDT_PERIOD_S ; WDT period is 2**22 clock cycles
WDT_PERIOD_18   equ     3 << WDT_PERIOD_S ; WDT period is 2**18 clock cycles

WDT_RR          port    94h             ; Watchdog Timer Reset Register (w)

;----------------------------------------------------------------------------
; General-Purpose Input/Output Ports

                __defgpio "A",96h

IVEC_PA0        equ     16h             ; Port A 0 Interrupt Vector
IVEC_PA1        equ     18h             ; Port A 1 Interrupt Vector
IVEC_PA2        equ     1ah             ; Port A 2 Interrupt Vector
IVEC_PA3        equ     1ch             ; Port A 3 Interrupt Vector
IVEC_PA4        equ     1eh             ; Port A 4 Interrupt Vector
IVEC_PA5        equ     20h             ; Port A 5 Interrupt Vector
IVEC_PA6        equ     22h             ; Port A 6 Interrupt Vector
IVEC_PA7        equ     24h             ; Port A 7 Interrupt Vector

                __defgpio "B",9ah

IVEC_PB0        equ     26h             ; Port B 0 Interrupt Vector
IVEC_PB1        equ     28h             ; Port B 1 Interrupt Vector
IVEC_PB2        equ     2ah             ; Port B 2 Interrupt Vector
IVEC_PB3        equ     2ch             ; Port B 3 Interrupt Vector
IVEC_PB4        equ     2eh             ; Port B 4 Interrupt Vector
IVEC_PB5        equ     30h             ; Port B 5 Interrupt Vector
IVEC_PB6        equ     32h             ; Port B 6 Interrupt Vector
IVEC_PB7        equ     34h             ; Port B 7 Interrupt Vector

                __defgpio "C",9eh

IVEC_PC0        equ     36h             ; Port C 0 Interrupt Vector
IVEC_PC1        equ     38h             ; Port C 1 Interrupt Vector
IVEC_PC2        equ     3ah             ; Port C 2 Interrupt Vector
IVEC_PC3        equ     3ch             ; Port C 3 Interrupt Vector
IVEC_PC4        equ     3eh             ; Port C 4 Interrupt Vector
IVEC_PC5        equ     40h             ; Port C 5 Interrupt Vector
IVEC_PC6        equ     42h             ; Port C 6 Interrupt Vector
IVEC_PC7        equ     44h             ; Port C 7 Interrupt Vector

                __defgpio "D",0a2h

IVEC_PD0        equ     46h             ; Port D 0 Interrupt Vector
IVEC_PD1        equ     48h             ; Port D 1 Interrupt Vector
IVEC_PD2        equ     4ah             ; Port D 2 Interrupt Vector
IVEC_PD3        equ     4ch             ; Port D 3 Interrupt Vector
IVEC_PD4        equ     4eh             ; Port D 4 Interrupt Vector
IVEC_PD5        equ     50h             ; Port D 5 Interrupt Vector
IVEC_PD6        equ     52h             ; Port D 6 Interrupt Vector
IVEC_PD7        equ     54h             ; Port D 7 Interrupt Vector

;----------------------------------------------------------------------------
; Chip Select/Wait State Generator

CS0_LBR         port    0a8h            ; Chip Select 0 Lower Bound Register (r/w)
CS0_UBR         port    0a9h            ; Chip Select 0 Upper Bound Register (r/w)
CS0_CTL         port    0aah            ; Chip Select 0 Control Register (r/w)
CS_WAIT_S       equ     5               ;  # of wait states
CS_WAIT_M       equ     7 << CS_WAIT_S
CS_IO           equ     1 << 4          ; Match I/O range
CS_EN           equ     1 << 3          ; Enable Chip Select

CS1_LBR         port    0abh            ; Chip Select 1 Lower Bound Register (r/w)
CS1_UBR         port    0ach            ; Chip Select 1 Upper Bound Register (r/w)
CS1_CTL         port    0adh            ; Chip Select 1 Control Register (r/w)

CS2_LBR         port    0aeh            ; Chip Select 2 Lower Bound Register (r/w)
CS2_UBR         port    0afh            ; Chip Select 2 Upper Bound Register (r/w)
CS2_CTL         port    0b0h            ; Chip Select 2 Control Register (r/w)

CS3_LBR         port    0b1h            ; Chip Select 3 Lower Bound Register (r/w)
CS3_UBR         port    0b2h            ; Chip Select 3 Upper Bound Register (r/w)
CS3_CTL         port    0b3h            ; Chip Select 3 Control Register (r/w)

;----------------------------------------------------------------------------
; On-Chip RAM Control

RAM_CTL         port    0b4h            ; RAM Control Register (r/w)
RAM_ADDR_U      port    0b5h            ; RAM Address Upper Byte (r/w)

;----------------------------------------------------------------------------
; Universal Zilog Interface Blocks

                __defspi "0",0b6h

                __defspi "1",0bah

                __defuart "0",0c0h
BRG0_DLR_L      port    UART0_BRG_L     ; Alias names
BRG0_DLR_H      port    UART0_BRG_H

                __defi2c "0",0c8h

UZI0_CTL        port    0cfh            ; UZI 0 Control Register (r/w)
UZI_MODE_S      equ     0                ;  Mode
UZI_MODE_M      equ     3 << UZI_MODE_S
UZI_MODE_DIS    equ     0 << UZI_MODE_S ;   All modes disabled
UZI_MODE_UART   equ     1 << UZI_MODE_S ;   UART mode
UZI_MODE_SPI    equ     2 << UZI_MODE_S ;   SPI mode
UZI_MODE_I2C    equ     3 << UZI_MODE_S ;   I2C mode

IVEC_UZI0       equ     12h             ; UZI 0 Interrupt Vector

                __defuart "1",0d0h
BRG1_DLR_L      port    UART1_BRG_L     ; Alias names
BRG1_DLR_H      port    UART1_BRG_H

                __defi2c "1",0d8h

UZI1_CTL        port    0dfh            ; UZI 1 Control Register (r/w)

IVEC_UZI1       equ     14h             ; UZI 1 Interrupt Vector

;----------------------------------------------------------------------------
; Multiply-Accumulator

MACC_xSTART     port    0e0h            ; Multiply-Accumulator x Starting Address Register (r/w)
MACC_xEND       port    0e1h            ; Multiply-Accumulator x Ending Address Register (r/w)
MACC_xRELOAD    port    0e2h            ; Multiply-Accumulator x Reload Register (r/w)
MACC_LENGTH     port    0e3h            ; Multiply-Accumulator Length Register (r/w)
MACC_ySTART     port    0e4h            ; Multiply-Accumulator y Starting Address Register (r/w)
MACC_yEND       port    0e5h            ; Multiply-Accumulator y Ending Address Register (r/w)
MACC_yRELOAD    port    0e6h            ; Multiply-Accumulator y Reload Register (r/w)
MACC_CTL        port    0e7h            ; Multiply-Accumulator Control Register (r/w)
MACC_AC0        port    0e8h            ; Multiply-Accumulator Byte 0 Register (r/w)
MACC_AC1        port    0e9h            ; Multiply-Accumulator Byte 1 Register (r/w)
MACC_AC2        port    0eah            ; Multiply-Accumulator Byte 2 Register (r/w)
MACC_AC3        port    0ebh            ; Multiply-Accumulator Byte 3 Register (r/w)
MACC_AC4        port    0ech            ; Multiply-Accumulator Byte 4 Register (r/w)
MACC_STAT       port    0edh            ; Multiply-Accumulator Status Register (r/w)
BANK            equ     1 << 4          ;  Select CALC/DATA Bank
CALC_STAT_S     equ     2               ;  CALC Bank Status
CALC_STAT_M     equ     3 << CALC_STAT_S
CALC_STAT_EMPTY equ     0 << CALC_STAT_S
CALC_STAT_PROGRESS equ  2 << CALC_STAT_S
CALC_STAT_DONE  equ     3 << CALC_STAT_S
DATA_STAT_S     equ     0                ;  DATA Bank Status
DATA_STAT_M     equ     3 << DATA_STAT_S
DATA_STAT_EMPTY equ     0 << DATA_STAT_S
DATA_STAT_READY equ     1 << DATA_STAT_S
DATA_STAT_DONE  equ     3 << DATA_STAT_S

IVEC_MACC       equ     00h             ; MACC Interrupt Vector

;----------------------------------------------------------------------------
; DMA Controllers

DMA0_SAR_L      port    0eeh            ; DMA0 Source Address Register - Low Byte Register (r/w)
DMA0_SAR_H      port    0efh            ; DMA0 Source Address Register - High Byte Register (r/w)
DMA0_SAR_U      port    0f0h            ; DMA0 Source Address Register - Upper Byte Register (r/w)
DMA0_DAR_L      port    0f1h            ; DMA0 Destination Address Register - Low Byte Register (r/w)
DMA0_DAR_H      port    0f2h            ; DMA0 Destination Address Register - High Byte Register (r/w)
DMA0_DAR_U      port    0f3h            ; DMA0 Destination Address Register - Upper Byte Register (r/w)
DMA0_BC_L       port    0f4h            ; DMA0 Byte Count Register - Low Byte (r/w)
DMA0_BC_H       port    0f5h            ; DMA0 Byte Count Register - High Byte (r/w)
DMA0_CTL        port    0f6h            ; DMA0 Control Register (r/w)
DMA_EN          equ     1 << 7          ;  Enable DMA channel
IRQ_DMA         equ     1 << 6          ;  Enable Interrupt
BURST           equ     1 << 4          ;  Use Burst Mode
DAR_CTL_S       equ     2               ;  Destination Address:
DAR_CTL_M       equ     3 << DAR_CTL_S
DAR_CTL_UNCH    equ     0 << DAR_CTL_S  ;  unchanged after transfer
DAR_CTL_INC     equ     1 << DAR_CTL_S  ;  increment after transfer
DAR_CTL_DEC     equ     2 << DAR_CTL_S  ;  decrement after transfer
SAR_CTL_S       equ     2               ;  Source Address:
SAR_CTL_M       equ     3 << SAR_CTL_S
SAR_CTL_UNCH    equ     0 << SAR_CTL_S  ;  unchanged after transfer
SAR_CTL_INC     equ     1 << SAR_CTL_S  ;  increment after transfer
SAR_CTL_DEC     equ     2 << SAR_CTL_S  ;  decrement after transfer

IVEC_DMA0       equ     02h             ; DMA0 Interrupt Vector

DMA1_SAR_L      port    0f7h            ; DMA1 Source Address Register - Low Byte Register (r/w)
DMA1_SAR_H      port    0f8h            ; DMA1 Source Address Register - High Byte Register (r/w)
DMA1_SAR_U      port    0f9h            ; DMA1 Source Address Register - Upper Byte Register (r/w)
DMA1_DAR_L      port    0fah            ; DMA1 Destination Address Register - Low Byte Register (r/w)
DMA1_DAR_H      port    0fbh            ; DMA1 Destination Address Register - High Byte Register (r/w)
DMA1_DAR_U      port    0fch            ; DMA1 Destination Address Register - Upper Byte Register (r/w)
DMA1_BC_L       port    0fdh            ; DMA1 Byte Count Register - Low Byte (r/w)
DMA1_BC_H       port    0feh            ; DMA1 Byte Count Register - High Byte (r/w)
DMA1_CTL        port    0ffh            ; DMA1 Control Register (r/w)

IVEC_DMA1       equ     04h             ; DMA0 Interrupt Vector

;----------------------------------------------------------------------------

                restore
                endif                   ; __reg80190inc