The 50R can now be checked off, I ran self cal and now no offset on 50R mode. Nice work.
The 2.13 version has full BW which is how I noticed
above. So the front end does not need to be modified, at least for 450MHz, but that would be interesting to try your modification in the future. Its something rigol changed to limit the BW in 2.14.
I was wrong before, if I set 20MHz, then set OFF, it goes to some intermediate state that looks very similar to 20MHz. So its setting some AFE values but maybe not all of them, or maybe not the correct ones.
If I set 200MHz then OFF there is no change, so whatever its doing is the same there.
If I look at the log its not calling DrvChannel_SetAfeBandLimit() in the case of 250MHz or OFF.
- Press 20MHz:
10-30 00:21:05.541 1307 1374 E [NK.SCOPE]: [drv_channel.cpp][DrvChannel_SetAfeBandLimit][1650]:CH1: CC_TRIM_MUX4:0, CC2_TRIM_MUX4: 0, BW_TRIM_MUX4: 5
10-30 00:21:05.544 1307 1374 E [NK.SCOPE]: [drv_channel.cpp][DrvChannel_SetBandLimit][1600]:DrvChannel_SetBandLimit:20M
- Press 200MHz:
10-30 00:23:54.658 1307 1374 E [NK.SCOPE]: [drv_channel.cpp][DrvChannel_SetAfeBandLimit][1650]:CH1: CC_TRIM_MUX4:3, CC2_TRIM_MUX4: 1, BW_TRIM_MUX4: 27
10-30 00:23:54.661 1307 1374 E [NK.SCOPE]: [drv_channel.cpp][DrvChannel_SetBandLimit][1233]:DrvChannel_SetBandLimit:200M
- Press OFF or 250MHz, does not call function:
10-30 00:30:30.235 1307 1374 E [NK.SCOPE]: [vertical_offset.cpp][ApiChannel_SetOffset][37]:ApiChannel_SetOffset offset=40000
10-30 00:30:30.239 1307 1374 E [NK.SCOPE]: [drv_scope.cpp][ConfigHorizontal][2691]: >>>> WavePlay main>>>>
10-30 00:30:30.241 1307 1374 E [NK.SCOPE]: [drv_scope.cpp][ConfigHorizontal][2692]:WavePlay:ChnMode :1
So maybe its a change in there or DrvChannel_SetBandLimit(unsigned int, unsigned int, unsigned int)
I see some switch statements referring to "1000" and "4000" I guess that its how it differentiates the model.
case 3:
if (iVar3 == 1000) {
LAB_002de780:
...
LAB_002de9d0:
DrvChannel_SetAfeBandLimit
(param_1,iVar3,iVar4,*(int *)(lVar8 + uVar7 * 0x60 + (ulong)(uVar15 | 0x350000)));
}
else {
if (iVar3 == 4000) {
... //HDO4000?
}
if (iVar3 == 2000) goto LAB_002de780; //HDO2000?
}
if (lVar11 < 1000000000) {
if ((lVar11 != 250000000) && (lVar11 == 500000000)) {
uVar15 = 0xb;
goto LAB_002ded94;
}