paul@0 | 1 | #ifndef __PIC32_H__ |
paul@0 | 2 | #define __PIC32_H__ |
paul@0 | 3 | |
paul@3 | 4 | /* Peripheral addresses. |
paul@3 | 5 | * See... |
paul@0 | 6 | * TABLE 4-1: SFR MEMORYMAP |
paul@0 | 7 | * TABLE 11-3: PORTA REGISTER MAP |
paul@0 | 8 | * PIC32MX1XX/2XX 28/36/44-pin Family Data Sheet |
paul@0 | 9 | */ |
paul@0 | 10 | |
paul@0 | 11 | #define OC1CON 0xBF803000 |
paul@0 | 12 | #define OC1R 0xBF803010 |
paul@0 | 13 | #define OC1RS 0xBF803020 |
paul@0 | 14 | #define OC2CON 0xBF803200 |
paul@0 | 15 | #define OC2R 0xBF803210 |
paul@0 | 16 | #define OC2RS 0xBF803220 |
paul@0 | 17 | #define OC3CON 0xBF803400 |
paul@0 | 18 | #define OC3R 0xBF803410 |
paul@0 | 19 | #define OC3RS 0xBF803420 |
paul@0 | 20 | |
paul@0 | 21 | #define T1CON 0xBF800600 |
paul@0 | 22 | #define TMR1 0xBF800610 |
paul@0 | 23 | #define PR1 0xBF800620 |
paul@0 | 24 | #define T2CON 0xBF800800 |
paul@0 | 25 | #define TMR2 0xBF800810 |
paul@0 | 26 | #define PR2 0xBF800820 |
paul@0 | 27 | #define T3CON 0xBF800A00 |
paul@0 | 28 | #define TMR3 0xBF800A10 |
paul@0 | 29 | #define PR3 0xBF800A20 |
paul@0 | 30 | |
paul@0 | 31 | #define PMCON 0xBF807000 |
paul@0 | 32 | #define PMMODE 0xBF807010 |
paul@0 | 33 | #define PMADDR 0xBF807020 |
paul@0 | 34 | #define PMDOUT 0xBF807030 |
paul@0 | 35 | #define PMDIN 0xBF807040 |
paul@0 | 36 | #define PMAEN 0xBF807050 |
paul@0 | 37 | #define PMSTAT 0xBF807060 |
paul@0 | 38 | |
paul@0 | 39 | #define OSCCON 0xBF80F000 |
paul@0 | 40 | #define REFOCON 0xBF80F020 |
paul@0 | 41 | #define REFOTRIM 0xBF80F030 |
paul@0 | 42 | #define CFGCON 0xBF80F200 |
paul@0 | 43 | #define SYSKEY 0xBF80F230 |
paul@0 | 44 | |
paul@0 | 45 | #define U1RXR 0xBF80FA50 |
paul@0 | 46 | |
paul@0 | 47 | #define RPA0R 0xBF80FB00 |
paul@0 | 48 | #define RPA1R 0xBF80FB04 |
paul@0 | 49 | #define RPA2R 0xBF80FB08 |
paul@0 | 50 | #define RPA3R 0xBF80FB0C |
paul@0 | 51 | #define RPA4R 0xBF80FB10 |
paul@0 | 52 | #define RPB0R 0xBF80FB2C |
paul@0 | 53 | #define RPB1R 0xBF80FB30 |
paul@0 | 54 | #define RPB2R 0xBF80FB34 |
paul@0 | 55 | #define RPB3R 0xBF80FB38 |
paul@0 | 56 | #define RPB4R 0xBF80FB3C |
paul@0 | 57 | #define RPB5R 0xBF80FB40 |
paul@0 | 58 | #define RPB10R 0xBF80FB54 |
paul@0 | 59 | #define RPB15R 0xBF80FB68 |
paul@0 | 60 | |
paul@0 | 61 | #define INTCON 0xBF881000 |
paul@0 | 62 | #define IFS0 0xBF881030 |
paul@0 | 63 | #define IFS1 0xBF881040 |
paul@0 | 64 | #define IEC0 0xBF881060 |
paul@0 | 65 | #define IEC1 0xBF881070 |
paul@0 | 66 | #define IPC1 0xBF8810A0 |
paul@0 | 67 | #define IPC2 0xBF8810B0 |
paul@3 | 68 | #define IPC3 0xBF8810C0 |
paul@3 | 69 | #define IPC4 0xBF8810D0 |
paul@3 | 70 | #define IPC5 0xBF8810E0 |
paul@3 | 71 | #define IPC6 0xBF8810F0 |
paul@0 | 72 | #define IPC7 0xBF881100 |
paul@0 | 73 | #define IPC8 0xBF881110 |
paul@3 | 74 | #define IPC9 0xBF881120 |
paul@0 | 75 | #define IPC10 0xBF881130 |
paul@0 | 76 | |
paul@0 | 77 | #define BMXCON 0xBF882000 |
paul@0 | 78 | #define BMXDKPBA 0xBF882010 |
paul@0 | 79 | #define BMXDUDBA 0xBF882020 |
paul@0 | 80 | #define BMXDUPBA 0xBF882030 |
paul@0 | 81 | #define BMXDRMSZ 0xBF882040 |
paul@0 | 82 | |
paul@0 | 83 | #define ANSELA 0xBF886000 |
paul@0 | 84 | #define TRISA 0xBF886010 |
paul@0 | 85 | #define PORTA 0xBF886020 |
paul@0 | 86 | #define LATA 0xBF886030 |
paul@0 | 87 | #define ODCA 0xBF886040 |
paul@0 | 88 | #define ANSELB 0xBF886100 |
paul@0 | 89 | #define TRISB 0xBF886110 |
paul@0 | 90 | #define PORTB 0xBF886120 |
paul@0 | 91 | #define LATB 0xBF886130 |
paul@0 | 92 | #define ODCB 0xBF886140 |
paul@0 | 93 | |
paul@3 | 94 | /* DMA conveniences. */ |
paul@3 | 95 | |
paul@3 | 96 | #define DMACON 0xBF883000 |
paul@3 | 97 | #define DCH0CON 0xBF883060 |
paul@3 | 98 | #define DCH1CON 0xBF883120 |
paul@3 | 99 | #define DCH2CON 0xBF8831E0 |
paul@3 | 100 | #define DCH3CON 0xBF8832A0 |
paul@3 | 101 | |
paul@3 | 102 | #define DCHMIN 0 |
paul@3 | 103 | #define DCHMAX 3 |
paul@3 | 104 | #define DCHBASE DCH0CON |
paul@3 | 105 | #define DCHSTEP (DCH1CON - DCH0CON) |
paul@3 | 106 | |
paul@3 | 107 | #define DCHxCON 0x00 |
paul@3 | 108 | #define DCHxECON 0x10 |
paul@3 | 109 | #define DCHxINT 0x20 |
paul@3 | 110 | #define DCHxSSA 0x30 |
paul@3 | 111 | #define DCHxDSA 0x40 |
paul@3 | 112 | #define DCHxSSIZ 0x50 |
paul@3 | 113 | #define DCHxDSIZ 0x80 |
paul@3 | 114 | #define DCHxCSIZ 0x90 |
paul@3 | 115 | |
paul@3 | 116 | #define DMAIEC IEC1 |
paul@3 | 117 | #define DMAIFS IFS1 |
paul@3 | 118 | #define DMAINTBASE 28 |
paul@3 | 119 | #define DMAIPC IPC10 |
paul@3 | 120 | #define DCHIPCBASE 0 |
paul@3 | 121 | #define DCHIPCSTEP 8 |
paul@3 | 122 | |
paul@3 | 123 | /* UART conveniences. */ |
paul@3 | 124 | |
paul@3 | 125 | #define U1MODE 0xBF806000 |
paul@3 | 126 | #define U2MODE 0xBF806200 |
paul@3 | 127 | |
paul@3 | 128 | #define UARTMIN 1 |
paul@3 | 129 | #define UARTMAX 2 |
paul@3 | 130 | #define UARTBASE U1MODE |
paul@3 | 131 | #define UARTSTEP (U2MODE - U1MODE) |
paul@3 | 132 | |
paul@3 | 133 | #define UxMODE 0x00 |
paul@3 | 134 | #define UxSTA 0x10 |
paul@3 | 135 | #define UxTXREG 0x20 |
paul@3 | 136 | #define UxRXREG 0x30 |
paul@3 | 137 | #define UxBRG 0x40 |
paul@3 | 138 | |
paul@3 | 139 | #define UARTIEC IEC1 |
paul@6 | 140 | |
paul@6 | 141 | #define UxEIE 1 |
paul@6 | 142 | #define UxRIE 2 |
paul@6 | 143 | #define UxTIE 4 |
paul@6 | 144 | |
paul@3 | 145 | #define UARTIFS IFS1 |
paul@6 | 146 | |
paul@6 | 147 | #define UxEIF 1 |
paul@6 | 148 | #define UxRIF 2 |
paul@6 | 149 | #define UxTIF 4 |
paul@6 | 150 | |
paul@3 | 151 | #define UARTINTBASE 7 |
paul@3 | 152 | #define UARTINTSTEP 14 |
paul@6 | 153 | |
paul@3 | 154 | #define UART1IPC IPC8 |
paul@3 | 155 | #define UART1IPCBASE 0 |
paul@3 | 156 | #define UART2IPC IPC9 |
paul@3 | 157 | #define UART2IPCBASE 8 |
paul@3 | 158 | |
paul@3 | 159 | /* Interrupt numbers. |
paul@3 | 160 | * See... |
paul@3 | 161 | * TABLE 7-1: INTERRUPT IRQ, VECTOR AND BIT LOCATION |
paul@3 | 162 | * PIC32MX1XX/2XX 28/36/44-pin Family Data Sheet |
paul@3 | 163 | */ |
paul@3 | 164 | |
paul@3 | 165 | #define U1RX 40 |
paul@3 | 166 | #define U2RX 54 |
paul@3 | 167 | |
paul@3 | 168 | /* Address modifiers. |
paul@3 | 169 | * See... |
paul@3 | 170 | * 11.2 CLR, SET and INV Registers |
paul@3 | 171 | * PIC32MX1XX/2XX 28/36/44-pin Family Data Sheet |
paul@3 | 172 | */ |
paul@3 | 173 | |
paul@3 | 174 | #define CLR 0x4 |
paul@3 | 175 | #define SET 0x8 |
paul@3 | 176 | #define INV 0xC |
paul@0 | 177 | |
paul@0 | 178 | #endif /* __PIC32_H__ */ |