您好,
以下是我需要的几个数字,ADC 采样频率= 800MHz (我知道 ADS54T0x,我正在使用的 ADC 可以提供)。 样本数量约为30k,重复频率约为1000Hz,这意味着必须在1毫秒间隔内捕获包含前30k 样本的数据并以二进制或 CSV 格式保存到文件中,以便下一个捕获阶段可以执行 开始 并在新文件中存储另一个30,000个样本。
作为尝试,我使用了“C:\.....\High Speed Data Converter Pro\HSDCPro Automation DLL\Manual and Examples\Automation DLL C examples\ADC\Automation DLL C example ADC.vcproj”示例,并在 Pass_Capture_Event
循环下一个循环中捕获数据之前检查了该函数的执行时间。
if (TriggerModeEnable==0) { printf("\n\nStart Normal Capture. Press any key to continue..."); getch(); printf("\nStarting Normal Capture..."); //start clock Error_Status = Pass_Capture_Event(TimeoutInMs); //stop clock and measure the execution time in milliseconds printf("\nError Status = %d", Error_Status); printf("\n\nSaving ADC Raw Data as CSV file at %s", CSVFilePathWithName); Error_Status = Save_Raw_Data_As_CSV(CSVFilePathWithName, TimeoutInMs); printf("\nError Status = %d", Error_Status) }
该函数需要250毫秒左右的时间,这远远超出了我们的要求(我使用 Unix 时间戳来获得准确的精度)。
作为替代方案,我还尝试以时钟的形式提供外部硬件触发器,时间周期为0.5秒和0.5毫秒,并循环Read_DDR_memory
使用该功能(启用WaitforTrigger
),但我觉得该程序的延迟要多得多,并且跳过几个触发器。 您能否帮助我们决定该程序是否正确? 以及 DAQ 能否为我们提供我们所需的数字(在顶部提到)。 如果需要,您还可以与我的邮件 ID 通信。 提前感谢!
此致,
阿迪西亚
电子邮件:adithya.n@galaxeye.space