This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您是指1MHz (0.001Hz)还是指1MHz? 如果后者、我会说混叠是问题所在。 例如、0Hz 和1kHz 时会得到什么?
我是说它是1MHz。
它在1Hz 到5Hz 之间是合适的、但是对于1KHz 及更高的频率、它不是正确的。
如何解决该问题?
显而易见的问题是:您的采样率是多少?
对于 am2634 LaunchPad、它应该是4MSPS??
采样周期就是你对它进行编程的值。
尚未对这些示例进行过实验?C:\ti\mcu_plus_sdk_am263x_08_05_00_24\examples\drivers\adc
已使用 syscfg 将其设置为4MSPS。
我是否需要在代码中手动更改它??
转换开始(SOC)主要在 SysConfig 中配置。 结合使用 TRM 研究这些示例。
在软件的转换开始(SOC)中、SYSCLK、ADC 时钟预分频器和 SOCx 采样窗口是否足以设置采样率、或者我们是否需要初始化 EPWM 等其他驱动程序、因为软件的 SOC SDK 中的示例仅将 SYSCLK 用作 ADC 的时间参考?
可使用手册中提到的多种不同方式来触发 ADC:
ePWM 只是一种选择。 我认为您的示例的自述文件已经足够清晰了。
在本例中,采样率是 调用 ADC_FORCESOC ()的速率:
HII kier,
我 使用的采样率大于3Msps ( SYSCLK=Msps 200MHz AdcClock=200/Msps 3 MHz )。
我正在 以连续模式将1MHz 的方波馈送到 am2634 launchpad 的 J1/J3引脚23、但仍然获得1200至1400范围内的数据。
这是用于从软件获取 SOC 中的数字数据的代码。
while (1)
{
ADC_clearInterruptStatus (baseAddr、ADC_INT_number1);
adc_forceSOC (baseAddr、ADC_SOC_NUMBER0);
while (ADC_getInterruptStatus (baseAddr、ADC_INT_number1)= false)
{
}
DebugP_log ("ADC 结果寄存器值:%d\r\n "、ADC_readResult (CONFIG_ADC0_RESULT_BASE_ADDR、ADC_SOC_NUMBER0));
}
请建议如何解决该问题。
当您说"修复它"时、意味着您希望实现4MSPS 的采样率、以便可靠地重建1MHz 正弦波?
当您说"我正在获取数据"时、您是如何查看此数据的?
如果您只是使用上述代码,那么采样率只与调用 ADC_FORCESOC()的速度一样快。 其中一个问题可能是 DebugP_LOG 进程非常慢,因此我认为 ADC_FORCESOC()的调用频率会很低。
注释掉 DebugP_log(),而是设置一个缓冲区来存储 ADC_readResult ()的返回值,但需要大量的 存储器。 然后使用 Graph 功能来绘制数据点:
很抱歉、我不是 TI 的技术支持人员、所以我承担不起在这上面花更多的时间。 希望 TI 将深入了解这一主题。
大家好、Tej_1441、Kier、
首先、我要给 Kier 一个很好的评价、 谢谢! 良好初始反馈的原因。
我很高兴在需要时继续提供进一步的支持。
Tej、您的项目目前进展如何?
此致、
扎卡里·弗莱诺
根据我到目前为止收集的信息、我认为测试设置中需要包含一个信号调节电路。 正在使用什么仪器来注入1 MHz 正弦波? 需要足够的驱动强度为 S&H 电容器充电。 以下应用手册也适用于 AM263x SAR ADC。
HII 跳蚤,谢谢你的答复
我正在使用函数发生器来生成1MHz 正弦波。
您能否提供函数发生器信号的任何规格详细信息? 是否可以在这里使用我在前面提到的信号调节电路?
您好 Tej_1441、
是否可以在输入端插入某种电压缓冲器? 您能否分享您正在使用的信号发生器的规格? 我看不到您的代码有任何问题、但认为问题可能与您的仪器的驱动强度有关。
此致、
扎卡里·弗莱诺
HII Fleenor,
不能插入电压缓冲器。
我使用的是 Tektronix 信号发生器、其型号为 AFG31000系列任意函数发生器。
https://www.tek.com/en/datasheet/arbitrary-function-generators
我在此附上了恒定振幅(振幅= 0.5V、偏移= 0.250V)和不同 ADC 转换频率的绘制图。
采样率设置为4MSPS、从 ePWM 触发 SOC 的频率设置为1MHz。
为什么频率增大时、ADC 捕获的值范围会减小。
我以20kHz 的频率接收50个样本、这意味着采样率=1MSPS (采样率受我们触发 ADC SOC 的频率影响)
5kHz 时的图形
10KHz 时的图形
20KHz 时的图形
50kHz 时的关系图
100KHz 时的图形
此图形显示为200kHz
400kHz 时的图形
嘿 、Tej_1441、
我在这里与设计工程师探讨过、提出了以下反馈。
1) 1)它看起来就像硬件中的低通滤波器作用于信号。 您能检查电路板上是否有任何可能的 LPF 元件吗?
2) 2)如果 EPWM SoC 触发器设置为1MHz、则您将仅以1MSPS 的速率生成数据。 (ePWM 触发率与采样率直接相关)。
3) 3)您还可以提供输入波形的捕获吗? 您正在使用的函数发生器的"InstaView"技术似乎能够提供一些进一步的线索。
此致、
扎卡里·弗莱诺
HII Fleenor,
我使用的是 Sitara AM263x MCU、部件号:LP-AM263。
1)我检查了硬件,但没有 LPF 元素。
2)从前面的回复中可以看到1MHz 的样本数量是正确的( ADC 的 SOC 触发值设置为1MHz ),但问题是信号没有得到统一的采样。
在这里、我将输入波形的捕获图形
以下是从函数发生器的"InstaView"技术获得的详细信息。
DHCP On CLOCK_REFERENCE Internal GPIB_ADDRESS 1.10000000000000000000e+01 GPIB_CONFIGURATION Talk/Listen LANGUAGE English SCREEN_SAVER Off CONTRAST 7.00000000000000000000e+01 CLICK_TONE On SOFT_KEYBOARD On BEEPER On POWER_ON Default BRIGHTNESS 1.00000000000000000000e+02 TRIGGER_SOURCE External TRIGGER_SLOPE Positive TRIGGER_INTERVAL 1.00000000000000002082e-03 TRIGGER_OUT Trigger TIMEZONE UTC+08:00 USB_ESER 0.00000000000000000000e+00 USB_SRER 0.00000000000000000000e+00 USB_QEN 0.00000000000000000000e+00 USB_OEN 0.00000000000000000000e+00 USB_PSC On GPIB_ESER 0.00000000000000000000e+00 GPIB_SRER 0.00000000000000000000e+00 GPIB_QEN 0.00000000000000000000e+00 GPIB_OEN 0.00000000000000000000e+00 GPIB_PSC On VXI11_ESER 0.00000000000000000000e+00 VXI11_SRER 0.00000000000000000000e+00 VXI11_QEN 0.00000000000000000000e+00 VXI11_OEN 0.00000000000000000000e+00 VXI11_PSC On BURST_COUNT1 5.00000000000000000000e+00 BURST_MODE1 Triggered FREQUENCY_CONCURRENT1 Off FUNCTION1 Sine FUNCTION_FILE1 "" VOLTAGE_CONCURRENT1 Off LOAD_IMPEDANCE1 5.00000000000000000000e+01 AMPLITUDE_UNIT1 Vpp AMPLITUDE_VPP1 5.00000000000000000000e-01 AMPLITUDE_VRMS1 1.76776695296636865429e-01 AMPLITUDE_DBM1 -2.04119982655924836479e+00 OFFSET1 2.50000000000000000000e-01 HIGH_LEVEL1 5.00000000000000000000e-01 LOW_LEVEL1 0.00000000000000000000e+00 AMPLITUDE_OR_LEVEL1 Amplitude HIGH_LIMIT1 2.50000000000000000000e+00 LOW_LIMIT1 -2.50000000000000000000e+00 INVERT1 Off NOISE_ADD1 Off NOISE_LEVEL1 1.00000000000000000000e+01 EXTERNAL_ADD1 Off PULSE_WIDTH1 5.00000000000000040902e-06 PULSE_DUTY1 5.00000000000000000000e+01 PULSE_WIDTH_OR_DUTY1 Duty PULSE_LEADING_EDGE1 2.00000000000000012456e-09 PULSE_TRAILING_EDGE1 2.00000000000000012456e-09 RAMP_SYMMETRY1 5.00000000000000000000e+01 NOISE_SIGMA1 2.00000000000000011102e-01 FREQUENCY1 1.00000000000000000000e+05 PERIOD1 1.00000000000000008180e-05 FREQUENCY_OR_PERIOD1 Frequency PHASE1 0.00000000000000000000e+00 LEAD_DELAY1 0.00000000000000000000e+00 PHASE_CONCURRENT1 Off RUN_MODE1 Continuous MODULATION_TYPE1 AM AM_SOURCE1 Internal AM_SHAPE1 Sine AM_SHAPE_FILE1 "" AM_FREQUENCY1 1.00000000000000000000e+04 AM_DEPTH1 5.00000000000000000000e+01 FM_SOURCE1 Internal FM_SHAPE1 Sine FM_SHAPE_FILE1 "" FM_FREQUENCY1 1.00000000000000000000e+04 FM_DEVIATION1 1.00000000000000000000e+06 PM_SOURCE1 Internal PM_SHAPE1 Sine PM_SHAPE_FILE1 "" PM_FREQUENCY1 1.00000000000000000000e+04 PM_DEVIATION1 9.00000000000000000000e+01 PWM_SOURCE1 Internal PWM_SHAPE1 Sine PWM_SHAPE_FILE1 "" PWM_FREQUENCY1 1.00000000000000000000e+04 PWM_DEVIATION1 5.00000000000000000000e+00 FSK_SOURCE1 Internal FSK_RATE1 5.00000000000000000000e+01 FSK_HOP_FREQUENCY1 1.00000000000000000000e+06 SWEEP_START1 1.00000000000000000000e+05 SWEEP_STOP1 1.00000000000000000000e+06 SWEEP_CENTER1 5.50000000000000000000e+05 SWEEP_SPAN1 9.00000000000000000000e+05 SWEEP_START_STOP_OR_CENTER_SPAN1 StartStop SWEEP_TIME1 1.00000000000000002082e-02 SWEEP_RETURN_TIME1 1.00000000000000002082e-03 SWEEP_HOLD_TIME1 0.00000000000000000000e+00 SWEEP_TYPE1 Linear SWEEP_MODE1 Repeat BURST_DELAY1 0.00000000000000000000e+00 BURST_IDLE_STATE1 StartPoint RTWM_CABLE_DELAY1 5.23999999999999927584e-09 BURST_COUNT2 5.00000000000000000000e+00 BURST_MODE2 Triggered FREQUENCY_CONCURRENT2 Off FUNCTION2 Sine FUNCTION_FILE2 "" VOLTAGE_CONCURRENT2 Off LOAD_IMPEDANCE2 5.00000000000000000000e+01 AMPLITUDE_UNIT2 Vpp AMPLITUDE_VPP2 1.00000000000000000000e+00 AMPLITUDE_VRMS2 3.53553390593273730858e-01 AMPLITUDE_DBM2 3.97940008672037537352e+00 OFFSET2 0.00000000000000000000e+00 HIGH_LEVEL2 5.00000000000000000000e-01 LOW_LEVEL2 -5.00000000000000000000e-01 AMPLITUDE_OR_LEVEL2 Amplitude HIGH_LIMIT2 2.50000000000000000000e+00 LOW_LIMIT2 -2.50000000000000000000e+00 INVERT2 Off NOISE_ADD2 Off NOISE_LEVEL2 1.00000000000000000000e+01 PULSE_WIDTH2 4.99999999999999977374e-07 PULSE_DUTY2 5.00000000000000000000e+01 PULSE_WIDTH_OR_DUTY2 Duty PULSE_LEADING_EDGE2 2.00000000000000012456e-09 PULSE_TRAILING_EDGE2 2.00000000000000012456e-09 RAMP_SYMMETRY2 5.00000000000000000000e+01 NOISE_SIGMA2 2.00000000000000011102e-01 FREQUENCY2 1.00000000000000000000e+06 PERIOD2 9.99999999999999954748e-07 FREQUENCY_OR_PERIOD2 Frequency PHASE2 0.00000000000000000000e+00 LEAD_DELAY2 0.00000000000000000000e+00 PHASE_CONCURRENT2 Off RUN_MODE2 Continuous MODULATION_TYPE2 AM AM_SOURCE2 Internal AM_SHAPE2 Sine AM_SHAPE_FILE2 "" AM_FREQUENCY2 1.00000000000000000000e+04 AM_DEPTH2 5.00000000000000000000e+01 FM_SOURCE2 Internal FM_SHAPE2 Sine FM_SHAPE_FILE2 "" FM_FREQUENCY2 1.00000000000000000000e+04 FM_DEVIATION2 1.00000000000000000000e+06 PM_SOURCE2 Internal PM_SHAPE2 Sine PM_SHAPE_FILE2 "" PM_FREQUENCY2 1.00000000000000000000e+04 PM_DEVIATION2 9.00000000000000000000e+01 PWM_SOURCE2 Internal PWM_SHAPE2 Sine PWM_SHAPE_FILE2 "" PWM_FREQUENCY2 1.00000000000000000000e+04 PWM_DEVIATION2 5.00000000000000000000e+00 FSK_SOURCE2 Internal FSK_RATE2 5.00000000000000000000e+01 FSK_HOP_FREQUENCY2 1.00000000000000000000e+06 SWEEP_START2 1.00000000000000000000e+05 SWEEP_STOP2 1.00000000000000000000e+06 SWEEP_CENTER2 5.50000000000000000000e+05 SWEEP_SPAN2 9.00000000000000000000e+05 SWEEP_START_STOP_OR_CENTER_SPAN2 StartStop SWEEP_TIME2 1.00000000000000002082e-02 SWEEP_RETURN_TIME2 1.00000000000000002082e-03 SWEEP_HOLD_TIME2 0.00000000000000000000e+00 SWEEP_TYPE2 Linear SWEEP_MODE2 Repeat BURST_DELAY2 0.00000000000000000000e+00 BURST_IDLE_STATE2 StartPoint RTWM_CABLE_DELAY2 0.00000000000000000000e+00
您好!
示例代码按预期工作。
AM263x Launchpad 的0.1µF 电容器在 ADCx_AINy BoosterPack 引脚处接地。 这与函数发生器施加的负载平行、导致 LPF 响应、可能会衰减100KHz 范围内的信号、如图所示。
此致、
扎卡里·弗莱诺
HII Fleenor,
非常感谢您的帮助! 您建议移除0.1uF 电容器以修复我遇到的问题。
非常感谢您抽出宝贵时间。