如何使用STM32G431芯片做DAC应用

发布时间:2023-08-22  

有人使用STM32G431芯片做DAC应用,具体来说就是通过DMA将数据从指定内存传送给DAC数据寄存器,并由定时器触发DAC转换。他发现总是没法实现该功能。这里简单介绍下相关实现过程,并做些提醒。这里要演示的基本功能就是让DAM将内存数据周期性传输给DAC数据寄存器,最后输出一路正弦波。


结合STM32G4芯片的特性,这里可以有两种实现方式。


第一种,DMA的请求来自于DAC1的转换事件。第二种,DMA的请求来自于定时器事件,下面用到的是定时器的更新事件。这里就两种实现方式的配置及相关用户代码简单介绍下,以供参考。


我们先看第一种方式,即DMA请求来自DAC转换事件,定时器3触发DAC的转换。

使用CubeMx进行配置

完成配置后生成初始代码,再添加下面代码即可验证测试:

#define Tpai (2*3.14159)

uint32_t PData[200],Dac_data;

uint16_t i;

for (i=0;i《200;i++)

{

PData[i]=

(uint32_t ) (2000*(sin((Tpai/200)*i))+2000);

} //prepare data for DAC

HAL_DAC_Start_DMA(&hdac1,DAC_CHANNEL_1,(uint32_t*)&PData[0], 200,DAC_ALIGN_12B_R);

__HAL_TIM_ENABLE(&htim3);

上面配置的DMA传输方向是从内存到外设,目的和源的访问宽度都是32位WORD. 当然也可以是内存访问宽度为16位的半字,外设访问宽度为32位字。即DMA的配置像下面这样也是可以的。

其它配置不动,代码稍微改动和整理下即可。参见下面代码:

Uint16_t PData[200],Dac_data;

#define Tpai (2*3.14159)

uint16_t i;

for (i=0;i《200;i++)

{

PData[i]=

(uint16_t )(2000*(sin((Tpai/200)*i))+2000);

} //prepare data for DAC

SET_BIT(hdac1.Instance-》CR,DAC_CR_DMAEN1);

HAL_DAC_Start(&hdac1,DAC_CHANNEL_1 );

HAL_Delay(2);

HAL_DMA_Start_IT(&hdma_dac1_ch1,(uint32_t)&PData[0],(uint32_t)&DAC1-》DHR12R1, 200);

__HAL_TIM_ENABLE(&htim3);

第一种方式就介绍到这里,再来看看第二种实现方式,即TIMER更新事件作为DMA请求源,同时作为DAC转换触发源。

基于CubeMx配置,主要调整下DMA配置,其它配置基本不动。

主要是DMA请求事件变了,其它配置跟第一种模式基本一样。

配置完成后生成初始化代码,再添加下面用户代码:

#define Tpai (2*3.14159)

uint16_t PData[200], Dac_data;

uint16_t i;

for (i=0;i《200;i++)

{

PData[i]=

(uint16_t )(2000*(sin((Tpai/200)*i))+2000);

}

HAL_DAC_Start(&hdac1,DAC_CHANNEL_1 );

HAL_Delay(3);

HAL_DMA_Start(&hdma_tim3_up,(uint32_t)&PData[0],(uint32_t)&DAC1-》DHR12R1, 200);

__HAL_TIM_ENABLE_DMA(&htim3, TIM_DMA_UPDATE);

__HAL_TIM_ENABLE(&htim3);

这里要提醒一点,G4系列的DAC1的数据保持寄存器可以一次放2个通道的数据,在使用DMA传输时,即使只用到1个通道,DMA对它的访问也要遵循WORD对齐,不然你可能会遇到麻烦。

如果说,我们不使用DMA做数据传输,只是手动给DAC喂数据,那如何实现上述效果呢?这时我们可以使用软件触发DAC的传输,手动给DAC的数据保持寄存器赋值,参考配置及实现代码如下:

相关用户代码如下:

#define Tpai (2*3.14159)

uint16_t PData[200],Dac_data;

uint16_t i;

for (i=0;i《200;i++)

{

PData[i]=

(uint16_t)(2000*(sin((Tpai/200)*i))+2000);

}

HAL_DAC_Start(&hdac1,DAC_CHANNEL_1 );

HAL_Delay(3);

while(1)

{

for(i=0;i《200;i++)

{

DAC1-》DHR12R1= PData[i];

SET_BIT(hdac1.Instance-》SWTRIGR,DAC_SWTRIGR_SWTRIG1);

HAL_Delay(5);

Dac_data = DAC1-》DOR1;//for debug

}

}


总之,不论使用哪种方式,都可以实现我们所期望的结果,即输出如下正弦波。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    体积非常小,以手机SoC为例,表面积大约是15mm*15mm,放在指尖都怕掉,其上还集成大量的半导体电路用于控制和运算,可见芯片功能有多么强大。 芯片,早已随处可见 或许,你还是不能具象的理解芯片是什么......
    座舱域控制器硬件架构方案:SoC + MCU;座舱域控制器是什么 座舱域控制器(Cabin Domain Controller)是一种用于航空飞机中的电子系统,用于......
    的优点和不足分别是什么? 3、一般智驾域控会搭配一款功能安全芯片,譬如TC397、TC497,它们各自的采购价大概是多少?TC系列是否有国产替代产品,该国产替代产品大致的采购价? 4、当前......
    接功放。 而我们的生活中经常见的停车场报金额、电梯报站、货车报“左转弯,请注意”等等,都是应用了语音芯片,那么语音芯片是什么烧录的呢?作为源头语音芯片专业厂家,九芯电子根据10余年......
    通过对激光雷达应用场景的优化,SiPM器件能实现在较低偏压下保持极高的PDE,充分满足激光雷达客户对于接收端的性能要求。 02 有了解到,灵明光子是Sony之外,唯一能够交付Spot散点芯片方案的芯片公司。请问该方案的技术难点是什么......
    友善也就没有开源的他的USB摄像头程序了(个人理解,不知是否正确)既然这样我们就学友善的,按V4l2的来配置吧我的摄像头芯片是sunplus凌阳的SPCA2000C的,支持UVC,支持UVC的就可以不用管是什么芯片了,选上......
    开始。 芯片是什么东西? 芯片,英文Chip,又称微电路(microcircuit)、微芯片(microchip),业内......
    上根本不是。国内目前能全栈自研加上芯片也是自己的,只有华为那一家,就是ADS2.0,硬件自己的,软件也是自己的。其他的车企你仔细看啊,他们宣传的是什么,用的是Orin x的芯片,这是英伟达的,也就是老黄的芯片......
    是客套一句,NVIDIA还提到他们看到了Intel即将推出的新工艺的技术测试初步表现,看起来还不错。 黄仁勋没有透露所谓的Intel测试芯片是什么工艺,不过Intel未来对外提供代工的工艺主要是Intel 3......
    体十强除了靠这些业务挣钱,还有……》《终于有人讲透了芯片是什么》《不同人眼里的IC设计》; 回复 数字 4 ,看《做模拟,真的没有前途了么?》《参与流片是一种怎样的体验?》《疯传......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>