E2036 测试系统开发说明

测试系统开发代写 指令结构,$指令类型,参数 1,参数 2(如有),…参数 n! 说明:以$开始,以!结束,为一条指令。上位机通常会下发多条指令,MCU 接收完毕后,按先后顺序逐条解析执行。

V2.01 beta

测试系统开发代写
测试系统开发代写

指令结构,$指令类型,参数 1,参数 2(如有),…参数 n!

说明:以$开始,以!结束,为一条指令。上位机通常会下发多条指令,MCU 接收完毕后,按先后顺序逐条解析执行。特别说明,指令的执行应该连续,除了刻意延时,每条指令的执行应尽可能快。

指令大致分为 4 类,配置系统参数,读取端口或时序,输出端口或时序,ADC 采集。下面按照操作难易程度进行逐一说明。

$BG,1~512!

说明:标记共有多少条指令需下发执行。备注,”,”为半角字符,”~”表示参数范围。

$ED!

说明:标记指令已经全部下发,MCU 开始解析执行指令。特别说明,MCU 按照指令的先后顺序逐个执行,每执行完一条将该指令放入返回缓冲区,如下图

测试系统开发代写
测试系统开发代写

$C1,1~32!

说明:配置脉冲高电平宽度,单位为 1us(可适当调整,<2us)

$C2,1~32!

说明:配置脉冲低电平宽度,单位为 1us(可适当调整,<2us)

$O1,0~3,1~128!

说明:FPGA 特定端口(参数 1)输出指定个数(参数 2)脉冲信号。脉冲周期由$C1,$C2 确定。

$D1,1~1024! 测试系统开发代写

说明:延时指令,单位 us。延时指定时间后再执行下一条指令

$D2,1~32!

说明:延时指令,单位 ms。延时指定时间后再执行下一条指令

$O2,0~7,0~65535!说明:控制 I²C 芯片 PCA(F)8575 输出,参数 1 为芯片序号,参数 2 为芯片 16 个 Pin 脚电平状态

$R2,0~7!

说明:读取 I²C 芯片 PCA(F)8575 所有 Pin 脚电平,参数 1 为芯片序号。备注:该条指令包含数据返回,即返回内容为$R2,0~7!xxxxxxxx

$R1,0~3!

说明:读取 FPGA 特定端口电平,连续测量 8 次,间隔 20uS,返回每次测量结果,因而为 1byte 数据

$R3!

说明:读取特定时序,如下图。返回数据为 4bytes TFUS 端口值。当超过 32ms 没有 32 个 TCLK 触发时,即发生超时,此时返回 4byte 全 1 数据

测试系统开发代写
测试系统开发代写

$R4!

说明:在 0.5ms 时间内,统计读取到的时钟个数,范围为 0~1023

$O3,0~1,0~1023!

说明:参数 1 为 DAC 序号,参数 2 为输出直流值

$R5,1~2! 测试系统开发代写

说明:ADC2 采集,参数值为 1 表示 4 个数据点,2 表示 1024 个数据点,速率 100Ksps

$C5,1~64(m),8~2048(n),1~2048(j),1~2(k),1~4,1~3

说明:参数 1 对应下图中 m;参数 2 对应 n;参数 3 对应 j;参数 4 对应 k,1 为 3Tc,2 为 15Tc;参数 5 对应 OUTX,每个信号周期需要采集点数,1 为 32 个点,2 为 64 个点,3 为 128 个点,4 为 256 个点,参数 6,1 对应 CLK 为6Mhz,2 对应 CLK 3Mhz,3 对应 CLK 1.5Mhz。备注:CLK 产生可通过重新编译代码,实现输出 5Mhz,2.5Mhz,1.25Mhz 等等。虽然 CLK 可变,但 ADC1 采集速率恒定,≥1.5Msps。可推断产生 CLK 的源最高为 24Mhz,而ADC1->CLK 时钟建议为 50Mhz 左右,应避免使用更高频时钟。

$O4,1~4!

说明:CLK,RES,ST 组合成特定时序(其参数由$C5 设定),参数值 1,2,3,4 对应输出时序 1,2,3,4。注意,板子上电时初始状态为时序 4。时序为 1 时,ADC1 以恒定速率采集,并将数据放入缓冲区。……

测试系统开发代写

$R6,1~65536!

说明:参数 1 为 ADC1 连续采集点数。在连续采集前,上位机必定保证先执行$O4,4!,使 CLK,ST,RST 输出恒定为 0。

$R7,1~256! 测试系统开发代写

说明:此为读取触发采集,参数1为读取ADC1采集组数。在执行指令前,上位机必定保证先执行$O4,1!,使CLK,ST,RST按时序 1 输出。进一步说明,参考上图时序 1,每次触发后,连续采集一段(帧)数据(采集点数由指令$C5 设定)。举例,$C5,X,X,X,X,1,1!,每次触发后采集 32 点数据(速率≥1.5Msps),$R7,256!,总的采集点数为 32*256=8192点。

注意一,当执行$O4,1!指令后,ADC1 立即工作,不间断地将帧数据写入内存。执行$R7 指令实际为将内存中帧数据发送至上位机,地址位从 0 开始,不用管 ADC1 写指针位置,直至达到指定帧数数据,结束发送,但 ADC1 仍工作。

注意二,采集帧数据需要按照下面格式进行组合,每帧数据后面追加 18*4bits 数据,首 18bit 数据恒定为 1,第二18bit 数据恒定为 0,第三 18bit 根据时序 1-> ASIC Sync 来定,当检测到 ASIC Sync 为 0 时,高 4 位为 0101,低 14位全为 0,当检测到 ASIC Sync 为 1 时,高 4 位同为 0101,低 14 位全为 1,最后 18bit 为帧计数器,每产生 1 帧自累加 1,溢出时从 0 重新计数。

整个系统框图