⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mcbsp_inti.c

📁 6713DSP 多通道音频串口 AD编程
💻 C
📖 第 1 页 / 共 3 页
字号:
/******************************************************************************/
/*  Copyright 2004 by SEED Electronic Technology LTD.                         */
/*  All rights reserved. SEED Electronic Technology LTD.                      */
/*  Restricted rights to use, duplicate or disclose this code are             */
/*  granted through contract.                                                 */
/******************************************************************************/
#include <stdio.h>
#include <csl.h>
#include <csl_mcbsp.h>
#include <csl_gpio.h>

#include "DEC6713.h"

#include "comm.h"
#include "type.h"
/*****************************************************************************/
#define  FRAMLONGTH    0x80
#define  DataLongth    0x7c

/////////////////////
MCBSP_Handle hMcbsp; 

unsigned short RevBuffer[FRAMLONGTH];
/*******************************************/
//系统缓冲区的定义:
//系统缓冲区的定义:
//第1个字节 :数据准备好
//第2个字节 :出现故障
//第3个字节 :有新帧
//第4个字节 :中断超时
//第5个字节 :较验出错

#define RECEIVE_RDY     0x1
#define MCBSP_ERR       0x2
#define RECEIVE_NEW     0x3
#define INT_ERR         0x4
#define CHECK_ERROR     0x5
unsigned short sys_statbuff[6];
unsigned short mcbspx[FRAMLONGTH];
unsigned short mcbspr[FRAMLONGTH];
//////////////////
int datarevlength=0,timeout,mod,s,number=0,k;
/*********************************************************/
extern far void vectors();
/********************************************************************************/
static MCBSP_Config ConfigLoopback = {
  
  /* Serial Port Control Register (SPCR) */
  MCBSP_SPCR_RMK(        
  
    MCBSP_SPCR_FREE_YES, /* Serial clock free running mode(FREE)
                              MCBSP_SPCR_FREE_NO - During emulation halt,SOFT bit
                                   determines operation of McBSP.
                              MCBSP_SPCR_FREE_YES - During emulation halt, serial 
                                   clocks continue to run.                     */                                                     
    
    MCBSP_SPCR_SOFT_YES, /* Serial clock emulation mode(SOFT)
                              MCBSP_SPCR_SOFT_NO -  In conjunction with FREE = 0, 
                                   serial port clock stops immediately during 
                                   emulation halt,thus aborting any transmissions.          
                              MCBSP_SPCR_SOFT_YES - In conjunction with FREE = 0, 
                                   during emulation halt, serial port clock stops
                                   after completion of current transmission.   */
                              
    MCBSP_SPCR_FRST_YES, /* Frame sync generator reset(FRST)
                              MCBSP_SPCR_FRST_YES /MCBSP_SPCR_FRST_0 - Frame sync 
                                   generation logic is reset.
                              MCBSP_SPCR_FRST_NO /MCBSP_SPCR_FRST_1  - Frame sync
                                   signal is generated after eight CLKG clocks. */ 
               
    MCBSP_SPCR_GRST_YES, /* Sample rate generator reset(GRST)
                             MCBSP_SPCR_GRST_YES /MCBSP_SPCR_GRST_0  - Reset    
                             MCBSP_SPCR_GRST_NO /MCBSP_SPCR_GRST_1 -Out of reset*/   
    
    MCBSP_SPCR_XINTM_XRDY,/* Transmit interrupt mode(XintM) 
                             MCBSP_SPCR_XintM_XRDY - Xint driven by XRDY    
                             MCBSP_SPCR_XintM_EOS  - Xint generated by 
                                   end-of-subframe in multichannel operation    
                             MCBSP_SPCR_XintM_FRM  - Xint generated by a new frame
                                   synchronization    
                             MCBSP_SPCR_XintM_XSYNCERR - Xint generated by XSYNCERR
                                                                                */
    MCBSP_SPCR_XSYNCERR_NO,/* Transmit synchronization error  
                             MCBSP_SPCR_XSYNCERR_NO /MCBSP_SPCR_XSYNCERR_0  - No 
                                   frame synchronization error
                             MCBSP_SPCR_XSYNCERR_YES /MCBSP_SPCR_XSYNCERR_1 - Frame 
                                   synchronization error detected by McBSP       */
    
    MCBSP_SPCR_XRST_YES, /* Transmitter reset(XRST). This resets or enables 
                            transmitter.
                             MCBSP_SPCR_XRST_YES /MCBSP_SPCR_XRST_0  - Serial port 
                                   transmitter is disabled and is in reset state.
                             MCBSP_SPCR_XRST_NO /MCBSP_SPCR_XRST_1   - Serial port 
                                   transmitter is enabled.                       */  
    
    MCBSP_SPCR_DLB_OFF,   /* Digital loopback(DLB) mode 
                             MCBSP_SPCR_DLB_OFF   - DLB Disabled 
                             MCBSP_SPCR_DLB_ON    - DLB Enabled                  */ 
    
    MCBSP_SPCR_RJUST_RZF,/*Receive data sign-extension and justification mode(RJUST)
                             MCBSP_SPCR_RJUST_RZF - Right-justify and zero-fill 
                                   MSBs in DRR.  
                             MCBSP_SPCR_RJUST_RSE - Right-justify and sign-extend
                                   MSBs in DRR.
                             MCBSP_SPCR_RJUST_LZF - Left-justify and zero-fill 
                                   LSBs in DRR.                                  */
    
    MCBSP_SPCR_CLKSTP_DISABLE,/* Clock stop(CLKSTP) mode
                             MCBSP_SPCR_CLKSTP_DISABLE - Disabled. Normal 
                                  clocking enabled for non-SPI mode.               
                             MCBSP_SPCR_CLKSTP_NODELAY -Clock starts without delay.                               
                             MCBSP_SPCR_CLKSTP_DELAY   - Clock starts with delay.*/
    
    MCBSP_SPCR_DXENA_OFF,/* DX Enabler(DXENA) -Extra delay for DX turn-on time.
                             Only first bit of data is delayed.
                             MCBSP_SPCR_DXENA_OFF - DX enabler is off.       
                             MCBSP_SPCR_DXENA_ON  - DX enabler is on.            */ 
    
    MCBSP_SPCR_RINTM_RRDY,/* Receive interrupt(Rint) mode
                             MCBSP_SPCR_RintM_RRDY - Rint driven by RRDY    
                             MCBSP_SPCR_RintM_EOS  - Rint generated by 
                                  end-of-subframe in multichannel operation
                             MCBSP_SPCR_RintM_FRM  - Rint generated by a new frame
                                  synchronization    
                             MCBSP_SPCR_RintM_RSYNCERR -Rint generated by RSYNCERR*/
   
    MCBSP_SPCR_RSYNCERR_NO,/* Receive synchronization error(RSYNCERR)
                             MCBSP_SPCR_RSYNCERR_NO /MCBSP_SPCR_RSYNCERR_0 - No
                                  frame synchronization error
                             MCBSP_SPCR_RSYNCERR_YES /MCBSP_SPCR_RSYNCERR_1 - Frame
                                  synchronization error detected by McBSP         */ 
                               
    MCBSP_SPCR_RRST_YES /* Receiver reset(RRST). This resets or enables
                           receiver.       
                             MCBSP_SPCR_RRST_YES /MCBSP_SPCR_RRST_0 - Serial 
                                 port receiver is disabled and is in reset state. 
                             MCBSP_SPCR_RRST_NO  /MCBSP_SPCR_RRST_1 - Serial
                                  port receiver is enabled.                    */
    
  ),
    
  /*  Receive Control Register (RCR) */
  MCBSP_RCR_RMK(  
  
    MCBSP_RCR_RPHASE_SINGLE, /* Receive phases 
                             MCBSP_RCR_RPHASE_SINGLE - Single phase frame                          
                             MCBSP_RCR_RPHASE_DUAL   - Dual phase frame        */
                              
    MCBSP_RCR_RFRLEN2_OF(0), /* Receive frame length in phase 2(RFRLEN2) 
                              000 0000b: 1 word per phase     
                              000 0001b: 2 words per phase
                              . . . . . . . . . . . . 
                              111 1111b: 128 words per phase                   */
    
    MCBSP_RCR_RWDLEN2_8BIT,/* Receive element length in phase 2(RWDLEN2)  
                             MCBSP_RCR_RWDLEN2_8BIT  -  8  bits   
                             MCBSP_RCR_RWDLEN2_12BIT -  12 bits
                             MCBSP_RCR_RWDLEN2_16BIT -  16 bits
                             MCBSP_RCR_RWDLEN2_20BIT -  20 bits
                             MCBSP_RCR_RWDLEN2_24BIT -  24 bits
                             MCBSP_RCR_RWDLEN2_32BIT -  32 bits                */
                             
    MCBSP_RCR_RCOMPAND_MSB,/* Receive companding mode (RCOMPAND)  
                             MCBSP_RCR_RCOMPAND_MSB  - No companding.Data 
                                  transfer starts with MSB first.    
                             MCBSP_RCR_RCOMPAND_8BITLSB - No companding, 
                                  8-bit data. Transfer starts with LSB first. 
                                  Applicable to 8-bit data or 32-bit data in 
                                  data reversal mode. 
                             MCBSP_RCR_RCOMPAND_ULAW -  Compand using m-law for
                                  receive data. Applicable to 8-bit data only   
                             MCBSP_RCR_RCOMPAND_ALAW - Compand using A-law for 
                                  receive data. Applicable to 8-bit data only  */  
     
    MCBSP_RCR_RFIG_YES, /* Receive frame ignore(RFIG)
                             MCBSP_RCR_RFIG_NO  - Unexpected receive frame
                                  synchronization pulses restart the transfer.  
                             MCBSP_RCR_RFIG_YES - Unexpected receive frame
                                  synchronization pulses are ignored.          */
                                  
    MCBSP_RCR_RDATDLY_1BIT,/* Receive data delay(RDATDLY)
                             MCBSP_RCR_RDATDLY_0BIT - 0 bit data delay 
                             MCBSP_RCR_RDATDLY_1BIT - 1 bit data delay
                             MCBSP_RCR_RDATDLY_2BIT - 2 bit data delay         */
    
    MCBSP_RCR_RFRLEN1_OF(0), /* Receive frame length in phase 1(RFRLEN1)
                             000 0000b: 1 word per phase 
                             000 0001b: 2 words per phase
                             . . . . . . . . . . . . 
                             111 1111b: 128 words per phase                    */ 
                             
    MCBSP_RCR_RWDLEN1_16BIT,/* Receive element length in phase 1(RWDLEN1)
    
                             MCBSP_RCR_RWDLEN1_8BIT  -  8 bits
                             MCBSP_RCR_RWDLEN1_12BIT - 12 bits 
                             MCBSP_RCR_RWDLEN1_16BIT - 16 bits 
                             MCBSP_RCR_RWDLEN1_20BIT - 20 bits 
                             MCBSP_RCR_RWDLEN1_24BIT - 24 bits
                             MCBSP_RCR_RWDLEN1_32BIT - 32 bits                 */
    
    MCBSP_RCR_RWDREVRS_DISABLE/* Receive 32-bit bit reversal feature.(RWDREVRS)
                             MCBSP_RCR_RWDREVRS_DISABLE -32 bit reversal disabled
                             MCBSP_RCR_RWDREVRS_ENABLE  -32 bit reversal enabled. 
                                  32-bit data is received LSB first.        
                                  RWDLEN should be set for 32-bit operation.
                                  RCOMPAND should be set to 01b else operation
                                  is undefined.                                */
  ),

  /* Transmit Control Register (XCR) */
  MCBSP_XCR_RMK(            
    
    MCBSP_XCR_XPHASE_SINGLE,/* Transmit phases
                             MCBSP_XCR_XPHASE_SINGLE - Single phase frame
                             MCBSP_XCR_XPHASE_DUAL   - Dual phase frame       */
    
    MCBSP_XCR_XFRLEN2_OF(0),/* Transmit frame length in phase 2(XFRLEN2) 
                             000 0000b: 1 word per phase   
                             000 0001b: 2 words per phase  
                             . . . . . . . . . . . .       
                             111 1111b: 128 words per phase                   */
                             
    MCBSP_XCR_XWDLEN2_8BIT, /*  Transmit element length in phase 2
                             MCBSP_XCR_XWDLEN2_8BIT    -  8  bits                   
                             MCBSP_XCR_XWDLEN2_12BIT   -  12 bits                   

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -