OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 9912|回复: 6

LPC1768控制VS1053,SPI读寄存器为0。VS1053部分的代码是版主的,问题应该在SPI初始化部分,求解

[复制链接]

1

主题

1

帖子

0

精华

新手入门

积分
25
金钱
25
注册时间
2012-5-3
在线时间
0 小时
发表于 2012-5-3 11:35:09 | 显示全部楼层 |阅读模式

贴出部源码

void  SPIInit(void)

  /* 初始化SPI引脚   */  
 
 LPC_PINCON->INSEL0 |= (0x03ul << 30);                             /* 设置P0.15脚为SCK脚           */
 LPC_PINCON->INSEL1 &= ~(0x03 << 0);
 LPC_GPIO0->FIODIR   |=  SPI_CS;                                    /* 设置SPI的片选引脚            */
 CE_High();
 LPC_PINCON->INSEL1 |=  (0x03 << 2) | (0x03 << 4);                 /* 设置P0.17、P0.18             */
                                /* 引脚为SPI引脚                */

              /* 初始化SPI寄存器   */   
 //这里说明一下,SPI时钟为24M,然后0X40分频(64分频),这里对吗?     
 LPC_SPI->SPCCR  =  0x40;                                             /* 设置SPI时钟分频              */
 LPC_SPI->SPCR   =   (0 << 2) |                                      /* SPI控制器每次传输            */
               /* 发送和接收8位数据            */
    (1 << 3) |                                      /* CPHA = 0, 数据在SCK          */
               /* 的第一个时钟沿采样           */
    (1 << 4) |                                      /* CPOL = 0, SCK 为高有效       */
    (1 << 5) |                                      /* MSTR = 1, SPI 处于主模式     */
    (0 << 6) |                                      /* LSBF = 0, SPI 数据           */
               /* 传输MSB (位7)在先            */
    (0 << 7);                                       /* SPIE = 0, SPI 中断被禁止     */
}
//--------------------------------
void SPIx_SetSpeed(uint8_t SpeedSet)
{
 //0x100=256,0x80=128,0x40=64;
 LPC_SPI->SPCCR  =  SpeedSet;
}
//这里设两种速度,8分频为高速,64分频为低速。

unsigned char SPIx_ReadWriteByte(unsigned char TxData)
{
 uint32_t  temp = 0;
 LPC_SPI->SPDR = TxData;
 while (0 == ( LPC_SPI->SPSR & 0x80));           /* 等待SPIF置位,               */
                                       /* 即等待数据发送完毕           */
 temp = (uint32_t) LPC_SPI->SPSR;               /* 清除SPIF标志                 */
 temp =  temp ;

 return (INT8U)(LPC_SPI->SPDR); 
}
//--------------------------------------------
//这里去读寄存器的时候,例如temp=SPIx_ReadWriteByte(0xff);TEMP会是0,量过信号线,信号线动作正常。求解????是不是频率设得有问题?
uint16_t VS_RD_Reg(uint8_t address)

     uint16_t temp=0;
    while(GPIO_ReadInputDataBit(LPC_GPIO0,DREQ_pin0)==0);//非等待空闲状态 
     SPIx_SetSpeed(SPI_SPEED_64);//低速 
     TXDCS_SET(1);//VS_XDCS=1;       //MP3_DATA_CS=1;
     TCS_SET(0);//VS_XCS=0;        //MP3_CMD_CS=0;
     SPIx_ReadWriteByte(VS_READ_COMMAND);//发送VS10XX的读命令
     SPIx_ReadWriteByte(address);        //地址
     temp=SPIx_ReadWriteByte(0xff);  //读取高字节
     temp=temp<<8;
     temp+=SPIx_ReadWriteByte(0xff);  //读取低字节
     TCS_SET(1);//VS_XCS=1;      //MP3_CMD_CS=1; 
     SPIx_SetSpeed(SPI_SPEED_8);//高速
    return temp;

至于VO53部分全是抄版本的,应该不会是问题。



正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165353
金钱
165353
注册时间
2010-12-1
在线时间
2108 小时
发表于 2012-5-3 12:34:11 | 显示全部楼层
没玩过LPC的...
可以用软件仿真看看你的设置.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
22
金钱
22
注册时间
2012-11-13
在线时间
0 小时
发表于 2012-11-13 17:03:29 | 显示全部楼层
回复【楼主位】Liu0508:
---------------------------------
vlsi大陆区一级代理商,vs1053  vs1003  vs1011  vs1063  vs1005新品,提供技术支持
vlsi大陆区一级代理商
回复 支持 反对

使用道具 举报

30

主题

210

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
373
金钱
373
注册时间
2012-11-22
在线时间
12 小时
发表于 2012-11-22 14:11:37 | 显示全部楼层
回复【楼主位】Liu0508:
---------------------------------顶下
VLSI?大陆区一级授权代理商,提供技术支持,QQ839638158?VS1003?VS1053?VS1063?VS1011?VS1005?VS1205?VS1103?VS1033?VS8005?VS8053?VS1000?VS23S010?VS1163?开发板,淘宝店铺http://shop105947990.taobao.com/?QQ2355355257
回复 支持 反对

使用道具 举报

13

主题

123

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
242
金钱
242
注册时间
2013-1-6
在线时间
20 小时
发表于 2013-4-17 09:46:20 | 显示全部楼层
楼主我也在弄这个。。。咱们两可以交流一下哈。。我的qq394206719,家的时候说MP3。。。
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2014-1-4
在线时间
1 小时
发表于 2014-1-4 22:52:51 | 显示全部楼层
有没有发现1768 接1053 IO 拉不低?
回复 支持 反对

使用道具 举报

44

主题

225

帖子

0

精华

高级会员

Rank: 4

积分
658
金钱
658
注册时间
2013-11-22
在线时间
131 小时
发表于 2015-8-21 15:35:05 | 显示全部楼层
回复【6楼】华籽2013:
---------------------------------
你说的是LPC1768的SPI片选信号,不能被拉低的意思吗?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-25 22:56

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表