本指南详细介绍了如何使用英飞凌MCAL和VADC模块对TC234L进行高效配置,涵盖关键设置与优化技巧。
本段落将深入探讨英飞凌TC234L单片机上MCAL_VADC的配置方法,并特别针对其Autosar版本4.0.3下的配置流程及注意事项进行详细阐述。
### 平台条件
- **单片机型号**:TC234L
- **MCAL_Autosar 版本**:4.0.3
- **MCAL 配置软件**:DaVinci Configurator 5.18.29
- **SWC 配置软件**:DaVinci Developer 4.3
### 配置要求概述
配置主要围绕两个ADC模块(ADC0和ADC1)进行,其中ADC0被进一步划分为AdcGroup_0 和 AdcGroup_1两组。而ADC1则分为 Group2和 Group3。每组的配置不同,例如AdcGroup_0采用队列模式,并由Gtm触发;而AdcGroup_1则是背景模式,并同样由Gtm触发。
接下来将详细介绍具体的配置步骤及相关细节。
### ADC模块配置详解
#### ADC0模块配置
- **AdcGroup_0 配置**:
- 模式:队列模式
- 触发方式:Gtm触发
- **AdcGroup_1 配置**:
- 模式:背景模式
- 触发方式:Gtm触发
#### ADC1模块配置(通用)
- Group2和Group3均为背景模式,由Gtm触发。
### 内核配置
- `AdcGlobInputClass0-> AdcGlobChResolution:12bit`
- `AdcGlobInputClass1-> AdcGlobChResolution:12bit`
### MCU模块配置
- **触发ADC连接**:通过Tom0 Ch2设置触发周期为1ms。
- **Tom1Ch8 配置**:为了与PWM波同步,采用上一个通道复位CN0。
### IRQ配置
- 背景转换完成中断
- 队列中断和扫描模式中断
### OSISR配置
使用DaVinci Developer 4.3在任意SWC中创建Runnable `runnable_AdcTest5ms` ,该Runnable每5ms触发一次。
### 代码生成与配置
1. **生成SWC代码**:由于涉及SWC的更改,需要在configuration PRO中按下F7来生成SWC代码。
2. **生成BSW配置代码**:继续按下F9来生成BSW配置代码。
3. **TASK 配置**:在 `Default_Init_Task` 中添加相应的初始化代码。
### 初始化代码示例
```c
// 设置GTM触发
Gtm_SetTomHostTrigger(1,0);
Gtm_SetTomHostTrigger(1,1);
Gtm_SetTomHostTrigger(0,GTM_TGC0);
// 设置结果缓冲区
AdcBufferSetupStatus[0] = Adc_SetupResultBuffer(AdcConf_AdcGroup_AdcGroup_0,ADC_HW_GRP_RES_Q0);
AdcBufferSetupStatus[2] = Adc_SetupResultBuffer(AdcConf_AdcGroup_AdcGroup_2,ADC_HW_GRP_RES_Q2);
AdcBufferSetupStatus[1] = Adc_SetupResultBuffer(AdcConf_AdcGroup_AdcGroup_1,ADC_HW_GRP_RES_K1);
AdcBufferSetupStatus[3] = Adc_SetupResultBuffer(AdcConf_AdcGroup_AdcGroup_3,ADC_HW_GRP_RES_K3);
// 启用通知
Adc_EnableGroupNotification(AdcConf_AdcGroup_AdcGroup_0);
Adc_EnableGroupNotification(AdcConf_AdcGroup_AdcGroup_1);
Adc_EnableGroupNotification(AdcConf_AdcGroup_AdcGroup_2);
Adc_EnableGroupNotification(AdcConf_AdcGroup_AdcGroup_3);
// 启动触发
Gtm_SetTomHostTrigger(0, 1); // 根据实际需要设置
```
### 总结
通过上述步骤,可以成功地对TC234L单片机上的ADC模块进行详细的配置。需要注意的是,在配置过程中,正确设定每个组的工作模式、触发方式以及结果缓冲区等参数非常重要。此外,确保正确的触发周期、IRQ配置及合理的代码实现也是关键所在。对于更复杂的应用场景或特定需求的项目,开发者可能还需要根据实际需要调整配置参数和代码逻辑。