一、 概述
本文介绍了使用芯驰提供的满足 AUTOSAR 标准的 MCAL,开发 SemiDrive E3_ADC 模拟配置(包括通道)一个工程项目的 ADC ,合理的分配 ADC 采样组。
硬件平台:芯驰 E3640 GATEWAY 开发板
软件平台: Semidrive_AutoSAR_MCAL_package_v3.0
二、 相关概念
1、应该避免的配置方式:
Group5: 没有配置 Channel(Group 没有了使用意义);
Group3: 配置多个 Channel, 但 Channel 跨实体硬件单元。
图 1 常见 Group 配置
这两个配置项需要结合使用,他们与 pinmux 表中的 GPIO 有对应关系。
例如在 ADC1 中,GPIOA_10 为 ADC1 的 CH5_N_MUX5
那么此时 GPIOA_10 在 ADC1 中的 physicalId 为 10,channelmux 为 5;
解析:channelmux 为 5 是与 CH5_N_MUX5 中的 MUX5 相对应。
前面提到,GPIOA_10 在 DC1 中是 CH5_N_MUX5,
此时 physicalId 为 10,对应关系是 physicalId = 5 * 2,5 与 CH5 对应;
但 GPIOA_11 在 ADC1 中为 ADC1 的 CH5_P_MUX5,目前 MCAL Driver 中,ADC 采用单端模式,分为 N 与 P 的标识区别,当 N 端时,计算公式就为 physicalId = 2x,x 为 Chx,如果为 P 端,则为
physicalId = 2x + 1;
所以 GPIO_A11 在 ADC1 中,physicalId = 2 * 5 + 1 = 11。
三、 示例说明
模拟配置一个工程项目的 ADC 配置,包括通道配置,合理分配 ADC 采样组。
分组要求:
- a) 颜色相同的需要分为同一组,所以需要在同一个 AD C内;
- b) 每个硬件模块 ADC,最多只能有 32 个通道;
- c) 每个硬件模块 ADC,最多只能有 4 个组,每个组 16 个通道。
表 1 示例说明 Table
四、 示例 ADC 采样
1、 使用 EB 软件打开 Semidrive_AutoSAR_MCAL_package_v3.0 软件包。
2、 在 MCU 模块中打开需要使用的 ADC 模块,使能时钟。
图 2 Mcu 配置
3、 Port 配置,根据表格配置 GPIO_A、GPIO_B、GPIO_C 引脚的复用功能。
图 3 Por t配置
4、 ADC 配置
4.1 添加 ADC3
图 4 .1 设置 AdcHwUnit
4.2 按表格分配各 ADC1,ADC2,ADC3。(每个硬件模块 ADC,最多只能有 32 个通道)
图 4.2 设置 AdcChannel
4.3 注意各 ADC 的 Group。(每个硬件模块 ADC,最多 4 个组。)
图 4.3 设置AdcGroup
4.4 双击进入到 Group 添加通道(每组至多 16 个通道):
图 4.4 设置 AdcGroupDefinition
4.5 Generate Code 检查生成代码
图4.5 Generate Code
5、 IAR 修改 test 代码
关于参数 Group 的解释:配置中的 ADC1(AdcHwUnit_0)的 AdcGroup_1,即测试的是 GPIO_B5,GPIO_B6,GPIO_B7 和 GPIO_B8 的数据。如果 Group 的参数为3 ,因为 ADC1 只配置了 3 个组,则会测试 ADC2 的 AdcGroup_0。
图 5 代码修改
6、 运行现象分析
按照原理图找到对应引脚,给 GPIO_B8 上电、掉电,发送 adc test 完成测试,得到输入的数字电压值 0xa7c,12 位逐次逼近型转换最大是 0xfff。经过 Reference Voltage(3.3v) 进行转换即可得到模拟电压:(0xa7c/0xfff) * 3.3v ≈ 2.16v。
图6.1运行现象
根据原理图验证上述结论:
图 6.2 原理图
输入为 3.3v 时,R949 电阻分压,经过缓冲器 U907B(特点是输入阻抗无穷大,而输出阻抗又很小,保证后面负载可以获得较大电压)得到的电压为:3.3v * 32.4k/(16.9+32.4)≈2.16v。
结论正确。
五、 参考文档
- 《SD103_E3_REF_GATEWAY_ePOWERTRAIN_A03_SCH》
- 《E3400_E3600_MCU_Technical_Reference_Manual》
- 《E3400_E3600_MCU_Datasheet》
- 《SemiDrive_E3_MCAL_User_Guide》
作者:Alan Li/ 李亚楠
评论