/****************************************************************************/ /* MODULE : ADC */ /****************************************************************************/ struct ADC_tag { union { vuint32_t R; struct { vuint32_t OWREN:1; vuint32_t WLSIDE:1; vuint32_t MODE:1; vuint32_t EDGLEV:1; vuint32_t TRGEN:1; vuint32_t EDGE:1; vuint32_t XSTRTEN:1; vuint32_t NSTART:1; vuint32_t:1; vuint32_t JTRGEN:1; vuint32_t JEDGE:1; vuint32_t JSTART:1; vuint32_t:2; vuint32_t CTUEN:1; vuint32_t:8; vuint32_t ADCLKSEL:1; vuint32_t ABORTCHAIN:1; vuint32_t ABORT:1; vuint32_t ACK0:1; vuint32_t OFFREFRESH:1; vuint32_t OFFCANC:1; vuint32_t:2; vuint32_t PWDN:1; } B; } MCR; /* MAIN CONFIGURATION REGISTER */ union { vuint32_t R; struct { vuint32_t:7; vuint32_t NSTART:1; vuint32_t JABORT:1; vuint32_t:2; vuint32_t JSTART:1; vuint32_t:3; vuint32_t CTUSTART:1; vuint32_t CHADDR:7; vuint32_t:3; vuint32_t ACK0:1; vuint32_t OFFREFRESH:1; vuint32_t OFFCANC:1; vuint32_t ADCSTATUS:3; } B; } MSR; /* MAIN STATUS REGISTER */ int32_t ADC_reserved1[2]; /* (0x008 - 0x00F)/4 = 0x02 */ union { vuint32_t R; struct { vuint32_t:25; vuint32_t OFFCANCOVR:1; vuint32_t EOFFSET:1; vuint32_t EOCTU:1; vuint32_t JEOC:1; vuint32_t JECH:1; vuint32_t EOC:1; vuint32_t ECH:1; } B; } ISR; /* INTERRUPT STATUS REGISTER */ union { vuint32_t R; struct { vuint32_t EOC31:1; vuint32_t EOC30:1; vuint32_t EOC29:1; vuint32_t EOC28:1; vuint32_t EOC27:1; vuint32_t EOC26:1; vuint32_t EOC25:1; vuint32_t EOC24:1; vuint32_t EOC23:1; vuint32_t EOC22:1; vuint32_t EOC21:1; vuint32_t EOC20:1; vuint32_t EOC19:1; vuint32_t EOC18:1; vuint32_t EOC17:1; vuint32_t EOC16:1; vuint32_t EOC15:1; vuint32_t EOC14:1; vuint32_t EOC13:1; vuint32_t EOC12:1; vuint32_t EOC11:1; vuint32_t EOC10:1; vuint32_t EOC9:1; vuint32_t EOC8:1; vuint32_t EOC7:1; vuint32_t EOC6:1; vuint32_t EOC5:1; vuint32_t EOC4:1; vuint32_t EOC3:1; vuint32_t EOC2:1; vuint32_t EOC1:1; vuint32_t EOC0:1; } B; } CEOCFR[3]; /* Channel Pending Register 0 */ union { vuint32_t R; struct { vuint32_t:25; //One bit added vuint32_t MSKOFFCANCOVR:1; //Moved up vuint32_t MSKEOFFSET:1; //Moved up vuint32_t MSKEOCTU:1; //New for cut 2 vuint32_t MSKJEOC:1; vuint32_t MSKJECH:1; vuint32_t MSKEOC:1; vuint32_t MSKECH:1; } B; } IMR; /* INTERRUPT MASK REGISTER */ union { vuint32_t R; struct { vuint32_t CIM31:1; vuint32_t CIM30:1; vuint32_t CIM29:1; vuint32_t CIM28:1; vuint32_t CIM27:1; vuint32_t CIM26:1; vuint32_t CIM25:1; vuint32_t CIM24:1; vuint32_t CIM23:1; vuint32_t CIM22:1; vuint32_t CIM21:1; vuint32_t CIM20:1; vuint32_t CIM19:1; vuint32_t CIM18:1; vuint32_t CIM17:1; vuint32_t CIM16:1; vuint32_t CIM15:1; vuint32_t CIM14:1; vuint32_t CIM13:1; vuint32_t CIM12:1; vuint32_t CIM11:1; vuint32_t CIM10:1; vuint32_t CIM9:1; vuint32_t CIM8:1; vuint32_t CIM7:1; vuint32_t CIM6:1; vuint32_t CIM5:1; vuint32_t CIM4:1; vuint32_t CIM3:1; vuint32_t CIM2:1; vuint32_t CIM1:1; vuint32_t CIM0:1; } B; } CIMR[3]; /* Channel Interrupt Mask Register 0 */ union { vuint32_t R; struct { vuint32_t:24; vuint32_t WDG3H:1; vuint32_t WDG2H:1; vuint32_t WDG1H:1; vuint32_t WDG0H:1; vuint32_t WDG3L:1; vuint32_t WDG2L:1; vuint32_t WDG1L:1; vuint32_t WDG0L:1; } B; } WTISR; /* WATCHDOG INTERRUPT THRESHOLD REGISTER was WDGTHR */ union { vuint32_t R; struct { vuint32_t:24; vuint32_t MSKWDG3H:1; vuint32_t MSKWDG2H:1; vuint32_t MSKWDG1H:1; vuint32_t MSKWDG0H:1; vuint32_t MSKWDG3L:1; vuint32_t MSKWDG2L:1; vuint32_t MSKWDG1L:1; vuint32_t MSKWDG0L:1; } B; } WTIMR; /* WATCHDOG INTERRUPT MASK REGISTER was IMWDGTHR */ int32_t ADC_reserved2[2]; /* (0x038 - 0x03F)/4 = 0x02 */ union { vuint32_t R; struct { vuint32_t:30; //was 16 vuint32_t DCLR:1; //moved vuint32_t DMAEN:1; //moved } B; } DMAE; /* DMAE REGISTER */ union { vuint32_t R; struct { vuint32_t DMA31:1; //was unused [16] vuint32_t DMA30:1; vuint32_t DMA29:1; vuint32_t DMA28:1; vuint32_t DMA27:1; vuint32_t DMA26:1; vuint32_t DMA25:1; vuint32_t DMA24:1; vuint32_t DMA23:1; vuint32_t DMA22:1; vuint32_t DMA21:1; vuint32_t DMA20:1; vuint32_t DMA19:1; vuint32_t DMA18:1; vuint32_t DMA17:1; vuint32_t DMA16:1; vuint32_t DMA15:1; vuint32_t DMA14:1; vuint32_t DMA13:1; vuint32_t DMA12:1; vuint32_t DMA11:1; vuint32_t DMA10:1; vuint32_t DMA9:1; vuint32_t DMA8:1; vuint32_t DMA7:1; vuint32_t DMA6:1; vuint32_t DMA5:1; vuint32_t DMA4:1; vuint32_t DMA3:1; vuint32_t DMA2:1; vuint32_t DMA1:1; vuint32_t DMA0:1; } B; } DMAR[3]; /* DMA REGISTER was [6] */ union { vuint32_t R; struct { vuint32_t:16; vuint32_t THREN:1; vuint32_t THRINV:1; vuint32_t THROP:1; vuint32_t:6; vuint32_t THRCH:7; } B; } TRC[4]; /* ADC THRESHOLD REGISTER REGISTER */ union { vuint32_t R; struct { //were in TRA & TRB vuint32_t:4; vuint32_t THRH:12; vuint32_t:4; vuint32_t THRL:12; } B; } THRHLR[4]; /* THRESHOLD REGISTER */ union { vuint32_t R; struct { //were in TRAALT & TRBALT vuint32_t:4; vuint32_t THRH:12; vuint32_t:4; vuint32_t THRL:12; } B; } THRALT[4]; /* ADC THRESHOLD REGISTER REGISTER */ union { vuint32_t R; struct { vuint32_t:25; //was 26 vuint32_t PREVAL2:2; vuint32_t PREVAL1:2; vuint32_t PREVAL0:2; vuint32_t PREONCE:1; } B; } PSCR; /* PRESAMPLING CONTROL REGISTER was PREREG */ union { vuint32_t R; struct { vuint32_t PRES31:1; //was reserved 16 vuint32_t PRES30:1; vuint32_t PRES29:1; vuint32_t PRES28:1; vuint32_t PRES27:1; vuint32_t PRES26:1; vuint32_t PRES25:1; vuint32_t PRES24:1; vuint32_t PRES23:1; vuint32_t PRES22:1; vuint32_t PRES21:1; vuint32_t PRES20:1; vuint32_t PRES19:1; vuint32_t PRES18:1; vuint32_t PRES17:1; vuint32_t PRES16:1; vuint32_t PRES15:1; vuint32_t PRES14:1; vuint32_t PRES13:1; vuint32_t PRES12:1; vuint32_t PRES11:1; vuint32_t PRES10:1; vuint32_t PRES9:1; vuint32_t PRES8:1; vuint32_t PRES7:1; vuint32_t PRES6:1; vuint32_t PRES5:1; vuint32_t PRES4:1; vuint32_t PRES3:1; vuint32_t PRES2:1; vuint32_t PRES1:1; vuint32_t PRES0:1; } B; } PSR[3]; /* PRESAMPLING REGISTER was PRER[6]*/ int32_t ADC_reserved3[1]; /* (0x090 - 0x093)/4 = 0x01 */ union { vuint32_t R; struct { vuint32_t:16; vuint32_t INPLATCH:1; vuint32_t:1; vuint32_t OFFSHIFT:2; //!!! This field only in CTR[0] vuint32_t:1; vuint32_t INPCMP:2; vuint32_t:1; vuint32_t INPSAMP:8; } B; } CTR[3]; /* CONVERSION TIMING REGISTER was CT[3] */ int32_t ADC_reserved4[1]; /* (0x0A0 - 0x0A3)/4 = 0x01 */ union { vuint32_t R; struct { vuint32_t CH31:1; //was reserved 16 vuint32_t CH30:1; vuint32_t CH29:1; vuint32_t CH28:1; vuint32_t CH27:1; vuint32_t CH26:1; vuint32_t CH25:1; vuint32_t CH24:1; vuint32_t CH23:1; vuint32_t CH22:1; vuint32_t CH21:1; vuint32_t CH20:1; vuint32_t CH19:1; vuint32_t CH18:1; vuint32_t CH17:1; vuint32_t CH16:1; vuint32_t CH15:1; vuint32_t CH14:1; vuint32_t CH13:1; vuint32_t CH12:1; vuint32_t CH11:1; vuint32_t CH10:1; vuint32_t CH9:1; vuint32_t CH8:1; vuint32_t CH7:1; vuint32_t CH6:1; vuint32_t CH5:1; vuint32_t CH4:1; vuint32_t CH3:1; vuint32_t CH2:1; vuint32_t CH1:1; vuint32_t CH0:1; } B; } NCMR[3]; /* NORMAL CONVERSION MASK REGISTER was [6] */ int32_t ADC_reserved5[1]; /* (0x0B0 - 0x0B3)/4 = 0x01 */ union { vuint32_t R; struct { vuint32_t CH31:1; //was reserved 16 vuint32_t CH30:1; vuint32_t CH29:1; vuint32_t CH28:1; vuint32_t CH27:1; vuint32_t CH26:1; vuint32_t CH25:1; vuint32_t CH24:1; vuint32_t CH23:1; vuint32_t CH22:1; vuint32_t CH21:1; vuint32_t CH20:1; vuint32_t CH19:1; vuint32_t CH18:1; vuint32_t CH17:1; vuint32_t CH16:1; vuint32_t CH15:1; vuint32_t CH14:1; vuint32_t CH13:1; vuint32_t CH12:1; vuint32_t CH11:1; vuint32_t CH10:1; vuint32_t CH9:1; vuint32_t CH8:1; vuint32_t CH7:1; vuint32_t CH6:1; vuint32_t CH5:1; vuint32_t CH4:1; vuint32_t CH3:1; vuint32_t CH2:1; vuint32_t CH1:1; vuint32_t CH0:1; } B; } JCMR[3]; /* Injected CONVERSION MASK REGISTER was ICMR[6] */ union { vuint32_t R; struct { vuint32_t:15; vuint32_t OFFSETLOAD:1; //new vuint32_t:8; vuint32_t OFFSETWORD:8; } B; } OFFWR; /* OFFSET WORD REGISTER was OFFREG*/ union { vuint32_t R; struct { vuint32_t:24; vuint32_t DSD:8; } B; } DSDR; /* DECODE SIGNALS DELAY REGISTER was DSD */ union { vuint32_t R; struct { vuint32_t:24; vuint32_t PDED:8; //was PDD } B; } PDEDR; /* POWER DOWN DELAY REGISTER was PDD */ int32_t ADC_reserved6[9]; /* (0x0CC - 0x0EF)/4 = 0x09 */ union { vuint32_t R; struct { vuint32_t TEST_CTL:32; } B; } TCTLR; /* Test control REGISTER */ int32_t ADC_reserved7[3]; /* (0x0F4 - 0x0FF)/4 = 0x03 */ union { vuint32_t R; struct { vuint32_t:12; vuint32_t VALID:1; vuint32_t OVERW:1; vuint32_t RESULT:2; vuint32_t:4; vuint32_t CDATA:12; } B; } CDR[96]; /* Channel 0-95 Data REGISTER */ }; /* end of ADC_tag */