使用f28335的adc采样交流电压程序simulink模型
时间: 2024-06-08 20:06:04 浏览: 147
主控芯片dsp tms320f28335,基于Matlab Simulink开发的嵌入式模型,模型可自动生成ccs工程代码,生成
以下是使用f28335的ADC采样交流电压的Simulink模型:
![Simulink模型](https://img-blog.csdnimg.cn/20210804102137569.png)
模型中使用了"Embedded Coder Support Package for Texas Instruments C2000 Processors"来生成C语言代码,因此需要安装该支持包。
具体步骤如下:
1. 在Simulink中添加一个"Embedded Coder Configuration"块,并选择"Texas Instruments C2000"。
2. 配置"Target hardware resources",选择"Texas Instruments F2833x/F2834x"。
3. 配置"Code generation",选择"ERT-based system"。
4. 在模型中添加ADC采样块,配置采样参数。
5. 添加Scope块,用于查看采样结果。
6. 运行模型并观察Scope块输出结果。
以下是示例代码:
```
#include "F2837xD_device.h"
#include "F2837xD_Examples.h"
#pragma CODE_SECTION(Adc_Config, ".TI.ramfunc");
void Adc_Config()
{
EALLOW;
// 使能ADC
AdcaRegs.ADCCTL1.bit.ADCREFSEL = 0; // 内部参考电压
AdcaRegs.ADCCTL1.bit.ADCREFPWD = 1; // 参考电压电路电源打开
AdcaRegs.ADCCTL1.bit.ADCPWDN = 1; // ADC电源打开
AdcaRegs.ADCCTL1.bit.ADCENABLE = 1; // ADC使能
// 配置采样窗口
AdcaRegs.ADCSOC0CTL.bit.TRIGSEL = 5; // EPWM1 SOCA触发
AdcaRegs.ADCSOC0CTL.bit.CHSEL = 0; // A0通道
AdcaRegs.ADCSOC0CTL.bit.ACQPS = 14; // 采样窗口时间
EDIS;
}
void main()
{
// 初始化系统时钟
InitSysCtrl();
// 配置ADC
Adc_Config();
// 初始化Scope
InitScopes();
while(1)
{
// 等待采样完成
while(AdcaRegs.ADCINTFLG.bit.ADCINT1 == 0);
// 清除标志
AdcaRegs.ADCINTFLGCLR.bit.ADCINT1 = 1;
// 读取采样值
Uint16 adc_val = AdcaResultRegs.ADCRESULT0;
// 输出到Scope
SendData(SCOPE1, &adc_val, 1);
}
}
```
注意,由于该模型采样的是交流电压,因此需要使用差分输入模式,并注意正确接线。具体请参考相关文献。
阅读全文