📄 dec5416.c
字号:
/* */
/* 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. */
/* */
/* Authors: david */
/* Data: 2006/10/28 */
/********************************************************************************/
#include "type.h"
#include "sysreg.h"
#include "codec.h"
#include "mcbsp54.h"
#define MCBSP0_SPSA 0x0038u
#define MCBSP0_SPSD 0x0039u
#define MCBSP1_SPSA 0x0048u
#define MCBSP1_SPSD 0x0049u
#define MCBSP2_SPSA 0x0034u
#define MCBSP2_SPSD 0x0035u
#define MCBSP_SPCR1_SUB_ADDR 0x0000u
#define MCBSP_SPCR2_SUB_ADDR 0x0001u
#define MCBSP_RCR1_SUB_ADDR 0x002
#define MCBSP_RCR2_SUB_ADDR 0x003
#define MCBSP_XCR1_SUB_ADDR 0x004
#define MCBSP_XCR2_SUB_ADDR 0x005
#define MCBSP_SRGR1_SUB_ADDR 0x0006u
#define MCBSP_SRGR2_SUB_ADDR 0x0007u
#define MCBSP_MCR1_SUB_ADDR 0x0008u
#define MCBSP_MCR2_SUB_ADDR 0x0009u
#define SRGR1_INIT 0x0001u
#define MCBSP_PCR_SUB_ADDR 0x00E
#define MCBSP_CLKGDV 0x20 /*同步串口时钟设置*/
#define MCBSP_CLK_SPI 0x1000 /*同步串口时钟模式设置*/
/******************************************************************************/
/* codec_open() - 获得CODEC对应的MCBSP的唯一的句柄,并设置其各寄存器默认值 */
/* */
/* 参数: */
/* codec - 枚举变量CodecId中的一个元素,对应数据接口或是命令接口 */
/* */
/* 返回值: - 对应的有效句柄 */
/* */
/******************************************************************************/
HANDLE codec_open(CodecId codec)
{
/*判断是要打开哪个MCBSP*/
if(codec == 0)
{
//unsigned int data;
/*打开的是数据接口,初始化McBSP0*/
/****************************************************************/
/* Place port in reset - setting XRST & RRST to 0 */
/****************************************************************/
/*进行发送复位*/
MCBSP_SUBREG_BITWRITE(codec, SPCR1_SUBADDR, RRST, RRST_SZ, 0);
/*进行接收复位*/
MCBSP_SUBREG_BITWRITE(codec, SPCR2_SUBADDR, XRST, XRST_SZ, 0);
/****************************************************************/
/* Set values of all control registers */
/****************************************************************/
/*设置SPCR1寄存器*/
MCBSP_SUBREG_WRITE(codec, SPCR1_SUBADDR,0x4080);
//*(int *)MCBSP0_SPSA = MCBSP_SPCR1_SUB_ADDR;
//data = *(int *)MCBSP0_SPSD;
/*设置RCR1寄存器,单数据相,接受数据长度为16位,每相2个数据*/
MCBSP_SUBREG_WRITE(codec, RCR1_SUBADDR, 0x140);
//*(int *)MCBSP0_SPSA = MCBSP_RCR1_SUB_ADDR;
//data = *(int *)MCBSP0_SPSD;
/*设置RCR2寄存器,单数据相
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -