rt-thread-official/bsp/tms320f28379d/libraries/headers/include/F2837xD_mcbsp.h

324 lines
14 KiB
C

//###########################################################################
//
// FILE: F2837xD_mcbsp.h
//
// TITLE: MCBSP Register Definitions.
//
//###########################################################################
// $TI Release: F2837xD Support Library v3.05.00.00 $
// $Release Date: Tue Jun 26 03:15:23 CDT 2018 $
// $Copyright:
// Copyright (C) 2013-2018 Texas Instruments Incorporated - http://www.ti.com/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions
// are met:
//
// Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
//
// Redistributions in binary form must reproduce the above copyright
// notice, this list of conditions and the following disclaimer in the
// documentation and/or other materials provided with the
// distribution.
//
// Neither the name of Texas Instruments Incorporated nor the names of
// its contributors may be used to endorse or promote products derived
// from this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// $
//###########################################################################
#ifndef __F2837xD_MCBSP_H__
#define __F2837xD_MCBSP_H__
#ifdef __cplusplus
extern "C" {
#endif
//---------------------------------------------------------------------------
// MCBSP Individual Register Bit Definitions:
struct DRR2_BITS { // bits description
Uint16 HWLB:8; // 7:0 High word low byte
Uint16 HWHB:8; // 15:8 High word high byte
};
union DRR2_REG {
Uint16 all;
struct DRR2_BITS bit;
};
struct DRR1_BITS { // bits description
Uint16 LWLB:8; // 7:0 Low word low byte
Uint16 LWHB:8; // 15:8 Low word high byte
};
union DRR1_REG {
Uint16 all;
struct DRR1_BITS bit;
};
struct DXR2_BITS { // bits description
Uint16 HWLB:8; // 7:0 High word low byte
Uint16 HWHB:8; // 15:8 High word high byte
};
union DXR2_REG {
Uint16 all;
struct DXR2_BITS bit;
};
struct DXR1_BITS { // bits description
Uint16 LWLB:8; // 7:0 Low word low byte
Uint16 LWHB:8; // 15:8 Low word high byte
};
union DXR1_REG {
Uint16 all;
struct DXR1_BITS bit;
};
struct SPCR2_BITS { // bits description
Uint16 XRST:1; // 0 Transmitter reset
Uint16 XRDY:1; // 1 Transmitter ready
Uint16 XEMPTY:1; // 2 Transmitter empty
Uint16 XSYNCERR:1; // 3 Transmit sync error INT flag
Uint16 XINTM:2; // 5:4 Transmit Interupt mode bits
Uint16 GRST:1; // 6 Sample rate generator reset
Uint16 FRST:1; // 7 Frame sync logic reset
Uint16 SOFT:1; // 8 SOFT bit
Uint16 FREE:1; // 9 FREE bit
Uint16 rsvd1:6; // 15:10 Reserved
};
union SPCR2_REG {
Uint16 all;
struct SPCR2_BITS bit;
};
struct SPCR1_BITS { // bits description
Uint16 RRST:1; // 0 Receiver reset
Uint16 RRDY:1; // 1 Receiver ready
Uint16 RFULL:1; // 2 Receiver full
Uint16 RSYNCERR:1; // 3 Receive sync error INT flag
Uint16 RINTM:2; // 5:4 Receive Interupt mode bits
Uint16 rsvd1:1; // 6 Reserved
Uint16 DXENA:1; // 7 DX delay enable
Uint16 rsvd2:3; // 10:8 Reserved
Uint16 CLKSTP:2; // 12:11 Clock stop mode
Uint16 RJUST:2; // 14:13 Rx sign extension and justification mode
Uint16 DLB:1; // 15 Digital loopback
};
union SPCR1_REG {
Uint16 all;
struct SPCR1_BITS bit;
};
struct RCR2_BITS { // bits description
Uint16 RDATDLY:2; // 1:0 Receive data delay
Uint16 RFIG:1; // 2 Receive frame sync ignore
Uint16 RCOMPAND:2; // 4:3 Receive Companding Mode selects
Uint16 RWDLEN2:3; // 7:5 Receive word length 2
Uint16 RFRLEN2:7; // 14:8 Receive Frame length 2
Uint16 RPHASE:1; // 15 Receive Phase
};
union RCR2_REG {
Uint16 all;
struct RCR2_BITS bit;
};
struct RCR1_BITS { // bits description
Uint16 rsvd1:5; // 4:0 Reserved
Uint16 RWDLEN1:3; // 7:5 Receive word length 1
Uint16 RFRLEN1:7; // 14:8 Receive Frame length 1
Uint16 rsvd2:1; // 15 Reserved
};
union RCR1_REG {
Uint16 all;
struct RCR1_BITS bit;
};
struct XCR2_BITS { // bits description
Uint16 XDATDLY:2; // 1:0 Transmit data delay
Uint16 XFIG:1; // 2 Transmit frame sync ignore
Uint16 XCOMPAND:2; // 4:3 Transmit Companding Mode selects
Uint16 XWDLEN2:3; // 7:5 Transmit word length 2
Uint16 XFRLEN2:7; // 14:8 Transmit Frame length 2
Uint16 XPHASE:1; // 15 Transmit Phase
};
union XCR2_REG {
Uint16 all;
struct XCR2_BITS bit;
};
struct XCR1_BITS { // bits description
Uint16 rsvd1:5; // 4:0 Reserved
Uint16 XWDLEN1:3; // 7:5 Transmit word length 1
Uint16 XFRLEN1:7; // 14:8 Transmit Frame length 1
Uint16 rsvd2:1; // 15 Reserved
};
union XCR1_REG {
Uint16 all;
struct XCR1_BITS bit;
};
struct SRGR2_BITS { // bits description
Uint16 FPER:12; // 11:0 Frame-sync period
Uint16 FSGM:1; // 12 Frame sync generator mode
Uint16 CLKSM:1; // 13 Sample rate generator mode
Uint16 rsvd1:1; // 14 Reserved
Uint16 GSYNC:1; // 15 CLKG sync
};
union SRGR2_REG {
Uint16 all;
struct SRGR2_BITS bit;
};
struct SRGR1_BITS { // bits description
Uint16 CLKGDV:8; // 7:0 CLKG divider
Uint16 FWID:8; // 15:8 Frame width
};
union SRGR1_REG {
Uint16 all;
struct SRGR1_BITS bit;
};
struct MCR2_BITS { // bits description
Uint16 XMCM:2; // 1:0 Transmit data delay
Uint16 XCBLK:3; // 4:2 Transmit frame sync ignore
Uint16 XPABLK:2; // 6:5 Transmit Companding Mode selects
Uint16 XPBBLK:2; // 8:7 Transmit word length 2
Uint16 XMCME:1; // 9 Transmit Frame length 2
Uint16 rsvd1:6; // 15:10 Reserved
};
union MCR2_REG {
Uint16 all;
struct MCR2_BITS bit;
};
struct MCR1_BITS { // bits description
Uint16 RMCM:1; // 0 Receive multichannel mode
Uint16 rsvd1:1; // 1 Reserved
Uint16 RCBLK:3; // 4:2 eceive current block
Uint16 RPABLK:2; // 6:5 Receive partition A Block
Uint16 RPBBLK:2; // 8:7 Receive partition B Block
Uint16 RMCME:1; // 9 Receive multi-channel enhance mode
Uint16 rsvd2:6; // 15:10 Reserved
};
union MCR1_REG {
Uint16 all;
struct MCR1_BITS bit;
};
struct PCR_BITS { // bits description
Uint16 CLKRP:1; // 0 Receive Clock polarity
Uint16 CLKXP:1; // 1 Transmit clock polarity
Uint16 FSRP:1; // 2 Receive Frame synchronization polarity
Uint16 FSXP:1; // 3 Transmit Frame synchronization polarity
Uint16 rsvd1:1; // 4 Reserved
Uint16 rsvd2:1; // 5 Reserved
Uint16 rsvd3:1; // 6 Reserved
Uint16 SCLKME:1; // 7 Sample clock mode selection
Uint16 CLKRM:1; // 8 Receiver Clock Mode
Uint16 CLKXM:1; // 9 Transmit Clock Mode.
Uint16 FSRM:1; // 10 Receive Frame Synchronization Mode
Uint16 FSXM:1; // 11 Transmit Frame Synchronization Mode
Uint16 rsvd4:4; // 15:12 Reserved
};
union PCR_REG {
Uint16 all;
struct PCR_BITS bit;
};
struct MFFINT_BITS { // bits description
Uint16 XINT:1; // 0 Enable for Receive Interrupt
Uint16 rsvd1:1; // 1 Reserved
Uint16 RINT:1; // 2 Enable for transmit Interrupt
Uint16 rsvd2:13; // 15:3 Reserved
};
union MFFINT_REG {
Uint16 all;
struct MFFINT_BITS bit;
};
struct McBSP_REGS {
union DRR2_REG DRR2; // Data receive register bits 31-16
union DRR1_REG DRR1; // Data receive register bits 15-0
union DXR2_REG DXR2; // Data transmit register bits 31-16
union DXR1_REG DXR1; // Data transmit register bits 15-0
union SPCR2_REG SPCR2; // Control register 2
union SPCR1_REG SPCR1; // Control register 1
union RCR2_REG RCR2; // Receive Control register 2
union RCR1_REG RCR1; // Receive Control register 1
union XCR2_REG XCR2; // Transmit Control register 2
union XCR1_REG XCR1; // Transmit Control register 1
union SRGR2_REG SRGR2; // Sample rate generator register 2
union SRGR1_REG SRGR1; // Sample rate generator register 1
union MCR2_REG MCR2; // Multi-channel register 2
union MCR1_REG MCR1; // Multi-channel register 1
Uint16 RCERA; // Receive channel enable partition A
Uint16 RCERB; // Receive channel enable partition B
Uint16 XCERA; // Transmit channel enable partition A
Uint16 XCERB; // Transmit channel enable partition B
union PCR_REG PCR; // Pin Control register
Uint16 RCERC; // Receive channel enable partition C
Uint16 RCERD; // Receive channel enable partition D
Uint16 XCERC; // Transmit channel enable partition C
Uint16 XCERD; // Transmit channel enable partition D
Uint16 RCERE; // Receive channel enable partition E
Uint16 RCERF; // Receive channel enable partition F
Uint16 XCERE; // Transmit channel enable partition E
Uint16 XCERF; // Transmit channel enable partition F
Uint16 RCERG; // Receive channel enable partition G
Uint16 RCERH; // Receive channel enable partition H
Uint16 XCERG; // Transmit channel enable partition G
Uint16 XCERH; // Transmit channel enable partition H
Uint16 rsvd1[4]; // Reserved
union MFFINT_REG MFFINT; // Interrupt enable
};
//---------------------------------------------------------------------------
// MCBSP External References & Function Declarations:
//
#ifdef CPU1
extern volatile struct McBSP_REGS McbspaRegs;
extern volatile struct McBSP_REGS McbspbRegs;
#endif
#ifdef CPU2
extern volatile struct McBSP_REGS McbspaRegs;
extern volatile struct McBSP_REGS McbspbRegs;
#endif
#ifdef __cplusplus
}
#endif /* extern "C" */
#endif
//===========================================================================
// End of file.
//===========================================================================