[其它] 【Audio BoosterPack试用】+STM32控制DAC8311输出信号

[复制链接]
848|6
 楼主 | 2018-3-11 14:42 | 显示全部楼层 |阅读模式
前面说了,我要用一块开发板,飞线给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发送,板卡就能发出噗噗噗的响声了,接下来我要研究下,能不能来一段曲子,如果有高人了解相关方法可以回帖告诉我呀。大致代码发个附件吧。




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
 楼主 | 2018-3-12 08:43 | 显示全部楼层
沙发自己坐咯
| 2018-3-13 10:59 | 显示全部楼层
| 2018-3-15 17:23 | 显示全部楼层
帅哦,神舟一号。。。
 楼主 | 2018-3-16 16:35 | 显示全部楼层
巧克力娃娃 发表于 2018-3-15 17:23
帅哦,神舟一号。。。

老古董了,哈哈
 楼主 | 2018-3-16 16:35 | 显示全部楼层
巧克力娃娃 发表于 2018-3-15 17:23
帅哦,神舟一号。。。

暴露了年龄
| 2018-3-16 16:48 | 显示全部楼层

谢谢分享!
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式
我要创建版块 申请成为版主

论坛热帖

关闭

热门推荐上一条 /2 下一条

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