打印
[其它]

【Audio BoosterPack试用】+STM32控制DAC8311输出信号

[复制链接]
2210|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
前面说了,我要用一块开发板,飞线给BoosterPack来实现把数字信号给到DAC8311实现扬声器有声音。
首先,跳线帽要接到SPI_DAC那边,如图1:

                        图 1
然后要把板卡上的AMP_ON直接接到GND上,让Amplifier一直打开,不enable是不会有声音的,同时我们做实验不用考虑功耗啥的,所以一直开着没影响,也就是把TPA301的SHUTDOWN管脚接地,如图2

                        图2
然后,把开发板的3.3V,GND,SPI_NSS,SPI_CLK,SPI_MOSI,一一对应接到板卡上即可,飞线后的效果,如图3,对应的SPI管脚如图4分别是PA4,PA5,PA7

             图3

             图4
++++++++++++++++++++++++++++++++++++++++完美分割线++++++++++++++++++++++++++++++++++++++++++++++++++
控制采用STM32的硬件SPI1,没有采用软件模拟SPI,这里简单讲下配置,贴一段代码,是配置SPI的
  GPIO_InitTypeDef  GPIO_InitStructure;  
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_5 |GPIO_Pin_7;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  GPIO_Init(GPIOA, &GPIO_InitStructure);
这个是设置3个GPIO的属性的,没啥好说的,下面是设置SPI本身的,
  SPI_InitTypeDef   SPI_InitStructure;
  SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;
  SPI_InitStructure.SPI_Mode = SPI_Mode_Master;
  SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;
  SPI_InitStructure.SPI_CPOL = SPI_CPOL_High;
  SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;
  SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;
  SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_16;
  SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;
  SPI_InitStructure.SPI_CRCPolynomial = 7;
  SPI_Init(SPI1, &SPI_InitStructure);
就说一点,我高亮加粗的那个属性,要设置成软件控制模式,不能是硬件SPI自带的,因为DAC8311一次传输16bit数据,所以NSS管脚要我们自己来控制置高或者置低,看了DAC8311的时序图就一目了然了,如图5

            图 5
接下来就是发送数据,函数,从以前自己的代码大致改了下,不是很严谨,见笑了,当然了没有啥要返回的,就是懒得改了。
uint16_t SPIx_ReadWriteByte(uint8_t DataHi,uint8_t DataLo)
{
        uint16_t readData = 0;
        GPIO_ResetBits(GPIOA,GPIO_Pin_4);
        while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET);
        SPI_I2S_SendData(SPI1, DataHi);
        while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET);
        SPI_I2S_SendData(SPI1, DataLo);
        GPIO_SetBits(GPIOA,GPIO_Pin_4);
        return readData;
}

好了,主要框架就是这样,送过SPI发送,板卡就能发出噗噗噗的响声了,接下来我要研究下,能不能来一段曲子,如果有高人了解相关方法可以回帖告诉我呀。大致代码发个附件吧。
code.rar (1.78 MB)



相关帖子

沙发
cooldog123pp|  楼主 | 2018-3-12 08:43 | 只看该作者
沙发自己坐咯

使用特权

评论回复
板凳
dirtwillfly| | 2018-3-13 10:59 | 只看该作者

使用特权

评论回复
地板
巧克力娃娃| | 2018-3-15 17:23 | 只看该作者
帅哦,神舟一号。。。

使用特权

评论回复
5
cooldog123pp|  楼主 | 2018-3-16 16:35 | 只看该作者
巧克力娃娃 发表于 2018-3-15 17:23
帅哦,神舟一号。。。

老古董了,哈哈

使用特权

评论回复
6
cooldog123pp|  楼主 | 2018-3-16 16:35 | 只看该作者
巧克力娃娃 发表于 2018-3-15 17:23
帅哦,神舟一号。。。

暴露了年龄

使用特权

评论回复
7
巧克力娃娃| | 2018-3-16 16:48 | 只看该作者

谢谢分享!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1839

主题

6402

帖子

30

粉丝