Library to control a Graphics TFT connected to 4-wire SPI - revised for the Raio RA8875 Display Controller.

Dependents:   FRDM_RA8875_mPaint RA8875_Demo RA8875_KeyPadDemo SignalGenerator ... more

Fork of SPI_TFT by Peter Drescher

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers RA8875_Regs.h Source File

RA8875_Regs.h

00001 //
00002 // RA8875 Display Controller Register Definitions.
00003 //
00004 //
00005 #ifndef RA8875_REGS_H
00006 #define RA8875_REGS_H
00007 
00008 // Touch Panel public macros
00009 #define RESISTIVE_TOUCH_POINTS 1
00010 
00011 /* Touch Panel Enable/Disable Reg TPCR0[7] */
00012 #define TP_ENABLE   ((uint8_t)(1<<7))
00013 #define TP_DISABLE  ((uint8_t)(0<<7))
00014 
00015 /* Touch Panel operating mode Reg TPCR1[6] */
00016 #define TP_MODE_AUTO    ((uint8_t)(0<<6))
00017 #define TP_MODE_MANUAL  ((uint8_t)(1<<6))
00018 
00019 /* Touch Panel debounce Reg TPCR1[2]    */
00020 #define TP_DEBOUNCE_OFF ((uint8_t)(0<<2))
00021 #define TP_DEBOUNCE_ON  ((uint8_t)(1<<2))
00022 
00023 /* Touch Panel manual modes Reg TPCR1[1:0]  */
00024 #define TP_MANUAL_IDLE      0
00025 #define TP_MANUAL_WAIT      1
00026 #define TP_MANUAL_LATCH_X   2
00027 #define TP_MANUAL_LATCH_Y   3
00028 
00029 /* Touch Panel ADC Clock modes Reg TPCR0[2:0] */
00030 #define TP_ADC_CLKDIV_1            0
00031 #define TP_ADC_CLKDIV_2            1
00032 #define TP_ADC_CLKDIV_4            2
00033 #define TP_ADC_CLKDIV_8            3
00034 #define TP_ADC_CLKDIV_16           4
00035 #define TP_ADC_CLKDIV_32           5
00036 #define TP_ADC_CLKDIV_64           6
00037 #define TP_ADC_CLKDIV_128          7
00038 
00039 
00040 /* Touch Panel Sample Time Reg TPCR0[6:4] */
00041 #define TP_ADC_SAMPLE_512_CLKS     ((uint8_t)(0<<4))
00042 #define TP_ADC_SAMPLE_1024_CLKS    ((uint8_t)(1<<4))
00043 #define TP_ADC_SAMPLE_2048_CLKS    ((uint8_t)(2<<4))
00044 #define TP_ADC_SAMPLE_4096_CLKS    ((uint8_t)(3<<4))
00045 #define TP_ADC_SAMPLE_8192_CLKS    ((uint8_t)(4<<4))
00046 #define TP_ADC_SAMPLE_16384_CLKS   ((uint8_t)(5<<4))
00047 #define TP_ADC_SAMPLE_32768_CLKS   ((uint8_t)(6<<4))
00048 #define TP_ADC_SAMPLE_65536_CLKS   ((uint8_t)(7<<4))
00049 
00050 /* RA8875 interrupt enable/flag/clear masks */
00051 #define RA8875_INT_KEYSCAN          ((uint8_t)(1<<4))    /**< KEYSCAN interrupts  */
00052 #define RA8875_INT_DMA              ((uint8_t)(1<<3))    /**< DMA interrupts  */
00053 #define RA8875_INT_TP               ((uint8_t)(1<<2))    /**< Touch panel interrupts  */
00054 #define RA8875_INT_BTE              ((uint8_t)(1<<1))    /**< BTE process complete interrupts  */
00055 #define RA8875_INT_BTEMCU_FONTWR    ((uint8_t)(1<<0))    /**< BTE-MCU-R/W or Font-Write interrupts  */
00056 
00057 
00058 // RA8875 Register Names and Bit-Values
00059 //
00060 // Leveraged from Adafruit library for register names that match
00061 // the RA8875 PDF documentation.
00062 //
00063 // Missing registered that are used herein have been added
00064 
00065 // Command/Data pins for SPI
00066 //#define RA8875_DATAWRITE            0x00
00067 //#define RA8875_DATAREAD             0x40
00068 //#define RA8875_CMDWRITE             0x80
00069 //#define RA8875_CMDREAD              0xC0
00070 
00071 // Registers & bits
00072 #define RA8875_PWRR                   0x01
00073 #define RA8875_PWRR_DISPON            0x80
00074 #define RA8875_PWRR_DISPOFF           0x00
00075 #define RA8875_PWRR_SLEEP             0x02
00076 #define RA8875_PWRR_NORMAL            0x00
00077 #define RA8875_PWRR_SOFTRESET         0x01
00078 
00079 #define RA8875_MRWC                   0x02
00080 
00081 #define RA8875_GPIOX                  0xC7
00082 
00083 #define RA8875_SYSR                   0x10
00084 #define RA8875_SYSR_8BPP              0x00
00085 #define RA8875_SYSR_16BPP             0x0C
00086 #define RA8875_SYSR_MCU8              0x00
00087 #define RA8875_SYSR_MCU16             0x03
00088 
00089 #define RA8875_PCSR                   0x04
00090 #define RA8875_PCSR_PDATR             0x00
00091 #define RA8875_PCSR_PDATL             0x80
00092 #define RA8875_PCSR_CLK               0x00
00093 #define RA8875_PCSR_2CLK              0x01
00094 #define RA8875_PCSR_4CLK              0x02
00095 #define RA8875_PCSR_8CLK              0x03
00096 
00097 #define RA8875_HDWR                   0x14
00098 
00099 #define RA8875_HNDFTR                 0x15
00100 #define RA8875_HNDFTR_DE_HIGH         0x00
00101 #define RA8875_HNDFTR_DE_LOW          0x80
00102 
00103 #define RA8875_HNDR                   0x16
00104 #define RA8875_HSTR                   0x17
00105 #define RA8875_HPWR                   0x18
00106 #define RA8875_HPWR_LOW               0x00
00107 #define RA8875_HPWR_HIGH              0x80
00108 
00109 #define RA8875_VDHR0                  0x19
00110 #define RA8875_VDHR1                  0x1A
00111 #define RA8875_VNDR0                  0x1B
00112 #define RA8875_VNDR1                  0x1C
00113 #define RA8875_VSTR0                  0x1D
00114 #define RA8875_VSTR1                  0x1E
00115 #define RA8875_VPWR                   0x1F
00116 #define RA8875_VPWR_LOW               0x00
00117 #define RA8875_VPWR_HIGH              0x80
00118 
00119 #define RA8875_DPCR                   0x20
00120 #define RA8875_FNCR0                  0x21
00121 
00122 #define RA8875_FNCR1                  0x22
00123 #define RA8875_CGSR                   0x23
00124 #define RA8875_HOFS0                  0x24
00125 #define RA8875_HOFS1                  0x25
00126 #define RA8875_VOFS0                  0x26
00127 #define RA8875_VOFS1                  0x27
00128 
00129 #define RA8875_FLDR                   0x29
00130 #define RA8875_FCURXL                 0x2A
00131 #define RA8875_FCURXH                 0x2B
00132 #define RA8875_FCURYL                 0x2C
00133 #define RA8875_FCURYH                 0x2D
00134 #define RA8875_FWTYPSR                0x2E
00135 #define RA8875_SFROMS                 0x2F
00136 
00137 #define RA8875_HSAW0                  0x30
00138 #define RA8875_HSAW1                  0x31
00139 #define RA8875_VSAW0                  0x32
00140 #define RA8875_VSAW1                  0x33
00141 
00142 #define RA8875_HEAW0                  0x34
00143 #define RA8875_HEAW1                  0x35
00144 #define RA8875_VEAW0                  0x36
00145 #define RA8875_VEAW1                  0x37
00146 
00147 #define RA8875_MWCR0                  0x40
00148 #define RA8875_MWCR0_GFXMODE          0x00
00149 #define RA8875_MWCR0_TXTMODE          0x80
00150 
00151 #define RA8875_MWCR1                  0x41
00152 #define RA8875_MWCR1_GFXCURDIS        0x00
00153 #define RA8875_MWCR1_GFXCURENA        0x80
00154 
00155 #define RA8875_BTCR                   0x44
00156 #define RA8875_MRCD                   0x45
00157 #define RA8875_CURH0                  0x46
00158 #define RA8875_CURH1                  0x47
00159 #define RA8875_CURV0                  0x48
00160 #define RA8875_CURV1                  0x49
00161 
00162 #define RA8875_RCURH0                 0x4A
00163 #define RA8875_RCURH1                 0x4B
00164 #define RA8875_RCURV0                 0x4C
00165 #define RA8875_RCURV1                 0x4D
00166 #define RA8875_CURHS                  0x4E
00167 #define RA8875_CURVS                  0x4F
00168 
00169 #define RA8875_BECR0                  0x50
00170 #define RA8875_BECR1                  0x51
00171 
00172 #define RA8875_LTPR0                  0x52
00173 #define RA8875_LTPR1                  0x53
00174 
00175 #define RA8875_HSBE0                  0x54
00176 #define RA8875_HSBE1                  0x55
00177 #define RA8875_VSBE0                  0x56
00178 #define RA8875_VSBE1                  0x57
00179 #define RA8875_HDBE0                  0x58
00180 #define RA8875_HDBE1                  0x59
00181 #define RA8875_VDBE0                  0x5A
00182 #define RA8875_VDBE1                  0x5B
00183 #define RA8875_BEWR0                  0x5C
00184 #define RA8875_BEWR1                  0x5D
00185 #define RA8875_BEHR0                  0x5E
00186 #define RA8875_BEHR1                  0x5F
00187 
00188 
00189 
00190 
00191 #define RA8875_TPCR0                  0x70
00192 #define RA8875_TPCR0_ENABLE           0x80
00193 #define RA8875_TPCR0_DISABLE          0x00
00194 #define RA8875_TPCR0_WAIT_512CLK      0x00
00195 #define RA8875_TPCR0_WAIT_1024CLK     0x10
00196 #define RA8875_TPCR0_WAIT_2048CLK     0x20
00197 #define RA8875_TPCR0_WAIT_4096CLK     0x30
00198 #define RA8875_TPCR0_WAIT_8192CLK     0x40
00199 #define RA8875_TPCR0_WAIT_16384CLK    0x50
00200 #define RA8875_TPCR0_WAIT_32768CLK    0x60
00201 #define RA8875_TPCR0_WAIT_65536CLK    0x70
00202 #define RA8875_TPCR0_WAKEENABLE       0x08
00203 #define RA8875_TPCR0_WAKEDISABLE      0x00
00204 #define RA8875_TPCR0_ADCCLK_DIV1      0x00
00205 #define RA8875_TPCR0_ADCCLK_DIV2      0x01
00206 #define RA8875_TPCR0_ADCCLK_DIV4      0x02
00207 #define RA8875_TPCR0_ADCCLK_DIV8      0x03
00208 #define RA8875_TPCR0_ADCCLK_DIV16     0x04
00209 #define RA8875_TPCR0_ADCCLK_DIV32     0x05
00210 #define RA8875_TPCR0_ADCCLK_DIV64     0x06
00211 #define RA8875_TPCR0_ADCCLK_DIV128    0x07
00212 
00213 #define RA8875_TPCR1                  0x71
00214 #define RA8875_TPCR1_AUTO             0x00
00215 #define RA8875_TPCR1_MANUAL           0x40
00216 #define RA8875_TPCR1_VREFINT          0x00
00217 #define RA8875_TPCR1_VREFEXT          0x20
00218 #define RA8875_TPCR1_DEBOUNCE         0x04
00219 #define RA8875_TPCR1_NODEBOUNCE       0x00
00220 #define RA8875_TPCR1_IDLE             0x00
00221 #define RA8875_TPCR1_WAIT             0x01
00222 #define RA8875_TPCR1_LATCHX           0x02
00223 #define RA8875_TPCR1_LATCHY           0x03
00224 
00225 #define RA8875_TPXH                   0x72
00226 #define RA8875_TPYH                   0x73
00227 #define RA8875_TPXYL                  0x74
00228 #define RA8875_TPXYL_ADET             0x80
00229 
00230 #define RA8875_PLLC1                  0x88
00231 #define RA8875_PLLC1_PLLDIV2          0x80
00232 #define RA8875_PLLC1_PLLDIV1          0x00
00233 
00234 #define RA8875_PLLC2                  0x89
00235 #define RA8875_PLLC2_DIV1             0x00
00236 #define RA8875_PLLC2_DIV2             0x01
00237 #define RA8875_PLLC2_DIV4             0x02
00238 #define RA8875_PLLC2_DIV8             0x03
00239 #define RA8875_PLLC2_DIV16            0x04
00240 #define RA8875_PLLC2_DIV32            0x05
00241 #define RA8875_PLLC2_DIV64            0x06
00242 #define RA8875_PLLC2_DIV128           0x07
00243 
00244 #define RA8875_MCLR                   0x8E
00245 #define RA8875_MCLR_START             0x80
00246 #define RA8875_MCLR_STOP              0x00
00247 #define RA8875_MCLR_READSTATUS        0x80
00248 #define RA8875_MCLR_FULL              0x00
00249 #define RA8875_MCLR_ACTIVE            0x40
00250 
00251 #define RA8875_P1CR                   0x8A
00252 #define RA8875_P1CR_ENABLE            0x80
00253 #define RA8875_P1CR_DISABLE           0x00
00254 #define RA8875_P1CR_CLKOUT            0x10
00255 #define RA8875_P1CR_PWMOUT            0x00
00256 
00257 #define RA8875_P1DCR                  0x8B
00258 
00259 #define RA8875_P2CR                   0x8C
00260 #define RA8875_P2CR_ENABLE            0x80
00261 #define RA8875_P2CR_DISABLE           0x00
00262 #define RA8875_P2CR_CLKOUT            0x10
00263 #define RA8875_P2CR_PWMOUT            0x00
00264 
00265 #define RA8875_PWM_CLK_DIV1           0x00
00266 #define RA8875_PWM_CLK_DIV2           0x01
00267 #define RA8875_PWM_CLK_DIV4           0x02
00268 #define RA8875_PWM_CLK_DIV8           0x03
00269 #define RA8875_PWM_CLK_DIV16          0x04
00270 #define RA8875_PWM_CLK_DIV32          0x05
00271 #define RA8875_PWM_CLK_DIV64          0x06
00272 #define RA8875_PWM_CLK_DIV128         0x07
00273 #define RA8875_PWM_CLK_DIV256         0x08
00274 #define RA8875_PWM_CLK_DIV512         0x09
00275 #define RA8875_PWM_CLK_DIV1024        0x0A
00276 #define RA8875_PWM_CLK_DIV2048        0x0B
00277 #define RA8875_PWM_CLK_DIV4096        0x0C
00278 #define RA8875_PWM_CLK_DIV8192        0x0D
00279 #define RA8875_PWM_CLK_DIV16384       0x0E
00280 #define RA8875_PWM_CLK_DIV32768       0x0F
00281 
00282 #define RA8875_P2DCR                  0x8D
00283 
00284 #define RA8875_DCR                    0x90
00285 #define RA8875_DCR_LINESQUTRI_START   0x80
00286 #define RA8875_DCR_LINESQUTRI_STOP    0x00
00287 #define RA8875_DCR_LINESQUTRI_STATUS  0x80
00288 #define RA8875_DCR_CIRCLE_START       0x40
00289 #define RA8875_DCR_CIRCLE_STATUS      0x40
00290 #define RA8875_DCR_CIRCLE_STOP        0x00
00291 #define RA8875_DCR_FILL               0x20
00292 #define RA8875_DCR_NOFILL             0x00
00293 #define RA8875_DCR_DRAWSQUARE         0x10
00294 #define RA8875_DCR_DRAWTRIANGLE       0x01
00295 #define RA8875_DCR_DRAWLINE           0x00
00296 
00297 #define RA8875_DLHSR0                 0x91
00298 #define RA8875_DLHSR1                 0x92
00299 #define RA8875_DLVSR0                 0x93
00300 #define RA8875_DLVSR1                 0x94
00301 #define RA8875_DLHER0                 0x95
00302 #define RA8875_DLHER1                 0x96
00303 #define RA8875_DLVER0                 0x97
00304 #define RA8875_DLVER1                 0x98
00305 #define RA8875_DCHR0                  0x99
00306 #define RA8875_DCHHR1                 0x9A
00307 #define RA8875_DCVR0                  0x9B
00308 #define RA8875_DCVR1                  0x9C
00309 
00310 #define RA8875_DCRR                   0x9D
00311 
00312 #define RA8875_ELLIPSE                0xA0
00313 #define RA8875_ELLIPSE_STATUS         0x80
00314 
00315 #define RA8875_ELLA0                  0xA1
00316 #define RA8875_ELLA1                  0xA2
00317 #define RA8875_ELLB0                  0xA3
00318 #define RA8875_ELLB1                  0xA4
00319 #define RA8875_DEHR0                  0xA5
00320 #define RA8875_DEHR1                  0xA6
00321 #define RA8875_DEVR0                  0xA7
00322 #define RA8875_DEVR1                  0xA8
00323 
00324 #define RA8875_DTPH0                  0xA9
00325 #define RA8875_DTPH1                  0xAA
00326 #define RA8875_DTPV0                  0xAB
00327 #define RA8875_DTPV1                  0xAC
00328 
00329 #define RA8875_KSCR1                  0xC0
00330 #define RA8875_KSCR2                  0xC1
00331 
00332 #define RA8875_INTC1                  0xF0
00333 #define RA8875_INTC1_KEY              0x10
00334 #define RA8875_INTC1_DMA              0x08
00335 #define RA8875_INTC1_TP               0x04
00336 #define RA8875_INTC1_BTE              0x02
00337 
00338 #define RA8875_INTC2                  0xF1
00339 #define RA8875_INTC2_KEY              0x10
00340 #define RA8875_INTC2_DMA              0x08
00341 #define RA8875_INTC2_TP               0x04
00342 #define RA8875_INTC2_BTE              0x02
00343 
00344 #endif // RA8875_REGS_H