新手一枚,最近对TI C2000系列的MCU很感兴趣。看了一段时间的技术手册,研究了很多Ti提供的example,但是感觉还是太复杂了,门槛太高。
我需要实现ADC输入,同时DAC输出,希望可以做到200 KHz以上的同步,尝试修改了一些范例程序,勉强可以工作,jitter很明显。
我使用的是F28379D的开发版。
另外,Ti 提供的 adc_soc_epwm_cpu01 范例没看明白。
void ConfigureEPWM(void)
{
EALLOW;
// Assumes ePWM clock is already enabled
EPwm1Regs.ETSEL.bit.SOCAEN = 0; // Disable SOC on A group
EPwm1Regs.ETSEL.bit.SOCASEL = 4; // Select SOC on up-count
EPwm1Regs.ETPS.bit.SOCAPRD = 1; // Generate pulse on 1st event
EPwm1Regs.CMPA.bit.CMPA = 0x0800; // Set compare A value to 2048 counts
EPwm1Regs.TBPRD = 0x1000; // Set period to 4096 counts
EPwm1Regs.TBCTL.bit.CTRMODE = 3; // freeze counter
EDIS;
}
为啥这些需要Disable SOC on A group ???
EPwm1Regs.CMPA.bit.CMPA = 0x0800 这个功能是?
Green Deng:请问你说的硬件同步采样具体是指什么呢?一般采样就分同步采样和顺序采样两种模式。
第二个问题可以参考帖子:e2echina.ti.com/…/108845
EPwm1Regs.CMPA.bit.CMPA = 0x0800的功能是设置比较器A的计数值,关于这个寄存器的详细介绍需要你看一下芯片的技术指导手册了。
新手一枚,最近对TI C2000系列的MCU很感兴趣。看了一段时间的技术手册,研究了很多Ti提供的example,但是感觉还是太复杂了,门槛太高。
我需要实现ADC输入,同时DAC输出,希望可以做到200 KHz以上的同步,尝试修改了一些范例程序,勉强可以工作,jitter很明显。
我使用的是F28379D的开发版。
另外,Ti 提供的 adc_soc_epwm_cpu01 范例没看明白。
void ConfigureEPWM(void)
{
EALLOW;
// Assumes ePWM clock is already enabled
EPwm1Regs.ETSEL.bit.SOCAEN = 0; // Disable SOC on A group
EPwm1Regs.ETSEL.bit.SOCASEL = 4; // Select SOC on up-count
EPwm1Regs.ETPS.bit.SOCAPRD = 1; // Generate pulse on 1st event
EPwm1Regs.CMPA.bit.CMPA = 0x0800; // Set compare A value to 2048 counts
EPwm1Regs.TBPRD = 0x1000; // Set period to 4096 counts
EPwm1Regs.TBCTL.bit.CTRMODE = 3; // freeze counter
EDIS;
}
为啥这些需要Disable SOC on A group ???
EPwm1Regs.CMPA.bit.CMPA = 0x0800 这个功能是?
alpha beta:
回复 Green Deng:
硬件同步采样是指 ADC读取一个信号的同时DAC输出一个信号,或者(ADC输入与DAC输出的时间差保持固定,也可以)。
我自己弄了个程序,用ADC读信号发生器的信号,马上输出给DAC。我用示波器监测两路信号,发现当信号发生器的频率超过1KHz的时候,DAC输出的波形有明显的jitter,希望能改善jitter。
Best,
alpha beta