历史上的今天
今天是:2024年08月23日(星期五)
2021年08月23日 | LPC1768 SPI 外设控制DA(PCM1796)调试记录
2021-08-23 来源:eefocus
/*******************************************************
DA:PCM1796初始化
2015年1月29日 11:43:18
CopyRight @ ZengZhi
**********************************************************/
#include "DA1796.h"
#define SPI_ID (2)
#define SPI2_CS (1 << 16) /* P0.16口为片选脚 */
#define CE2_Low() (LPC_GPIO0->FIOCLR |= SPI2_CS) /* 选中从器件 */
#define CE2_High() (LPC_GPIO0->FIOSET |= SPI2_CS)
#define SPI3_CS (1 << 21) /* P1.21口为片选脚 */
#define CE3_Low() (LPC_GPIO1->FIOCLR |= SPI3_CS) /* 选中从器件 */
#define CE3_High() (LPC_GPIO1->FIOSET |= SPI3_CS)
#define RESET_1796() (LPC_GPIO4->FIOCLR |= (1<<28))
#define WORK_1796() (LPC_GPIO4->FIOSET |= (1<<28))
volatile uint8_t RcvFlag = 0; /* 接收到新数据标志 */
volatile uint8_t RcvData = 0; /* 接收到的数据 */
//U47
void SSP1_Init_SPI1(void)
{
LPC_SC->PCONP |= (1 << 21); /* 打开SSP0电源 */
/**
P0.6:SPI1_SEL
P0.7:SPI1_CLK
P0.8:SPI1_MISO
P0.9:SPI1_MOSI
**/
/* SSEL1 | SCK1 |MISO1 | MOSI1 设置管脚功能 */
LPC_PINCON->PINSEL0 |= (0x02ul << 12) | (0x02ul << 14) | (0x02ul << 16) |(0x02ul << 18);
/*
* 设置数据长度为8位,帧格式SPI,SCK高有效,第一个时钟沿采样,位速率为默认值
*/
LPC_SSP1 ->CR0 = (0x01 << 8) /* SCR 设置SPI时钟分频 25M/(0x24 * (0x01+1)) */
| (0x00 << 7) /* CPHA 时钟输出相位 */
| (0x00 << 6) /* CPOL 时钟输出极性 */
| (0x00 << 4) /* FRF 帧格式 00=SPI */
| (0x0F << 0); /* DSS 数据长度,16bit */
LPC_SSP1->CR1 = (0x00 << 3) /* SOD 从机输出禁能,0=允许 */
| (0x00 << 2) /* MS 主从选择,0=主机,1=从机 */
| (0x01 << 1) /* SSE SSP使能 */
| (0x00 << 0); /* LBM 回写模式 */
LPC_SSP1->CPSR = 0x24; //0x52; /* 设置SSP从PCLK获得的分频值, */
/* 主模式下有效, 最小值为0x02 */
}
/*********************************************************************************************************
** Function name: SSP_SendData
** Descriptions: SSP接口向SSP总线发送数据
** input parameters: data 待发送的数据
** output parameters: 返回值为读取的数据
*********************************************************************************************************/
uint16_t SSP1_SendData(uint16_t data)
{
while ((LPC_SSP1->SR & 0x02) == 0); /* 等待发送FIFO留出空间 */
LPC_SSP0->DR = data;
while ((LPC_SSP1->SR & 0x10) == 0x10); /* 等待数据帧发送完毕 */
return ((uint16_t)LPC_SSP1->DR);
}
void SSPSendCmd_SPI1(uint8_t addr,uint8_t ndata)
{
uint16_t data = (0<<15) | (addr<<8) | (ndata);
SSP1_SendData(data);
}
/*********************************************************************************************************
** Function name: SSP0_Init
** Descriptions: 将SSP控制器设置为主机
** input parameters: 无
** output parameters: 无
**********************************************************************************************************/
void SSP0_Init_SPI3(void)
{
LPC_SC->PCONP |= (1 << 21); /* 打开SSP0电源 */
/**
P1.21:SPI3_SEL
P1.20:SPI3_CLK
P1.23:SPI3_MISO
P1.24:SPI3_MOSI
**/
/* SSEL0 | SCK0 |MISO0 | MOSI0 设置管脚功能 U2 */
LPC_PINCON->PINSEL3 |= (0x03ul << 8) | (0x03ul << 10) | (0x03ul << 14) |(0x03ul << 16);
/*
* 设置数据长度为8位,帧格式SPI,SCK高有效,第一个时钟沿采样,位速率为默认值
*/
LPC_SSP0->CR0 = (0x01 << 8) /* SCR 设置SPI时钟分频 25M/(0x24 * (0x01+1)) */
| (0x00 << 7) /* CPHA 时钟输出相位 */
| (0x00 << 6) /* CPOL 时钟输出极性 */
| (0x00 << 4) /* FRF 帧格式 00=SPI */
| (0x0F << 0); /* DSS 数据长度,16bit */
LPC_SSP0->CR1 = (0x00 << 3) /* SOD 从机输出禁能,0=允许 */
| (0x00 << 2) /* MS 主从选择,0=主机,1=从机 */
下一篇:LPC17XX之SSP0/1接口
史海拾趣
|
最基本的开关电容电路是由电子开关和电容组成的,主要应用是构成各种低通、高通、带通、带阻等开关电容滤波器(Switched-Capacitor Filter,SCF)。将开关电容电路与运算放大器结合,组成的开关电容有源滤波器具有很多奇特的性质,但由于引入了电子开 ...… 查看全部问答> |
|
本帖最后由 jameswangsynnex 于 2015-3-3 20:00 编辑 上周二,全球最大的手机制造商诺基亚宣布,其发布的首款触摸屏手机5800 XpressMusic将是支持“因乐而生(Comes With Music)”服务的第一批手机之一。据了解,诺基亚提供的Comes with Music服 ...… 查看全部问答> |
|
刚学windows ce,学校刚开这个课程,有什么意见大家来发表下 都大四了,我们学院才开windows ce课程,学了3个星期,老师要我们交一份工程上去。。。都不知道怎么办? 刚学windows ce,有很多不懂的,本人真的是很想学好这门课程,强烈建议前辈推荐一些意见,有志同道合者希望加 ...… 查看全部问答> |
|
avr studio 连接USB下载线老是 connect failed 装了avrstudio 发现用USB连接不上开发板,看视频教程里面,他实现装了一个驱动,谁有这样的驱动,在线等… 查看全部问答> |
|
自己(新手)编写的ds1302 +数码管显示时间的程序,发现了一点点问题 问题 1.是写入单片机仿真版的时候显示000000,但是重新接入电脑的时候就可以显示时间了, 2.在进入调分钟的时候调节不了 要求;显示时间,如果P3.1可以进入分调节(进入调节分所显示的时间是0.5秒闪烁,并在没按下p3.2进行增加1会在10s内退出调节 ...… 查看全部问答> |
|
首先提供几个下载地址(虽然都是微软提供的,但是不一定好找呀)^_^ 1、EVC4.0 http://download.microsoft.com/download/c/3/f/c3f8b58b-9753-4c2e-8b96-2dfe3476a2f7/eVC4.exe 2、evc4sp4.exe http://download.microsof ...… 查看全部问答> |
|
在学做怎么用BC04蓝牙模块进行单片机间语音通信 有些地方有点迷糊 求大神解释。。。 找到了一个发送的代码 没找到接收的代码。。… 查看全部问答> |




