SemiDrive E3 系列 MCU MCAL 配置(三):ADC 模块

一、    前言

在车规 MCU 领域,大部分用户都会采用 AUTOSAR 标准的软件包。芯驰提供满足 AUTOSAR 标准的 MCAL,实现微控制器、存储、通信和 I/O 等硬件的驱动程序,可以支持 Vector、EB、普华、ETAS、恒润(排名不分先后)等国内外主流 AUTOSAR 厂商的软件平台。为便于客户评估这些基本驱动模块,芯驰提供了 AUTOSAR Demo 程序,在设定的应用场景中展示这些基本模块的调用。

本文介绍 CAN 的配置与应用测试。

硬件平台:芯驰 E3640 SD103_E3_GATEWAY_A02_043 开发板

软件平台:SemiDrive_E3_MCAL_V2.0



二、    PORT 模块配置

1.  分析原理图

从原理图可以看出引脚使用情况,本次实验使用 J2304 连接器 1-5 引脚,可以看出对应关系如下图中表格所示



2.  设置 GPIO 组及 GOIO 属性

根据原理图可以看出使用的是 GPIO_C,在 PortPin 标签栏下设置 Pin 脚,重点 Mux 栏位配置成 ADC 模式,PinSetting 配置成 ANALOG_3V3



三、    ADC 模块配置

1.  AdcChannel 配置

查看 E3640 数据手册,以 GPIO_C12 为例,可以看出 GPIO_C12 可以使用 ADC2/ADC3 控制器,这里使用 ADC2,对应的通道为 CH5_N_MUX_6,此处的 6 对应到 AdcChannelMux 的数值,此处的 5 对应AdcPhysicalChannelId,计算方法为 5*2=10,如果为 CH5_P,则为 5*2+1=11



2.  设置 AdcGroupDefinition

如下图:设置AdcGroupId 为 0,triggSrc 为 ADC_TRIGG_SRC_SW,然后在配置 AdcGroupDefinition,添加 3.1 步骤中的 AdcChannel



3.  MCU 模块配置

勾选 ADC2。




4.  保存与代码生成



四、    测试

1.  运行测试程序

开发板 debug 接口连接电脑,打开串口助手,开启开发板后在串口助手中输入测试命令 adc init, adc test,其中第一次 test ,J2304_1-J2304_5 都是悬空状态,可以看出采样值接近于 0,第二次 test,将 J2304_5 引脚接至 3.3V 电源,因为前端有分压电阻 16.9K,32.4K,经计算 3.3*32.4/(32.4+16.9K) = 2.168,测试结果为 2.157



2.  程序分析



程序中 Adc_SetupResultBuffer(0, adc0_group1_buffer); 第一个参数 0,对应的 MCAL 配置 3.2 节中 AdcGroupId,此处 AdcGroup 中的信息会以数组的形式存放在 Adc_PbCfg.c 中,因此第一个参数需要对应到数组的元素,在不同 AdcHwUnit 中设置的 Group 都统一顺序存放在数组中,此处调试不通或采样值错乱时须关注此数组。




Adc_SetupResultBuffer(0, adc0_group1_buffer);函数会把采样值存放在 adc0_group1_buffer 中,根据设置的采样次数,各个通道顺序存放。



Adc_ReadGroup(0, adc0_group1_result_buffer); 函数会把采样值存放在 adc0_group1_result_buffer 中,根据观察存放的是 adc0_group1_buffer 中每个通道的最后一次采样值,所以如果需要滤波等操作要处理 adc0_group1_buffer 中的数据。



五、    参考文档

  • 《Semidrive_PORT_Module_User_Manual.pdf》
  • 《Semidrive_ADC_User_Manual.pdf》
  • 《Semidrive_E3_Mcal_Release_Note.pdf》

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论