VS1003移植到stm32上面

来源:互联网 发布:源代码java教学视频 编辑:程序博客网 时间:2024/06/05 19:59
   VS1003要注意它有两根控制线XCS和XDCS,XCS为命令片选,XDCS为数据片选。DREQ线为数据请求线,当DREQ线为高电平时,表示VS1003做好了接受数据的准备,此时可以往VS1003里面送数据或命令。所以每次执行SPI读写时都要判断DREQ是否为高电平。    下面介绍VS1003的初始化。首先对VS1003进行软件复位,将XRESET脚拉低,然后等待至少2us,DREQ线仍然保持低电平至少16600个时钟周期,意味着在12.288MHz工作的VS1003有约1.35ms的延时。在1.35ms延时之后拉高XRESET脚,然后判断DREQ线是否为高电平,如果为高电平,这说明软件复位结束。接下来就是对VS1003内部寄存器进行配置,当配置完内部寄存器后,向vs1003发送4个字节无效数据,用以启动SPI发送。
    接下来介绍VS1003的SPI两种传输方式,SCI(命令传输)和SDI(数据传输)。当进行命令传输时,采用SCI读写方式,在进行读写中,XCS为低电平,XDCS为高电平;当进行数据传输时,采用SDI传输方式,传输过程中,XCS为高电平,XDCS为低电平。
    最后是VS1003的驱动移植介绍,将VS1003.h文件中的XCS、XDCS、DREQ、XRESET管脚的宏定义重新定义,并且对SPI单字节读写函数以及初始化函数重新进行宏定义。